2013-05-03 14:25:37 +00:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
2011-06-24 12:50:08 +00:00
|
|
|
<body>
|
2015-02-13 17:02:44 +00:00
|
|
|
<h1>Virtual machine lock manager</h1>
|
2011-06-24 12:50:08 +00:00
|
|
|
|
|
|
|
<ul id="toc"></ul>
|
|
|
|
|
|
|
|
<p>
|
2015-02-13 17:02:44 +00:00
|
|
|
Libvirt includes a framework for ensuring mutual exclusion
|
|
|
|
between virtual machines using host resources. Typically
|
|
|
|
this is used to prevent two VM processes from having concurrent
|
|
|
|
write access to the same disk image, as this would result in
|
|
|
|
data corruption if the guest was not using a cluster
|
|
|
|
aware filesystem.
|
2011-06-24 12:50:08 +00:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2><a name="plugins">Lock manager plugins</a></h2>
|
|
|
|
|
|
|
|
<p>
|
2015-02-13 17:02:44 +00:00
|
|
|
The lock manager framework has a pluggable architecture,
|
|
|
|
to allow different locking technologies to be used.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<dl>
|
|
|
|
<dt>nop</dt>
|
|
|
|
<dd>This is a "no op" implementation which does absolutely
|
|
|
|
nothing. This can be used if mutual exclusion between
|
|
|
|
virtual machines is not required, or if it is being
|
|
|
|
solved at another level in the management stack.</dd>
|
2015-02-16 11:58:32 +00:00
|
|
|
<dt><a href="locking-lockd.html">lockd</a></dt>
|
2015-02-13 17:02:44 +00:00
|
|
|
<dd>This is the current preferred implementation shipped
|
|
|
|
with libvirt. It uses the <code>virtlockd</code> daemon
|
|
|
|
to manage locks using the POSIX fcntl() advisory locking
|
|
|
|
capability. As such it requires a shared filesystem of
|
|
|
|
some kind be accessible to all hosts which share the
|
|
|
|
same image storage.</dd>
|
|
|
|
<dt><a href="locking-sanlock.html">sanlock</a></dt>
|
|
|
|
<dd>This is an alternative implementation preferred by
|
|
|
|
the oVirt project. It uses a disk paxos algorithm for
|
|
|
|
maintaining continuously renewed leases. In the default
|
|
|
|
setup it requires some shared filesystem, but it is
|
|
|
|
possible to use it in a manual mode where the management
|
|
|
|
application creates leases in SAN storage volumes.
|
|
|
|
</dd>
|
|
|
|
</dl>
|
2011-06-24 12:50:08 +00:00
|
|
|
</body>
|
|
|
|
</html>
|