***本記事にはプロモーションが含まれています。***
WindowsホストでもQCOW2フォーマットが使えるようになって、VMスナップショットという機能を使うことができます。
loadvm/savevmとQCOW2フォーマットのハードディスクイメージを組み合わせることで、多段階のスナップショットを保存したり、復元したりできるようになります。
これにともなって、QCOW2以外を使用したときのloadvm/savevmの使用は出来なくなりました。
DOS> qemu-img convert -f raw redhat.img -O qcow2 test.qcow2
というように、QCOW2フォーマットのディスクを用意します。
DOS> qemu -L ../pc-bios -hda test.qcow2
で、ゲストOSを起動し、Ctrl-Alt-2でモニターに切り替え、仮想マシンの状態を保存します。
(qemu) savevm test
(qemu) info snapshots
ID TAG VM SIZE DATE VM CLOCK
1 test 4M 2006-09-01 12:00:00 00:00:01.000
Ctrl-Alt-1でゲストOSに戻り、ファイルを作ります。
Guest OS$ echo test >test.txt
Guest OS$ ls
test.txt
Ctrl-Alt-2で、もう一度状態を保存します。
(qemu) savevm test2
(qemu) info snapshots
ID TAG VM SIZE DATE VM CLOCK
1 test 4M 2006-09-01 12:00:00 00:00:01.000
2 test2 5M 2006-09-01 12:01:00 00:00:02.000
すると、IDもしくはTagでファイルを作る前の状態に戻したり、後の状態に戻したりできます。
(qemu) loadvm test
もしくは、
(qemu) loadvm 1
スナップショットを削除するのは、delvmです。
TAGを付け忘れても、それぞれのスナップショットは番号で指定することができます。
また、QEMUの起動時に-loadvmオプションを使うことで、瞬時にゲストOSを起動することも可能です。
DOS> qemu.exe -L ../pc-bios -hda test.qcow2 -loadvm test
使ってみると、結構使えそうです。以前のsavevm/loadvmは、メモリーの状態しか保存しなかったためゲストOSのディスクキャッシュとハードディスクの内容の整合性が問題になったのですが、ハードディスクの内容と一緒に保存され、問題が解消されています。
注意したほうがいいことは、状態を保存せずにloadvmをしてしまうと、それまでやっていた作業が消えてしまうこと。スナップショットの途中で作業を再開すると木の枝みたいに内容が枝分かれになってしまうことなどです。
qemu の最新版情報
何気にネットで qemu の情報を探していたら、最新版に
とても詳しい方のブログを見つけた。
K'zlog
http://blogs.dion.ne.jp/kazuu/
過去の記事もいろいろ読ませてもらったんだけど、個人的
に気になったのは qcow2 という新しい仮想ディスクのフォ
ーマット。
どうやら簡単に VM のスナップショットが取れるようになる
らしい。
いままで VM のスナップショットを取ろうとすると、-savevm
と -loadvmコマンドを使うしかなかったんだけど、これはメ
モリーの内容をファイルに書き出すだけなので、ある瞬間の
VM の状態をまるごと保存するには、ディスクイメージを手作業
で複数用意する必要があり、なかなか簡単では無かった。
でも qcow2 形式のディスクイメージの場合は、これが簡単に
できるらしい。詳しくはこちら
最近 Vine Linux のβテストを qemu 上で行っているので、
簡単にある時の状態(インストール直後とかテストパッケージ
のインストール前とか)に戻せる機能がとても欲しかったりする。
# 正式リリースがとても楽しみ