一题两解 Xen虚拟机迁移domain方法详解

出处:pconline 2009年10月26日 作者:佚名 责任编辑:heyaorong

  2. 编辑/etc /exports 文件,加入下面一行来导出存储器目录:

# /Xen-storage *(r,sync,no_root_squash)

  3.保存文件,并重启NFS 服务器。将NFS 服务器添加到该服务器的服务中,并设为系统重启时运行:

# service nfs startchkconfig nfs on

  4.我们将建立两个Xen 服务器,并让他们使用NFS 服务器提供的存储器。为了挂载导出目录,需要为两个Xen 服务器都添加安装点:

# mount hostB:/Xen-storage
#- mount hostC:/Xen-storage

  5.修改Xend配置文件,以允许动态迁移。编辑/etc/Xen/Xend-config.sxp 文件,并确保以下两行没有被注释掉:

(Xend-relocation-port 8002)
(Xend-relocation-address '')

  其作用是启动Xen 守护进程,以侦听和响应动态迁移的各种请求。

  6.建立一个运行在NFS 服务器存储器上的Xen Domain,并在hostB上启动该客户机Domain.并让该客户机Domain使用以下配置:

cat > /home/pchaganti/Xen-images/ubuntu_fuwa_nfs_domU.cfg << "EOF"
kernel = "/boot/vmlinuz-2.6.16.38-XenU"
memory = 256
name = "ubuntu_fuwa_nfs_domU"
vif = [ 'ip=192.168.1.111' ]
nfs_server = '192.168.1.67'
nfs_root = '/Xen-storage'
root = '/dev/nfs'
EOF

  7.现在,我们有了一个运行于hostB的客户机Domain,它使用NFS 导出的目录进行存储。我们可以在hostB上运行下列命令来检查该Domain的运行是否正常:

  8.接下来,我们将这个客户机Domain动态迁移至hostC 服务器,为此可能需要几分钟的时间。如果迁移失败,会在控制台显示一个指示失败的消息。

# xm migrate ——live ubuntu_fuwa_nfs_domU hostC

  9.以上就是将正在运行的Domain动态迁移至另一个Xen 服务器的全部工作!现在使用xm命令来显示当前运行于hostB 和hostC 这两个服务器上的Domain,您将发现,所迁移的Domain目前只能在hostC 服务器上找到,列出的正在hostB服务器上运行的Domain中已经找不到被迁移的Domain的影子了。

  相关说明

  动态迁移就是在“带电”情况下,将一个虚拟机从一个物理主机移动到另一个物理主机的过程。该过程不会对最终用户造成明显的影响,从而使得管理员能够在不影响用户正常使用的情况下,对物理服务器进行离线维修或者升级。

  需要注意的是,要想改变Domain的运行地点,必须修改默认的Xend配置文件。此外,要使所做的修改在主机上生效,必须重新启动Xen 服务器所在的主机。 我们需要修改以下配置:

  Xend-relocation-server :该标志用于启用/取消服务器迁移功能。默认时,该标志设为no ,即不允许改变服务器的位置。在迁移过程中,Domain虚拟内存将变成未经任何加密的原始形式。所以,在不可信的网络上启用该选项时一定要倍加小心。

  Xend-relocation-port :Xend守护进程通过该端口进行迁移。这个端口的缺省值是8002。

  另外,还有两个无需修改的参数,当在企业部署环境进行迁移时也要注意一下:

  Xend-relocation-address :该标志将Domain的迁移限制到特定的接口上。指定的地址是侦听用于Domain迁移的入局连接的接口地址。只有启用Xend-relocation-server参数后,才会用到这个标志。

  Xend-relocation-hosts-allow:这个标志定义了允许跟迁移端口进行通信的主机。其值为一个由空格分隔的正则表达式序列。如果该值为空,那么将允许全部输入连接,否则,该值要么与一个IP地址相匹配,要么与一个完整域名相匹配。

  事实上,从hostB到hostC的迁移过程,是分为多个阶段进行的,如下所示:

  第一阶段:迁移之前。

  这时,Fuwa Domain运行于hostB,并且是一个活动的Domain.

  第二阶段:预定。

  在hostB上发出一个迁移请求,然后检查和确认在hostC上可用的资源。然后,Xend在hostC上按照所需的尺寸准备一个VM容器。如果Xend无法在hostC上获得所需的资源,那么一切就此结束。该Domain依旧运行在hostB上,就像什么事情也没发生一样,此次迁移尝试就此放弃。

  第三阶段:重复预拷贝。

  先将所有内存页面从hostB传送到hostC,然后继续传输在先前传送过程中发生变化的页面。最终,所以页面都被拷贝到hostC.

  到第三阶段为止,Fuwa Domain仍然正常运行于hostC之上。

  第四阶段:中止并拷贝。

  在hostB上运行着的Domain被挂起,其所有网络流量也被重定向至hostC.这个阶段结束后,除了在hostB上有一个挂起的Domain外,hostB上还有了这个被挂起的Domain的副本。这时,hostB上被挂起的Domain还可以作为原始副本,万一这一步失败,它还能在hostB上恢复运行。

  第五阶段:交付。

  如果这一步没有错误或失败的话,hostC会向hostB发送一个指示信息,指出它已经拥有了一个跟hostB完全一致的Domain映像。现在,hostB将从它的Xen 服务器中删除该Domain.从这时起,hostC将成为这个Domain的第一宿主机。

  在第四阶段至第五阶段期间,Fuwa Domain处于停机状态。

  第六阶段:激活。

  在hostC上激活被迁移的Domain.该Domain内部的全部设备驱动程序现在关联至新的机器上。至此,Fuwa Domain又在hostC上复活了。

  这些步骤都是在幕后进行的,正是这一系列默默无闻的操作,才使得迁移能够如此平稳的和无缝的过渡!

四、结束语

  我们研究了迁移Xen客户机Domain的两种方式:存储还原法和动态迁移法。前一种方法类似便携式计算机的深度休眠,它先将捕获的domain运行状态作为映像存放在磁盘上,之后再用该映像对这个domain 进行还原。后一种方式以最少的中断和停机时间来动态改变处于运行状态中的domain的运行位置。综合使用这两种迁移方法,定能使虚拟化技术的功效更上一层楼。[返回频道首页]

相关快问问题
IT商城促销信息

·暑假IT高性价比产品全收集 第二波