Xen虚拟机在线迁移的搭建与调试

       

1. 平台运行的软硬件环境

并行计算环境需要多台计算机协同工作,本文使用的具有相同机器的软硬件环境。

1.1.     硬件环境

本文使用11年出产的惠普 HP Compaq dc7700机器作为运行环境,但是PVM完全可以运行在同等规格或更高规格的计算机。具体的硬件规格如下:

CPU  Intel(R) Core(TM)2 DuoCPU  E7500  @ 2.93GHz(2CPUs)

内存  2.00 GB (1067 MHz)

主硬盘  320GB (希捷 ST3320418AS)

网卡  Intel(R) 82567LM-3 GigabitNetwork Connection

1.2.     软件安装及调试

ubuntu从11.10开始内核版本号到3了,也从这个版本内核开始重新支持xen了,不必重新编译内核了。本文用的是ubuntu12.04LTS-DVD-i386版本。

初次之外,要格外注意以下两点:

首先ubuntu不能是用wubi安装的,切忌。

其次,32位和64位系统的区别也很重要。32位系统,因为xen需要开启pae,默认是没有开启的,所以32位ubuntu首先得执行下面这个命令:

sudo apt-get installlinux-image-server。

之后再按照下面你的步骤。

1.2.1.安装xen hypervisor.

sudo apt-get installxen-hypervisor-4.1 xen-utils-4.1 xenwatch xen-tools xen-utils-commonxenstore-utils

这里xen-hypervisor-4.1要分32位、64位,64位系统用xen-hypervisor-4.1-amd64,32位用xen-hypervisor-4.1-i386.

当然用新立得(synaptic)找xen-hypervisor安装 会直接处理相关软件这个时候查看/boot/grub/grub.cfg会看到启动列表里面就会有xen的启动项了

1.2.2.重启选择xen内核

命令xm info 可以查看虚拟机信息

1.2.3.重启后可能进去的是tty1这是因为独立显卡驱动的问题,先下载好在tty1下安装然后切换到tty7就ok了.

附:linux有7个工作组:tty1-7,其中tty1-6是命令模式,tty7是图形界面,我们destop版默认进入的就是tty7,用ctl+alt+F1/../F7可以切换工作组.

1.2.4.安装xen相关工具

sudo apt-get installvirtinst virt-viewer virt-manager

1.2.5.配置xend

编辑sudo gedit/etc/xen/xend-config.sxp文件:

(xend-unix-server yes)

编辑sudo gedit ~/.bashrc :

首行添加 exportVIRSH_DEFAULT_CONNECT_URI=”xen:///”

1.2.6.创建虚拟机  

重新启动进入xen内核后,运行软件sudo virt-manager,这里图形界面就比较简单了,但是创建时因为相关资源路径问题可能会报以下错误

1******/usr/lib/xen/bin/qemu-dm:****

路径中xen应该是xen-4.1,解决办法如下

mkdir /usr/lib/xen -p

cp /usr/lib/xen-4.1/* -r/usr/lib/xen/

2 ****** libvirtError:POST操作失败: xend_post:来自 xen 守护进程的错误:****

查看日志/var/log/xen/xend.log 和/var/log/xen/qemu-dm-demo.log

日志显示/usr/share/qemu/keymaps/en-uscould not be found, the keymaps ***

路径中qemu应该是qemu-linaro,解决办法如下

cp -r/usr/share/qemu-linaro/ /usr/share/qemu

2. 在线迁移两种方案

2.1.存储还原迁移

 2.1.1.终端命令 #sudo xm save vm1/mnt/vm1.save,将当前的vm1保存下来,保存至mnt目录下的vm1.save文件。同上一步中的文件位置一致。(目录可自定义,同时需要修改上一步中的文件位置) 。此时保存的Domain会从当前运行的Domain列表中删除,我们可以用xm list命令列出当前运行的Domain,看看它是否还在运行。

2.1.2.终端命令 #sudo xm restore /mnt/vm1.save 。把保存的vm1重新恢复还原。我们将看到还原后的Domain又回到当前Domain列表中了。这是在本机运行命令。同理,也可以在目标主机运行此命令。需要先拷贝vm1.save,成功还原需要满足的要求是,目标主机上有同源主机的相同的vm1虚拟机,相同的操作系统,且存放目录相同。

相关说明:因为vm1.save文件保存的是当前系统物理内存中的系统状态,所以以免还原后数据参数不匹配,需要相同的系统支持。

2.2.动态迁移

2.2.1.首先对动态迁移时涉及到的服务器做一下介绍,它们是:

  hostA(192.168.0.40) :一个linux NFS 服务器,通过网络为XenDomain提供存储空间。

  hostB(192.168.0.56):一个Xen主机服务器,它使用NFS导出的目录运行一个客户机vm1。

  hostC(192.168.0.39):一个Xen主机服务器,它是来自hostB 服务器的客户机vm1的迁移目的地。

  下图向我们展示了具体配置情况:


三台主机都要修改/etc/xen/xend-config.sxp,需要开启的服务为:

(xend-relocation-server yes)

(xend-relocation-port 8002)

(xend-reloaction-address '')

(xend-relocation-hosts-allow '')

2.2.2.然后都需要安装nfs服务。终端执行命令#sudoapt-get install nfs-kernel-server(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)这样,主机就相当于NFSServer。

2.2.3. hostA主机上建立一个NFS服务器,欲迁移的Domain使用的就是NFS 服务器上的共享存储器空间。执行命令sudo gedit /etc/exports 修改配置文件。允许hostB和hostC主机访问共享目录。添加语句

/var/lib/libvirt/images*(rw,sync,no_root_squash)

可以通过设定/etc/hosts.deny和/etc/hosts.allow文件来限制网络服务的存取权限。

***/etc/hosts.deny***

portmap:ALL

lockd:ALL

mountd:ALL

rquotad:ALL

statd:ALL

***/etc/hosts.allow***

portmap:192.168.0.*

lockd:192.168.0.*

mountd:192.168.0.*

rquotad:192.168.0.*

statd:192.168.0.*

同时使用这两个文件就会使得只有ip为192.168. 0.*的机器使用NFS服务。全部设置完成后 重启NFS服务。# sudo/etc/init.d/nfs-kernel-server restart

2.2.4.两台主机hostB和hostC分别mount目录 sudo mount192.168.0.40:/var/lib/libvirt/images /var/lib/libvirt/images

2.2.5.建立一个运行在NFS 服务器存储器(hostA)上的XenDomain(vm1),然后在hostB上恢复还原vm1。此时运行sudo xmlist。会出现vm1的ID以及运行状态等信息。

2.2.6.在线迁移。把XenDomain(vm1)从hostB迁移到hostC。执行命令:

sudoxm migrate –l vm1 192.168.0.39(目的主机hostC地址)。执行成功之后,此时hostB下执行sudo xmlist将不会有vm1的ID号。运行状态也会被改变。同时hostC上出现vm1,并继承hostB中迁移前的运行状态。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值