aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJiri Denemark <jdenemar@redhat.com>2012-09-17 15:18:57 +0200
committerJiri Denemark <jdenemar@redhat.com>2012-09-21 12:23:01 +0200
commit98be861b4da5b1e2d228b7d041df74f797ed2596 (patch)
treefe8c1e540ea8a5333271d1e38a1ba84c17bb4927 /src
parentImprove some debugging log messages in LXC mount setup (diff)
downloadlibvirt-98be861b4da5b1e2d228b7d041df74f797ed2596.tar.gz
libvirt-98be861b4da5b1e2d228b7d041df74f797ed2596.tar.bz2
libvirt-98be861b4da5b1e2d228b7d041df74f797ed2596.zip
locking: Remove README file in favor of internals/locking.html
The README file seems to be a leftover from some previous version of locking driver. It is not consistent with what the code does nor is it consistent with existing documentation in internals/locking.html.
Diffstat (limited to 'src')
-rw-r--r--src/locking/README165
1 files changed, 0 insertions, 165 deletions
diff --git a/src/locking/README b/src/locking/README
deleted file mode 100644
index da2a8f83c..000000000
--- a/src/locking/README
+++ /dev/null
@@ -1,165 +0,0 @@
- Using the Lock Manager APIs
- ===========================
-
-This file describes how to use the lock manager APIs.
-All the guest lifecycle sequences here have higher
-level wrappers provided by the 'domain_lock.h' API,
-which simplify thue usage
-
-At libvirtd startup:
-
- plugin = virLockManagerPluginLoad("sync-manager");
-
-
-At libvirtd shtudown:
-
- virLockManagerPluginUnload(plugin)
-
-
-At guest startup:
-
- manager = virLockManagerNew(plugin,
- VIR_LOCK_MANAGER_OBJECT_DOMAIN,
- 0);
-
- virLockManagerSetParameter(manager, "id", id);
- virLockManagerSetParameter(manager, "uuid", uuid);
- virLockManagerSetParameter(manager, "name", name);
-
- foreach disk
- virLockManagerRegisterResource(manager,
- VIR_LOCK_MANAGER_RESOURCE_TYPE_DISK,
- disk.path,
- ..flags...);
-
- if (!virLockManagerAcquireObject(manager))
- abort..
-
- run QEMU
-
-
-At guest shutdown:
-
- ...send QEMU 'quit' monitor command, and/or kill(qemupid)...
-
- if (!virLockManagerShutdown(manager))
- kill(supervisorpid); /* XXX or leave it running ??? */
-
- virLockManagerFree(manager);
-
-
-
-At libvirtd restart with running guests:
-
- foreach still running guest
- manager = virLockManagerNew(driver,
- VIR_LOCK_MANAGER_START_DOMAIN,
- VIR_LOCK_MANAGER_NEW_ATTACH);
- virLockManagerSetParameter(manager, "id", id);
- virLockManagerSetParameter(manager, "uuid", uuid);
- virLockManagerSetParameter(manager, "name", name);
-
- if (!virLockManagerGetChild(manager, &qemupid))
- kill(supervisorpid); /* XXX or leave it running ??? */
-
-
-
-With disk hotplug:
-
- if (virLockManagerAcquireResource(manager,
- VIR_LOCK_MANAGER_RESOURCE_TYPE_DISK,
- disk.path
- ..flags..))
- ...abort hotplug attempt ...
-
- ...hotplug the device...
-
-
-
-With disk unhotplug:
-
- ...hotunplug the device...
-
- if (virLockManagerReleaseResource(manager,
- VIR_LOCK_MANAGER_RESOURCE_TYPE_DISK,
- disk.path
- ..flags..))
- ...log warning ...
-
-
-
-During migration:
-
- 1. On source host
-
- if (!virLockManagerPrepareMigrate(manager, hosturi))
- ..don't start migration..
-
- 2. On dest host
-
- manager = virLockManagerNew(driver,
- VIR_LOCK_MANAGER_START_DOMAIN,
- VIR_LOCK_MANAGER_NEW_MIGRATE);
- virLockManagerSetParameter(manager, "id", id);
- virLockManagerSetParameter(manager, "uuid", uuid);
- virLockManagerSetParameter(manager, "name", name);
-
- foreach disk
- virLockManagerRegisterResource(manager,
- VIR_LOCK_MANAGER_RESOURCE_TYPE_DISK,
- disk.path,
- ..flags...);
-
- char **supervisorargv;
- int supervisorargc;
-
- supervisor = virLockManagerGetSupervisorPath(manager);
- virLockManagerGetSupervisorArgs(&argv, &argc);
-
- cmd = qemuBuildCommandLine(supervisor, supervisorargv, supervisorargv);
-
- supervisorpid = virCommandExec(cmd);
-
- if (!virLockManagerGetChild(manager, &qemupid))
- kill(supervisorpid); /* XXX or leave it running ??? */
-
- 3. Initiate migration in QEMU on source and wait for completion
-
- 4a. On failure
-
- 4a1 On target
-
- virLockManagerCompleteMigrateIn(manager,
- VIR_LOCK_MANAGER_MIGRATE_CANCEL);
- virLockManagerShutdown(manager);
- virLockManagerFree(manager);
-
- 4a2 On source
-
- virLockManagerCompleteMigrateIn(manager,
- VIR_LOCK_MANAGER_MIGRATE_CANCEL);
-
- 4b. On succcess
-
-
- 4b1 On target
-
- virLockManagerCompleteMigrateIn(manager, 0);
-
- 42 On source
-
- virLockManagerCompleteMigrateIn(manager, 0);
- virLockManagerShutdown(manager);
- virLockManagerFree(manager);
-
-
-Notes:
-
- - If a lock manager impl does just VM level leases, it can
- ignore all the resource paths at startup.
-
- - If a lock manager impl does not support migrate
- it can return an error from all migrate calls
-
- - If a lock manger impl does not support hotplug
- it can return an error from all resource acquire/release calls