Linux on Hyper-V 最新情報(2012年1月): Linux 3.3の話題
2012年1月5日、Linuxの最新安定版カーネル linux-3.2(1月26日には3.2.2)が正式リリースされましたが、早くも2012年1月19日には次のlinux-3.3のRC1(linux-3.3-rc1、開発中のテスト用ビルド)が公開されました。linux-3.3では、めでたくMicrosoft Hyper-V driversがStagingツリーから標準のドライバーツリーに移行するというニュース(http://gihyo.jp/admin/clip/01/linux_dt/201201/17)を目にしました。Microsoft Hyper-V driversとは、GPLv2で公開されるLinux向けのHyper-V統合コンポーネント(Linux Integration Services for Hyper-V相当)です。Stagingツリーとは、開発初期段階のドライバーなどを集約するLinuxのドライバーカテゴリです。linux-3.3には他にも注目の変更点があるようですが、私に関心があるのはHyper-V関連のところだけ。早速、RC1で確かめてみました。
以前、Debian 6(2.6.32-5-amd64)をクリーンインストールしたHyper-V仮想マシンに、linux-2.6.39.1のカーネルを再構築して、linux-2.6.39.1に含まれるStagingツリーのHyper-V driversを組み込んだことがあります。次のスクリーンショットは、カーネル構成(menuconfig)を使用して、linux-2.6.31.1のStagingドライバーのリストからHyper-V drivers(Microsoft Hyper-V client drivers)を有効にしているところです。
そのときと同じ手順で、linux-3.3-rc1でどうなったか試してみました。ですがその前に、最新の安定版linux-3.2.2ではどうなっているのか確認しておきましょう。次の画面を見てください。一部のコンポーネント(hv_vmbusといhv_utils)は、既にStagingツリーから抜け出したようです。ストレージVSC(hv_storvsc)、ネットワークVSC(hv_netvsc)、マウス統合(hv_mouse)は、まだStaging driversに分類されています。
では、linux-3.3-rc1の場合を見てみましょう。Device Driversの直下、Xen driver supportと並んで、「Microsoft Hyper-V guest support」があります。これを開くと、あれ? ずいぶんと足りないような感じがします。
念のため、Staging driversをチェックしてみました。ここに「Microsoft Hyper-V virtual storage driver」を見つけました。RC1ではまだ、ストレージVSCがStagingを抜け出していないようです。
さて、ネットワークVSCとマウス統合ドライバーは、いったいどこに行ってしまったのでしょうか?カーネル構成のいろんな場所を探した結果、別の2つの場所に見つかりました。ネットワークVSCは、Network device supportの中に、XenやVMware用のネットワークドライバーと並んでいました。
マウス連携ドライバーはここ、HID Devicesの中のSpecial HID driversの中にありました。
まとめると、Kernel Configuration(make menuconfig)のツリーの中で、Microsoft Hyper-V driversは次の場所に配置されていました。カーネルソースのパスで言うと、linux-3.3-rc1/drivers/hv、linux-3.3-rc1/drivers/staging/hv、linux-3.3-rc1/drivers/net/hyperv、linux-3.3-rc1/drivers/hidにあります。
Device Drivers
├ Network device support
│ └ Microsoft Hyper-V virtual network driver
├ HID Devices
│ └ Special HID drivers
│ └ Microsoft Hyper-V mouse driver
├ Microsoft Hyper-V guest support
│ ├ Microsoft Hyper-V client drivers
│ └ Microsoft Hyper-V Utilities driver
└ Staging drivers
└ Microsoft Hyper-V virtual storage driver
これらのコンポーネントを有効化してカーネルを再構築し、インストールした状態がこちら。
機能的には、最新のLinux IS(v2.1およびv3.2)とあまり変わらないようです。最新のLinux ISがサポートする、時刻同期、ハートビート、シャットダウン連携、マウス統合(マウス統合ドライバーは、以前のhv_mouseからhid_hypervに名前が変わったようです)、データ交換(linux-3.3-rc1/tools/hv_kvp_daemon.cのコンパイル&実行で確認)は、すべて動作しました。
Linuxカーネルをビルドする方法は、一般向けではないので説明しません。時間もかかるし、今回はHyper-Vドライバーを探すのだけで試行錯誤でした。興味のある方は、私の個人的なブログのほうに手順を書いておきました。
山市良のえぬなんとかわーるど > Linux-3.3-rc1 で Hyper-V drivers が標準ドライバーに!? - 2012/01/26
XenやVMwareのドライバーと同じように、Hyper-V driversがLinuxカーネルの標準ドライバーとなったことで(hv_storevscだけまだですが)、将来的にはより多くのLinuxディストリビューションが簡単にHyper-V仮想マシン環境に対応できるようになると期待できます。なお、Linux 3.3を採用したLinuxディストリビューションが登場すれば、自分でカーネルをビルドするという面倒な作業はせずに、Hyper-V driversを簡単に(または自動的に)組み込むことができるようになるでしょう。既に、openSUSEやUbuntuは、Hyper-V仮想マシンにインストールするだけで、(Stagingツリーの)Hyper-V driversが自動的に組み込まれるようになっています。
過去の投稿 (Linux on Hyper-Vシリーズ):
COMPUTERWORLD BLOG > Linux on Hyper-V 最新情報(2011年12月) - 2011/12/05
COMPUTERWORLD BLOG > Linux on Hyper-V 最新情報(続+SLES 11 SP1) - 2011/08/08
COMPUTERWORLD BLOG > Linux on Hyper-V 最新情報 - 2011/08/01
COMPUTERWORLD BLOG > これがオープン ソースの力!? Unsupported Linux on Hyper-V のいま - 2011/06/20