KVM之七:KVM克隆

时间:2024-01-02 09:18:56

1、在克隆虚拟机之前,必须先暂停或者停掉kvm 虚拟机。以虚拟机 snale 为例,先暂停虚拟机,如下

 [root@kvm ~ ::]#virsh list
Id 名称 状态
----------------------------------------------------
snale running [root@kvm ~ ::]#virsh suspend snale
域 snale 被挂起 [root@kvm ~ ::]#virsh list
Id 名称 状态
----------------------------------------------------
snale 暂停

第一种方法:针对虚拟机本身直接克隆:

1、执行命令virt-clone

 [root@kvm ~ ::]#virt-clone -o snale -n snale_clone -f /kvm3/snale_clone.img
正在克隆 snale.img | GB : Clone 'snale_clone' created successfully.

参数说明:

-o   :指定源虚拟机
-n :命名新克隆的虚拟机
-f :指定新克隆虚拟机的位置

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

 [root@kvm ~ ::]#ls /kvm3
snale_clone.img
[root@kvm ~ ::]#ls /etc/libvirt/qemu
autostart networks snale2.xml snale_clone.xml snale.xml

查看各虚拟机的状态:

 [root@kvm ~ ::]#virsh list --all
Id 名称 状态
----------------------------------------------------
snale 暂停
- snale2 关闭
- snale_clone 关闭

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

[root@kvm ~ ::]#virsh start snale_clone
错误:开始域 snale_clone 失败
错误:internal error process exited while connecting to monitor: char device redirected to /dev/pts/
--29T09::.983409Z qemu-kvm: Failed to start VNC server on `0.0.0.0:': socket bind failed: Address already in use

此时是无法启动的,要先修改它的配置文件,更改VNC端口,将port从5901改成5903

 [root@kvm qemu ::]#virsh edit snale_clone
编辑了域 snale_clone XML 配置。 [root@kvm qemu ::]#
[root@kvm qemu ::]#virsh start snale_clone
域 snale_clone 已开始 [root@kvm qemu ::]#virsh list
Id 名称 状态
----------------------------------------------------
snale 暂停
snale_clone running

KVM之七:KVM克隆

KVM之七:KVM克隆

此时我们就可以登录虚拟机进行配置了!

由于虚拟机是centos 6 系列的。克隆进行网络配置,别忘记了修改 /etc/udev/rules.d/70-persistent-net.rules 文件。

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

1 导出虚拟机 snale 的配置文件到 /etc/libvirt/qemu 目录下并重命名为 snale_cp.xml:

[root@kvm kvm3 ::]#virsh dumpxml snale >/etc/libvirt/qemu/snale_cp.xml
[root@kvm kvm3 ::]#ls /etc/libvirt/qemu
autostart networks snale2.xml snale_cp.xml snale.xml

2 复制kvm 虚拟磁盘文件到 /data/kvm/image 目录下并重命名为snale_cp.img:

[root@kvm ~ ::]#cp /kvm/image/snale.img  /kvm3/snale_cp.img
[root@kvm ~ ::]#ls /kvm3
snale_cp.img

3使用vi 或vim 编辑新虚拟机的主配置文件 snale_cp.xml (注:由于此时的虚拟机还未注册,所以暂时不支持virsh edit 编译),修改name,uuid,disk位置,vnc端口:

[root@kvm qemu ::]#vim snale_cp.xml

修改name标签

<name>snale_cp</name>

uuid,随意改下数值

<uuid>192fdc94-c81b-fa35--0c073eee2c27</uuid>

disk标签

<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/kvm3/snale_cp.img'/>

vnc port 唯一值,不要重复

 <graphics type='vnc' port='' autoport='no' listen='0.0.0.0'>

:wq

4、注册新的虚拟机;

[root@kvm qemu ::]#virsh define /etc/libvirt/qemu/snale_cp.xml
定义域 snale_cp(从 /etc/libvirt/qemu/snale_cp.xml)

5、启动snale_cp:

[root@kvm qemu ::]#virsh start snale_cp
域 snale_cp 已开始
[root@kvm qemu ::]#netstat -lntp|grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /qemu-kvm

KVM之七:KVM克隆

KVM之七:KVM克隆