KVM 克隆虚拟机

KVM克隆虚拟机

virt-clone 作用简介

virt-clone 主要是用来克隆kvm虚拟机,并且通过 Options、General Option、Storage Configuration、Networking Configuration 等不同选项对新的虚拟机进行一些特殊的定义。

1 查看kvm虚拟机

[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 14    CentOS6u5_1                    running
 24    CentOS6u5                      running

2 关闭选择的虚拟机

[root@kvm ~]# virsh shutdown CentOS6u5
Domain CentOS6u5 is being shutdown

[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 14    CentOS6u5_1                    running
 -     CentOS6u5                      shut off

这边如果不关闭 kvm 虚拟机则直接克隆会报错,例如:ERROR Domain with devices to clone must be paused or shutoff.

3 克隆虚拟机

[root@kvm ~]# virt-clone --connect=qemu:///system -o CentOS6u5 -n CentOS6.5_clone -f /opt/qemu-img/CentOS6u5_clone.img
Allocating 'CentOS6u5_clone.img'                                               |  10 GB  00:00:49     

Clone 'CentOS6.5_clone' created successfully.

4 查看所有虚拟机列表

[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 14    CentOS6u5_1                    running
 -     CentOS6.5_clone                shut off
 -     CentOS6u5                      shut off

5 启动新克隆的kvm 虚拟机centos6.5_clone

[root@kvm qemu]# virsh start CentOS6.5_clone

注:virsh edit CentOS6.5_clone 更改域名路径

注:克隆完成之后可能mac地址会有冲突,删除 /etc/udev/rules.d/70-persistent-net.rules 中的eth0的配置,接着把eth1改成eth0,并且修改 ifcfg-eth0 的mac,确认两个配置文件中的mac地址是一样的。

6 kvm虚拟机克隆完成

[root@kvm qemu]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 14    CentOS6u5_1                    running
 28    CentOS6.5_clone                running
 -     CentOS6u5                      shut off

7.virt-clone的一些参数

Options(一些基本的选项):
--version:查看版本
-h,--help:查看帮助信息
--connect=URI:连接到虚拟机管理程序 libvirt 的URI

General Option(一般选项):
-o ORIGINAL_GUEST, --original=ORIGINAL_GUEST:原来的虚拟机名称
-n NEW_NAME, --name=NEW_NAME:新的虚拟机名称
--auto-clone:从原来的虚拟机配置自动生成克隆名称和存储路径。
-u NEW_UUID, --uuid=NEW_UUID:克隆虚拟机的新的UUID,默认值是一个随机生成的UUID

Storage Configuration(存储配置):
-f NEW_DISKFILE, --file=NEW_DISKFILE:指定新的虚拟机磁盘文件
--force-copy=TARGET:强制复制设备
--nonsparse:不使用稀疏文件复制磁盘映像

Networking Configuration:(网络配置)
-m NEW_MAC, --mac=NEW_MAC:设置一个新的mac地址,默认是一个随机的mac