Ubuntu 12.04 KVM之VM动态迁移-基于LVM



动态迁移(Live Migration):也叫在线迁移(Online Migration)。就是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理主机移动到另一个物理主机的过程。与静态迁移不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。
www.2cto.com  
目前主流的动态迁移工具,他们都依赖于物理机之间采用 SAN(storage area network)或 NAS(network-attached storage)之类的集中式共享外存设备,因而在迁移时只需要进行虚拟机系统内存执行状态的迁移,从而获得较好的迁移性能。
 
www.2cto.com
 三台dell R710,两台做宿主机上面安装kvm虚拟机,一台通过iscsi模拟共享存储,主要实验kvm的vm动态迁移过程,两台宿主机还继续使用上一节静态迁移的环境,不过需要安装iscsi客户端,在存储上面安装iscsi服务端。
 三台机器的名称分别是:Ubuntu-src、Ubuntu-dst、Ubuntu-store
 
安装iscsi软件:
在Ubuntu-src和Ubuntu-dst上安装客户端
1
apt-get install open-iscsi
 
在Ubuntu-store上安装服务端
 
1
apt-get install iscsitarget <span style="background-color:#ffffff;">iscsitarget-sourceiscsitarget-dkms </span>
1
apt-get install module-assistant debhelper build-essential
 
在安装完服务端后,默认服务是不启动的,要修改配置文件/etc/default/iscsitarget
 
ISCSITARGET_ENABLE=false --> ISCSITARGET_ENABLE=true
启动iscsitarget:
使用Ubuntu-store上的/dev/sda6作为共享存储,修改/etc/iet/ietd.conf文件,在文件末尾追加以下配置:
 
1
Target iqn.2012-10.com.guol:storage.lun1
2
Lun 0 Path=/dev/sda6,Type=fileio
 
在Ubuntu-src上获取共享存储的资源
连接到服务端,查看提供了那些共享存储资源:
1
iscsiadm  -m  discovery -t st -p 10.1.6.89
 
挂载服务端提供的共享存储资源:
1
iscsiadm  -m node
2
iscsiadm  -m node -T iqn.2012-10.com.guol:storage.lun1 -p 10.1.6.89:3260 -l
 
 
在共享存储上划分分区:
可以看到共享存储资源被识别为/dev/sdb设备,划分整个/dev/sda为/dev/sdb1分区,并在上面创建卷:
www.2cto.com
1
pvcreate /dev/sdb1
2
vgcreate store /dev/sdb1
3
lvcreate -L 5G -n kvm-mig store
 
 
在Ubuntu-src上使用virt-install把虚拟机安装到kvm-mig卷中:
 
www.2cto.com
1
virt-install -d -n kvm-mig -r 2048 --disk path=/dev/store/kvm-mig,bus=virtio,cache=none --network bridge=br0,model=virtio --vnc --cdrom=/opt/debian-6.0.2.1-amd64-CD-1.iso
 
 安装完毕后,启动虚拟机,并登录查看,如下图:
 
在Ubuntu-dst上获取共享存储的资源
1
iscsiadm  -m  discovery -t st -p 10.1.6.89
2
iscsiadm  -m  node
3
iscsiadm  -m node -T iqn.2012-10.com.guol:storage.lun1 -p 10.1.6.89:3260 -l
www.2cto.com
如下图:
 

使用fdisk -l就可以看到在Ubuntu-src上划分的/edv/sdb1及相关的lvm卷
 
下面开始把kvm-mig从Ubuntu-src动态迁移到Ubuntu-dst上:
先查看虚拟机在Ubuntu-src和Ubuntu-dst上的状态
1
virsh list
 
 

 
可以看到kvm-mig运行在Ubuntu-src上,而Ubuntu-dst上并没有运行虚拟机。
下面把Ubuntu-src上的kvm-mig动态的迁移到Ubuntu-dst上面。
在Ubuntu-src上执行如下命令,提前在Ubuntu-src和Ubuntu-dst之前使用ssh key登录,并确保域名解析正确,可以设置/etc/hosts。
1
virsh migrate --live kvm-mig qemu+ssh://10.1.6.228/system
 
 
大概等待1~2分钟,迁移消耗的时间依赖于虚拟机使用的内存,因为动态迁移只是把在源中的内存拷贝一份到目的机器上面,结果如下对比图:
 



 
可以看到刚开始kvm-mig运行在Ubuntu-src上面,几分钟后,kvm-mig就移动到Ubuntu-dst上面了,
不过刚开始处于中止状态,几秒钟后会变为运行状态。
 
www.2cto.com
在Ubuntu-dst上面登录kvm-mig虚拟机:
 
  有个问题,使用virsh迁移只是把内存拷贝一份到目的机器上面,其启动配置文件并没有拷贝到目的主机,所以如关闭了虚拟机以后,是不能在目的机器上再次启动它的,为了可以在目的机器上启动迁移过来的虚拟机,可以把源主机上/etc/libvirt/qemu目录下的相关虚拟机配置文件也拷贝到目的机器上面。
 

相关内容

    暂无相关文章