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

1.源KVM虚拟主机node1

(1).查看源KVM虚拟主机上的虚拟机列表,本文计划将CentOS6.5-01虚拟机迁移到其它KVM虚拟主机中。

1
2
3
4
5
6
7
[root@node1 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     CentOS6.5-01                   shut off
 -     Ser08R2-01                     shut off
 
[root@node1 ~]#

(2).查看CentOS6.5-01虚拟机磁盘文件位置/data/kvm/CentOS6.5-01.qcow2。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@node1 ~]# virsh dumpxml CentOS6.5-01
<domain type='kvm'>
  <name>CentOS6.5-01</name>
  <uuid>7d48f7b5-2fbf-91a9-2c3f-e52ba6079c8e</uuid>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64' machine='rhel6.6.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='localtime'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none'/>
      <source file='/data/kvm/CentOS6.5-01.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>

由于采用基于kvm的v2v迁移工具,v2v的迁移需要kvm的存储池的支持,需要对KVM虚拟环境进行改造,kvm存储池的配置请见kvm虚拟化学习笔记(十六)之kvm虚拟化存储池配置

(3).源虚拟机KVM存储池配置简要过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@node1 ~]# mkdir -p /data/vmfs
[root@node1 ~]# virsh pool-define-as vmdisk --type dir --target /data/vmfs
Pool vmdisk defined
 
[root@node1 ~]# virsh pool-build vmdisk
Pool vmdisk built
 
[root@node1 ~]# virsh pool-autostart vmdisk
Pool vmdisk marked as autostarted
 
[root@node1 ~]# virsh pool-start vmdisk
Pool vmdisk started
 
[root@node1 ~]#

(4).将虚拟机磁盘文件移动到存储池中

1
[root@node1 ~]# mv /data/kvm/CentOS6.5-01.qcow2 /data/kvm/CentOS6.5-01_add.qcow2 /data/vmfs/

2.目标KVM虚拟主机node2

(1).查看源KVM虚拟主机上的虚拟机列表

1
2
3
4
5
[root@node2 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 
[root@node2 ~]#

(2).目标虚拟机KVM存储池配置简要过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@node2 ~]# mkdir -p /data/vmfs
[root@node2 ~]# virsh pool-define-as vmdisk --type dir --target /data/vmfs
Pool vmdisk defined
 
[root@node2 ~]# virsh pool-build vmdisk
Pool vmdisk built
 
[root@node2 ~]# virsh pool-autostart vmdisk
Pool vmdisk marked as autostarted
 
[root@node2 ~]# virsh pool-start vmdisk
Pool vmdisk started
 
[root@node2 ~]#

3.KVM到KVM之间的v2p迁移

说明:计划将源kvm主机中的CentOS6.5-01虚拟机迁移到目标虚拟机中,原理是直接拷贝虚拟机磁盘文件与配置文件到目标虚拟主机上。关键点就是源与目标虚拟主机必须采用存储池配置虚拟机磁盘。

(1).开始迁移

1
[root@node2 ~]# virt-v2v -ic qemu+ssh://10.10.172.191/system -op vmdisk -b br0 CentOS6.5-01

(2)迁移完毕,查看虚拟机状态

1
2
3
4
5
6
7
8
9
[root@node2 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     CentOS6.5-01                   shut off
  
[root@node2 ~]# cd /etc/libvirt/qemu
[root@node2 qemu]# ls
networks CentOS6.5-01
[root@node2 qemu]#

自动在存储池中拷贝了虚拟机磁盘文件。


[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]# 

测试虚拟机控制台。

1
[root@node2 qemu]# virsh console CentOS6.5-01

至此KVM到KVM之v2v迁移成功完成。v2v的迁移方式也是其它静态迁移方式的补充,也让kvm虚拟化适用范围扩大。



本文转自 dengaosky 51CTO博客,原文链接:http://blog.51cto.com/dengaosky/2044974,如需转载请自行联系原作者

上一篇:多线程并发工具类


下一篇:《React Native移动开发实战》一一2.3 React Native的JSX解决方案