DLM
Linux kernel currently lacks a generic cluster framework. Different clustering solutions like GFS and OCFS2 use their own internode communication framework. GFS uses SCTP and OCFS2 uses TCP as their transport protocol.
DLM: A distributed lock manager(DLM) is a common component of many clustering filesystem and databases. DLMs provide cluster-wide locking services which are fault-tolerant and scalable.
In a typical DLM, mastery(owenership) of locks is distributed to different nodes in the cluster, so that the locking resource burden is distributed across all the nodes in the cluster. One node is assigned the job of keeping track of which nodes master which locks, so that if a node does not know where a lock is being mastered, it can find that out. To minimize this extra overhead, each node keeps a cache of lock location information it has obtained from the lock location service. One of the key issue in DLM implementation is recovery, when a node dies, all locks it was holding are released and the state of all locks it was mastering have to be recovered.
As a result, each node in the cluster has to keep track of all the locks it is holding so that it can provide this information to the new lock master when recovering the state of locks mastered by the nodes which left the cluster. Some DLM implementation will migrate lock mastery to a new node if that new node is performing the majority of the lock operations on a particular lock.