Andrei Borzenkov <arvidj...@gmail.com> writes:

[...]

>> Now I have one issue, when the bare metal host on which the VM is
>> running die, the VM is lost and can not be fenced.
>> 
>> Is there a way to make pacemaker ACK the fencing of the VM running on a
>> host when the host is fenced itself?
>> 
>
> Yes, you can define multiple stonith agents and priority between them.
>
> http://clusterlabs.org/wiki/Fencing_topology

Hello,

If I understand correctly, fencing topology is the way to have several
fencing devices for a node and try them consecutively until one works.

In my configuration, I group the VM stonith agents with the
corresponding VM resource, to make them move together[1].

Here is my use case:

1. Resource ONE-Frontend-Group runs on nebula1
2. nebula1 is fenced
3. node one-fronted can not be fenced

Is there a way to say that the life on node one-frontend is related to
the state of resource ONE-Frontend?

In which case when the node nebula1 is fenced, pacemaker should be aware that
resource ONE-Frontend is not running any more, so node one-frontend is
OFFLINE and not UNCLEAN.

Regards.

Footnotes: 
[1]  http://oss.clusterlabs.org/pipermail/pacemaker/2014-October/022671.html

-- 
Daniel Dehennin
Récupérer ma clef GPG: gpg --recv-keys 0xCC1E9E5B7A6FE2DF
Fingerprint: 3E69 014E 5C23 50E8 9ED6  2AAD CC1E 9E5B 7A6F E2DF

node $id="1084811078" nebula1
node $id="1084811079" nebula2
node $id="1084811080" nebula3
node $id="1084811118" quorum \
        attributes standby="on"
node $id="1084811119" one-frontend
primitive ONE-Datastores ocf:heartbeat:Filesystem \
        params device="/dev/one-fs/datastores" 
directory="/var/lib/one/datastores" fstype="gfs2" \
        op start interval="0" timeout="90" \
        op stop interval="0" timeout="100" \
        op monitor interval="20" timeout="40"
primitive ONE-Frontend ocf:heartbeat:VirtualDomain \
        params config="/var/lib/one/datastores/one/one.xml" \
        op start interval="0" timeout="90" \
        op stop interval="0" timeout="100" \
        utilization cpu="1" hv_memory="1024"
primitive ONE-vg ocf:heartbeat:LVM \
        params volgrpname="one-fs" \
        op start interval="0" timeout="30" \
        op stop interval="0" timeout="30" \
        op monitor interval="60" timeout="30"
primitive Quorum-Node ocf:heartbeat:VirtualDomain \
        params config="/var/lib/libvirt/qemu/pcmk/quorum.xml" \
        op start interval="0" timeout="90" \
        op stop interval="0" timeout="100" \
        utilization cpu="1" hv_memory="1024"
primitive Stonith-ONE-Frontend stonith:external/libvirt \
        params hostlist="one-frontend" hypervisor_uri="qemu:///system" 
pcmk_host_list="one-frontend" pcmk_host_check="static-list" \
        op monitor interval="30m"
primitive Stonith-Quorum-Node stonith:external/libvirt \
        params hostlist="quorum" hypervisor_uri="qemu:///system" 
pcmk_host_list="quorum" pcmk_host_check="static-list" \
        op monitor interval="30m"
primitive Stonith-nebula1-IPMILAN stonith:external/ipmi \
        params hostname="nebula1-ipmi" ipaddr="XXX.XXX.XXX.XXX" 
interface="lanplus" userid="USER" passwd="PASSWORD1" passwd_method="env" 
priv="operator" pcmk_host_list="nebula1" pcmk_host_check="static-list" \
        op monitor interval="30m" \
        meta target-role="Started"
primitive Stonith-nebula2-IPMILAN stonith:external/ipmi \
        params hostname="nebula2-ipmi" ipaddr="YYY.YYY.YYY.YYY" 
