Centos7 Kvm的vm 克隆
1、vm克隆方式
#1、virt-clone命令直接克隆
#2、拷贝xml与disk文件克隆(异机迁移)
2、virt-clone克隆vm(vm必须处于关闭状态)
#running状态克隆直接报错
#指定目标disk名称即可,克隆过程中会自动创建,与workstation一样
[root@node71 vm]# ll oel3/
总用量 0
[root@node71 vm]# virt-clone -o oel1 -n oel3 -f /data/vm/oel3/oel3_raw.img --check all=off
WARNING 将图形设备端口设定为 autoport 以避免冲突。
正在分配 'oel3_raw.img' | 20 GB 00:00:56 ==================================================] 127 B/s | 20 GB --:--:-- ETA
成功克隆 'oel3'。
[root@node71 vm]#
[root@node71 vm]# virsh list --all
Id 名称 状态
----------------------------------------------------
- oel1 关闭
- oel2 关闭
- oel3 关闭
- win7 关闭
[root@node71 vm]# virsh start oel3
域 oel3 已开始
[root@node71 vm]#
#but这样是不建议的,vnc端口设置-1,随机,mac地址,UUID也都是随机
#所以在开机之前先根据编写好的mac地址与vnc端口进行编辑xml配置文件
<graphics type='vnc' port='5913' autoport='no' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
#oel6的vm在克隆后,会出现网卡冲突,需要修改此配置文件
vi /etc/udev/rules.d/70-persistent-net.rules
3、拷贝方式静态迁移
#cp的方式需要修改xml文件好几个地方,如果是其它机器,按需调整
[root@node71 vm]# cp oel1/oel1_raw.img oel4/oel4_raw.img
[root@node71 vm]# cd /etc/libvirt/qemu/
[root@node71 qemu]# ls
autostart networks oel1.xml oel2.xml oel3.xml win7.xml
[root@node71 qemu]# cp oel1.xml oel4.xml
#修改配置
<name>oel4</name>
<uuid>cce3195a-4fd6-4fcd-8f4b-5757021e2330</uuid>
...
<source file='/data/vm/oel4/oel4_raw.img'/>
...
<mac address='52:54:00:37:5f:a6'/>
...
<graphics type='vnc' port='5914' autoport='no' listen='0.0.0.0'>
...
#启动克隆虚拟机
[root@node71 qemu]# virsh define oel4.xml
定义域 oel4(从 oel4.xml)
[root@node71 qemu]# virsh start oel4
域 oel4 已开始
[root@node71 qemu]# virsh console oel4
连接到域 oel4
换码符为 ^]
[ OK ]
Setting hostname localhost.localdomain: [ OK ]
Setting up Logical Volume Management: 2 logical volume(s) in volume group "VolGroup" now active
[ OK ]
Checking filesystems
Checking all file systems.
[/sbin/fsck.ext4 (1) -- /] fsck.ext4 -a /dev/mapper/VolGroup-lv_root
/dev/mapper/VolGroup-lv_root: clean, 22727/1215840 files, 504433/4859904 blocks
[/sbin/fsck.ext4 (1) -- /boot] fsck.ext4 -a /dev/vda1
/dev/vda1: clean, 44/128016 files, 81219/512000 blocks
[ OK ]
Remounting root filesystem in read-write mode: [ OK ]
Mounting local filesystems: [ OK ]
Enabling /etc/fstab swaps: [ OK ]
Entering non-interactive startup
Starting monitoring for VG VolGroup: 2 logical volume(s) in volume group "VolGroup" monitored
[ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.
[FAILED]
Starting auditd: [ OK ]
Starting system logger: [ OK ]
Starting kdump:[FAILED]
Mounting filesystems: [ OK ]
Starting acpi daemon: [ OK ]
Retrigger failed udev events[ OK ]
Adding udev persistent rules[ OK ]
Starting sshd: [ OK ]
Starting postfix: [ OK ]
Starting crond: [ OK ]
Oracle Linux Server release 6.6
Kernel 3.8.13-44.1.1.el6uek.x86_64 on an x86_64
localhost.localdomain login:
virt-clone 使用帮助
[root@node71 ~]# virt-clone -h
usage: virt-clone --original [NAME] ...
复制虚拟机,更改全部主机端的特定配置,比如 MAC 地址、名称等等。
未更改 VM 内容:virt-clone 不会更改虚拟机 OS 中的任何内容,它只是复制磁盘,而不会对主机端进行任何改动。因此,更改密码、更改静态 IP 地址等操作则不在此工具范围内。有关此类更改,请查看 virt-sysprep(1)。
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--connect URI 使用 libvirt URI 连接到 hypervisor
通用选项:
-o ORIGINAL_GUEST, --original ORIGINAL_GUEST
原始虚拟机的名称;必须为关闭或者暂停
状态。
--original-xml ORIGINAL_XML
将 XML 文件作为原始虚拟机使用。
--auto-clone 从原始虚拟机配置中自动生成克隆名称和
存储路径。
-n NEW_NAME, --name NEW_NAME
新客户端的名称
--reflink 使用 btrfs COW 轻型复制
存储配置:
-f NEW_DISKFILE, --file NEW_DISKFILE
作为新客户端磁盘映像的新文件
--force-copy TARGET 强制复制设备(例如:如果 'hdc'
是随机光驱设备,则使用 --force-copy=hdc)
--nonsparse 不要用稀疏文件作为克隆的磁盘映像
--preserve-data 不要克隆存储,使用 --file
指定的新磁盘映像会保持不变。
联网配置:
-m NEW_MAC, --mac NEW_MAC
克隆客户端的新固定 MAC
地址。默认为随机生成 MAC。
其它选项:
--replace 不要检查名称冲突,请使用同一名称替换
所有虚拟机。
--print-xml 输出所生成域 XML,而不是创建虚拟机。
--check CHECK 启用或禁用验证检查。例如:
--check path_in_use=off
--check all=off
-q, --quiet 禁止无错误输出
-d, --debug 输入故障排除信息
有关示例及完整选项语法,请查看 man page。
[root@node71 ~]#