zoukankan      html  css  js  c++  java
  • CloudStack学习-2

    环境准备


     

    这次实验主要是CloudStack结合glusterfs。 两台宿主机,做gluster复制卷

    VmWare添加一台和agent1配置一样的机器

    系统版本:centos6.6 x86_64
    内存:4GB
    网络:机器是nat
    磁盘:装完系统后额外添加个50GB的磁盘
    额外:勾选vt-x
    

    配置主机名为agent2

    正式开始
    关闭iptables和selinux

    sed  -i   's#SELINUX=enforcing#SELINUX=disabled#g'   /etc/selinux/config
    setenforce  0
    chkconfig iptables off 
    /etc/init.d/iptables  stop
    

    配置IP地址为静态的

    [root@agent2 ~]#  cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    TYPE=Ethernet
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.145.153
    NETMASK=255.255.255.0
    GATEWAY=192.168.145.2
    DNS1=10.0.1.11
    [root@agent2 ~]# 
    

    配置主机名为agent2
    配置hosts文件

    cat >>/etc/hosts<<EOF
    192.168.145.151 master1
    192.168.145.152 agent1
    192.168.145.153 agent2
    EOF
    

    保证master和两台agent的配置都如下

    [root@agent2 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.145.151 master1
    192.168.145.152 agent1
    192.168.145.153 agent2
    [root@agent2 ~]# 
    

    配置ntp

    yum  install ntp -y
    chkconfig ntpd on 
    /etc/init.d/ntpd start
    

    检查 hostname  --fqdn

    [root@agent2 ~]# hostname  --fqdn
    agent2
    [root@agent2 ~]# 
    

    安装epel源

    yum   install  epel-release -y
    

    agent2上也如下操作,注意agent2新建primary目录

    [root@agent2 tools]# mkdir /export/primary  -p
    [root@agent2 tools]# 
    

    agent2上操作,格式化磁盘

    [root@agent2 ~]# mkfs.ext4 /dev/sdb
    mke2fs 1.41.12 (17-May-2010)
    /dev/sdb is entire device, not just one partition!
    Proceed anyway? (y,n) y
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    3276800 inodes, 13107200 blocks
    655360 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    400 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
    	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    	4096000, 7962624, 11239424
    
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 36 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    [root@agent2 ~]# 
    

    agent2上操作

    [root@agent2 ~]#  echo "/dev/sdb   /export/primary  ext4  defaults  0  0">>/etc/fstab
    [root@agent2 ~]# mount -a
    [root@agent2 ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        35G  2.3G   31G   7% /
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    /dev/sda1       380M   33M  328M   9% /boot
    /dev/sdb         50G   52M   47G   1% /export/primary
    [root@agent2 ~]# 
    

      

    删除之前实验残留的配置


     

    master端操作

    删除之前的配置
    先操作master,删除之前的库

    [root@master1 ~]# mysql -uroot -p123456
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 14
    Server version: 5.1.73-log Source distribution
    
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | cloud              |
    | cloud_usage        |
    | mysql              |
    | test               |
    +--------------------+
    5 rows in set (0.01 sec)
    
    mysql> drop database cloud;
    Query OK, 274 rows affected (1.34 sec)
    
    mysql> drop database cloud_usage;
    Query OK, 25 rows affected (0.09 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | test               |
    +--------------------+
    3 rows in set (0.00 sec)
    
    mysql> 
    

    停止management服务

    [root@master1 ~]# /etc/init.d/cloudstack-management stop
    Stopping cloudstack-management:                            [FAILED]
    [root@master1 ~]# /etc/init.d/cloudstack-management stop
    Stopping cloudstack-management:                            [  OK  ]
    [root@master1 ~]# /etc/init.d/cloudstack-management status
    cloudstack-management is stopped
    [root@master1 ~]# 
    

    agent1上卸载gluster的包
    卸载glusterfs会卸载kvm相关的依赖包,从c6.6开始的
    6.5以前,kvm也不依赖glusterfs
    如果replication包没安装的话,先执行上面的卸载操作
    它会自动的把kvm的包卸载。libvirtd的包也被卸载

    [root@agent1 ~]# rpm -qa | grep gluster
    [root@agent1 ~]# yum remove glusterfs*
    [root@agent1 ~]# rpm -qa | grep kvm
    [root@agent1 ~]# rpm -qa | grep libvirt
    libvirt-python-0.10.2-60.el6.x86_64
    libvirt-client-0.10.2-60.el6.x86_64
    [root@agent1 ~]# 
    

    小插曲

    agent1本次实验完毕关机后,ifcfg-cloudbr0文件没生成。在这之前实验是正常的,重启后发现cloudbr0文件丢失
    解决办法:复制ifcfg-eth0为ifcfg-cloudbr0,参照机器agent2上正常的cloudbr0文件修改
    

    

    配置glusterfs


     

    安装gluster3.7的源(agent1和agent2都操作)
    如果你安装了3.6和3.8的包也没问题

    [root@agent1 ~]# yum install centos-release-gluster37 -y
    Loaded plugins: fastestmirror, security
    Setting up Install Process
    Loading mirror speeds from cached hostfile
     * epel: mirrors.tuna.tsinghua.edu.cn
    centos-gluster37                                                  | 2.9 kB     00:00     
    centos-gluster37/primary_db                                       |  99 kB     00:07     
    Package centos-release-gluster37-1.0-4.el6.centos.noarch already installed and latest version
    Nothing to do
    [root@agent1 ~]# 
    

    查看yum源文件

    [root@agent1 ~]# cat /etc/yum.repos.d/CentOS-Gluster-3.7.repo 
    # CentOS-Gluster-3.7.repo
    #
    # Please see http://wiki.centos.org/SpecialInterestGroup/Storage for more
    # information
    
    [centos-gluster37]
    name=CentOS-$releasever - Gluster 3.7
    baseurl=http://mirror.centos.org/centos/$releasever/storage/$basearch/gluster-3.7/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
    
    [centos-gluster37-test]
    name=CentOS-$releasever - Gluster 3.7 Testing
    baseurl=http://buildlogs.centos.org/centos/$releasever/storage/$basearch/gluster-3.7/
    gpgcheck=0
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
    
    [root@agent1 ~]# 
    

    指定源,安装对应版本的glusterfs包(agent1和agent2都操作)

    [root@agent1 ~]# yum --enablerepo=centos-gluster37-test install glusterfs-server glusterfs-cli gluster-geo-replication  -y
    

      也可以从下面路径下载rpm包,然后安装

    https://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/CentOS/epel-6.8/x86_64/

    agent端删除之前残留文件

     agent1删除挂载点原先的文件(原先的kvm等文件)

    [root@agent1 ~]# cd /export/primary/
    [root@agent1 primary]# ls
    0cc65968-4ff3-4b4c-b31e-7f1cf5d1959b  cf3dac7a-a071-4def-83aa-555b5611fb02
    1685f81b-9ac9-4b21-981a-f1b01006c9ef  f3521c3d-fca3-4527-984d-5ff208e05b5c
    99643b7d-aaf4-4c75-b7d6-832c060e9b77  lost+found
    [root@agent1 primary]# rm -rf *
    [root@agent1 primary]# ls
    [root@agent1 primary]# 
    

    agent2也如此操作。删除多余的东西

    [root@agent2 ~]# cd /export/primary/
    [root@agent2 primary]# ls
    lost+found
    [root@agent2 primary]# rm -rf *
    [root@agent2 primary]# ls
    [root@agent2 primary]# 
    

    agent2上安装CloudStack包(在这之前,已经把glusterfs3.7的包安装上了)

    这些agent不需要手动起,它们是交给master管理的

    其实master是通过22端口连接过来管理的

    [root@agent2 tools]# yum install cloudstack-agent-4.8.0-1.el6.x86_64.rpm cloudstack-common-4.8.0-1.el6.x86_64.rpm  -y
    

    agent端检查glusterfs版本

    [root@agent1 ~]# glusterfs -V
    glusterfs 3.7.20 built on Jan 30 2017 15:39:27
    Repository revision: git://git.gluster.com/glusterfs.git
    Copyright (c) 2006-2013 Red Hat, Inc. <http://www.redhat.com/>
    GlusterFS comes with ABSOLUTELY NO WARRANTY.
    It is licensed to you under your choice of the GNU Lesser
    General Public License, version 3 or any later version (LGPLv3
    or later), or the GNU General Public License, version 2 (GPLv2),
    in all cases as published by the Free Software Foundation.
    [root@agent1 ~]# 
    

    启动glusterd并设置开机启动(两个agent上操作)

    [root@agent1 ~]# /etc/init.d/glusterd start
    Starting glusterd:                                         [  OK  ]
    [root@agent1 ~]# chkconfig glusterd on
    [root@agent1 ~]# 
    

    两台agent停止iptables

    [root@agent1 ~]# /etc/init.d/iptables stop
    iptables: Setting chains to policy ACCEPT: nat mangle filte[  OK  ]
    iptables: Flushing firewall rules:                         [  OK  ]
    iptables: Unloading modules:                               [  OK  ]
    [root@agent1 ~]# chkconfig iptables off
    [root@agent1 ~]# 
    

    gluster加入节点,并检查状态,在一台agent上操作即可 

    [root@agent1 ~]# gluster peer probe agent2
    peer probe: failed: Probe returned with Transport endpoint is not connected
    [root@agent1 ~]# gluster peer probe agent2
    peer probe: success. 
    [root@agent1 ~]# gluster peer status
    Number of Peers: 1
    
    Hostname: agent2
    Uuid: 2778cb7a-32ef-4a3f-a34c-b97f5937bb49
    State: Peer in Cluster (Connected)
    [root@agent1 ~]# 
    

    创建复制卷
    开始操作
    gv2是自定义的

    [root@agent1 ~]# gluster volume create gv2 replica 2 agent1:/export/primary  agent2:/export/primary force
    volume create: gv2: success: please start the volume to access data
    [root@agent1 ~]# 
    

    启动这个卷,并查看状态,Type显示Replicate,就表示复制卷的意思 ,为什么采用gluster呢,原先主存储是本地挂载的,假如宿主机挂掉后,宿主机上的kvm全部挂掉。

    [root@agent1 ~]# gluster volume start gv2
    volume start: gv2: success
    [root@agent1 ~]# gluster volume info
     
    Volume Name: gv2
    Type: Replicate
    Volume ID: 3a23ab68-73da-4f1b-bc5c-3310ffa9e8b7
    Status: Started
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: agent1:/export/primary
    Brick2: agent2:/export/primary
    Options Reconfigured:
    performance.readdir-ahead: on
    [root@agent1 ~]# 
    

    gluster的东西至此完毕,继续之前的内容

    CloudStack配置和用户界面操作


     

    继续在master上如下初始化数据库的操作,导入数据 

    [root@master1 ~]# cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:123456
    Mysql user name:cloud                                                           [ OK ]
    Mysql user password:******                                                      [ OK ]
    Mysql server ip:localhost                                                       [ OK ]
    Mysql server port:3306                                                          [ OK ]
    Mysql root user name:root                                                       [ OK ]
    Mysql root user password:******                                                 [ OK ]
    Checking Cloud database files ...                                               [ OK ]
    Checking local machine hostname ...                                             [ OK ]
    Checking SELinux setup ...                                                      [ OK ]
    Detected local IP address as 192.168.145.151, will use as cluster management server node IP[ OK ]
    Preparing /etc/cloudstack/management/db.properties                              [ OK ]
    Applying /usr/share/cloudstack-management/setup/create-database.sql             [ OK ]
    Applying /usr/share/cloudstack-management/setup/create-schema.sql               [ OK ]
    Applying /usr/share/cloudstack-management/setup/create-database-premium.sql     [ OK ]
    Applying /usr/share/cloudstack-management/setup/create-schema-premium.sql       [ OK ]
    Applying /usr/share/cloudstack-management/setup/server-setup.sql                [ OK ]
    Applying /usr/share/cloudstack-management/setup/templates.sql                   [ OK ]
    Processing encryption ...                                                       [ OK ]
    Finalizing setup ...                                                            [ OK ]
    
    CloudStack has successfully initialized database, you can check your database configuration in /etc/cloudstack/management/db.properties
    
    [root@master1 ~]# 
    

    数据库配置完毕后,启动master,它会做一些初始化的操作
    以后不要这么启动,初始化只执行一次就行了

    [root@master1 ~]# cloudstack-setup-management
    

    查看日志,已经启动完成了,看到8080端口已经监听了  

    [root@master1 ~]# tail -f /var/log/cloudstack/management/catalina.out
    INFO  [o.a.c.s.l.CloudStackExtendedLifeCycle] (main:ctx-d2bdddaf) (logid:) Done Configuring CloudStack Components
    INFO  [c.c.u.LogUtils] (main:ctx-d2bdddaf) (logid:) log4j configuration found at /etc/cloudstack/management/log4j-cloud.xml
    Feb 12, 2017 7:59:25 PM org.apache.coyote.http11.Http11NioProtocol start
    INFO: Starting Coyote HTTP/1.1 on http-8080
    Feb 12, 2017 7:59:25 PM org.apache.jk.common.ChannelSocket init
    INFO: JK: ajp13 listening on /0.0.0.0:20400
    Feb 12, 2017 7:59:25 PM org.apache.jk.server.JkMain start
    INFO: Jk running ID=0 time=0/18  config=null
    Feb 12, 2017 7:59:25 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 63790 ms
    

    登录网页
    http://192.168.145.151:8080/client
    登录网页
    admin/password

     

    接下来创建系统虚拟机(master上操作)
    系统虚拟路由,vnc窗口都是这些虚拟机的作用,master上执行下面命令

    /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt 
    -m /export/secondary 
    -f /tools/systemvm64template-4.6.0-kvm.qcow2.bz2 
    -h kvm -F
    

    这个步骤的作用就是把虚拟机模板导入到二级存储,执行过程如下

    [root@master1 tools]# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt 
    > -m /export/secondary 
    > -f /tools/systemvm64template-4.6.0-kvm.qcow2.bz2 
    > -h kvm -F
    Uncompressing to /usr/share/cloudstack-common/scripts/storage/secondary/9824edc4-61db-4ad8-a08a-61f051b9ebfe.qcow2.tmp (type bz2)...could take a long time
    Moving to /export/secondary/template/tmpl/1/3///9824edc4-61db-4ad8-a08a-61f051b9ebfe.qcow2...could take a while
    Successfully installed system VM template /tools/systemvm64template-4.6.0-kvm.qcow2.bz2 to /export/secondary/template/tmpl/1/3/
    [root@master1 ~]# 
    

     

    登录CloudStack管理页面,更改内存的超配
    改完需要重启下服务。

     

    基础架构----添加资源域

     

    其余默认如下

    下面这里都默认了,管理和guest都没修改。之前这里改成eth0,下面两个按钮改成了cloudbr0.
    其实可以不用改,它会自动帮你做好。这里我们就不改了

    如果你的虚拟机多的话,可以填到250

     

    这些agent不需要手动起,它们是交给master管理的
    其实master是通过22端口连接过来管理的
     

    这里配置如下
    由于agent节点做的glusterfs复制卷,就可以选择协议为gluster,服务器可以填127.0.0.1了

     

    这里配置结果如下,sec是随便写的

     

    点击启动资源

     

    可能是软件的bug
    点击上面的取消就行了
    区域,提供点,集群都加成功了,这里可以手动加主机和存储

     

    可以通过主机界面添加

     

    agent2加成功了,agent1加失败了

     

    添加成功

    agent1没添加成功是上节课的cloudbr0 残留引起的
    删除cloudbr0,重启agent1网络,再次master上添加,完成

    [root@agent1 ~]# cd /etc/sysconfig/network-scripts/
    [root@agent1 network-scripts]# ls ifcfg-cloudbr0 
    ifcfg-cloudbr0
    [root@agent1 network-scripts]# rm -f ifcfg-cloudbr0 
    [root@agent1 network-scripts]# /etc/init.d/network restart
    Shutting down interface eth0:                              [  OK  ]
    Shutting down loopback interface:                          [  OK  ]
    Bringing up loopback interface:                            [  OK  ]
    Bringing up interface eth0:                                [  OK  ]
    [root@agent1 network-scripts]# 
    
    这里解决过程如下,先删除之前实验生成的cloudbr0文件,重启网络
    rm -f ifcfg-cloudbr0 
    /etc/init.d/network restart
    
    再次网页添加提示失败,检查kvm,发现上次实验的kvm机器在运行,但是kvm的rpm包找不到
    而且libvirtd包也没了,就是使用yum  remove 卸载gluster导致的
    ps -ef | grep kvm
    lsmod | grep kvm
    rpm -qa | grep kvm
    virsh list --all
    
    之前卸载glusterfs时,把kvm包连带卸载掉了,重新安装CloudStack的包,把依赖的kvm包和libvirt包都装上了
    cd /tools/
    ls
    yum install cloudstack-agent-4.8.0-1.el6.x86_64.rpm cloudstack-common-4.8.0-1.el6.x86_64.rpm  -y
    ps -ef | grep kvm
    lsmod | grep kvm
    rpm -qa | grep kvm
    /etc/init.d/libvirtd status
    /etc/init.d/libvirtd restart
    
    由于之前实验的kvm一直驻留在内存里,直接kill,kill之后会消失
    virsh list
    ps -ef | grep kvm
    kill -9 2776
    ps -ef | grep kvm
    kill -9 2532
    ps -ef | grep kvm
    kill -9 2304
    ps -ef | grep kvm
    virsh  list --all
    
    agent1也添加成功

     

    日志在刷,卡在这里,这里是别人做实验遇到的。就是cloudbr0文件没删除导致的
    提示File exists

    添加存储

    先添加主存储

     

    添加成功
    检查,添加成功了,以前的版本是数据库加了一条记录,这里没挂载,新版本数据库加了记录之后,这里挂载了
    [root@agent1 ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        35G  2.7G   31G   8% /
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    /dev/sda1       380M   33M  328M   9% /boot
    /dev/sdb         50G   52M   47G   1% /export/primary
    127.0.0.1:/gv2   50G   52M   47G   1% /mnt/6d915c5a-6640-354e-9209-d2c8479ca105
    [root@agent1 ~]# 
    
    [root@agent2 ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        35G  2.7G   31G   9% /
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    /dev/sda1       380M   33M  328M   9% /boot
    /dev/sdb         50G   52M   47G   1% /export/primary
    127.0.0.1:/gv2   50G   52M   47G   1% /mnt/6d915c5a-6640-354e-9209-d2c8479ca105
    [root@agent2 ~]# 
    
     
    添加二级存储

     

    基础架构完成如下

    启动域之前,先优化一下
    修改超配
    关于超配可以参照上一节课的。
    修改完之后需要重启master的management服务,可能服务第一次重启需要等待一段时间,为了确保成功,再次执行一次重启

    [root@master1 ~]# /etc/init.d/cloudstack-management restart
    Stopping cloudstack-management:                            [FAILED]
    Starting cloudstack-management:                            [  OK  ]
    [root@master1 ~]# /etc/init.d/cloudstack-management restart
    Stopping cloudstack-management:                            [  OK  ]
    Starting cloudstack-management:                            [  OK  ]
    [root@master1 ~]# 
    

    重启过程中,日志有些报错,参照下。不用管

    [root@master1 ~]# tail -f /var/log/cloudstack/management/catalina.out 
    INFO  [o.a.c.s.l.CloudStackExtendedLifeCycle] (Thread-85:null) (logid:) stopping bean VolumeDataStoreDaoImpl
    INFO  [o.a.c.s.l.CloudStackExtendedLifeCycle] (Thread-85:null) (logid:) stopping bean UsageDaoImpl
    INFO  [o.a.c.s.l.CloudStackExtendedLifeCycle] (Thread-85:null) (logid:) stopping bean ManagementServerNode
    INFO  [o.a.c.s.l.CloudStackExtendedLifeCycle] (Thread-85:null) (logid:) stopping bean ConfigurationServerImpl
    INFO  [o.a.c.s.l.CloudStackExtendedLifeCycle] (Thread-85:null) (logid:) stopping bean DatabaseIntegrityChecker
    INFO  [o.a.c.s.l.CloudStackExtendedLifeCycle] (Thread-85:null) (logid:) stopping bean ClusterManagerImpl
    INFO  [c.c.c.ClusterManagerImpl] (Thread-85:null) (logid:) Stopping Cluster manager, msid : 52236852888
    log4j:WARN No appenders could be found for logger (com.cloud.cluster.ClusterManagerImpl).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    Exception in thread "SnapshotPollTask" java.lang.NullPointerException
    	at org.slf4j.impl.Log4jLoggerAdapter.info(Log4jLoggerAdapter.java:304)
    	at org.apache.cloudstack.managed.context.ManagedContextRunnable.getContext(ManagedContextRunnable.java:66)
    	at org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
    	at org.apache.cloudstack.managed.context.ManagedContextTimerTask.run(ManagedContextTimerTask.java:27)
    	at java.util.TimerThread.mainLoop(Timer.java:555)
    	at java.util.TimerThread.run(Timer.java:505)
    Feb 12, 2017 8:50:21 PM org.apache.catalina.core.AprLifecycleListener init
    Feb 12, 2017 8:50:22 PM org.apache.catalina.session.StandardManager doLoad
    SEVERE: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: net.sf.cglib.proxy.NoOp$1
    java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: net.sf.cglib.proxy.NoOp$1
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1354)
    [root@master1 ~]#
    
     
     
    启动资源域

     

    启动资源域的目的,为了创建两台kvm
    一个是二级存储用的,一个是vnc窗口代理的

    想判断kvm有没有启动成功,两种方法
    1、网页查看
    2、vnc登录看看

    网页方式查看
    启动中

    启动成功
     
     
    vnc方式查看
    在vncviewer 复制进去。0 的话就是5900开始的
    密码不是password,指的是vnc的密码
    密码是最后一串,下面的1表示虚拟机的ID
    [root@agent1 ~]# virsh edit 1

    找到如下内容,最后的密码就是vnc的密码
    <graphics type='vnc' port='-1' autoport='yes' listen='192.168.145.152' passwd='Pdf1sAQ2bIl0oVpKSRfxaA'>

     

    复制这一串密码

    这样就表示虚拟机启动成功了
    输入用户名和密码root/password 登录进去

    刷新下

     虚拟机启动成功后,查看所在位置

    这里面就是模板还有那两个虚拟机,两个agent由于是复制卷,内容一致

    [root@agent1 ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        35G  2.7G   31G   8% /
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    /dev/sda1       380M   33M  328M   9% /boot
    /dev/sdb         50G  682M   46G   2% /export/primary
    127.0.0.1:/gv2   50G  682M   46G   2% /mnt/6d915c5a-6640-354e-9209-d2c8479ca105
    [root@agent1 ~]# cd /mnt/6d915c5a-6640-354e-9209-d2c8479ca105/
    [root@agent1 6d915c5a-6640-354e-9209-d2c8479ca105]# ls
    745865fe-545e-4430-98ac-0ffd5186a9b6  bc5bc6eb-4900-4076-9d5d-36fd0480b5e2
    9824edc4-61db-4ad8-a08a-61f051b9ebfe
    [root@agent1 6d915c5a-6640-354e-9209-d2c8479ca105]#
    
    内容一致
    [root@agent2 ~]# cd /mnt/6d915c5a-6640-354e-9209-d2c8479ca105/
    [root@agent2 6d915c5a-6640-354e-9209-d2c8479ca105]# ls
    745865fe-545e-4430-98ac-0ffd5186a9b6  bc5bc6eb-4900-4076-9d5d-36fd0480b5e2
    9824edc4-61db-4ad8-a08a-61f051b9ebfe
    [root@agent2 6d915c5a-6640-354e-9209-d2c8479ca105]#
    

     虚拟机的在线迁移


     

    目前是一个宿主机分了一个系统虚拟机

    [root@agent1 ~]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     1     v-2-VM                         running
    
    [root@agent1 ~]# 
    [root@agent2 ~]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     1     s-1-VM                         running
    
    [root@agent2 ~]# 
    

    它的ip是192.168.145.180

    agent1上目前是没有该虚拟机的
    我们把它从agent2迁移到agent1上
    [root@agent1 ~]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     1     v-2-VM                         running
    
    [root@agent1 ~]# 
    
    先ping着,那边做迁移,看看会不会丢包

    提示迁移完毕

    有少量丢包
    64 bytes from 192.168.145.180: icmp_seq=132 ttl=64 time=2.97 ms
    64 bytes from 192.168.145.180: icmp_seq=133 ttl=64 time=0.830 ms
    64 bytes from 192.168.145.180: icmp_seq=134 ttl=64 time=0.640 ms
    64 bytes from 192.168.145.180: icmp_seq=135 ttl=64 time=0.850 ms
    64 bytes from 192.168.145.180: icmp_seq=136 ttl=64 time=1.43 ms
    ^C
    --- 192.168.145.180 ping statistics ---
    136 packets transmitted, 132 received, 2% packet loss, time 135432ms
    rtt min/avg/max/mdev = 0.447/1.331/8.792/1.268 ms
    [root@master1 ~]# 
    
    已经迁移完毕了
    [root@agent1 ~]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     1     v-2-VM                         running
     3     s-1-VM                         running
    
    [root@agent1 ~]# 
    

      

    迁移原理,在新的host上创建虚拟机,只不过是挂起的,拷贝硬盘数据和内存数据过去
    迁移完毕,起来。
    网络一定要快,不丢包
    这是kvm自带的功能,只是用界面把底层命令封装了

     

    自定义虚拟机配置方案


     

    你可以添加自定义的kvm配置套餐

     
     
    先看看自己虚host的cpuinfo
    看到2200mhz
    [root@agent1 ~]# cat /proc/cpuinfo  | head -10
    processor	: 0
    vendor_id	: GenuineIntel
    cpu family	: 6
    model		: 42
    model name	: Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
    stepping	: 7
    microcode	: 26
    cpu MHz		: 2192.909
    cache size	: 6144 KB
    physical id	: 0
    [root@agent1 ~]# 
    

    假如你物理机是2.2GMHZ,比如上面这种
    虽然物理机有多核,这里你创建1个3GMHz的。 是不可以的。

    这里最好写2000, 不能超过物理机的2200的

     

    添加成功
    查看下磁盘方案

    关于写入缓存类型这里
    cache=none,表示默认的,没有缓存、。

     

    用户界面账户和项目使用


     

    账户配置
    user1/123456

     

    普通用户是无法看到系统虚拟机的
    关于安全组,普通用户也可以自定义

     

    普通用户的资源限制
    只能加20kvm
    admin用户可以改它的资源限制
    项目和账户和资源也关联

    项目创建完毕
    事件这里记录的操作日志
    重要的报警首页会显示
  • 相关阅读:
    Good Bye 2014 B. New Year Permutation(floyd )
    hdu 5147 Sequence II (树状数组 求逆序数)
    POJ 1696 Space Ant (极角排序)
    POJ 2398 Toy Storage (叉积判断点和线段的关系)
    hdu 2897 邂逅明下 (简单巴什博弈)
    poj 1410 Intersection (判断线段与矩形相交 判线段相交)
    HDU 3400 Line belt (三分嵌套)
    Codeforces Round #279 (Div. 2) C. Hacking Cypher (大数取余)
    Codeforces Round #179 (Div. 2) B. Yaroslav and Two Strings (容斥原理)
    hdu 1576 A/B (求逆元)
  • 原文地址:https://www.cnblogs.com/nmap/p/6392782.html
Copyright © 2011-2022 走看看