Xen的虚拟机的实时迁移简介
Xen为我们提供了一种强大的功能,它就是动态迁移法。它能让Domain在运行期间,以最小的服务中断为代价,将Domain迁移到另外的Xen 服务器上。
使用Xen动态迁移的主要优点列举如下:
1.Xen的动态迁移随同诸如heartbeat之类的高可用性解决方案一起使用,能给我们带来一个“永不抛锚”的系统。最新版本的Enterprise SUSE Linux Server 和Red Hat EnterpriseLinux 也是利用Xen来提供各种高可用性解决方案的。您可以轻而易举的满足各种服务的苛刻要求,同时还能保证所有关键商业服务不会出现中断。
2.它使我们能够以“治未病”方式来维护寄放虚拟机的物理服务器。您可以监视服务器,然后通过转移系统来即时解决潜在的和可疑的问题。
3.它使得在多个服务器之间实现负载均衡成为可能,使我们能够更好地利用企业中的所有计算资源,使其利用情况达到最佳状态。需要注意的是,Xen的开源版本目前还不支持在dom0上感应到故障时自动进行动态迁移的功能。
4.它使得在需要时向系统配置添加计算能力变得更加轻松。
5.您可以根据需要更换硬件,而无需中断运行在该硬件上的服务。
只知道动态迁移的好处还不够,现在就实现Xen的动态实时迁移。
实验介绍:
1.存在一台iSCSI共享存储,iSCSI存储被两台Xen虚拟化平台使用;
2.实验环境存在两台Xen的虚拟化平台,其中一个虚拟化平台上存在一个简单的busybox虚拟机,其映像文件存放在iSCSI共享存储上;这里我在两个虚拟化平台都做了简单的busybox虚拟机;
3.在Xen虚拟化平台间实现实时迁移其中一台busybox虚拟机实例;
实验架构图:

