From: Tomoki Sekiyama <tomoki.sekiyama.qu@hitachi.com>
To: lcapitulino@redhat.com
Cc: qemu-devel@nongnu.org, mdroth@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH v4 2/2] qemu-ga: sample fsfreeze hooks
Date: Mon, 26 Nov 2012 20:49:17 +0900 [thread overview]
Message-ID: <50B3573D.8070705@hitachi.com> (raw)
In-Reply-To: <20121122140343.18a911fe@doriath.home>
On 2012/11/23 1:03, Luiz Capitulino wrote:
> On Thu, 22 Nov 2012 11:15:49 +0900
> Tomoki Sekiyama <tomoki.sekiyama.qu@hitachi.com> wrote:
>
>> Adds sample hook scripts for --fsfreeze-hook option of qemu-ga.
>> - fsfreeze-hook : execute scripts in fsfreeze-hook.d/
>> - fsfreeze-hook.d.sample/mysql-flush.sh : quiesce MySQL before snapshot
<snip>
>> +# Iterate executables in directory "fsfreeze-hook.d" with the specified args
>> +[ ! -d "$FSFREEZE_D" ] && exit 1
>> +for file in "$FSFREEZE_D"/* ; do
>> + is_ignored_file "$file" && continue
>> + [ -x "$file" ] || continue
>> + echo "$(date): execute $file $@" >>$LOGFILE
>> + "$file" "$@" >>$LOGFILE 2>&1
>> + STATUS=$?
>> + echo "$(date): $file finished with status=$STATUS" >>$LOGFILE
>> +done
>
> execute_fsfreeze_hook() will fail the freeze process if this script fails. Two
> comments:
>
> 1. Do we want to fail the freeze process if one of the sub-scripts fails?
> If yes, then we have to exit 1 in the first failure
I originally thought the hooks are optional; even they failed, filesystem-level
consistency are still kept in the snapshot.
However, if we are going to fail fsfreeze process by one of sub-scripts'
failure, we also need to notify scripts which already succeeded to pre-freeze
to thaw (or abort) freezing, before exit 1 here.
> 2. The exit status of the script will echo's exit status. I doubt we want that
Do you mean $STATUS (not $status) is specialized in some shell environments?
>> diff --git a/docs/qemu-guest-agent/fsfreeze-hook.d.sample/mysql-flush.sh b/docs/qemu-guest-agent/fsfreeze-hook.d.sample/mysql-flush.sh
>> new file mode 100755
>> index 0000000..e6d7998
>> --- /dev/null
>> +++ b/docs/qemu-guest-agent/fsfreeze-hook.d.sample/mysql-flush.sh
>> @@ -0,0 +1,47 @@
>> +#!/bin/sh
>> +
>> +# Flush MySQL tables to the disk before the filesystem is freezed.
>> +# At the same time, this keeps a read lock while the filesystem is freezed
>> +# in order to avoid write accesses by the other clients.
>> +
>> +MYSQL="mysql -uroot" #"-prootpassword"
>> +FIFO=/tmp/mysql-flush.fifo
>> +
>> +flush_and_wait() {
>> + printf "FLUSH TABLES WITH READ LOCK \\G\n"
>> + read < $FIFO
>> + printf "UNLOCK TABLES \\G\n"
>> +}
>> +
>> +case "$1" in
>> + freeze)
>> + mkfifo $FIFO || exit 1
>> + flush_and_wait | $MYSQL &
>
> Honest question: what happens if I don't have mysql installed?
Ah OK, availability of mysql should be checked in advance.
Thanks,
--
Tomoki Sekiyama <tomoki.sekiyama.qu@hitachi.com>
Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
next prev parent reply other threads:[~2012-11-26 11:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-22 2:15 [Qemu-devel] [PATCH v4 0/2] qemu-ga: add hook to quiesce the guest on fsfreeze-freeze/thaw Tomoki Sekiyama
2012-11-22 2:15 ` [Qemu-devel] [PATCH v4 1/2] qemu-ga: execute " Tomoki Sekiyama
2012-11-22 15:52 ` Luiz Capitulino
2012-11-26 11:49 ` Tomoki Sekiyama
2012-11-26 12:32 ` Luiz Capitulino
2012-11-22 2:15 ` [Qemu-devel] [PATCH v4 2/2] qemu-ga: sample fsfreeze hooks Tomoki Sekiyama
2012-11-22 16:03 ` Luiz Capitulino
2012-11-26 11:49 ` Tomoki Sekiyama [this message]
2012-11-26 12:40 ` Luiz Capitulino
2012-11-27 2:35 ` Tomoki Sekiyama
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50B3573D.8070705@hitachi.com \
--to=tomoki.sekiyama.qu@hitachi.com \
--cc=lcapitulino@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.