[ClusterLabs] DLM fencing

Eric Ren zren at suse.com
Tue Mar 29 04:34:25 EDT 2016

Hello Ferenc,

Just want to communicate thoughts, AFAIC.

> I've ment to explore this connection for long, but never found much
> useful material on the subject.  How does DLM fencing fit into the
> modern Pacemaker architecture?  Fencing is a confusing topic in itself

Yes, unfortunately, maybe the best material is source code so far, such 
as resource agent(ocf:pacemaker:controld) scripts 
(/usr/lib/ocf/resource.d/pacemaker/controld), and libdlm/dlm_controld/, etc.

> already (fence_legacy, fence_pcmk, stonith, stonithd, stonith_admin),
> then dlm_controld can use dlm_stonith to proxy fencing requests to
> Pacemaker, and it becomes hopeless... :)

What you said about dlm_stonith is true. It just invoke an API of pcmk 
to tell pacemaker who and when should be fenced. Pacemaker do the horse 
work, according to what fencing method is used, I guess the fencing 
request will finally reach its destination - a resource agent for fencing.

I'm just starting learning about the way these components cooperate 
together. Could you share any updates if you've learn something? I would 
be grateful;-)

> I'd be grateful for a pointer to a good overview document, or a quick
> sketch if you can spare the time.  To invoke some concrete questions:
> When does DLM fence a node?  Is it necessary only when there's no

When fencing here is limited within DLM, the time DLM will actively make 
request to fence is when uncontrolled lockspace has been found in 
kernel. Only a rebooting can make that node clean.

> resource manager running on the cluster?  Does it matter whether
> dlm_controld is run as a standalone daemon or as a controld resource?

According DLM's man pages and codes I've read, DLM provide us two 
options: daemon(I guess it's short of dlm_daemon) fence, and 
dlm_stonith. Daemon fencing is with DLM itself, which have 
configuration(man dlm.conf) and lots of 
code(dlm/dlm_controld/{fence*|daemon_cpg.c}) to handle fencing. But I 
never configured DLM fencing stuff, as defalt, it (may) use dlm_stonith 
as proxy, then pacemaker things...

So I think corosync that provide membership knowledge is a must for DLM, 
but pacemaker is optional if DLM fencing has been configured and you 
don't want other RA, which I also never tried;-)

> Wouldn't Pacemaker fence a failing node itself all the same?  Or is
> dlm_stonith for the case when only the stonithd component of Pacemaker
> is active somehow?

Please correct me if there's any problem.


More information about the Users mailing list