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

       动态迁移(Live Migration):也叫在线迁移(Online Migration)。就是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理主机移动到另外一个物理主机的过程。与静态迁移不一样的是,为了保证迁移过程当中虚拟机服务的可用,迁移过程仅有很是短暂的停机时间。node

      目前主流的动态迁移工具,他们都依赖于物理机之间采用 SAN(storage area network)或 NAS(network-attached storage)之类的集中式共享外存设备,于是在迁移时只须要进行虚拟机系统内存执行状态的迁移,从而得到较好的迁移性能。shell

     三台dell R710,两台作宿主机上面安装kvm虚拟机,一台经过iscsi模拟共享存储,主要实验kvm的vm动态迁移过程,两台宿主机还继续使用上一节静态迁移的环境,不过须要安装iscsi客户端,在存储上面安装iscsi服务端。ssh

     三台机器的名称分别是:Ubuntu-src、Ubuntu-dst、Ubuntu-store工具

安装iscsi软件:性能

在Ubuntu-src和Ubuntu-dst上安装客户端ui

apt-get install open-iscsi

在Ubuntu-store上安装服务端

apt-get install iscsitarget iscsitarget-source iscsitarget-dkms 

apt-get install module-assistant debhelper build-essential

在安装完服务端后,默认服务是不启动的,要修改配置文件/etc/default/iscsitarget

ISCSITARGET_ENABLE=false --> ISCSITARGET_ENABLE=truespa

启动iscsitarget:code

使用Ubuntu-store上的/dev/sda6做为共享存储,修改/etc/iet/ietd.conf文件,在文件末尾追加如下配置:内存

Target iqn.2012-10.com.guol:storage.lun1
        Lun 0 Path=/dev/sda6,Type=fileio

在Ubuntu-src上获取共享存储的资源资源

链接到服务端,查看提供了那些共享存储资源:

iscsiadm  -m  discovery -t st -p 10.1.6.89

挂载服务端提供的共享存储资源:

iscsiadm  -m node
iscsiadm  -m node -T iqn.2012-10.com.guol:storage.lun1 -p 10.1.6.89:3260 -l

在共享存储上划分分区:

能够看到共享存储资源被识别为/dev/sdb设备,划分整个/dev/sda为/dev/sdb1分区,并在上面建立卷:

pvcreate /dev/sdb1
vgcreate store /dev/sdb1
lvcreate -L 5G -n kvm-mig store

在Ubuntu-src上使用virt-install把虚拟机安装到kvm-mig卷中:

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上获取共享存储的资源

iscsiadm  -m  discovery -t st -p 10.1.6.89
iscsiadm  -m  node
iscsiadm  -m node -T iqn.2012-10.com.guol:storage.lun1 -p 10.1.6.89:3260 -l

以下图:

使用fdisk -l就能够看到在Ubuntu-src上划分的/edv/sdb1及相关的lvm卷

 

下面开始把kvm-mig从Ubuntu-src动态迁移到Ubuntu-dst上:

先查看虚拟机在Ubuntu-src和Ubuntu-dst上的状态

virsh list

  

能够看到kvm-mig运行在Ubuntu-src上,而Ubuntu-dst上并无运行虚拟机。

下面把Ubuntu-src上的kvm-mig动态的迁移到Ubuntu-dst上面。

在Ubuntu-src上执行以下命令,提早在Ubuntu-src和Ubuntu-dst以前使用ssh key登陆,并确保域名解析正确,能够设置/etc/hosts。

virsh migrate --live kvm-mig qemu+ssh://10.1.6.228/system

大概等待1~2分钟,迁移消耗的时间依赖于虚拟机使用的内存,由于动态迁移只是把在源中的内存拷贝一份到目的机器上面,结果以下对比图:

  

能够看到刚开始kvm-mig运行在Ubuntu-src上面,几分钟后,kvm-mig就移动到Ubuntu-dst上面了,不过刚开始处于停止状态,几秒钟后会变为运行状态。

 

在Ubuntu-dst上面登陆kvm-mig虚拟机:

 

      有个问题,使用virsh迁移只是把内存拷贝一份到目的机器上面,其启动配置文件并无拷贝到目的主机,因此如关闭了虚拟机之后,是不能在目的机器上再次启动它的,为了能够在目的机器上启动迁移过来的虚拟机,能够把源主机上/etc/libvirt/qemu目录下的相关虚拟机配置文件也拷贝到目的机器上面。

 

      能够看到中间的中断时间是很短的,能够看到基于共享存储的虚拟机迁移是比较方便的且不宜影响客户的使用,不过存贮的价格你懂的,在通常的小公司不必定愿意投入,因此下面一篇文章才是我实验vm动态迁移的目的。

相关文章
相关标签/搜索