三、动态迁移法
上面,我们介绍了在Xen 服务器上迁移Domain时的存储还原法。虽然这种方法很简单,但是如果您的服务器上有不许中断的关键业务,或者您想最小化业务中断时间,那么您还是不能采用这种迁移方法。
这时,Xen还为我们提供了一种强大的功能就派上用场了,它就是动态迁移法。它能让Domain在运行期间,以最小的服务中断为代价,将Domain迁移到另外的Xen 服务器上。使用Xen动态迁移可谓好处多多,先将其主要优点列举如下:
·Xen的动态迁移随同诸如heartbeat之类的高可用性解决方案一起使用,能给我们带来一个“永不抛锚”的系统。最新版本的Enterprise SuSe Linux Server 和Red Hat Enterprise Linux 也是利用Xen来提供各种高可用性解决方案的。您可以轻而易举的满足各种服务的苛刻要求,同时还能保证所有关键商业服务不会出现中断。
·它使我们能够以“治未病”方式来维护寄放虚拟机的物理服务器。您可以监视服务器,然后通过转移系统来即时解决潜在的和可疑的问题。
·它使得在多个服务器之间实现负载均衡成为可能,使我们能够更好地利用企业中的所有计算资源,使其利用情况达到最佳状态。需要注意的是,Xen的开源版本目前还不支持在dom0上感应到故障时自动进行动态迁移的功能。
·它使得在需要时向系统配置添加计算能力变得更加轻松。
·您可以根据需要更换硬件,而无需中断运行在该硬件上的服务。
只知道动态迁移的好处还不够,现在介绍一下具体的使用方法。
具体操作
首先对动态迁移时涉及到的服务器做一下介绍,它们是:
·hostA :一个linux NFS 服务器,通过网络为XenDomain提供存储空间。
·hostB :一个Xen主机服务器,它使用NFS导出的目录运行一个客户机Domain:Ubuntu Fuwa 。
·hostC :一个Xen主机服务器,它是来自hostB 服务器的客户机Domain 即Ubuntu Fuwa 的迁移目的地。
下图向我们展示了具体配置情况:
⒈ 动态迁移要求共享存储器。现实中,除了第一节所提要求外,对网速的最低要求是100MB。为了共享存储器,我们将在我们在上图顶部的Xen主机上建立一个NFS服务器,欲迁移的Domain使用的就是NFS 服务器上的共享存储器空间。
⒉ 编辑/etc /exports 文件,加入下面一行来导出存储器目录:
| # /xen-storage *(r,sync,no_root_squash) |
⒊ 保存文件,并重启NFS 服务器。将NFS 服务器添加到该服务器的服务中,并设为系统重启时运行:
| # service nfs startchkconfig nfs on |
⒋ 我们将建立两个Xen 服务器,并让他们使用NFS 服务器提供的存储器。为了挂载导出目录,需要为两个Xen 服务器都添加安装点:
| # mount hostB:/xen-storage |
| #- mount hostC:/xen-storage |
⒌ 修改Xend配置文件,以允许动态迁移。编辑/etc/xen/xend-config.sxp 文件,并确保以下两行没有被注释掉:
| (xend-relocation-port 8002) (xend-relocation-address '') |
其作用是启动Xen 守护进程,以侦听和响应动态迁移的各种请求。
⒍ 建立一个运行在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 |
⒎ 现在,我们有了一个运行于hostB的客户机Domain,它使用NFS 导出的目录进行存储。我们可以在hostB上运行下列命令来检查该Domain的运行是否正常:
⒏ 接下来,我们将这个客户机Domain动态迁移至hostC 服务器,为此可能需要几分钟的时间。如果迁移失败,会在控制台显示一个指示失败的消息。
| # xm migrate --live ubuntu_fuwa_nfs_domU hostC |
⒐ 以上就是将正在运行的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地址相匹配,要么与一个完整域名相匹配。
相关专题
- 虚拟机软件入门 (246篇文章)
- 最具影响力的七大GNU/Linux发行版 (158次浏览)
- VMware虚拟机Linux通过NAT方式上网 (124次浏览)
- Linux“装机”一条龙 (91次浏览)
- Linux下安装VMware虚拟机的过程详解 (72次浏览)
- Linux系统命令分类详解 (1) (70次浏览)
- Linux上的偷窺裝置 (1394的使用) (57次浏览)
- 安装qmail全套功略 (52次浏览)
- Linux系统管理员秘技:用快捷命令一招制胜 (52次浏览)
- TurboLinux 入门教程:第七课 TurboLinux简介 (51次浏览)
- Linux服务器ADSL利用NAT实现上网共享 (48次浏览)




