[Linux-HA] Question: How to configure crm for correct use of drbd
ocf RA
Lukáš Pecha
pecha at marconi.ttc.cz
Wed Jan 2 05:43:30 MST 2008
Hello,
I am trying to setup correctly the drbd ocf resource agent, but it still
doesn't do the things I want.
I was following the setups described at
http://linux-ha.org/v2/Concepts/MultiState and at
http://wiki.linux-ha.org/DRBD/HowTov2.
I have two nodes and I am using drbd to replicate disks of xen virtual
machines, so I need only two resource agents - DRBD and Xen.
When I use drbddisk and Xen RAs, it's all right - I define only a few
things:
1) group of primitives drbdisk and xen
2) rule drdbdisk before xen
3) preferred place for group set to infinity
And it runs all right - I have resource stickiness set to zero, so when
I change preffered place, it stops xen domain at first and then set drbd
resource to secondary state. And it immediatelly starts the whole group
on the other node.
That is the behavior I want to achieve with OCF version of drbd RA, but
it still don't work for me.
Here is the constraints part of my cib.xml (full cib is at the end of mail):
<constraints>
<rule id="rule_pokus2_likes_nodeX" role="master" score="INFINITY">
<expression attribute="#uname" id="sdfhdhfbhjfbvj"
operation="eq" value="node1"/>
</rule>
</rsc_location>
<rsc_order id="pokus2_before_pokus3" from="pokus3" action="start"
to="pokus2" to_action="promote"/>
<rsc_colocation id="pokus3_on_pokus2" to="pokus2"
to_role="master" from="pokus3" score="infinity"/>
</constraints>
As you can see, I tell the cluster, that I want node1 to be the master
for drbd (resource pokus2). Then I add rules, that xen domain (pokus3)
can run only on node, which have drbd resource in primary state.
But I still can't figure a way, how to move the resources to the other
node just by changing the value of preferred node - grouping of the
resources don't work for combination of primitive and master/slave
resource. When I shut down heartbeat (or use crm_stanby), it correctly
shut down the resources and run them on the other node, that's fine. But
I want to move the whole group of resources at one time, not manually
step-by-step like shut down the xen domain, promote the other node to be
the master, than run the xen domain again... I would like to add some
more resources to these two, like IPaddr, and I want to be able to move
the whole group of them.
If it works with drbddisk, there must be a way how to use the ocf drbd
RA....
Thanks a lot for your suggestions, happy new year and sorry for my
English, it's not my native language :o)
Luke
Here is the whole cib of mine (it's simplified version, just with the
two resources I need the most)
<cib admin_epoch="0" have_quorum="true" ignore_dtd="false"
num_peers="2" cib_feature_revision="1.3" ccm_transition="2"
generated="true" dc_uuid="8ac3d88f-8d80-467c-b39b-7ab56b8e9038"
epoch="26" num_updates="413" cib-last-written="Wed Jan 2 09:46:40 2008">
<configuration>
<crm_config>
<cluster_property_set id="cib-bootstrap-options">
<attributes>
<nvpair name="last-lrm-refresh"
id="cib-bootstrap-options-last-lrm-refresh" value="1198245924"/>
</attributes>
</cluster_property_set>
</crm_config>
<nodes>
<node id="8ac3d88f-8d80-467c-b39b-7ab56b8e9038" uname="node2"
type="normal"/>
<node id="caea1435-ba8a-4f05-9a3b-d26c458bd767" uname="node1"
type="normal"/>
</nodes>
<resources>
<master_slave id="pokus2">
<instance_attributes id="pokus2_instance_attrs">
<attributes>
<nvpair id="pokus2_clone_max" name="clone_max" value="2"/>
<nvpair id="pokus2_clone_node_max" name="clone_node_max"
value="1"/>
<nvpair id="pokus2_master_max" name="master_max" value="1"/>
<nvpair id="pokus2_master_node_max" name="master_node_max"
value="1"/>
<nvpair id="pokus2_notify" name="notify" value="yes"/>
<nvpair id="pokus2_global" name="globally_unique" value="no"/>
<nvpair name="target_role" id="pokus2_target_role"
value="stopped"/>
</attributes>
</instance_attributes>
<primitive class="ocf" type="drbd" provider="heartbeat"
id="pokus1">
<instance_attributes id="pokus1_instance_attrs">
<attributes>
<nvpair name="target_role" id="pokus1_target_role"
value="stopped"/>
<nvpair id="f370e1ed-b9ed-44e7-803d-b472b41363b5"
name="drbd_resource" value="drbd0"/>
</attributes>
</instance_attributes>
</primitive>
</master_slave>
<primitive class="ocf" type="Xen" provider="heartbeat" id="pokus3">
<instance_attributes id="pokus3_instance_attrs">
<attributes>
<nvpair name="target_role" id="pokus3_target_role"
value="stopped"/>
<nvpair id="rfegnklerhgjb" name="xmfile"
value="/etc/xen/vm/pokus"/>
</attributes>
</instance_attributes>
<operations>
<op id="wehjfbrgnjke" name="stop" timeout="75"/>
</operations>
</primitive>
</resources>
<constraints>
<rule id="rule_pokus2_likes_nodeX" role="master" score="INFINITY">
<expression attribute="#uname" id="sdfhdhfbhjfbvj"
operation="eq" value="node1"/>
</rule>
</rsc_location>
<rsc_order id="pokus2_before_pokus3" from="pokus3" action="start"
to="pokus2" to_action="promote"/>
<rsc_colocation id="pokus3_on_pokus2" to="pokus2"
to_role="master" from="pokus3" score="infinity"/>
</constraints>
</configuration>
</cib>
More information about the Linux-HA
mailing list