• centos7.4应用之KVM


     最小安装系统;

    参考博客:https://www.cnblogs.com/chenjiahe/p/5911965.html

    辅助命令

    yum install make bison flex automake autoconf boost-devel fuse-devel gcc-c++ libtool libuuid-devel libblkid-devel keyutils-libs-devel cryptopp-devel fcgi-devel libcurl-devel expat-devel gperftools-devel libedit-devel libatomic_ops-devel snappy-devel openssh-server  python-flask ntp dos2unix deltarpm net-toolsleveldb-devel libaio-devel xfsprogs-devel git libudev-devel gperftools redhat-lsb bzip2 ntp iptables-services wget expect MySQL-python vim  sysstat tcpdump  -y --skip-broken

     生产操作记录:

    #创建一个磁盘
    qemu-img create -f qcow2 /kuaiyun-vm/zabbix.img 250G #安装系统
    virt
    -install -n "zabbix" --description "zabbix" --ram "8192" --vcpus "4" --accelerate --hvm --disk "/kuaiyun-vm/zabbix.img",bus=virtio,cache=writeback,driver_type=qcow2 --boot hd,cdrom --graphics vnc,listen=0.0.0.0 --noautoconsole --serial file,path=/var/log/zabbix_console.log --cdrom /kuaiyun-img/CentOS-7-x86_64-Minimal-1810.iso
    #查看该系统的vnc端口 virsh list
    --all virsh domdisplay 210
    #安装完成后给该系统添加网卡,如果报--config错误就去掉 virsh attach
    -interface --domain zabbix --type bridge --source br-gl --model virtio --persistent --config --live //虚拟机开机状态执行

    1、安装环境准备

      1.1、虚拟机设置

      1.2、系统检查是否支持KVM

    判断是否支持KVM,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。
    [root@kvm ~]#cat /proc/cpuinfo|egrep --color 'vmx|svm'

    关闭SELinux
    setenforce 0
    sed -i s#SELinux=enforcing#SELINUX=disabled#g /etc/sysconfig/selinux

    查看结果
    [root@kvm ~]# getenforce
    Permissive

    先关闭防火墙
    systemctl stop firewalld.service
    systemctl disable firewalld.service

      

      1.3、安装kvm环境 

    yum -y install librbd-devel libvirt-client libvirt-daemon libvirt-daemon-driver-nodedev libvirt-daemon-driver-interface libvirt-python libvirt-daemon-driver-secret libvirt-daemon-driver-nwfilter libvirt-daemon-config-nwfilter libvirt-daemon-driver-storage libvirt-daemon-driver-network libvirt-daemon-driver-qemu libvirt-daemon-kvm libvirt-daemon-config-network libvirt-daemon-driver-lxc libvirt virt-install virt-top virt-v2v virt-what virt-who python2-pip glib glib-devel zlib-devel iftop zlib-devel glib2-devel
    不建议使用
    yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install virt-viewer  iptables-services

        modprobe kvm
        modprobe kvm_intel


    验证安装结果
         

    开启kvm服务,并且设置其开机自动启动
    systemctl start libvirtd
    systemctl enable libvirtd

    kvm运行状态
    systemctl status libvirtd
    systemctl is-enabled libvirtd

    清除防火墙规则
    iptables -F; service iptables save

      1.4、安装virt-viewer

    yum -y install virt-viewer

    [root@kvm01 ~]# virsh list --all
    Id Name State
    ----------------------------------------------------

    注释:证明安装成功

       默认开放的是5900端口,注意防火墙开放该端口

      1.5、配置网络(桥接模式,(代理模式说明))

    #备份网卡文件到/tmp目录下(不要备份到当前目录下)
    [root@kvm network-scripts]# pwd
    /etc/sysconfig/network-scripts
    [root@kvm network-scripts]# cp -a ifcfg-ens33 /tmp/ifcfg-ens33.ori
    
    #新建一个网卡文件
    [root@kvm network-scripts]# cat ifcfg-br0 
    BOOTPROTO=static
    DEVICE=br0
    TYPE=Bridge
    NM_CONTROLLED=no
    IPADDR=10.10.10.60
    NETMASK=255.255.255.0
    GATEWAY=10.10.10.2
    DNS1=114.114.114.114
    DNS2=8.8.8.8
    
    #配置原网卡信息
    [root@kvm network-scripts]# cat ifcfg-ens33 
    BOOTPROTO=none
    DEVICE=ens33
    NM_CONTROLLED=no
    ONBOOT=yes
    BRIDGE=br0
    
    #重启网卡
    service network restart

    ##############或##################写成脚本,开机自启############
    
    

    注释:如果需要做地址映射(NAT模式),建议选择使用一张没用的网卡桥接,然后使用10.10.10.60这个公网IP代理内网上网,也可做地址映射

    防火墙(代理上网/端口映射)
    echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
    sysctl -p
    iptables -t nat -A POSTROUTING -j MASQUERADE
    iptables -t nat -I PREROUTING -p tcp -m tcp --dport 3396 -j DNAT --to-destination 11.11.11.106:22
    注释:宿主机的3396端口映射到11.11.11.106内网IP的22端口

      1.6、上传镜像

      1.7、添加新的硬盘(存储img数据)(不是必须的,选个大的容量存储也行)

    [root@kvm ~ 10:11:42]#fdisk /dev/sdb
    Command (m for help): n   //新建分区
    Command action
       e   extended
       p   primary partition (1-4)   //主分区
    p
    Partition number (1-4): 1     //分区1
    First cylinder (1-2610, default 1): 1
    Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 
    Using default value 2610      //分配所有空间
    Command (m for help): w      //保存配置
    The partition table has been altered!

    mkfs -t ext4 /dev/sdb1 //格式化 mkdir -p /kvm/image ;mount /dev/sdb1 /kvm //挂载磁盘 echo "/dev/sdb1 /kvm ext4 defaults 0 0" >>/etc/fstab //写入文件,重启自动挂载

       2.1、安装虚拟机

    virt-install -n win2012 --vcpus=2 --ram=1024 --os-type=windows --os-variant=win2k12 --import dc.qcow2 --disk path=dfs1-data.img,format=qcow2,bus=virtio
    windows 参考
    virt-install --name centos7.4 
    --virt-type kvm 
    --os-type linux --vcpus=2 --ram 1024 --location=/usr/local/src/CentOS-7-x86_64-Minimal-1708.iso --disk path=/kvm/image/centos7.4.img.qcow2,size=10,format=qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0,,port=5900 --noautoconsole --os-variant=rhel7

    注释:
    --name 主机名称
    --os-type 系统版本
    --virt-type 运行模式
    --vcpus cpu内核模式
    --ram 内存大小
    --location 引用镜像
    --disk 磁盘信息
        path 放置路径及格式
        size 磁盘大小
        format 磁盘格式
    --network 桥接网卡
    --graphics 链接模拟选择vnc
    --noauticonsole 引用内核

      2.2、连接新建的虚拟机

         下载VNC Viewer客户端,地址:10.10.10.60:59000

    说明:根据提示,安装完成后选择重启即可!

       2.3、基本命令******

    安装完成选择重启,系统是自己起不来的,需要使用的命令

     1 virsh list --all       查看所有虚拟机状态
     2 virsh start vm1        VM1开机 
     3 virsh shutdown vm1     VM1关机
    5 virsh reboot vm1 重启虚机 
    4 virsh destroy vm1 强制关闭电源 5 virsh suspend vm_name 暂停虚拟机 6 virsh resume vm_name 恢复虚拟机 7 ls /etc/libvirt/qemu/ 主机的配置文件所在位置 8 9 10 virsh dominfo centos7.4 显示虚拟机信息 11 12 virsh undefine test1 移除虚拟机,该方法只删除配置文件,磁盘文件未删除,相当于从虚拟机中移除 13 virsh define /data/kvmback/centos7_back.xml #恢复虚拟机(前提是配置文件有备份,且硬盘没有被删除) 14 15 16 #显示当前系统所有虚拟机内存和cpu使用情况 17 yum -y install virt-top 18 virt-top 19 20 21 #关闭虚拟机 22 virsh shutdown centos7.4.node01 23 注释:如果不管用 24 yum install -y acpid acpid-sysvinit 25 service acpid start 26 systemctl enables acpid.service 27 28 29 virsh autostart kvm-1 #设置虚拟机跟随系统自启 30 virsh autostart --disable kvm-1 #关闭虚拟及自启 

      2.4、增加cpu核数及内存

    这张图不要管,不理它就是了!!!

    1、virsh edit centos7.4 (更改前要virsh shutdown centos7.4)
    
    找到“memory”和“vcpu”标签,将
    <memory unit='KiB'>1048576</memory>
    <currentMemory unit='KiB'>1048576</currentMemory>
    <vcpu placement='static'>1</vcpu>
    改为:
    <memory unit='KiB'>2048576</memory>
    <currentMemory unit='KiB'>1048576</currentMemory>
    <vcpu placement='static'>2</vcpu>
    
    开启虚拟机
    virsh start snale

     查看现在的虚机配置

    [root@kvm ~]# virsh dominfo centos7.4
    Id:             13
    名称:       centos7.4
    UUID:           28e90ffe-1ea2-4cad-9618-dec1524ff123
    OS 类型:    hvm
    状态:       running
    CPU:          1
    CPU 时间:   3.2s
    最大内存: 2049024 KiB
    使用的内存: 2049024 KiB
    持久:       是
    自动启动: 禁用
    管理的保存: 否
    安全性模式: selinux
    安全性 DOI: 0
    安全性标签: system_u:system_r:svirt_t:s0:c103,c652 (permissive)

      

    2.6、修改主机配置文件******

    KVM 虚拟机配置文件的修改。可以使用vi 或 vim 命令进行编辑修改,但不建议。正确的做法为 virsh edit KVM-NAME:
    [root@kvm01 qemu]#virsh edit snale 

        2.7、备份配置文件******

    KVM 虚拟机默认的配置文件在 /etc/libvirt/qemu 目录下,默认是以虚拟机名称命名的.xml 文件
    [root@kvm
    ~]# ls /etc/libvirt/qemu/ centos7.4.xml networks [root@kvm ~]#mkdir /data/kvmback [root@kvm ~]#virsh dumpxml centos7.4 >/data/kvmback/snale_back.xml

      2.8、修改配置文件******

    virsh edit snale 

     3、kvm克隆

     在克隆虚拟机之前,必须先暂停或者停掉kvm 虚拟机

    [root@localhost ~]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     3     centos7.4                      running
    
    [root@localhost ~]# virsh suspend 3
    域 3 被挂起
    
    [root@localhost ~]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     3     centos7.4                      暂停
    
    [root@localhost ~]# 

      3.1、方法一:针对虚拟机本身直接克隆

    [root@kvm src]# virsh shutdown 22 被关闭
    [root@kvm src]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     -     centos7.4                      关闭
    [root@kvm src]# virt
    -clone -o centos7.4 -n centos7.4_clone -f /kvm/centos7.4_clone.img WARNING 设置图形设备端口为自动端口,以避免相互冲突。 正在分配 'centos7.4_clone.img' | 10 GB 00:00:13 成功克隆 'centos7.4_clone'
    [root@kvm src]# virsh list --all Id 名称 状态 ---------------------------------------------------- - centos7.4 关闭 - centos7.4_clone 关闭 [root@kvm src]# virsh start centos7.4_clone 域 centos7.4_clone 已开始 [root@kvm src]# virsh list --all Id 名称 状态 ---------------------------------------------------- 3 centos7.4_clone running - centos7.4 关闭 [root@kvm src]#

     克隆完成后,在生成硬盘映像文件的同时,也会克隆虚拟机的配置文件:

    [root@kvm src]# ls /kvm/
    centos7.4_clone.img  image  lost+found
    [root@kvm src]# ls /etc/libvirt/qemu
    centos7.4_clone.xml  centos7.4.xml  networks

    启动新克隆的虚拟机,配置计算机名及IP地址:

    此时是无法启动的,要先修改它的配置文件,更改VNC端口,将port从5900改成5901
    
    [root@kvm src]# virsh edit 3
    <graphics type='vnc' port='5901' autoport='yes' listen='0.0.0.0'>
          <listen type='address' address='0.0.0.0'/>
        </graphics>
        
    [root@kvm src]# virsh start centos7.4_clone
    域 centos7.4_clone 已开始
    注释:克隆进行网络配置,别忘记了修改 /etc/udev/rules.d/70-persistent-net.rules 文件。

      3.2、第二种方法:复制kvm虚拟机配置文件及磁盘映象文件克隆

    [root@kvm src]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     4     centos7.4                      暂停
    
    [root@kvm src]# virsh dumpxml centos7.4 >/etc/libvirt/qemu/centos7.4_cp.xml
    [root@kvm src]# ls /etc/libvirt/qemu
    centos7.4_cp.xml  centos7.4.xml  networks
    
    [root@kvm src]# mkdir /kvm/kvm3
    [root@kvm src]# cp /kvm/image/centos7.4.img.qcow2 /kvm/kvm3/centos7.4_cp.img.qcow2
    [root@kvm src]# ll /kvm/kvm3/centos7.4_cp.img.qcow2 
    -rw-------. 1 root root 10739318784 11月  6 11:03 /kvm/kvm3/centos7.4_cp.img.qcow2
    
    [root@kvm src]# vi /etc/libvirt/qemu/centos7.4_cp.xml
    #name字段 
    <name>centos7.4.cp</name>
    #UUID字段(随意写一个)
    <uuid>28e90ffe-1ea2-4cad-9718-dec1524ff123</uuid>
    #disk字段
    <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
          <source file='/kvm/kvm3/centos7.4_cp.img.qcow2'/>
          <backingStore/>
    #vnc port端口(全局唯一,不要重复)
    <graphics type='vnc' port='5902' autoport='no' listen='0.0.0.0'>
          <listen type='address' address='0.0.0.0'/>
        </graphics>

     注册新的虚拟机

    [root@kvm src]# virsh define /etc/libvirt/qemu/centos7.4_cp.xml 
    定义域 centos7.4.cp(从 /etc/libvirt/qemu/centos7.4_cp.xml)
    
    [root@kvm src]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     4     centos7.4                      暂停
     -     centos7.4.cp                   关闭
    
    [root@kvm src]# virsh start centos7.4.cp
    域 centos7.4.cp 已开始

     4、快照创建、恢复与删除

    kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。

    要使用镜像功能,磁盘格式必须为qcow2。下面开始kvm虚拟机快照备份的过程,这里以虚拟机centos7.4 为例。

    默认主机是没有快照的!!!删除快照的第一个版本,不会删除该版本后的快照版本!!

       4.1、关闭虚拟机

    [root@kvm src]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     4     centos7.4                      暂停
    
    [root@kvm src]# virsh shutdown centos7.4
    错误:关闭域 centos7.4 失败
    错误:所需操作无效:域没有在运行
    
    [root@kvm src]# virsh destroy  centos7.4
    域 centos7.4 被删除
    
    [root@kvm src]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     -     centos7.4                      关闭

      4.2、查看磁盘格式

    如果是qcow2不需要转换磁盘格式,如果是raw必须转换格式

    [root@kvm src]# qemu-img info /kvm/image/centos7.4.img.qcow2 
    image: /kvm/image/centos7.4.img.qcow2
    file format: qcow2
    virtual size: 10G (10737418240 bytes)
    disk size: 1.2G
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: true
    [root@kvm src]# 

    下边这个就需要转换磁盘格式

    1 [root@kvm image ]#qemu-img info /kvm/image/snale.img 
    2 image: /kvm/image/snale.img
    3 file format: raw
    4 virtual size: 18G (19327352832 bytes)
    5 disk size: 1.5G

      4.3、raw格式转换qcow2(如果格式本来就是qcow2请跳过4.3~4步骤

    将raw 格式转换成支持 快照备份的 qcow2 格式(友情提示:确保你磁盘有足够的空间)
     1 [root@kvm image 13:44:19]# qemu-img convert -f raw -O qcow2 /kvm/image/snale.img /kvm3/snale.qcow2
     4 [root@kvm image 13:48:07]#ls /kvm3/
     5 snale.qcow2
     6 [root@kvm image 13:48:32]#qemu-img info /kvm3/snale.qcow2 
     7 image: /kvm3/snale.qcow2
     8 file format: qcow2
     9 virtual size: 18G (19327352832 bytes)
    10 disk size: 1.2G
    11 cluster_size: 65536

      4.4、修改虚拟机snale 的主配置文件

    [root@kvm ~ 13:50:51]#virsh edit snale
    
    找到disk 标签,指定新的类型及磁盘文件。将原来的type = 'raw' 修改成 type = 'qcow2'
    <driver name='qemu' type='qcow2' cache='none'/>
    
    将原来的 source file='/data/kvm/image/snale.img' 修改成 source file='/kvm3/snale.qcow2' 
    <source file='/kvm3/snale.qcow2'/>

      

     4.5、开始创建快照

    #创建两个快照
    [root@kvm src]# virsh snapshot-create centos7.4
    已生成域快照 1541475995
    [root@kvm src]# virsh snapshot-create centos7.4
    已生成域快照 1541476103
    
    #查看已有的快照
    [root@kvm src]# virsh snapshot-list centos7.4
     名称               生成时间              状态
    ------------------------------------------------------------
     1541475995           2018-11-06 11:46:35 +0800 shutoff
     1541476103           2018-11-06 11:48:23 +0800 shutoff
    
    #快照所在位置
    [root@kvm src]# ls /var/lib/libvirt/qemu/snapshot/centos7.4/
    1541475995.xml  1541476103.xml

       

     4.6、恢复指定快照

    #查看当前所使用的版本
    [root@kvm src]# virsh snapshot-current centos7.4|grep creationTime
      <creationTime>1541476103</creationTime>
    
    
    #恢复指定版本
    [root@kvm src]# virsh snapshot-current centos7.4 1541475995
    已将快照 1541475995 设定为 current
    
    #是否恢复指定版本
    [root@kvm src]# virsh snapshot-current centos7.4|grep creationTime
      <creationTime>1541475995</creationTime>
    
    注释:从结果来看,当前虚拟机默认会使用最新的一次快照版本

     4.7、删除虚拟机快照

    [root@kvm ~]# qemu-img info /kvm/image/centos7.4.img.qcow2 
    image: /kvm/image/centos7.4.img.qcow2
    file format: qcow2
    virtual size: 10G (10737418240 bytes)
    disk size: 1.2G
    cluster_size: 65536
    Snapshot list:
    ID        TAG                 VM SIZE                DATE       VM CLOCK
    1         1541475995                0 2018-11-06 11:46:35   00:00:00.000
    2         1541476103                0 2018-11-06 11:48:23   00:00:00.000
    Format specific information:
        compat: 1.1
        lazy refcounts: true

    [root@kvm ~]# virsh snapshot-list centos7.4 名称 生成时间 状态 ------------------------------------------------------------ 1541475995 2018-11-06 11:46:35 +0800 shutoff 1541476103 2018-11-06 11:48:23 +0800 shutoff
    [root@kvm
    ~]# virsh snapshot-delete centos7.4 1541475995 已删除域快照 1541475995

    5、磁盘扩容与磁盘添加

    说明:网上有在线添加磁盘的方法,跟下边的添加磁盘的方法一样,但在不重启且不修改配置文件的状态下 挂载到centos7.4虚机内的磁盘空间为0MB;

     5.1、磁盘扩容(未操作,未完成,不建议)

      5.1.1、查看现有状态

    #查看磁盘信息
    [root@kvm ~]# qemu-img info /kvm/image/centos7.4.img.qcow2 
    image: /kvm/image/centos7.4.img.qcow2
    file format: qcow2
    virtual size: 10G (10737418240 bytes)
    disk size: 1.3G
    cluster_size: 65536
    Snapshot list:
    ID        TAG                 VM SIZE                DATE       VM CLOCK
    2         1541476103                0 2018-11-06 11:48:23   00:00:00.000
    Format specific information:
        compat: 1.1
        lazy refcounts: true
    
    [root@kvm ~]# virsh snapshot-delete centos7.4 1541476103
    已删除域快照 1541476103
    注释:如果不删除快照就会报错:
    [root@kvm ~]# qemu-img resize /kvm/image/centos7.4.img.qcow2 +5G
    qemu-img: Can't resize an image which has snapshots
    qemu-img: This image does not support resize 


    #关闭虚拟机
    [root@kvm ~]# virsh list --all
     Id 名称 状态
    ----------------------------------------------------
    - centos7.4 关闭

    [root@kvm ~]# qemu-img resize /kvm/image/centos7.4.img.qcow2 +5G
    qemu-img: Could not open '/kvm/image/centos7.4.img.qcow2': qcow2: Image is corrupt; cannot be opened read/write

    [root@kvm ~]# qemu-img check -r all /kvm/image/centos7.4.img.qcow2

    [root@kvm ~]# qemu-img resize /kvm/image/centos7.4.img.qcow2 +5G
    Image resized.


    [root@kvm ~]# virsh start centos7.4
    域 centos7.4 已开

      注释:未完待续!不要参考这个!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      5.2、创建磁盘

    #创建磁盘
    qemu-img create -f qcow2 /kvm/image/centos7.4-data1.img 5G
    
    #查看创建的磁盘信息
    qemu-img info /kvm/image/centos7.4-data1.img

      5.2.1、第一种添加方式

    [root@kvm ~]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     8     centos7.4                      running
    
    

      #挂载磁盘
      virsh attach-disk centos7.4 /kvm/image/centos7.4-data1.img vdb --cache none

      #查看现在已挂载的磁盘
      [root@kvm ~]# virsh domblklist centos7.4
      目标 源
      ------------------------------------------------
       vda /kvm/image/centos7.4.img.qcow2
       vdc /kvm/image/centos7.4-data1.img
       hda -




    ##重启虚拟机centos7.4后

       5.3、卸载磁盘

    #卸载一个磁盘
    virsh detach-disk centos7.4 /kvm/images/centos7.4-data1.img

    注释:运行这个命令后,配置文件内容没有改变;需要使用edit 删除关于disk的信息后重启系统即可

     

    6、添加网卡

    #查看centos7.4主机网卡信息
    [root@kvm image]# virsh domiflist centos7.4
    接口     类型     源        型号      MAC
    -------------------------------------------------------
    vnet0      bridge     br0        virtio      52:54:00:f6:f3:25
    
    
    #添加网卡
    #临时添加网卡,立即生效(虚机关机后再开机失效,重启不失效)(在线可以先临时添加然后再写入配置文件内)
    #virsh attach-interface snale --type bridge --source br0 
    成功附加接口
    
    永久添加网卡命令(虚机关机后再开机生效,重启不生效)
    #virsh attach-interface snale --type bridge --source br0  --config
    
    [root@kvm ~]# virsh domiflist centos7.4
    接口     类型     源        型号      MAC
    -------------------------------------------------------
    -          bridge     br0        virtio      52:54:00:f6:f3:25
    -          bridge     br0        rtl8139     52:54:00:b6:f0:e1

     关闭或打开某个网口

    virsh domif-setlink domain vnet0 down
    virsh domif-setlink domain vnet0 up

    命令行增加的网卡只保存在内存中,重启就失效,所以需要保存到配置文件中(不是必须的,未操作)

    #virsh dumpxml centos7.4 >/etc/libvirt/qemu/centos7.4.xml 
    #virsh define /etc/libvirt/qemu/centos7.4.xml 

     删除网卡命令

    #virsh detach-interface centos7.4  --type bridge --mac  52:54:00:14:86:cf
    成功分离接口
    
    #但配置文件内还有关于网卡的配置,需要编辑删除后重启系统
    virsh edit centos7.4

    7、迁移

      7.1、静态迁移

    该方式要确保虚拟机是关机状态。
    virsh shutdown snale
    virsh dumpxml snale > /etc/libvirt/qemu/snale_qy.xml  // 如果是远程机器,需要把该配置文件拷贝到远程机器上
    
    virsh domblklist snale  //查看snale子机的磁盘所在目录
    Target Source
    ------------------------------------------------
    vda /kvm1/snale.qcow2
    
    rsync -av /kvm1/snale.qcow2 /kvm/snale_qy.qcow2   //如果是迁移到远程,则需要把该磁盘文件拷贝到远程机器上,本机模拟scp解决;
    
    vi /etc/libvirt/qemu/snale_qy.xm  //因为是迁移到本机,配置文件用的是snale子机的配置,不改会有冲突,所以需要修改该文件,如果是远程机器不用修改
    修改domname:
      <name>snale_qy</name>
    修改uuid(随便更改一下数字,位数不要变)
    <uuid>77bb10bd-3ad8-8899-958d-756063002969</uuid>
    修改磁盘路径:
        <disk type='file' device='disk'>
          <driver name='qemu' type='raw' cache='none'/>
          <source file='/kvm/snale_qy.qcow2'/>
          <target dev='vda' bus='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
        </disk>
    #修改vnc port 端口号,全局唯一
    
    #定义注册虚拟机
    virsh define /etc/libvirt/qemu/snale_qy.xml
    
    
    virsh list --all   //会发现新迁移的snale_qy子机    

    注释:远端服务的网络配置、配置文件存储位置、数据存储位置要一致。环境统一,方便管理

      7.2、动态迁移(未测试)

         相比KVM虚拟机静态迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机动态迁移无需拷贝虚拟磁盘文件,但是需要迁移到的虚拟主机之间需要有相同的目录结构虚拟机磁盘文件,本文这部分内容通过nfs来实现,当然也可以采用GFS2集群文件系统来实现,本文的动态迁移是基于共享存储动态迁移。KVM动态迁移目前有两种,一种是基于共享存储的动态迁移,一种是基于基于数据块的动态迁移,需要qemu-kvm-0.12.2以上版本支持,OEL6.3版本是qemu-kvm-0.12.1.2,其它发行版可能有支持。

    链接:https://blog.csdn.net/taiyang1987912/article/details/47973479

    6、kvm优化

     6.1、在宿主机指定为一台kvm指定使用哪个cpu(不重要)

      对于宿主机的多核心,kvm会调用多个cpu来执行进程;为了提高cpu cacahe命中率,指定某一个cpu要执行某一个kvm

           

      6.2、I/O调度算法(不重要)

    [root@kvm01 ~]# cat /sys/block/sda/queue/scheduler 
    noop [deadline] cfq
    注释:如果使用的是SSD硬盘,建议设置成noop;其他默认即可!

    #临时修改
    [root@kvm01 ~]# echo noop > /sys/block/sda/queue/scheduler
    注释:永久性的自行百度

      6.3、为没有vnc访问的虚拟添加VNC访问

    #网络安装的snale2没有添加VNC访问方式,配置如下
    [root@kvm ~ 13:59:29]#virsh edit kvm1
    
    #插入如下配置:
    <graphics type='vnc' port='5910' autoport='no' listen='0.0.0.0'>
    <listen type='address' address='0.0.0.0'/>
    </graphics>
    
    #重启虚机
    virsh reboot kvm1
    
    #查看TCP端口
    netstat -lntp|grep 5911
    tcp   0    0 0.0.0.0:5911    0.0.0.0:*    LISTEN     65031/qemu-kvm  

     7、kvm限速

    1、查看virsh domiftune VPS名称 vnet
    average参数  125对应1M
    
    2、设置带宽
    virsh domiftune <vm名称> <网卡MAC地址> --live --config --inbound -1,<峰值KByte/s>,<突发值KByte/s>
    virsh domiftune <vm名称> <网卡MAC地址> --live --config --outbound -1,<峰值KByte/s>,<突发值KByte/s>
    如:virsh domiftune K4dkeb3qfElN 55:55:55:aa:bb:2a  --inbound 3000  --config  --live 

     

  • 相关阅读:
    【006期】JavaSE面试题(六):泛型
    【005期】JavaSE面试题(五):String类
    【004期】JavaSE面试题(四):JavaSE语法(3)
    【003期】JavaSE面试题(三):JavaSE语法(1)
    【002期】JavaSE面试题(二):基本数据类型与访问修饰符
    【001期】 | JavaSE面试题(一):面向对象
    【000期】Java最全面试题库思维导图
    LeetCode 1. 两数之和(python3)实现
    虚拟网络学习笔记一:Linux虚拟网络
    快速排序(python实现)
  • 原文地址:https://www.cnblogs.com/huangyanqi/p/8591586.html
Copyright © 2020-2023  润新知