本文系统: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共享:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[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
1
2
3
4
5
6
|
[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
|
1
2
3
4
5
6
|
[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
1
|
[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
|
1
2
3
4
5
6
7
8
9
10
|
[root@Aries ~]
# virsh list
Id 名称 状态
----------------------------------------------------
2 vmTest running
[root@Aries ~]
# virsh domblklist vmTest
Target Source
------------------------------------------------
vda
/nfsData/kvm/vmTest
.img
hdc -
|
4、虚拟机迁移:
Ps:确保两节点都有相同的虚拟机磁盘文件存储目录,我们这里是 /nfsData/kvm
1
|
[root@Aries ~]
# virsh migrate --live --verbose vmTest qemu+ssh://192.168.100.141/system tcp://192.168.100.141
|
已经转移到目标主机,中间会有间断的不可用。
Ps:虽然vm在目标主机成功启动,可是还是没有配置文件,需要生成配置文件
5、生成配置文件,重新进来define
1
2
|
[root@daf qemu]
# virsh dumpxml vmTest > /etc/libvirt/qemu/vmTest.xml
[root@daf qemu]
# virsh define /etc/libvirt/qemu/vmTest.xml
|
本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1688760