きりのブログ

パソコン、開発関係の思いつきと作業記録

Hyper-VでUbuntu

Ubuntu 10.04 LTSを使っているのですが、これをP2VしてHyper-V 2.0に載せました。(移行手順等は別途書く予定です。)

運用に関するアレヤコレヤを簡素化したいと思っていたのですが、単にHyper-Vに載せただけだとホスト側から管理が出来ません。ハードウェア一元化による効果はありますが、バックアップを考えるとホストからレジュームなどキックできないと運用に耐えません。

ホストから管理するには、Linux Integration Services関係をインストールすれば良いのですが、サポートしているディストリビューションRHELCentOSのみとなり、Ubuntuでは使えません。

よくよく調べてみると、GPLv2版のLinux ICsがあり、一部カーネルに取り込まれていることが分かりました。Ubuntu 10.04 LTSのKernel 2.6.32でもモジュールが存在していることが分かったので、どの程度使えるのかテストしてみました。

ネットワークアダプタとの関係やhv_vmbus等のロードの手順については省いて検証結果のみ簡潔に書きます。主目的は、ホストOSでWindowsバックアップを実行し、正常に完了後仮想マシンが復帰することです。

とりあえず、仮想ドライバ関係を読み込ませてWindowsバックアップを実行してみたところ、仮想マシンが保存状態へ移行し、バックアップ完了後に復帰しました。復帰したは良いのですが、操作を受け付けません。topで見てみると、ksoftirqdがCPUを占有している状態になっています。試行錯誤の末、ネットワークをアタッチしていると発生するところまでは分かりましたが、これといった対策は見つかりませんでした。ただ、カーネルのバージョンによってはうまく稼働している、との情報もあるので、いくつかカーネルを差し替えて検証してみました。

Kernel 2.6.32
稼働中にネットワークアダプタのアタッチ・デタッチ:応答停止(kernel panic?)
稼働中に仮想マシンの保存: 復帰後操作できない(ksoftirqd)

Kernel 2.6.39.4
稼働中にネットワークアダプタのアタッチ・デタッチ:応答停止(kernel panic?)
稼働中に仮想マシンの保存: 復帰後操作できない(ksoftirqd)

Kernel 3.2.7
稼働中にネットワークアダプタのアタッチ・デタッチ:問題なし(リンク状態の認識は出来ていない?)
稼働中に仮想マシンの保存: 問題なし

Kernel 3.3-rc4
稼働中にネットワークアダプタのアタッチ・デタッチ:問題なし(リンク状態の認識は出来ていない?)
稼働中に仮想マシンの保存: 問題なし

ということで、2.6系での運用は難しそうです。3.3系はまだRC段階ですがstagingにあった仮想ドライバのほとんどがが標準ドライバに昇格しており、Hyper-V対応だけを見れば運用に耐えられそうです。ただ、安定重視のサーバー環境なので大幅なカーネルバージョンアップは悩ましい所。だからと言って、LTSなので次のバージョンアップで最新カーネルが使われるのかも微妙です。動いたからといってRC版を使うのは論外。

3.2までのChangeLogを追った所、仮想ドライバ関係は3.1と3.2.1で結構手が加えられたようで3.2.7では問題なく使えました。よって、これで運用しようと思います。