天天看点

kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移

(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>&lt;domain </code><code>type</code><code>=</code><code>'kvm'</code><code>&gt;</code>

<code>  </code><code>&lt;name&gt;CentOS6.5-01&lt;</code><code>/name</code><code>&gt;</code>

<code>  </code><code>&lt;uuid&gt;7d48f7b5-2fbf-91a9-2c3f-e52ba6079c8e&lt;</code><code>/uuid</code><code>&gt;</code>

<code>  </code><code>&lt;memory unit=</code><code>'KiB'</code><code>&gt;1048576&lt;</code><code>/memory</code><code>&gt;</code>

<code>  </code><code>&lt;currentMemory unit=</code><code>'KiB'</code><code>&gt;1048576&lt;</code><code>/currentMemory</code><code>&gt;</code>

<code>  </code><code>&lt;vcpu placement=</code><code>'static'</code><code>&gt;1&lt;</code><code>/vcpu</code><code>&gt;</code>

<code>  </code><code>&lt;os&gt;</code>

<code>    </code><code>&lt;</code><code>type</code> <code>arch=</code><code>'x86_64'</code> <code>machine=</code><code>'rhel6.6.0'</code><code>&gt;hvm&lt;</code><code>/type</code><code>&gt;</code>

<code>    </code><code>&lt;boot dev=</code><code>'hd'</code><code>/&gt;</code>

<code>  </code><code>&lt;</code><code>/os</code><code>&gt;</code>

<code>  </code><code>&lt;features&gt;</code>

<code>    </code><code>&lt;acpi/&gt;</code>

<code>    </code><code>&lt;apic/&gt;</code>

<code>    </code><code>&lt;pae/&gt;</code>

<code>  </code><code>&lt;</code><code>/features</code><code>&gt;</code>

<code>  </code><code>&lt;clock offset=</code><code>'localtime'</code><code>/&gt;</code>

<code>  </code><code>&lt;on_poweroff&gt;destroy&lt;</code><code>/on_poweroff</code><code>&gt;</code>

<code>  </code><code>&lt;on_reboot&gt;restart&lt;</code><code>/on_reboot</code><code>&gt;</code>

<code>  </code><code>&lt;on_crash&gt;restart&lt;</code><code>/on_crash</code><code>&gt;</code>

<code>  </code><code>&lt;devices&gt;</code>

<code>    </code><code>&lt;emulator&gt;</code><code>/usr/libexec/qemu-kvm</code><code>&lt;</code><code>/emulator</code><code>&gt;</code>

<code>    </code><code>&lt;disk </code><code>type</code><code>=</code><code>'file'</code> <code>device=</code><code>'disk'</code><code>&gt;</code>

<code>      </code><code>&lt;driver name=</code><code>'qemu'</code> <code>type</code><code>=</code><code>'qcow2'</code> <code>cache=</code><code>'none'</code><code>/&gt;</code>

<code>      </code><code>&lt;</code><code>source</code> <code>file</code><code>=</code><code>'/data/kvm/CentOS6.5-01.qcow2'</code><code>/&gt;</code>

<code>      </code><code>&lt;target dev=</code><code>'vda'</code> <code>bus=</code><code>'virtio'</code><code>/&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;</code><code>/disk</code><code>&gt;</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,如需转载请自行联系原作者

继续阅读