Pygrub与Xen上的DRBD 3.2

我们有一个在CentOS 5.2 64位上使用DRBD 8.2的双节点集群。 集群在Xen 3.2.1之上运行一些虚拟机,下面是Ubuntu Jaunty VM的configuration:

name = 'dev' bootloader = '/usr/bin/pygrub' memory = '512' vif = [ 'ip=192.168.1.217,mac=00:16:3E:CD:60:80' ] disk = [ 'phy:/dev/drbd24,xvda1,w', 'phy:/dev/drbd25,xvda2,w' ] 

正如你所看到的,磁盘被指定为“phy:”,因此pygrub不知道底层的drbd设备的事情…
所以我的问题是,即使VM引导就好,它不处理drbd设备的状态。 因此,当由于某种原因设备进入二级/二级状态时,虚拟机将无法启动,我必须手动指定哪个节点是主要的。

我读到,从Xen 3.3开始pygrub理解“drbd:”规范,我认为这将解决我的问题,但我现在不能升级Xen …是否有解决方法? 例如,我可以使用pygrub的3.3版本吗?

谢谢!

为什么在开始DomU之前,你不确定你的drbd是否是主要的?

我猜你正在使用心跳作为集群软件?

所以在/etc/ha.d/resource.d/中应该有一个资源types的“drbddisk”

在你的xen-resources和startup之前使用这个资源会很好。

这就是我所做的SLES 10到SP2(使用旧的drbd 0.7)。 随着切换到SLES 10 SP3我转移到我自己的版本的drbd 8.3.5 – 我认为包含与xen的集成,使drbd磁盘types从那时起是可能的。

顺便说一句 – 你也不必使用pygrub。 我通过在CentOS-Domus中创build一个带有通用名称的最新initrd / vmlinz的符号链接来模拟SuSE在/ boot中进行通用链接的方式。 这可以通过在Dom0-Config中使用传统的方式。

亲切的问候

尼尔斯

作为解决方法,我正在使用drbd指令become-primary-on