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用户可以改它的资源限制
    项目和账户和资源也关联

    项目创建完毕
    事件这里记录的操作日志
    重要的报警首页会显示
  • 相关阅读:
    Java平台调用Python平台已有算法(附源码及解析)
    java截取避免空字符丢失
    Java集合对象比对
    idea中的beautiful插件-自动生成对象set方法
    idea下maven命令打包不同配置
    提纲
    标记语言入门
    react入门
    深入理解React、Redux
    css伪类 伪元素
  • 原文地址:https://www.cnblogs.com/nmap/p/6392782.html
Copyright © 2011-2022 走看看