KVM之七:KVM克隆
Posted snale learning linux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM之七:KVM克隆相关的知识,希望对你有一定的参考价值。
1、在克隆虚拟机之前,必须先暂停或者停掉kvm 虚拟机。以虚拟机 snale 为例,先暂停虚拟机,如下
1 [root@kvm ~ 17:09:40]#virsh list
2 Id 名称 状态
3 ----------------------------------------------------
4 1 snale running
5
6 [root@kvm ~ 17:10:34]#virsh suspend snale
7 域 snale 被挂起
8
9 [root@kvm ~ 17:10:55]#virsh list
10 Id 名称 状态
11 ----------------------------------------------------
12 1 snale 暂停
第一种方法:针对虚拟机本身直接克隆:
1、执行命令virt-clone
1 [root@kvm ~ 17:27:40]#virt-clone -o snale -n snale_clone -f /kvm3/snale_clone.img
2 正在克隆 snale.img | 18 GB 02:30
3
4 Clone \'snale_clone\' created successfully.
参数说明:
-o :指定源虚拟机
-n :命名新克隆的虚拟机
-f :指定新克隆虚拟机的位置
克隆完成后,在生成硬盘映像文件的同时,也会克隆虚拟机的配置文件:
1 [root@kvm ~ 17:36:13]#ls /kvm3
2 snale_clone.img
3 [root@kvm ~ 17:36:16]#ls /etc/libvirt/qemu
4 autostart networks snale2.xml snale_clone.xml snale.xml
查看各虚拟机的状态:
1 [root@kvm ~ 17:40:28]#virsh list --all
2 Id 名称 状态
3 ----------------------------------------------------
4 1 snale 暂停
5 - snale2 关闭
6 - snale_clone 关闭
2、启动新克隆的虚拟机,配置计算机名及IP地址:
[root@kvm ~ 17:41:50]#virsh start snale_clone
错误:开始域 snale_clone 失败
错误:internal error process exited while connecting to monitor: char device redirected to /dev/pts/2
2016-09-29T09:42:06.983409Z qemu-kvm: Failed to start VNC server on `0.0.0.0:1\': socket bind failed: Address already in use
此时是无法启动的,要先修改它的配置文件,更改VNC端口,将port从5901改成5903
1 [root@kvm qemu 17:56:28]#virsh edit snale_clone
2 编辑了域 snale_clone XML 配置。
3
4 [root@kvm qemu 17:57:11]#
5 [root@kvm qemu 17:57:11]#virsh start snale_clone
6 域 snale_clone 已开始
7
8 [root@kvm qemu 17:57:23]#virsh list
9 Id 名称 状态
10 ----------------------------------------------------
11 1 snale 暂停
12 4 snale_clone running
此时我们就可以登录虚拟机进行配置了!
由于虚拟机是centos 6 系列的。克隆进行网络配置,别忘记了修改 /etc/udev/rules.d/70-persistent-net.rules 文件。
第二种方法:复制kvm虚拟机配置文件及磁盘映象文件克隆
1 导出虚拟机 snale 的配置文件到 /etc/libvirt/qemu 目录下并重命名为 snale_cp.xml:
[root@kvm kvm3 18:51:11]#virsh dumpxml snale >/etc/libvirt/qemu/snale_cp.xml
[root@kvm kvm3 18:58:38]#ls /etc/libvirt/qemu
autostart networks snale2.xml snale_cp.xml snale.xml
2 复制kvm 虚拟磁盘文件到 /data/kvm/image 目录下并重命名为snale_cp.img:
[root@kvm ~ 10:16:41]#cp /kvm/image/snale.img /kvm3/snale_cp.img
[root@kvm ~ 10:19:26]#ls /kvm3
snale_cp.img
3使用vi 或vim 编辑新虚拟机的主配置文件 snale_cp.xml (注:由于此时的虚拟机还未注册,所以暂时不支持virsh edit 编译),修改name,uuid,disk位置,vnc端口:
[root@kvm qemu 10:34:27]#vim snale_cp.xml
修改name标签
<name>snale_cp</name>
uuid,随意改下数值
<uuid>192fdc94-c81b-fa35-9100-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=\'5904\' autoport=\'no\' listen=\'0.0.0.0\'>
:wq
4、注册新的虚拟机;
[root@kvm qemu 10:42:05]#virsh define /etc/libvirt/qemu/snale_cp.xml
定义域 snale_cp(从 /etc/libvirt/qemu/snale_cp.xml)
5、启动snale_cp:
[root@kvm qemu 10:45:36]#virsh start snale_cp
域 snale_cp 已开始
[root@kvm qemu 10:46:57]#netstat -lntp|grep 5904
tcp 0 0 0.0.0.0:5904 0.0.0.0:* LISTEN 5288/qemu-kvm
以上是关于KVM之七:KVM克隆的主要内容,如果未能解决你的问题,请参考以下文章