文章目录
- 4.7 kvm虚拟机克隆
 - 4.7.1 完整克隆
 - 4.7.2 链接克隆
 
- 4.8 kvm虚拟机的桥接网络
 - 4.8.1 创建桥接网卡
 - 4.8.2 新虚拟机使用桥接模式
 - 4.8.3 将已有虚拟机网络修改为桥接模式
 
- 4.9 热添加技术
 - 4.9.1 kvm热添加硬盘
 - 4.9.2 kvm虚拟机在线热添加网卡
 - 4.9.3 kvm虚拟机在线热添加内存
 - 4.9.4 kvm虚拟机在线热添加cpu
 - 4.10 kvm虚拟机热迁移(共享的网络文件系统)
 
- 5.1 用脚本自动化部署openstack M版
 
4.7 kvm虚拟机克隆
4.7.1 完整克隆
自动挡:
virt-clone --auto-clone -o web01 -n web02 (完整克隆)
 手动挡:
qemu-img convert -f qcow2 -O qcow2 -c web01.qcow2 web03.qcow2
 virsh dumpxml web01 >web02.xml
 vim web02.xml
 #修改虚拟机的名字
 #删除虚拟机uuid
 #删除mac地址mac add
 #修改磁盘路径disk
 virsh define web02.xml
 virsh start web02
4.7.2 链接克隆
a:生成虚拟机磁盘文件
 qemu-img create -f qcow2 -b web01.qcow2 web04.qcow2
b:生成虚拟机的配置文件
virsh dumpxml web01 >web03.xml
 vim web03.xml
 #修改虚拟机的名字
 web03
 #删除虚拟机uuid
 8e505e25-5175-46ab-a9f6-feaa096daaa4
 #删除mac地址
 
 #修改磁盘路径
virsh define web03.xml
 virsh start web03
全自动链接克隆脚本:
[root@kvm01 scripts]# cat link_clone.sh
 #!/bin/bash
 old_vm=$1
 new_vm=$2
 #a:生成虚拟机磁盘文件
 old_disk=virsh dumpxml $old_vm|grep "<source file"|awk -F"'" '{print $2}'
 disk_tmp=dirname $old_disk
 qemu-img create -f qcow2 -b $old_disk  
     
      
       
        
        
          d 
         
        
          i 
         
        
          s 
         
         
         
           k 
          
         
           t 
          
         
        
          m 
         
        
          p 
         
        
       
         / 
        
       
      
        {disk_tmp}/ 
       
      
    disktmp/{new_vm}.qcow2
 #b:生成虚拟机的配置文件
 virsh dumpxml  
     
      
       
       
         o 
        
       
         l 
        
        
        
          d 
         
        
          v 
         
        
       
         m 
        
       
         > 
        
       
         / 
        
       
         t 
        
       
         m 
        
       
         p 
        
       
         / 
        
       
      
        old_vm >/tmp/ 
       
      
    oldvm>/tmp/{new_vm}.xml
 #修改虚拟机的名字
 sed -ri "s#()(.*)()#\1KaTeX parse error: Undefined control sequence: \3 at position 9: {new_vm}\̲3̲#g" /tmp/{new_vm}.xml
 #删除虚拟机uuid
 sed -i ‘//d’ /tmp/KaTeX parse error: Expected 'EOF', got '#' at position 14: {new_vm}.xml #̲删除mac地址 sed -i …{new_vm}.xml
 #修改磁盘路径
 sed -ri “s#()#\1 
     
      
       
        
        
          d 
         
        
          i 
         
        
          s 
         
         
         
           k 
          
         
           t 
          
         
        
          m 
         
        
          p 
         
        
       
         / 
        
       
      
        {disk_tmp}/ 
       
      
    disktmp/{new_vm}.qcow2\3#g” /tmp/KaTeX parse error: Expected 'EOF', got '#' at position 14: {new_vm}.xml #̲c:导入虚拟机并进行启动测试 …{new_vm}.xml
 virsh start ${new_vm}
4.8 kvm虚拟机的桥接网络
默认的虚拟机网络是NAT模式,网段192.168.122.0/24
4.8.1 创建桥接网卡
创建桥接网卡命令
 virsh iface-bridge eth0 br0
取消桥接网卡命令
 virsh iface-unbridge br0
4.8.2 新虚拟机使用桥接模式
默认NAT模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
桥接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
问题1:
如果虚拟机获取不到ip地址:

4.8.3 将已有虚拟机网络修改为桥接模式
a:关机状态下修改虚拟机配置文件:
例如:virsh edit centos7
b:启动虚拟机,测试虚拟机网络如果上层没有开启dhcp,需要手动配置ip地址,IPADDR,NATMASK.GATEWAY,DNS1=180.76.76.76

