<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><tt>Hi,<br>
</tt></p>
<p><tt>Currently the lock manager infrastructure has implementation
of nop, sanlock</tt><tt><br>
</tt><tt>and lockd. The first do nothing, while sanlock and lockd
all requires the share</tt><tt><br>
</tt><tt>stroage, and lockd is not provided fence mechanism,
sanlock would force to</tt><tt><br>
</tt><tt>restart OS when stopping daemon.</tt><tt><br>
</tt><tt><br>
</tt><tt>The first half of 2017, QEMU introduced the `share-rw`
and `file.locking` to</tt><tt><br>
</tt><tt>handle a problem:
<a class="moz-txt-link-freetext" href="https://bugzilla.redhat.com/show_bug.cgi?id=1080152">https://bugzilla.redhat.com/show_bug.cgi?id=1080152</a> , someone</tt><tt><br>
</tt><tt>said:</tt><tt><br>
</tt><tt><br>
</tt><tt> There is also scope for creating new plugins for
libvirt to use other</tt><tt><br>
</tt><tt> mechanism if someone comes up with other ideas.</tt><tt><br>
</tt><tt><br>
</tt><tt>So what about dlm-corosync?</tt><tt><br>
</tt><tt><br>
</tt><tt>DLM(distributed lock manage) is implemented by kernel, it
provides some userspace</tt><tt><br>
</tt><tt>API by "libdlm" to lock/unlock resource, using these API
need a daemon named</tt><tt><br>
</tt><tt>dlm_controld. "Corosync" is cluster messager layer using
TCP or UDP, responsible</tt><tt><br>
</tt><tt>for members management in cluster. dlm_controld and
corosync are formed a kind of</tt><tt><br>
</tt><tt>lock which could be used in cluster. And there is another
component named "sbd"</tt><tt><br>
</tt><tt>providing fence mechanism, it's not necessary,
`dlm_controld -f 0` would disable it.</tt><tt><br>
</tt><tt><br>
</tt><tt>As for implement, I think we could make use of virtlockd
daemon, just add some</tt><tt><br>
</tt><tt>RPC callback in micro-on.</tt></p>
<pre class="moz-signature" cols="72"><font size="-1">--
Regards
River</font></pre>
</body>
</html>