(1).查看源KVM虚拟主机上的虚拟机列表,本文计划将CentOS6.5-01虚拟机迁移到其它KVM虚拟主机中。
<code>[root@node1 ~]</code><code># virsh list --all</code>
<code> </code><code>Id Name State</code>
<code>----------------------------------------------------</code>
<code> </code><code>- CentOS6.5-01 shut off</code>
<code> </code><code>- Ser08R2-01 shut off</code>
<code>[root@node1 ~]</code><code>#</code>
(2).查看CentOS6.5-01虚拟机磁盘文件位置/data/kvm/CentOS6.5-01.qcow2。
<code>[root@node1 ~]</code><code># virsh dumpxml CentOS6.5-01</code>
<code><domain </code><code>type</code><code>=</code><code>'kvm'</code><code>></code>
<code> </code><code><name>CentOS6.5-01<</code><code>/name</code><code>></code>
<code> </code><code><uuid>7d48f7b5-2fbf-91a9-2c3f-e52ba6079c8e<</code><code>/uuid</code><code>></code>
<code> </code><code><memory unit=</code><code>'KiB'</code><code>>1048576<</code><code>/memory</code><code>></code>
<code> </code><code><currentMemory unit=</code><code>'KiB'</code><code>>1048576<</code><code>/currentMemory</code><code>></code>
<code> </code><code><vcpu placement=</code><code>'static'</code><code>>1<</code><code>/vcpu</code><code>></code>
<code> </code><code><os></code>
<code> </code><code><</code><code>type</code> <code>arch=</code><code>'x86_64'</code> <code>machine=</code><code>'rhel6.6.0'</code><code>>hvm<</code><code>/type</code><code>></code>
<code> </code><code><boot dev=</code><code>'hd'</code><code>/></code>
<code> </code><code><</code><code>/os</code><code>></code>
<code> </code><code><features></code>
<code> </code><code><acpi/></code>
<code> </code><code><apic/></code>
<code> </code><code><pae/></code>
<code> </code><code><</code><code>/features</code><code>></code>
<code> </code><code><clock offset=</code><code>'localtime'</code><code>/></code>
<code> </code><code><on_poweroff>destroy<</code><code>/on_poweroff</code><code>></code>
<code> </code><code><on_reboot>restart<</code><code>/on_reboot</code><code>></code>
<code> </code><code><on_crash>restart<</code><code>/on_crash</code><code>></code>
<code> </code><code><devices></code>
<code> </code><code><emulator></code><code>/usr/libexec/qemu-kvm</code><code><</code><code>/emulator</code><code>></code>
<code> </code><code><disk </code><code>type</code><code>=</code><code>'file'</code> <code>device=</code><code>'disk'</code><code>></code>
<code> </code><code><driver name=</code><code>'qemu'</code> <code>type</code><code>=</code><code>'qcow2'</code> <code>cache=</code><code>'none'</code><code>/></code>
<code> </code><code><</code><code>source</code> <code>file</code><code>=</code><code>'/data/kvm/CentOS6.5-01.qcow2'</code><code>/></code>
<code> </code><code><target dev=</code><code>'vda'</code> <code>bus=</code><code>'virtio'</code><code>/></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'pci'</code> <code>domain=</code><code>'0x0000'</code> <code>bus=</code><code>'0x00'</code> <code>slot=</code><code>'0x05'</code> <code>function</code><code>=</code><code>'0x0'</code><code>/></code>
<code> </code><code><</code><code>/disk</code><code>></code>
(3).源虚拟机KVM存储池配置简要过程
<code>[root@node1 ~]</code><code># mkdir -p /data/vmfs</code>
<code>[root@node1 ~]</code><code># virsh pool-define-as vmdisk --type dir --target /data/vmfs</code>
<code>Pool vmdisk defined</code>
<code>[root@node1 ~]</code><code># virsh pool-build vmdisk</code>
<code>Pool vmdisk built</code>
<code>[root@node1 ~]</code><code># virsh pool-autostart vmdisk</code>
<code>Pool vmdisk marked as autostarted</code>
<code>[root@node1 ~]</code><code># virsh pool-start vmdisk</code>
<code>Pool vmdisk started</code>
(4).将虚拟机磁盘文件移动到存储池中
<code>[root@node1 ~]</code><code># mv /data/kvm/CentOS6.5-01.qcow2 /data/kvm/CentOS6.5-01_add.qcow2 /data/vmfs/</code>
(1).查看源KVM虚拟主机上的虚拟机列表
<code>[root@node2 ~]</code><code># virsh list --all</code>
<code>[root@node2 ~]</code><code>#</code>
(2).目标虚拟机KVM存储池配置简要过程
<code>[root@node2 ~]</code><code># mkdir -p /data/vmfs</code>
<code>[root@node2 ~]</code><code># virsh pool-define-as vmdisk --type dir --target /data/vmfs</code>
<code>[root@node2 ~]</code><code># virsh pool-build vmdisk</code>
<code>[root@node2 ~]</code><code># virsh pool-autostart vmdisk</code>
<code>[root@node2 ~]</code><code># virsh pool-start vmdisk</code>
说明:计划将源kvm主机中的CentOS6.5-01虚拟机迁移到目标虚拟机中,原理是直接拷贝虚拟机磁盘文件与配置文件到目标虚拟主机上。关键点就是源与目标虚拟主机必须采用存储池配置虚拟机磁盘。
(1).开始迁移
<code>[root@node2 ~]</code><code># virt-v2v -ic qemu+ssh://10.10.172.191/system -op vmdisk -b br0 CentOS6.5-01</code>
(2)迁移完毕,查看虚拟机状态
<code> </code>
<code>[root@node2 ~]</code><code># cd /etc/libvirt/qemu</code>
<code>[root@node2 qemu]</code><code># ls</code>
<code>networks CentOS6.5-01</code>
<code>[root@node2 qemu]</code><code>#</code>
自动在存储池中拷贝了虚拟机磁盘文件。
[root@node2 qemu]# ll -h /data/vmfs
total 2.2G
-rw-r--r-- 1 root root 384K Nov 22 17:06 CentOS6.5-01_add.qcow2
-rw-r--r-- 1 root root 2.2G Nov 28 09:53 CentOS6.5-01.qcow2
[root@node2 qemu]#
测试虚拟机控制台。
<code>[root@node2 qemu]</code><code># virsh console CentOS6.5-01</code>
至此KVM到KVM之v2v迁移成功完成。v2v的迁移方式也是其它静态迁移方式的补充,也让kvm虚拟化适用范围扩大。
本文转自 dengaosky 51CTO博客,原文链接:http://blog.51cto.com/dengaosky/2044974,如需转载请自行联系原作者