kvm-虚拟机克隆
1、基础知识
1.1、需求
在某些特殊场景下,我们需要批量安装多台虚拟机,目前我们学习的虚拟机安装的方式是逐一的,效率太低了,有什么方法能解决这个痛点呢? -- 虚拟机克隆
1.2、实现方式
kvm虚拟机的克隆分为两种情况。 (1) KVM主机本机虚拟机直接克隆。 (2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。
1.3、准备环境
1.3.1、网络模型恢复
# 之前被我们修改为桥接,现在把它修改回来nat模型 # virsh edit CentOS-8-x86_64 <interface type='network'> <mac address='52:54:00:f4:2d:fc'/> <source network='default'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </interface>
1.4、克隆命令解析
virt-clone -o <被克隆的虚拟机名称> -n <生成的虚拟机名称> -f <新的磁盘文件>
virt-clone -o <被克隆的虚拟机名称> --auto-clone
2、实践
2.1、关闭虚拟机
virsh shutdown CentOS-8-x86_64
2.2、克隆镜像
virt-clone --check disk_size=off -o CentOS-8-x86_64 -n CentOS-8-clone -f /opt/CentOS-8-clone.qcow2
2.3、查看虚拟机相关文件
2.3.1、查看虚拟机状态表
# virsh list --all Id Name State ---------------------------------- - CentOS-8-clone shut off - CentOS-8-x86_64 shut off
2.3.2、查看配置文件
# ll /etc/libvirt/qemu/ -rw------- 1 root root 7290 May 22 12:11 CentOS-8-clone.xml -rw------- 1 root root 7293 May 22 12:06 CentOS-8-x86_64.xml ...
2.3.3、对比配置文件差异
# diff /etc/libvirt/qemu/CentOS-8-clone.xml /etc/libvirt/qemu/CentOS-8-x86_64.xml 4c4 < virsh edit CentOS-8-clone --- > virsh edit CentOS-8-x86_64 9,10c9,10 < <name>CentOS-8-clone</name> < <uuid>35cc7430-d4cd-4b02-a54f-c3c9f1a69157</uuid> --- > <name>CentOS-8-x86_64</name> > <uuid>373fc909-9a6d-482b-9740-0b1363ec5aca</uuid> 47c47 < <source file='/opt/CentOS-8-clone.qcow2'/> --- > <source file='/opt/CentOS-8-x86_64.qcow2'/> 139c139 < <mac address='52:54:00:ae:96:a5'/> --- > <mac address='52:54:00:f4:2d:fc'/> # 名字、uuid、mac、磁盘有差异
2.3.4、启动虚拟机
virsh start CentOS-8-clone
virsh start CentOS-8-x86_64
2.3.5、查看效果
# 确认vnc端口 # virsh domdisplay CentOS-8-x86_64 vnc://localhost:1 # 5901 # virsh domdisplay CentOS-8-clone vnc://localhost:0 # 5900