- 时间:2021-12-13 06:23 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:在具有共享存储的xen Server上实现共享VM的启动方法
如果在一台xen Server主机上创建了一个VM,该VM安装在共享的盘阵上。那么如果该主机因硬件原因出现宕机,怎么在其他主机启动共享盘上的VM实现VM的高可用呢。Citrix Xen Server 的高级版本和企业版本提供了高可用支持,且要求Xen Server主机要在同一个池中。
这里我们不通过同一个池,怎么实现VM的启动呢。在网上花费了很多时间用于查找相关资料。都未能插到我需要的资料。
后来就思考,按照道理来说这个功能应该是能够实现的才对。功夫不負有心人
[b]环境[/b]
Citrix Xen Serer 6.1免费版:[url=http://www.1sucai.cn/softs/391983.html]http://www.1sucai.cn/softs/391983.html[/url]
免费版这里需要三台服务器
A、B为XEN Server 服务器。C主机用于iscsi 虚拟出一个共享磁盘出来。
在主机A上虚拟机的建立
[b]1、建立iSCSI SR[/b]
[b]2、新建虚拟机[/b] 在选择主服务器页面时, 选择不为此VM分配主服务器(D),如图:[img]http://files.jb51.net/file_images/article/201611/201611011142081.png[/img]
[b]3、用iSCSI SR库来为新VM分配存储[/b]如图:
[img]http://files.jb51.net/file_images/article/201611/201611011142082.png[/img]
[b]4、继续完成VM的安装。[/b][b]
[/b]
在主机B上启动在主机A上建立的VM 要在主机B上启动在主机A上建立的VM,需要主机A与共享盘阵断开连接。iSCSI SR库右键->分离(D)...。注意,需要SR上的所有虚拟机都关机的情况下,才能执行分离操作。
如果主机A不与共享盘阵分离,在主机B连上盘阵后,就会对盘阵数据照成破坏。
[b]1、新建iSCSI 存储库[/b]
在iSCSI存储库路径输入页面,输入iscsi目标主机IP地址。点击完成,会弹出如下对话框:[img]http://files.jb51.net/file_images/article/201611/201611011142083.png[/img]
选择连接SR(A)
[b]2、新建虚拟机且不启动(与源虚拟机参数一致)[/b]
[b]3、给新添加的VM添加之前建立的iscsi 磁盘,并设置位置为0[/b][img]http://files.jb51.net/file_images/article/201611/201611011142094.png[/img]
选择 交换这些磁盘(S)
此时如果我们不需要刚刚新建的磁盘,则可以将其删除(刚新建的磁盘没有数据,可以直接删除)
[b]4、去掉DVD驱动器[/b]
将DVD驱动器设置为空,否则会从DVD驱动中启动虚拟机。(这里应该可以通过配置虚拟机的启动参数来修改虚拟机的启动项)[img]http://files.jb51.net/file_images/article/201611/201611011142095.jpg[/img]
此时我们启动虚拟机,则会报:Error from bootloader:no bootable disk。说当前虚拟机没有启动磁盘。
[b]5、设置虚拟机引导参数:[/b]
执行xe vm-list 命令,查看但前xen主机上的虚拟机
执行xe vm-param-list uuid=<vm-uuid>命令看看指定uuid虚拟机的参数
我们可以看到:
[img]http://files.jb51.net/file_images/article/201611/201611011142096.png[/img]
PV-bootloader (RW):elioader 这一行。
修改PV-bootloader (RW)的值为pygrub,命令如下:
xe vm-param-set PV-bootloader=pygrub uuid=<vm-uuid>
再执行启动虚拟机操作,如果依然报Error from bootloader:no bootable disk,则执行第6
[b]6、修改vbd参数[/b]
执行命令
xe vbd-list 列出当前主机上的所有VBD,找到对应虚拟机的VBD
执行命令 xe vbd-param-list uuid=<vbd-uuid>[img]http://files.jb51.net/file_images/article/201611/201611011142097.png[/img]
可以看到 bootable(RW):的值为false,需要修改该值为true。执行命令如下
:xe vbd-param-set bootable=true uuid=<vbd-uuid>[img]http://files.jb51.net/file_images/article/201611/201611011142098.png[/img]
重新执行启动,这次就启动成功了;
[img]http://files.jb51.net/file_images/article/201611/201611011142099.png[/img]
7、修改网络物理地址(mac地址)如果在主机B上建立虚拟机时,指定了源主机A上虚拟机的MAC地址。则跳过这一步。否则需要修改mac地址。[img]http://files.jb51.net/file_images/article/201611/2016110111420910.png[/img]
将mac地址修改为虚拟机内部设置的mac地址(原主机A上虚拟机的MAC地址)
这样我们就实现了在另一台主机上启动共享虚拟机的功能了。
[b]注意:[/b] 这里只是我的实验结果,具体对虚拟机或者对xen server有没有影响,现在还不清楚。有待后续测试完善。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。