kvm(九)客户机vm的迁移

本文系统:centos 6.5 x64

静态迁移:将vm的配置文件及磁盘文件进行copy到另外一台kvm主机即可

动态迁移:基于nfs的动态迁移和基于gfs的动态迁移


一、静态迁移:

我们将Aries主机的vm(vm2 )迁移到 lansgg主机上;

思路就是将 vm2 的配置文件及磁盘文件 copy 到对端主机,重新define 即可

wKioL1W3TZ-DEReeAADlgJm9DUE210.jpg

copy文件

wKioL1W3T_aDU9JmAAKTWDdDxao280.jpg

因为磁盘目录和配置文件一致,所以直接进行define即可

wKiom1W3T_miJzZXAAFpv9827U4411.jpg

可以看到启动成功、迁移完成。

二、动态迁移:基于nfs的动态迁移

相比静态迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机动态迁移无需拷贝虚拟磁盘文件,但是需要迁移到的虚拟主机之间需要有相同的目 录结构虚拟机磁盘文件,这里使用nfs来实验,当然也可以采用GFS2集群文件系统来实现,本文的动态迁移是基于共享存储动态迁移。

KVM动态迁移目前有两种,一种是基于共享存储的动态迁移,一种是基于基于数据块的动态迁移,需要qemu-kvm-0.12.2以上版本支持。

wKiom1XdaWaAH6PVAAGsw1PJzZA227.jpg

主机A:

hostname:Aries

ip:192.168.100.128

主机B:

hostname:daf

ip:192.168.100.141

NFS主机:

hostname:nfs

ip:192.168.100.140

实验目的:将主机A的虚拟机 vmTest 迁移到 主机B 上

1、将nfs主机的上存储 sdb1 进行nfs共享:

[root@nfs ~]# yum install rpcbind nfs-utils* -y
[root@nfs /]# cat /etc/exports 
/nfs         192.168.100.0/24(rw,sync,no_root_squash) 
[root@nfs /]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /nfs type ext4 (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
[root@nfs /]# /etc/init.d/rpcbind start
[root@nfs /]# /etc/init.d/nfs start
[root@nfs /]# /etc/init.d/rpcidmapd start



2、分别在其他两台主机挂载nfs

[root@Aries ~]# mkdir /nfs/Data
[root@Aries ~]# showmount -e 192.168.100.140
Export list for 192.168.100.140:
/nfs 192.168.100.0/24
[root@Aries ~]# mount -t nfs 192.168.100.140:/nfs /nfsData
[root@Aries ~]# mkdir /nfsData/kvm
[root@daf kvm]# mkdir /nfsData
[root@daf kvm]# showmount -e 192.168.100.140
Export list for 192.168.100.140:
/nfs 192.168.100.0/24
[root@daf kvm]# mount -t nfs 192.168.100.140:/nfs /nfsData
[root@daf kvm~]# mkdir /nfsData/kvm

3、在Aries上创建虚拟机 vmTest

[root@Aries ~]#  virt-install --name=vmTest --ram 512 --vcpus=1 --disk path=/nfsData/kvm/vmTest.img,size=7,bus=virtio --accelerate --cdrom=/iso/CentOS-6.5-x86_64-bin-DVD1.iso --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole
[root@Aries ~]# virsh list 
 Id    名称                         状态
----------------------------------------------------
 2     vmTest                         running

[root@Aries ~]# virsh domblklist vmTest
Target     Source
------------------------------------------------
vda        /nfsData/kvm/vmTest.img
hdc        -

wKiom1XdbVzj_tiAAADitwayOy8889.jpg

4、虚拟机迁移:

Ps:确保两节点都有相同的虚拟机磁盘文件存储目录,我们这里是 /nfsData/kvm

[root@Aries ~]# virsh migrate --live --verbose vmTest  qemu+ssh://192.168.100.141/system tcp://192.168.100.141

wKioL1XeeuuCp0pNAAD81Q3eqb4842.jpg
在原主机的vm已经停机,查看目标主机的vm状态

wKiom1XeePzS6xXRAACQ9R-E52s402.jpg

已经转移到目标主机,中间会有间断的不可用。

Ps:虽然vm在目标主机成功启动,可是还是没有配置文件,需要生成配置文件

wKiom1XeeXPRLQdqAACNEk3sbKI536.jpg

5、生成配置文件,重新进来define

[root@daf qemu]# virsh dumpxml vmTest > /etc/libvirt/qemu/vmTest.xml
[root@daf qemu]# virsh define /etc/libvirt/qemu/vmTest.xml

wKiom1XeeffACmekAAF5X6oxy0Q946.jpg

你可能感兴趣的:(nfs,migrate,virsh)