Setting up OCFS2 in Pacemaker requires configuring the Pacemaker DLM, the O2CB lock manager for OCFS2, and an OCFS2 filesystem itself.
OCFS2 with Pacemaker integration is supported on Debian (
squeeze-backportsand up) and Ubuntu (10.04 LTS and up). You'll need the
Fencing is imperative. Get a proper fencing/STONITH configuration set up and test it thoroughly.
Running OCFS2/Pacemaker integration requires that you load Corosync with the
openais_ckptservice enabled. The service definition is in the file
openaispackage installs by default. Make sure you did not accidentally delete or disable this file.
The Pacemaker configuration, shown here in crm shell syntax, normally puts all the required resources into one cloned group. Have a look at this configuration snippet:
primitive p_dlm_controld ocf:pacemaker:controld \ op start interval="0" timeout="90" \ op stop interval="0" timeout="100" \ op monitor interval="10" primitive p_o2cb ocf:pacemaker:o2cb \ op start interval="0" timeout="90" \ op stop interval="0" timeout="100" \ op monitor interval="10" primitive p_fs_ocfs2 ocf:heartbeat:Filesystem \ params device="<your device path>" \ directory="<your mount point>" \ fstype="ocfs2" \ meta target-role=Stopped \ op monitor interval="10" group g_ocfs2 p_dlm_controld p_o2cb p_fs_ocfs2 clone cl_ocfs2 g_ocfs2 \ meta interleave="true"
Why keep the filesystem stopped?
Because you probably either don't have a configured OCFS2 filesystem on your device yet, or your ran mkfs.ocfs2 when the Pacemaker stack wasn't running. In either of those two cases, mount.ocfs2 will refuse to mount the filesystem.
Thus, fire up your DLM and the o2cb process like the above configuration does, and then:
If you haven't got a filesystem yet, run
mkfs.ocfs2on your device, or
If you do already have one, run
tunefs.ocfs2 --update-cluster-stack <device>.
Then when that's done, run
crm resource start p_fs_ocfs2 and your
filesystem should happily mount on all nodes.
This article originally appeared on the
hastexo.com website (now defunct).