]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
save: support bypass-cache flag in libvirt-guests init script
authorEric Blake <eblake@redhat.com>
Thu, 14 Jul 2011 23:22:53 +0000 (17:22 -0600)
committerEric Blake <eblake@redhat.com>
Thu, 21 Jul 2011 22:24:09 +0000 (16:24 -0600)
libvirt-guests is a perfect use case for bypassing the file system
cache - lots of filesystem traffic done at system shutdown, where
caching is pointless, and startup, where reading large files only
once just gets in the way.  Make this a configurable option in the
init script, but defaulting to existing behavior.

* tools/libvirt-guests.sysconf (BYPASS_CACHE): New variable.
* tools/libvirt-guests.init.sh (start, suspend_guest): Use it.

tools/libvirt-guests.init.sh
tools/libvirt-guests.sysconf

index 30f957aa5a5a1dcbe9c4412c8a1a622bade79895..367177ec53612d51c008164c34ebffb020b8af3d 100644 (file)
@@ -43,6 +43,7 @@ ON_BOOT=start
 ON_SHUTDOWN=suspend
 SHUTDOWN_TIMEOUT=0
 START_DELAY=0
+BYPASS_CACHE=0
 
 test -f "$sysconfdir"/sysconfig/libvirt-guests &&
     . "$sysconfdir"/sysconfig/libvirt-guests
@@ -143,6 +144,8 @@ start() {
     fi
 
     isfirst=true
+    bypass=
+    test "x$BYPASS_CACHE" = x0 || bypass=--bypass-cache
     while read uri list; do
         configured=false
         set -f
@@ -172,7 +175,8 @@ start() {
                     else
                         sleep $START_DELAY
                     fi
-                    retval run_virsh "$uri" start "$name" >/dev/null && \
+                    retval run_virsh "$uri" start $bypass "$name" \
+                        >/dev/null && \
                     gettext "done"; echo
                 fi
             fi
@@ -190,8 +194,10 @@ suspend_guest()
 
     name=$(guest_name "$uri" "$guest")
     label=$(eval_gettext "Suspending \$name: ")
+    bypass=
+    test "x$BYPASS_CACHE" = x0 || bypass=--bypass-cache
     printf %s "$label"
-    run_virsh "$uri" managedsave "$guest" >/dev/null &
+    run_virsh "$uri" managedsave $bypass "$guest" >/dev/null &
     virsh_pid=$!
     while true; do
         sleep 1
index 37b258ef529fccf912eaa5978db8ec26adeb0b1b..9b8b64fb24c1d393ea01747478dcfd9820db0d52 100644 (file)
@@ -25,3 +25,8 @@
 
 # number of seconds we're willing to wait for a guest to shut down
 #SHUTDOWN_TIMEOUT=0
+
+# If non-zero, try to bypass the file system cache when saving and
+# restoring guests, even though this may give slower operation for
+# some file systems.
+#BYPASS_CACHE=0