本文系统:centos 6.5 x64
静态迁移:将vm的配置文件及磁盘文件进行copy到另外一台kvm主机即可
动态迁移:基于nfs的动态迁移和基于gfs的动态迁移
一、静态迁移:
我们将Aries主机的vm(vm2 )迁移到 lansgg主机上;
思路就是将 vm2 的配置文件及磁盘文件 copy 到对端主机,重新define 即可
copy文件
因为磁盘目录和配置文件一致,所以直接进行define即可
可以看到启动成功、迁移完成。
二、动态迁移:基于nfs的动态迁移
相比静态迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机动态迁移无需拷贝虚拟磁盘文件,但是需要迁移到的虚拟主机之间需要有相同的目
录结构虚拟机磁盘文件,这里使用nfs来实验,当然也可以采用GFS2集群文件系统来实现,本文的动态迁移是基于共享存储动态迁移。
KVM动态迁移目前有两种,一种是基于共享存储的动态迁移,一种是基于基于数据块的动态迁移,需要qemu-kvm-0.12.2以上版本支持。
主机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共享:
[[email protected] ~]# yum install rpcbind nfs-utils* -y [[email protected] /]# cat /etc/exports /nfs 192.168.100.0/24(rw,sync,no_root_squash) [[email protected] /]# 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) [[email protected] /]# /etc/init.d/rpcbind start [[email protected] /]# /etc/init.d/nfs start [[email protected] /]# /etc/init.d/rpcidmapd start
2、分别在其他两台主机挂载nfs
[[email protected] ~]# mkdir /nfs/Data [[email protected] ~]# showmount -e 192.168.100.140 Export list for 192.168.100.140: /nfs 192.168.100.0/24 [[email protected] ~]# mount -t nfs 192.168.100.140:/nfs /nfsData [[email protected] ~]# mkdir /nfsData/kvm
[[email protected] kvm]# mkdir /nfsData [[email protected] kvm]# showmount -e 192.168.100.140 Export list for 192.168.100.140: /nfs 192.168.100.0/24 [[email protected] kvm]# mount -t nfs 192.168.100.140:/nfs /nfsData [[email protected] kvm~]# mkdir /nfsData/kvm
3、在Aries上创建虚拟机 vmTest
[[email protected] ~]# 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
[[email protected] ~]# virsh list Id 名称 状态 ---------------------------------------------------- 2 vmTest running [[email protected] ~]# virsh domblklist vmTest Target Source ------------------------------------------------ vda /nfsData/kvm/vmTest.img hdc -
4、虚拟机迁移:
Ps:确保两节点都有相同的虚拟机磁盘文件存储目录,我们这里是 /nfsData/kvm
[[email protected] ~]# virsh migrate --live --verbose vmTest qemu+ssh://192.168.100.141/system tcp://192.168.100.141
在原主机的vm已经停机,查看目标主机的vm状态
已经转移到目标主机,中间会有间断的不可用。
Ps:虽然vm在目标主机成功启动,可是还是没有配置文件,需要生成配置文件
5、生成配置文件,重新进来define
[[email protected] qemu]# virsh dumpxml vmTest > /etc/libvirt/qemu/vmTest.xml [[email protected] qemu]# virsh define /etc/libvirt/qemu/vmTest.xml