Farkas Levente wrote:
> Daniel P. Berrange wrote:
>> On Mon, Oct 08, 2007 at 04:27:00PM +0200, Farkas Levente wrote:
>>> Daniel P. Berrange wrote:
>>>> On Sat, Oct 06, 2007 at 02:29:39PM +0200, Farkas Levente wrote:
>>>>> hi,
>>>>> if i use xen with xendomain it's possible to save and restore guest
>>>>> state. if i use libvirt it's not working (at least by default with kvm).
>>>>> i mean if i stop or restart libvirtd all guests a stopped and even if i
>>>>> restart libvirtd i've to start all guests manually. imho this's a very
>>>>> essential feature. what is the reason this not working with libvirtd?:
>>>>> - this feature is missing from libvirtd? or
>>>> You can set KVM/QEMU guests to autostart with
>>>>
>>>> virsh autostart {NAME|ID|UUID}
>>> thanks, but go back to my first question. afais /etc/init.d/libvirtd
>>> simple kill libvirtd, but virsh has a command save/restore. wouldn't be
>>> it's much better to save guest's state on stop, restore on start in
>>> stead of start if there is a saved state. i can send a patch to the
>>> /etc/init.d/libvirtd, just would like to know is there any reason it's
>>> not that way? anyway xendomains do it in the save way.
>> The save/restore capability is currently only available in the KVM-ified
>> version of QEMU. We could make it try to save, and failing that destroy
>> the guest. The xendomains scripts isn't a good model to emulate though.
>> The autostart/kill functionality is part of the libvirt daemon itself. Any
>> save/restore capability would be best integrated there
>
> for those who like to save and restore guest at libvirtd stop and start
> i attached a patch we use to for it. it's based on xen's sripts.
> LIBVIRTD_AUTO_ONLY still not implemented but the sysconfig file already
> contains it. if you like to set the default behavior to the current then
> set LIBVIRTD_RESTORE to false.
> imho it'd be useful to include in the upstream libvirtd too.
>
and the patch:-)
--
Levente "Si vis pacem para bellum!"
--- /etc/init.d/libvirtd.ori 2007-10-17 13:57:29.000000000 +0200
+++ /etc/init.d/libvirtd 2007-10-19 13:30:26.000000000 +0200
@@ -45,6 +45,7 @@
then
LIBVIRTD_CONFIG_ARGS="--config $LIBVIRTD_CONFIG"
fi
+[ "$LIBVIRTD_RESTORE" != "true" ] || [ -d $LIBVIRTD_SAVE ] || mkdir -p $LIBVIRTD_SAVE
RETVAL=0
@@ -53,12 +54,25 @@
daemon --check $SERVICE $PROCESS --daemon $LIBVIRTD_CONFIG_ARGS $LIBVIRTD_ARGS
RETVAL=$?
echo
+ if [ $RETVAL -eq 0 -a "$LIBVIRTD_RESTORE" = "true" ]; then
+ for i in `ls $LIBVIRTD_SAVE`; do
+ echo "Restore guest from: $i"
+ virsh restore $LIBVIRTD_SAVE/$i >/dev/null
+ rm $LIBVIRTD_SAVE/$i
+ done
+ fi
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SERVICE
}
stop() {
+ if [ "$LIBVIRTD_RESTORE" = "true" ]; then
+ for i in `virsh list|grep running|awk '{ print $1 }'`; do
+ NAME="`virsh list|grep " $i "|awk '{ print $2 }'`"
+ echo "Save guest: $NAME"
+ virsh save $i $LIBVIRTD_SAVE/$NAME >/dev/null
+ done
+ fi
echo -n $"Stopping $SERVICE daemon: "
-
killproc $PROCESS
RETVAL=$?
echo
--- /etc/sysconfig/libvirtd.ori 2007-10-17 13:57:24.000000000 +0200
+++ /etc/sysconfig/libvirtd 2007-10-19 13:54:12.000000000 +0200
@@ -4,3 +4,33 @@
# Listen for TCP/IP connections
# NB. must setup TLS/SSL keys prior to using this
#LIBVIRTD_ARGS="--listen"
+
+## Type: string
+## Default: /var/lib/libvirt/save
+#
+# Directory to save running guests to when the system (host) is
+# shut down or libvirtd stop. Will also be used to restore guests from if
+# LIBVIRTD_RESTORE is set (see below). Leave empty to disable guest saving
+# on shutdown (e.g. because you rather shut guests down).
+# If guest saving does succeed, SHUTDOWN will not be executed.
+#
+LIBVIRTD_SAVE=/var/lib/libvirt/save
+
+## Type: boolean
+## Default: true
+#
+# This variable determines whether saved guests from LIBVIRTD_SAVE
+# will be restored on system startup.
+#
+LIBVIRTD_RESTORE=true
+
+## Type: boolean
+## Default: false
+#
+# If this variable is set to "true", only the guests started via config
+# files in autostart will be treated according to LIBVIRTD_SYSRQ,
+# LIBVIRTD_MIGRATE, LIBVIRTD_SAVE, LIBVIRTD_SHUTDOWN; otherwise
+# all running guests will be.
+# Note that the name matching is somewhat fuzzy.
+#
+LIBVIRTD_AUTO_ONLY=false
--
Libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list