(夜中に書いているので後日清書する予定)
閑話休題
今度は、LinuxでのQEMU Guest Agentの振る舞い。これもなかなか世間でのドキュメントがない。実際に動かして調べてみた。
LinuxのQEMU Guest Agentは、fsfreezeでファイルシステムI/Oを止めている。その前後にFreeze / thaw スクリプトが実行できる。
Freeze/thawスクリプトは、以下のパスに置く。
/etc/qemu-ga/fsfreeze-hook.d/
スクリプトは、引数にfreeze と thawがつくことで挙動を変えることができる。
例えば、Freeze時は
sample.sh freeze
Thaw時は
sample.sh thaw
というコマンドラインで動く。それを踏まえたサンプルスクリプトは以下になる。
#!/bin/sh
case "$1" in
freeze)
date >> /tmp/freeze
echo "freeze" >> /tmp/freeze
;;
thaw)
date >> /tmp/thaw
echo "thaw" >> /tmp/thaw
;;
*)
exit 1
;;
esac
このスクリプトはそれぞれ、/tmpにfreezeとthawファイルを作ることができる。
実際に動作させてみたログは以下
/var/log/qga-fsfreeze-hook.log
Tue Feb 27 12:27:47 EST 2024: execute /etc/qemu-ga/fsfreeze-hook.d/sample.sh freeze
Tue Feb 27 12:27:47 EST 2024: /etc/qemu-ga/fsfreeze-hook.d/sample.sh finished with status=0
Tue Feb 27 12:27:51 EST 2024: execute /etc/qemu-ga/fsfreeze-hook.d/sample.sh thaw
Tue Feb 27 12:27:51 EST 2024: /etc/qemu-ga/fsfreeze-hook.d/sample.sh finished with status=0
ログでスクリプトでは、実際の引数がわかる。ちなみに、この環境は、負荷が0の環境なんだが、I/Oが3-4秒止まっている。つまりスナップショットが切られているとそこそこ止まっている。利用者がそこを意識していれば問題ないが。
この仕組みを使えば、QEMU Guest Agentが動作しているときにデータベースのバックアップとか可能かと。
しかし、今、何かとKVMのVMがもてはやされてきたけど、こういう情報もまだ少ない。大丈夫なのか?世間。。。