[Pacemaker] VirtualDomain/DRBD live migration with pacemaker...

Erich Weiler weiler at soe.ucsc.edu
Mon Jun 14 20:37:04 UTC 2010


Hi All,

We have this interesting problem I was hoping someone could shed some 
light on.  Basically, we have 2 servers acting as a pacemaker cluster 
for DRBD and VirtualDomain (KVM) resources under CentOS 5.5.

As it is set up, if one node dies, the other node promotes the DRBD 
devices to "Master", then starts up the VMs there (there is one DRBD 
device for each VM).  This works great.  I set the 
'resource-stickiness="100"', and the vm resource score is 50, such that 
if a VM migrates to the other server, it will stay there until I 
specifically move it back manually.

Now...  In the event of a failure of one server, all the VMs go to the 
other server.  When I fix the broken server and bring it back online, 
the VMs do not migrate back automatically because of the scoring I 
mentioned above.  I wanted this because when the VM goes back, it 
essentially has to shut down, then reboot on the other node.  I'm trying 
to avoid the 'shut down' part of it and do a live migration back to the 
first server.  But, I cannot figure out the exact sequence of events to 
do this in such that pacemaker will not reboot the VM somewhere in the 
process.  This is my configuration, with one VM called 'caweb':

node vmserver1
node vmserver2
primitive caweb-vd ocf:heartbeat:VirtualDomain \
         params config="/etc/libvirt/qemu/caweb.xml" 
hypervisor="qemu:///system" \
         meta allow-migrate="false" target-role="Started" \
         op start interval="0" timeout="120s" \
         op stop interval="0" timeout="120s" \
         op monitor interval="10" timeout="30" depth="0"
primitive drbd-caweb ocf:linbit:drbd \
         params drbd_resource="caweb" \
         op monitor interval="15s" \
         op start interval="0" timeout="240s" \
         op stop interval="0" timeout="100s"
ms ms-drbd-caweb drbd-caweb \
         meta master-max="1" master-node-max="1" clone-max="2" 
clone-node-max="1" notify="true" target-role="Started"
location caweb-prefers-vmserver1 caweb-vd 50: vmserver1
colocation caweb-vd-on-drbd inf: caweb-vd ms-drbd-caweb:Master
order caweb-after-drbd inf: ms-drbd-caweb:promote caweb-vd:start
property $id="cib-bootstrap-options" \
         dc-version="1.0.8-9881a7350d6182bae9e8e557cf20a3cc5dac3ee7" \
         cluster-infrastructure="openais" \
         expected-quorum-votes="2" \
         stonith-enabled="false" \
         no-quorum-policy="ignore" \
         last-lrm-refresh="1276538859"
rsc_defaults $id="rsc-options" \
         resource-stickiness="100"

One thing I tried, in an effort to do a live migration from vmserver2 to 
vmserver1 and afterward tell pacemaker to 're-acquire' the current state 
of things without a VM reboot, was:

vmserver1# crm resource unmanage caweb-vd
vmserver1# crm resource unmanage ms-drbd-caweb
vmserver1# drbdadm primary caweb   <--make dual primary

(then back on vmserver2...)

vmserver2# virsh migrate --live caweb qemu+ssh://hgvmserver1.local/system
vmserver2# drbdadm secondary caweb  <--disable dual primary
vmserver2# crm resource manage ms-drbd-caweb
vmserver2# crm resource manage caweb-vd
vmserver2# crm resource cleanup ms-drbd-caweb
vmserver2# crm resource cleanup caweb-vd
vmserver2# crm resource refresh
vmserver2# crm resource reprobe
vmserver2# crm resource start caweb-vd

at this point the VM has live migrated and is still online.

[wait 120 seconds for caweb-vd start timeouts to expire]

For a moment I thought it had worked, but then pacemaker put the device 
in an error mode and it was shut down...  After bringing a resource(s) 
back into 'managed' mode, is there any way to tell pacemaker to 'figure 
things out' without restarting the resources?  Or is this impossible 
because the VM resources is dependent on the DRBD resource, and it has 
trouble figuring out stacked resources without restarting them?

Or - does anyone know another way to manually live migrate a 
pacemaker/VirtualDomain managed VM (with DRBD) without having to reboot 
the VM after the live migrate?

Thanks in advance for any clues!!  BTW, I am using pacemaker 1.0.8 and 
DRBD 83.

Cheers,
-erich




More information about the Pacemaker mailing list