OK, here is a recipe to see this problem. I hope all the
steps are here!
(0) Install drbd8-utils and heartbeat.
(1) Create a fake disk
dd if=/dev/zero of=drbd_disk count=1M bs=1
losetup /dev/loop0 ./drbd_disk
(2) Create /etc/drbd.conf. I used:
global {
usage-count yes;
}
common {
protocol C;
}
resource r0 {
device /dev/drbd0;
meta-disk internal;
on maisy {
disk /dev/loop0;
address 192.168.0.4:7788;
}
on hazy {
disk /dev/loop0;
address 192.168.0.5:7788;
}
}
(3) Create the drbd disk:
drbdadm create-md r0
modprobe drbd
drbdadm attach r0
drbdadm syncer r0
drbdadm connect r0
mkfs.ext3 /dev/drbd0
(4) Turned off drbd: /etc/init.d/drbd stop
Stopped the drbd init script from running at startup (to avoid clashes
with heartbeat):
update-rc.d -f drbd remove
(5) Created /etc/ha.d/ha.cf, contents:
autojoin none
mcast eth2 239.0.0.43 694 1 0
warntime 5
deadtime 15
initdead 60
keepalive 2
node maisy
node hazy
crm yes
(6) Created an appropriate /etc/ha.d/authkeys file.
(7) Set up resources and constraints:
cibadmin -o resources -C -x resources.xml
cibadmin -o constraints -C -x constraints.xml
where these files contain:
resources.xml:
<resources>
<master_slave id="ms_drbd_files">
<meta_attributes id="ms_drbd_files-meta_attributes">
<attributes>
<nvpair name="notify" value="yes"
id="ms_drbd_files-meta_attributes-notify"/>
<nvpair name="globally_unique" value="false"
id="ms_drbd_files-meta_attributes-globally_unique"/>
</attributes>
</meta_attributes>
<primitive id="drbd_files" class="ocf" provider="heartbeat" type="drbd">
<instance_attributes id="ms_drbd_files-instance_attributes">
<attributes>
<nvpair name="drbd_resource" value="r0"
id="ms_drbd_files-instance_attributes-drbd_resource"/>
</attributes>
</instance_attributes>
<operations>
<op id="ms_drbd_files-monitor-master" name="monitor" interval="29s"
timeout="10s" role="Master"/>
<op id="ms_drbd_files-monitor-slave" name="monitor" interval="30s"
timeout="10s" role="Slave"/>
</operations>
</primitive>
</master_slave>
<group id="rg_files">
<primitive class="ocf" type="Filesystem" provider="heartbeat"
id="mount_data">
<instance_attributes id="mount_data-instance_attributes">
<attributes>
<nvpair name="device" value="/dev/drbd0" id="mount_data-device"/>
<nvpair name="directory" value="/mnt" id="mount_data-directory"/>
<nvpair name="fstype" value="ext3" id="mount_data-fstype"/>
</attributes>
</instance_attributes>
</primitive>
</group>
</resources>
constraints.xml:
<constraints>
<rsc_order id="files_after_drbd" from="rg_files" action="start"
to="ms_drbd_files" to_action="promote" type="after"/>
<rsc_colocation id="files_on_drbd" to="ms_drbd_files" to_role="master"
from="rg_files" score="infinity"/>
</constraints>
(8) Started heartbeat: /etc/init.d/heartbeat start
(9) Observed the following failure in the system logs:
May 4 15:09:11 maisy lrmd: [4150]: info: RA output:
(drbd_files:0:start:stdout)
May 4 15:09:11 maisy drbd[4491]: [4549]: DEBUG: r0 start: Module loaded.
May 4 15:09:11 maisy drbd[4491]: [4551]: DEBUG: r0: Calling drbdadm -c
/etc/drbd.conf state r0
May 4 15:09:11 maisy lrmd: [4150]: info: RA output:
(drbd_files:0:start:stderr) local: 586: state': bad variable name
May 4 15:09:11 maisy drbd[4491]: [4558]: ERROR: r0: Called drbdadm -c
/etc/drbd.conf state r0
May 4 15:09:11 maisy drbd[4491]: [4559]: ERROR: r0: Exit code 2
(10) Modified /usr/lib/ocf/resource.d/heartbeat/drbd to use "role"
rather than "state".
(11) Restarted heartbeat: /etc/init.d/heartbeat restart
(12) Observed that there is no longer such an error in the system logs:
May 4 15:28:06 maisy drbd[6359]: [6370]: DEBUG: r0: Calling drbdadm -c
/etc/drbd.conf role r0
May 4 15:28:06 maisy drbd[6359]: [6377]: DEBUG: r0: Exit code 0
May 4 15:28:06 maisy drbd[6359]: [6378]: DEBUG: r0: Command output:
Secondary/Unknown
--
heartbeat incompatible with drbd8-utils in jaunty
https://bugs.launchpad.net/bugs/369124
You received this bug notification because you are a member of Ubuntu
High Availability Team, which is a bug assignee.
Status in “heartbeat” source package in Ubuntu: Incomplete
Bug description:
Binary package hint: heartbeat
The version of drbd shipped with jaunty now outputs a warning when using
"state" with drbdadm:
'drbdadm state' is deprecated, use 'drbdadm role' instead.
Unfortunately when heartbeat sees this warning it thinks drbdadm has failed.
The result is that heartbeat cannot be used with drbd in jaunty.
There is a discussion on the heartbeat users list:
http://www.gossamer-threads.com/lists/linuxha/users/54352
_______________________________________________
Mailing list: https://launchpad.net/~ubuntu-ha
Post to : [email protected]
Unsubscribe : https://launchpad.net/~ubuntu-ha
More help : https://help.launchpad.net/ListHelp