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. --- merge 10 and 18 of v1, rename SAVE_DIRECT to BYPASS_CACHE tools/libvirt-guests.init.sh | 10 ++++++++-- tools/libvirt-guests.sysconf | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/tools/libvirt-guests.init.sh b/tools/libvirt-guests.init.sh index 30f957a..367177e 100644 --- a/tools/libvirt-guests.init.sh +++ b/tools/libvirt-guests.init.sh @@ -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 diff --git a/tools/libvirt-guests.sysconf b/tools/libvirt-guests.sysconf index 37b258e..9b8b64f 100644 --- a/tools/libvirt-guests.sysconf +++ b/tools/libvirt-guests.sysconf @@ -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 -- 1.7.4.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list