KVM(Kernel-based Virtual Machine)は昨今流行のOS仮想化技術の実装の一つで、Linuxカーネルそのものをハイパバイザにしてしまうものだ。(Xenの場合だと、Nemesisというハイパバイザが存在し、その上で特権モードのホストLinuxが稼動するという形をとっているらしい。VMware ESXみたいだね。)僕の知識ではこの程度の説明しか出来ないけれども、もしオタク的な知識が欲しい人はKVMを参照してほしい。(私はこのサイトを真面目に読んでません。エッヘン!!)
当サイトのWEBサーバーがFedora10のKVM仮想サーバーに移行した一週間後、電源系トラブル(UPSの出力が不足していた・・・らしい)によりホストOSの/bootパーティションが吹っ飛んだ。再起動しなければ気付かずにやり過ごせたわけだが、放って置けばルートパーティションでもっと深刻なデータロスが発生したかもしれないので、逆にこの程度で気づいて良かったと理解している。
直前の二日間にわたり、KVMゲストのディスクイメージのコールドバック アップおよび設定ファイルのバックアップを(自動実行するバッチで)外付けUSBディスクに取得していたので、自宅サーバーの仮想化の手順でホストOSを復元後、直ちにゲストOSの「復活」を果たすことができた。この記事では自宅サーバーの仮想化の、言わば続編としてKVMゲストOSを復元する手順をまとめたので、ご紹介したい。
まず、復元するためにはKVMゲストOSのディスクイメージのコールドバックアップ(ゲストOS停止状態のディスクイメージファイルのコピー)とKVM設定ファイル(/etc/libvirt/qemu内のxmlファイルのコピー)を外部USBディスク(別にUSBでなくてもいいけど・・・)へ保存しておく必要がある。ここでは、説明の為に、ゲストOSを"guest"とし、そのディスクイメージを/var/images/guest.img、また設定ファイルを/etc/libvirt/qemu/guest.xmlとする。
KVM環境一式が復活したホストOS上に前記ゲストOSのイメージファイルと設定ファイルをコピーしたら、次のコマンドを打ってゲストOSを登録・起動する。
これだけだよ、うん。これだけでゲストOSが復元するんだ。これをコマンドラインから実行すると、GUIの仮想マシンマネージャでもゲストOSが見えるようになるよ。
もしゲストOSを停止したければ、ゲストOSにログインして正規のシャットダウン手続きを踏むのが良い。しかし、ゲストOSが制御を失っているならば、強制的にシャットダウンすることもできる。
createコマンドにより登録済みのゲストをもう一度起動したければ、以下のコマンドを打つ。
createコマンドにてゲストOSを登録した後、設定ファイルを変更してしまったならば、その内容を実際に反映させるために、以下のコマンドを打つ。(この時、ゲストOSは停止していたほうが安全だと思う。)
ホストOSが起動した時に、ゲストOSも自動起動したいならば、次のコマンドを実行する。次回ホストOS再起動時からゲストOSを自動実行するようになる。
このゲストOSの自動起動を解除したければ、以下のコマンドを使えばよい。
すばらしいね、KVM。