4.9 热添加技术
热添加硬盘、网卡、内存、cpu
4.9.1 kvm热添加硬盘
临时立即生效
virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2
 永久生效(需要重启)
virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 --config
 临时剥离硬盘
virsh detach-disk web01 vdb
永久剥离硬盘
virsh detach-disk web01 vdb --config
 扩容:
 在虚拟机里把扩容盘的挂载目录,卸载掉
 在宿主机上剥离硬盘virsh detach-disk web01 vdb
 在宿主机上调整容量qemu-img resize
 在宿主机上再次附加硬盘virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2
 在虚拟机里再次挂载扩容盘
 在虚拟机里用xfs_growfs更新扩容盘超级块信息
4.9.2 kvm虚拟机在线热添加网卡
virsh attach-interface web04 --type bridge --source br0 --model virtio
virsh attach-interface web04 --type bridge --source br0 --model virtio --config
virsh detach-interface web04 --type bridge --mac 52:54:00:35:d3:71
4.9.3 kvm虚拟机在线热添加内存
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
临时热添加内存
 virsh setmem web04 1024M
 永久增大内存
 virsh setmem web04 1024M --config
调整虚拟机内存最大值
virsh setmaxmem web04 4G #默认永久
4.9.4 kvm虚拟机在线热添加cpu
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
 热添加cpu核数
 virsh setvcpus web04 4
 永久添加cpu核数
 virsh setvcpus web04 4 --config
调整虚拟机cpu的最大值
virsh setvcpus web01 --maximum 4 --config
4.10 kvm虚拟机热迁移(共享的网络文件系统)
冷迁移kvm虚拟机:配置文件,磁盘文件
热迁移kvm虚拟机:配置文件,nfs共享
kvm虚拟机热迁移
 1:两边的环境(桥接网卡)
主机名 ip 内存 网络 软件需求 虚拟化
 kvm01 10.0.0.11 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
 kvm02 10.0.0.12 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
 nfs01 10.0.0.31 1G 无 nfs 无
 2:实现共享存储(nfs)
yum install nfs-utils rpcbind -y
 
 vim /etc/exports
 /data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)
 
 systemctl start rpcbind nfs
 
 #kvm01和kvm02
 mount -t nfs 10.0.0.11:/data /data
 3:在线热迁移
#临时迁移
 virsh migrate --live --verbose web04 qemu+ssh://10.0.0.11/system --unsafe
 #永久迁移
 virsh migrate --live --verbose web03 qemu+ssh://10.0.0.11/system --unsafe --persistent --undefinesource
 5.kvm管理平台
 kvm宿主机 2000台
 查看每一个宿主机有多少台虚拟机?
 查看每一个宿主机还剩多少资源?
 查看每一台宿主机,每一个虚拟机的ip地址?
excel 资产管理 cmdb
kvm管理平台,数据库工具
信息:宿主机,总配置,剩余的总配置
 虚拟机的信息,配置信息,ip地址,操作系统
带计费功能的kvm管理平台,openstack ceilometer计费 ecs IAAS层
 自动化管理kvm宿主机,云主机定制化操作
5.1 用脚本自动化部署openstack M版
部署openstack 
 克隆一台openstack模板机:
all-in-one环境
4G内存,开启虚拟化,挂载centos7.6的光盘

虚拟机开机之后,修改ip地址为10.0.0.11
上传脚本openstack-mitaka-autoinstall.sh到/root目录
 上传镜像:cirros-0.3.4-x86_64-disk.img到/root目录
 上传配置文件:local_settings到/root目录
 上传openstack_rpm.tar.gz到/root下,
 tar xf openstack_rpm.tar.gz -C /opt/
 mount /dev/cdrom /mnt
sh /root/openstack-mitaka-autoinstall.sh
 大概10-30分钟左右
 访问http://10.0.0.11/dashboard
 域:default
 用户名:admin
 密码:ADMIN_PASS
注意: 在windows系统上修改host解析(10.0.0.11 controller)
添加node节点:
 修改ip地址10.0.0.12
 hostnamectl set-hostname compute1
 重新登录让新主机名生效
 上传openstack_rpm.tar.gz到/root下,
 tar xf openstack_rpm.tar.gz -C /opt/
 mount /dev/cdrom /mnt
上传脚本openstack_compute_install.sh
sh openstack_compute_install.sh
openstack controller主控制节点,node节点, kvm宿主机
 node节点, kvm宿主机
 node节点, kvm宿主机
 node节点, kvm宿主机


