实验实现:
一.构建iSCSI共享存储
1.iSCSI服务器构建
格式化磁盘: # echo -n -e"n\np\n3\n\n+5G\nt\n3\n8e\nw\n" |fdisk /dev/sda # partx -a /dev/sda # fdisk -l /dev/sda3 Disk /dev/sda3: 5378 MB, 5378310144 bytes 255 heads, 63 sectors/track, 653 cylinders Units = cylinders of 16065 * 512 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x00000000
安装iSCSI服务器端软件:
# yum install -y scsi-target-utils
编辑iSCSI服务器的配置文件:
# vim /etc/tgt/targets.conf
#添加如下内容;
<target iqn.2015-02.com.stu31:t1>
backing-store /dev/sda3
initiator-address 172.16.31.0/24
</target>
配置完成后即可启动iscsi服务器:
# service tgtd start
查看共享设备:
# tgtadm --lld iscsi -m target -o show
Target 1: iqn.2015-02.com.stu31:t1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 5378 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/sda3
Backing store flags:
Account information:
ACL information:
172.16.31.0/24
2.iSCSI客户端的安装和配置
两个Xen虚拟化平台节点安装iSCSI客户端软件:
#yum install -y iscsi-initiator-utils
启动iSCSI客户端:
# service iscsi start # service iscsid start
让客户端发现iSCSI服务器共享的存储:
# iscsiadm -m discovery -t st -p172.16.31.3 172.16.31.3:3260,1 iqn.2015-02.com.stu31:t1
注册iscsi共享设备,节点登录,
# iscsiadm -m node -Tiqn.2015-02.com.stu31:t1 -p 172.16.31.3 -l Logging in to [iface: default, target:iqn.2015-02.com.stu31:t1, portal: 172.16.31.3,3260] (multiple) Login to [iface: default, target:iqn.2015-02.com.stu31:t1, portal: 172.16.31.3,3260] successful.
查看iSCSI存储:
# fdisk -l /dev/sdb Disk /dev/sdb: 5378 MB, 5378310144 bytes 166 heads, 62 sectors/track, 1020 cylinders Units = cylinders of 10292 * 512 = 5269504bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x00000000
登录后就可以格式化磁盘和分区了:
# echo -e "n\np\n1\n\n+2G\nw\n"|fdisk /dev/sdb # partx -a /dev/sdb 查看格式化后的磁盘: # fdisk -l /dev/sdb Disk /dev/sdb: 5378 MB, 5378310144 bytes 166 heads, 62 sectors/track, 1020 cylinders Units = cylinders of 10292 * 512 = 5269504bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x8e1d9dd0 Device Boot Start End Blocks Id System /dev/sdb1 1 409 2104683 83 Linux
二.客户端节点Xen虚拟化环境构建
由于是两个Xen虚拟化节点,我这里已经有一个现成的ok的Xen虚拟化节点,我们再添加一个虚拟化节点,当作事例提供;
1.配置xen的yum源
# vim /etc/yum.repos.d/xen4.repo [xen4] name=Xen4 For CentOS6 baseurl=ftp://172.16.0.1/pub/Sources/6.x86_64/xen4centos/x86_64/ gpgcheck=0 清空现有yum库缓存: # yum clean all
2.安装xen-4.2.5版本的软件,更新内核版本到3.7.10
# yum install -y xen-4.2.5 xen-libs-4.2.5xen-runtime-4.2.5 kernel-xen
3.配置grub.conf配置文件
# vim /etc/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.7.10-1.el6xen.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=1024M,max:1024M dom0_max_vcpus=1 dom0_vcpus_pin
cpufreq=xen
module /vmlinuz-3.7.10-1.el6xen.x86_64 ro root=/dev/mapper/vg0-rootrd_NO_LUKS rd_NO_DM.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MDSYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg0/root KEYBOARDTYPE=pc KEYTABLE=us rhgbcrashkernel=auto quiet rhgb quiet
module /initramfs-3.7.10-1.el6xen.x86_64.img
title CentOS 6 (2.6.32-504.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/mapper/vg0-rootrd_NO_LUKS rd_NO_DM.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MDSYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg0/root KEYBOARDTYPE=pc KEYTABLE=us rhgbcrashkernel=auto quiet rhgb quiet
initrd /initramfs-2.6.32-504.el6.x86_64.img
配置完成后重新启动Linux系统,启动完成后自动进入了Xen的Dom0环境:
查看内核版本,已经升级到3.7.10:
# uname -r
3.7.10-1.el6xen.x86_64
查看xen的xend服务开机启动项:
# chkconfig --list xend
xend 0:off 1:off 2:off 3:on 4:on 5:on 6:off
4.启动xend服务
# service xend start
可以查看一下现在运行的虚拟机:
# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 1024 1 r----- 23.7
查看一下Xen虚拟机的信息:
# xm info host : test2.stu31.com release : 3.7.10-1.el6xen.x86_64 version : #1 SMP Thu Feb 5 12:56:19 CST2015 machine : x86_64 nr_cpus : 1 nr_nodes : 1 cores_per_socket : 1 threads_per_core :1 cpu_mhz : 2272 hw_caps :078bfbff:28100800:00000000:00000140:00000209:00000000:00000001:00000000 virt_caps : total_memory : 2047 free_memory : 998 free_cpus : 0 xen_major : 4 xen_minor : 2 xen_extra : .5-38.el6 xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p xen_scheduler : credit xen_pagesize
您可能想查找下面的文章:
- KVM与OpenStack的前世今生(1)
- Citrix Xenserver 7怎么安装?Xenserver 7.0安装详细图文教程(附下载地址)
- 深入理解Xen虚拟机克隆复制实战
- Xenserver迁移所有虚拟机到VMware vSphere 6.0
- XenServer内核模块编译过程详解
- XenServer中VMware的Console的连接方法
- Linode Xen 下 grsecurity >= 4.3 崩溃问题
- XenServer 详细介绍与 虚拟化系列-Citrix (XenServer 6.1) 安装与配置
- XenServer 日志清理方法详细介绍
- 在具有共享存储的xen Server上实现共享VM的启动方法

