KVMゲストOSの他サーバーへの移行

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を登録・起動する。

server# virsh create /etc/libvirt/qemu/guest.xml

これだけだよ、うん。これだけでゲストOSが復元するんだ。これをコマンドラインから実行すると、GUIの仮想マシンマネージャでもゲストOSが見えるようになるよ。

もしゲストOSを停止したければ、ゲストOSにログインして正規のシャットダウン手続きを踏むのが良い。しかし、ゲストOSが制御を失っているならば、強制的にシャットダウンすることもできる。

server# virsh destroy guest

createコマンドにより登録済みのゲストをもう一度起動したければ、以下のコマンドを打つ。

server# virsh start guest

createコマンドにてゲストOSを登録した後、設定ファイルを変更してしまったならば、その内容を実際に反映させるために、以下のコマンドを打つ。(この時、ゲストOSは停止していたほうが安全だと思う。)

server# virsh define /etc/libvirt/qemu/guest.xml

ホストOSが起動した時に、ゲストOSも自動起動したいならば、次のコマンドを実行する。次回ホストOS再起動時からゲストOSを自動実行するようになる。

server# virsh autostart guest

このゲストOSの自動起動を解除したければ、以下のコマンドを使えばよい。

server# virsh autostart --disable guest

すばらしいね、KVM。

コメントの投稿

(スタイル用のHTMLタグを使えます)