KVM之虚拟机克隆

柳三千

温馨提示:这篇文章已超过665天没有更新,请注意相关的内容是否还可用!

前言:

 KVM虚拟机只要有磁盘文件和配置文件就能构成一个新的虚拟机,配置文件里面的主机名、uuid、mac地址、磁盘文件路径不能与其他虚拟机一样,产生冲突!


完整克隆

自动克隆

virt-clone --auto-clone -o 老虚拟机 -n 新的虚拟机

[root@KVM ~]# virsh list
 Id    名称                         状态
----------------------------------------------------
 1     web_mysql                      running

[root@KVM ~]# virt-clone --auto-clone -o web_mysql -n backup
ERROR    必须暂停或者关闭有要克隆设备的域。
[root@KVM ~]# virsh shutdown web_mysql 
域 web_mysql 被关闭

[root@KVM ~]# virt-clone --auto-clone -o web_mysql -n backup

[root@KVM ~]# virsh list
 Id    名称                         状态
----------------------------------------------------
 2     backup                         running
 3     web_mysql                      running

  

手动克隆

#手动复制磁盘文件
[root@KVM ~]# cd /data
[root@KVM data]# ls
Centos7-clone.qcow2  Centos7.qcow2

[root@KVM data]# cp -a Centos7.qcow2 Centos7-test.qcow2 
[root@KVM data]# ll -h
总用量 5.9G
-rw-------. 1 qemu qemu 1.6G 11月 23 17:27 Centos7-clone.qcow2
-rw-r--r--. 1 qemu qemu 2.1G 11月 23 17:29 Centos7.qcow2
-rw-r--r--. 1 qemu qemu 2.1G 11月 23 17:29 Centos7-test.qcow2


#导出配置文件并修改
[root@KVM data]# virsh dumpxml web_mysql > test.xml
[root@KVM data]# vim test.xml 

#修改虚拟机名字
[root@KVM data]# cat test.xml | grep -i name
  <name>test</name>

#删除虚拟机的uuid
#删除MAC地址
#修改磁盘路径
[root@KVM data]# cat test.xml | grep -i source
  <resource>
  </resource>
      <source file='/data/Centos7-test.qcow2'/>

#加载配置文件
[root@KVM data]# virsh define test.xml 
定义域 test(从 test.xml)

[root@KVM data]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 2     backup                         running
 3     web_mysql                      running
 -     centos7.2                      关闭
 -     test                           关闭

[root@KVM data]# virsh start test 
域 test 已开始

[root@KVM data]# virsh list
 Id    名称                         状态
----------------------------------------------------
 2     backup                         running
 3     web_mysql                      running
 4     test                           running

[root@KVM data]# virsh dumpxml test 
<domain type='kvm' id='4'>
  <name>test</name>
  <uuid>3e93cddc-c080-4094-b838-de093d989bb7</uuid>


链接克隆

生成磁盘文件链接

qemu-img create -f 指定硬盘格式 -b 旧的磁盘路径 新磁盘路径

[root@KVM data]# ls
Centos7-clone.qcow2  Centos7.qcow2  Centos7-test.qcow2  test.xml
[root@KVM data]# qemu-img create -f qcow2 -b Centos7.qcow2 web.qcow2
Formatting 'web.qcow2', fmt=qcow2 size=10737418240 backing_file='Centos7.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 
[root@KVM data]# ll -h
总用量 5.7G
-rw-------. 1 qemu qemu 1.6G 11月 23 17:38 Centos7-clone.qcow2
-rw-r--r--. 1 qemu qemu 2.1G 11月 23 17:41 Centos7.qcow2
-rw-r--r--. 1 qemu qemu 2.1G 11月 23 17:43 Centos7-test.qcow2
-rw-r--r--. 1 root root 5.3K 11月 23 17:33 test.xml
-rw-r--r--. 1 root root 193K 11月 23 17:44 web.qcow2
[root@KVM data]# qemu-img info web.qcow2 
image: web.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
backing file: Centos7.qcow2
Format specific information:
    compat: 1.1
    lazy refcounts: false


导出配置文件并修改

[root@KVM data]# virsh list
 Id    名称                         状态
----------------------------------------------------
 2     backup                         running
 3     web_mysql                      running
 4     test                           running

[root@KVM data]# virsh dumpxml web_mysql > web.xml
[root@KVM data]# vim web.xml
#修改虚拟机名字
#删除虚拟机的uuid
#删除MAC地址
#修改磁盘路径
 
[root@KVM data]# virsh define web.xml 
定义域 web(从 web.xml)

[root@KVM data]# virsh start web 
域 web 已开始

[root@KVM data]# virsh list
 Id    名称                         状态
----------------------------------------------------
 2     backup                         running
 3     web_mysql                      running
 4     test                           running
 5     web                            running
文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码