Misc.

2011/05/18

CentOS 5.6 を Hyper-V 仮想マシンにインストールしてみた

Hyper-V における CentOS サポート追加を記念いたしまして、CentOS 5.6 x86_64 (64ビット版) を、Hyper-V 仮想マシンにインストールし、ゲスト コンポーネントである Linux Integration Services v2.1 for Hyper-V 2.0 (Linux IS v2.1) をインストールしてみました。

結論から言うと、CentOS は Red Hat Enterprise Linux (RHEL) クローン だということもあって、RHEL 5.5 x86_64 (64ビット版) とほとんど同じでした。RHEL 5.6 は試していませんが、CentOS 5.6 が大丈夫なので、RHEL 5.6 も同じ手順で OK でしょう。

前回の投稿のリンクを日付の新しい方から追って行っても、必要な情報は得られますが、Linux ゲストのインストール手順がちゃんと書いてある書籍「Windows Server 仮想化テクノロジ入門」(日経 BP 社) がお勧め (PRです)。この書籍の RHEL 5.5 のインストール手順とほぼ同じ手順で進めると、CentOS もちゃんとインストールできます。簡単にメモしておきます(もちろん、スクリーンショット付)。


Hyper-V 仮想マシンの作成

Hyper-V 上に仮想マシンを作成します。ネットワークは標準の「ネットワークアダプター」(レガシー ネットワーク アダプターじゃない方)で OK です。SCSI サポートを検証したい場合は、SCSI コントローラーに VHD を作成、接続しておきます。


CentOS 5.6 x86_x64 のインストール

仮想マシンの DVD ドライブに CentOS 5.6 x86_64 の DVD (CentOS-5.6-x86_64-bin-DVD-1of2.iso) を接続して、仮想マシンを起動します。CentOS の DVD イメージは、Bittorrent で公開されているものが多いですが、Bittorrent はちょっとという方は、ミラー サイトのリストから Direct DVD Downloads を探すとよいでしょう。

boot: メニューが表示されたら、何も考えずに「Enter」キーを押して先に進みましょう。面倒な起動パラメーターの指定など必要ありません。


下の画面まで進んだら、「システムクロックで UTC を使用」のチェックを外して、先に進みます。チェックを外さなきゃならない理由については、こちらの投稿でご確認ください。


下の画面まできたら、追加のソフトウェアセットを適宜選択します。私は、「Server - GUI」を選択しました。ちなみに、「仮想化」は、KVM や Xen のサポートのことなので、決して選択しないこと。

RHEL の場合は、追加のソフトウェアセットとして「ソフトウェア開発」を選択できるのですが、CentOS には用意されていません。ですから、ここであわてて「次」はクリックしないでください。その前に、「今すぐカスタマイズする」を選択します。Linux IS v2.1 のインストールに必要な開発ツールを追加するためです。


カスタマイズ画面が表示されるので、「開発」の中から「開発ツール」をインストール対象として追加します。


このあとは、インストールが完了して、再起動し、初回起動時の構成を行います。特に注意点はございませんです。

Linux IS v2.1 のインストール

CentOS 5.6 x86_64 のインストールが完了したら、root でログインし、端末を開きます。仮想マシンの DVD ドライブに「LinuxIC v21.iso」を接続し、ゲストにマウントされたら、次のコマンドラインを実行して、メディアの中身をローカル(/opt/linux_is_v21 のパスはご自由に)にコピーして、make & make install します。おっと、「システムは更新を受信できません」というメッセージは無視してください。Linux IS v2.1 をインストールするまで、LAN が利用できないのでこのようになります。

mkdir /opt/linux_is_v21
cp -R /media/CDROM/* /linux_is_v21
umount /media/CDROM
cd /opt/linux_is_v21
make
make install

もし、make 実行時に「make: *** /lib/modules/2.6.18-238.el5/build: そのようなファイルやディレクトリはありません. 中止.make: *** [all] エラー 2」と表示されたあなた。CentOS のインストール時に「開発ツール」を追加しましたか? 残念ですが最初からやり直しましょう (別の方法もありますが)。

CentOS 5.6 x86_64 の場合、make を実行すると、「Your system DOES NOT support the timesource driver (ちみのシステムはわしらの timesouce ドライバーをサポートしていないぜよ)」と表示されますが、それで OK です。timesource ドライバー (hv_timesource) は、Hyper-V ホストと Linux ゲストの時刻同期をサポートする vmbus と連携するコンポーネントですが、RHEL x86_64 には対応していません。CentOS 5.6 x86_64 も RHEL x86_64 と認識してくれています。ちなみに、CentOS 5.6 i386 の場合は表示されません。


このメッセージが表示されても、とりあえず make install を実行して、インストールを完了しちゃってください。Linux IS v2.1 のインストールが完了すると、 LAN が利用可能になります。そうしたら、次のコマンドラインを実行して、adjtimex をインストールします。RHEL x86_64 では hv_timesource の代わりに adjtimex を使用できます。CentOS 5.6 x86_64 も同じ対応で時刻同期をサポートできます。

yum install adjtimex


マウス統合機能のインストール

RHEL では、Citrix Project Satori が提供するマウス統合機能 (inputvsc) が利用できます。CentOS でも利用可能でした。inputvsc をインストールするには、inputvsc.iso をゲストにマウントして、次のコマンドラインを実行します。

makedir /opt/inputvsc
cp -R /media/CDROM/* /opt/inputvsc
umount /media/CDROM
cd /opt/inputvsc
./setup.pl inputvsc

インストールが完了すると、すぐにマウス連携機能(Hyper-V ホストの Windows 環境と仮想マシンの X ウィンドウ間のマウス連携) が利用できるようになります。

お疲れ様でした。以上で Linux IS v2.1 と inputvsc の導入は完了しました。 lsmod|grep vsc を実行して、vmbus、blkvsc、storvsc、netvsc、inputvsc がロードされていることを確認してみてください。ネットワークは、seth0 と認識されます。SCSI ディスクは /dev/sda と認識されます。


この状態で、Hyper-V ゲストとして以下の機能がサポートされています。これらは、Linux ゲストに提供される統合サービス機能のすべてです。

ドライバー: IDE ディスクの高速化、SCSI ディスク (ホットアドは不可)、統合ネットワークアダプター、SMP サポート (1~4)
サービス: 時刻同期、シャットダウン連携、ハートビート、マウス統合


DKMS によるカーネルアップデート対応

マイクロソフトのサポート技術情報 KB2387594 のとおり、カーネルをアップデートすると、Linux IS v2.1 がロードされなくなり、起動できなくなるという問題があります。この問題に対処するには、カーネルをアップデートする前に Linux IS v2.1 をアンインストール(make uninstall) し、アップデート&再起動後に再インストール(make install) することで対処できますが、DKMS(Dynamic Kernel Module Support) パッケージを利用して自動化することもできます。DKMS による自動化については、こちらの投稿で試したのと同じ手順でうまくいきました。

おしまい。

2012/09/18 追記)
CentOS 5.7および5.8は、Linux Integration Services v3.4 for Linuxでサポートされます。インストール方法は、CentOS 6.x(Red Hat Enterprise Linux 6.x)とだいたい同じ。RPM形式なので、開発ツールは不要。時刻同期のためのadjtimexも不要です(たぶん)。

http://yamanxworld.blogspot.com/2012/09/linux-integration-services-v34-for.html

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。