interface="lanplus" userid="USER" passwd="PASSWORD2" passwd_method="env" 
priv="operator" pcmk_host_list="nebula2" pcmk_host_check="static-list" \
        op monitor interval="30m" \
        meta target-role="Started"
primitive Stonith-nebula3-IPMILAN stonith:external/ipmi \
        params hostname="nebula3-ipmi" ipaddr="ZZZ.ZZZ.ZZZ.ZZZ" 
interface="lanplus" userid="USER" passwd="PASSWORD3" passwd_method="env" 
priv="operator" pcmk_host_list="nebula3" pcmk_host_check="static-list" \
        op monitor interval="30m" \
        meta target-role="Started"
primitive clvm ocf:lvm2:clvmd \
        op start interval="0" timeout="90" \
        op stop interval="0" timeout="100" \
        op monitor interval="60" timeout="90"
primitive dlm ocf:pacemaker:controld \
        op start interval="0" timeout="90" \
        op stop interval="0" timeout="100" \
        op monitor interval="60" timeout="60"
group ONE-Frontend-Group Stonith-ONE-Frontend ONE-Frontend \
        meta target-role="Started"
group ONE-Storage dlm clvm ONE-vg ONE-Datastores
group Quorum-Node-Group Stonith-Quorum-Node Quorum-Node \
        meta target-role="Started"
clone ONE-Storage-Clone ONE-Storage \
        meta interleave="true" target-role="Started"
location Nebula1-does-not-fence-itslef Stonith-nebula1-IPMILAN \
        rule $id="Nebula1-does-not-fence-itslef-rule" 50: #uname eq nebula2 \
        rule $id="Nebula1-does-not-fence-itslef-rule-0" 40: #uname eq nebula3
location Nebula2-does-not-fence-itslef Stonith-nebula2-IPMILAN \
        rule $id="Nebula2-does-not-fence-itslef-rule" 50: #uname eq nebula3 \
        rule $id="Nebula2-does-not-fence-itslef-rule-0" 40: #uname eq nebula1
location Nebula3-does-not-fence-itslef Stonith-nebula3-IPMILAN \
        rule $id="Nebula3-does-not-fence-itslef-rule" 50: #uname eq nebula1 \
        rule $id="Nebula3-does-not-fence-itslef-rule-0" 40: #uname eq nebula2
location Nodes-with-ONE-Storage ONE-Storage-Clone \
        rule $id="Nodes-with-ONE-Storage-rule" inf: #uname eq nebula1 \
        rule $id="Nodes-with-ONE-Storage-rule-0" inf: #uname eq nebula2 \
        rule $id="Nodes-with-ONE-Storage-rule-1" inf: #uname eq nebula3 \
        rule $id="Nodes-with-ONE-Storage-rule-2" inf: #uname eq one-frontend
location ONE-Frontend-run-on-hypervisor ONE-Frontend-Group \
        rule $id="ONE-Frontend-run-on-hypervisor-rule" 40: #uname eq nebula1 \
        rule $id="ONE-Frontend-run-on-hypervisor-rule-0" 30: #uname eq nebula3 \
        rule $id="ONE-Frontend-run-on-hypervisor-rule-1" 20: #uname eq nebula2
location Quorum-Node-run-on-nebula2 Quorum-Node-Group \
        rule $id="Quorum-Node-run-on-nebula2-rule" inf: #uname eq nebula2
order Frontend-after-Storage inf: ONE-Storage-Clone ONE-Frontend-Group
property $id="cib-bootstrap-options" \
        dc-version="1.1.10-42f2063" \
        cluster-infrastructure="corosync" \
        symmetric-cluster="false" \
        stonith-enabled="true" \
        stonith-timeout="30" \
        last-lrm-refresh="1415377825"
rsc_defaults $id="rsc-options" \
        resource-stickiness="100"

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Pacemaker mailing list: Pacemaker@oss.clusterlabs.org
http://oss.clusterlabs.org/mailman/listinfo/pacemaker

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org

Reply via email to