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

 

posted @ 2023-05-22 12:19  小粉优化大师  阅读(650)  评论(0编辑  收藏  举报