Hyper-V 上の CentOS 5.5 に統合サービスをインストール

前回の記事で、Hyper-V の仮想マシンに CentOS 5.5 をインストールした。 今回はその CentOS に Linux 統合サービス (Linux Integration  Services) をインストールする。 CentOS に Linux 統合サービス (Linux Integration Services) をインストールすると、以下のようなメリットが得られる。

  • ホスト OS との時刻同期
  • 準仮想化されたネットワーク とストレージのドライバー
  • Hyper-V マネージャーからのシャットダウン
  • ゲスト OS の死活監視 (heartbeet)
  • ゲスト OS への SMP (Symmetric Muliti-Proccessing) の提供 (Windows Server 2008 Hyper-V や Hyper-V Server 2008 の上の 32bit OS は対象外)

特にホスト OS との時刻同期は、遅れがちなゲスト OS の時計のことを考えれば大変ありがたいことだ。 準仮想化ドライバーの存在も CPU への負荷や処理速度のことを考えれば、欠かせないメリットと言えるだろう。Linux 統合サービス (Linux Integration Services) は Hyper-V に添付されていないため、別途ダウンロードして入手しなくてはならない。 「Hyper-V におけるゲスト オペレーティング システムのサポート」の Web ページ (当時の Web ページは消滅。レイアウトは崩れるが Web アーカイブに痕跡あり) に、Hyper-V が正式にサポートするゲスト OS の一覧が挙げられており、その中の Linux Distributions のセクションにダウンロード元へのリンクがある。

List of Suported OS on Hyper-V

Hyper-V におけるゲスト オペレーティング システムのサポート」の Web ページ (当時の Web ページは消滅。レイアウトは崩れるが Web アーカイブに痕跡あり) のリンク先で Linux 統合サービス (Linux Integration Services) をダウンロードする。 現時点の Linux 統合サービス (Linux Integration Services) のバージョンは 2.1 であり、このリンク先でダウンロードできるファイルのファイル名は‘Linux Integration Services v2.1 for Microsoft Hyper-V.EXE’だ。 ダウンロードしたファイルを実行すると、ファイルを展開して保存するフォルダーを訊いてくる。

Extract Downloaded File 'Linux Integration Services v2.1 for Microsoft Hyper-V.EXE'

フォルダーを指定して [OK] ボタンをクリックすると、そのフォルダーに以下の二つのファイルが展開、保存される。

  • Linux Integration Services v2.1 Read Me.pdf
  • LinuxIC v21.iso

上の‘Linux Integration Services v2.1 Read Me.pdf’は Linux 統合サービス (Linux Integration Services) の概要や各 OS へのインストール方法などが記された PDF 形式のファイルだ。 全文英語だが、一度はざっと目を通しておく方が良いだろう。 残念なことに CentOS に関してはまだ記載されていないので、Red Hat Enterprise Linux に関する箇所をその代わりに読むことになる。 下の‘LinuxIC v21.iso’が Linux 統合サービスのインストール メディアの ISO イメージになる。 仮想マシンの DVD ドライブにマウントして使うことになるので、Hyper-V から参照できるフォルダーにコピーするなどして保存しておく。 それではいよいよ Linux 統合サービス (Linux Integration Services) のインストールを始めよう。 …といいたいところだが、Linux 統合サービス (Linux Integration Services) は Windows の統合サービスと異なり、ソース コードからのコンパイルが必要になる。 Linux 向けのソフトウェアは、ソース コードで配布され、インストール先のマシンでコンパイルするのが旧来の姿なので、Linux 統合サービス (Linux Integration Services) がそのようになっていることは不思議なことではない。 そこで Linux 統合サービス (Linux Integration Services) がコンパイルできるように、パッケージ マネージャーを使って「開発ツール」をインストールしておく。

Start Package Manager from Application Menu
Install Deveropment Tools on Pacage Manager

また、64bit 版の CentOS の場合は、Linux 統合サービス (Linux Integration Services) の機能のひとつ、ホスト OS との時刻同期を正常に機能させるために、adjtimex パッケージが必要になる。 このことは‘Linux Integration Services v2.1 Read Me.pdf’に書かれている。 今回 インストールした CentOS は 32bit 版 (i386 版) なので adjtimex パッケージを入れる必要は全くないのだが、とりあえずこれもインストールしておく。

Install 'adjtimex' on Pacage Manager

開発ツールを (64bit 版の CentOS では adjtimex パッケージも) インストールしたら、‘LinuxIC v21.iso’ファイルを CentOS を動かしている仮想マシンの DVD ドライブに割り当てる。 すると、ゲスト OS の CentOS が DVD-ROM ドライブにメディアが挿入されたことを検知して、自動的にドライブをマウントする。 マウント先のディレクトリは /media/CDROM/ だ。 また、GNOME デスクトップがマウントされたディレクトリを自動的にデスクトップに開き、‘LinuxIC v21.iso’の内容が表示される。

Open Directory Window when Mounted DVD-ROM

ここからは端末での操作が基本になるため、ここで GNOME 端末を起動する。

Start GNOME Terminal from Application Menu

GNOME 端末が起動したら、端末の中で以下のコマンドを実行して‘LinuxIC v21.iso’の内容を (仮想) ハードディスクにコピーする。 ここでは、/opt/linux_ic_v21/ ディレクトリを作成して、そこにコピーした。

内容をコピーしてしまえば ‘LinuxIC v21.iso’は不要になるので、以下のコマンドを実行してマウントを解除する。

マウントを解除したら、念のために仮想マシンの DVD ドライブへの割り当ても解除しておく。 続いて、以下のコマンドを実行して、コピーしたディレクトリをカレント ディレクトリに切り替え、Linux 統合サービス (Linux Integration Services) をコンパイルする。

make コマンドの実行が終わるまでには、数分から数十分ほどの (CPU パワー等によって大きく変わる) 時間がかかる。 make コマンドがエラー無く終わったら、以下のコマンドを実行してインストールする。

インストールが終わり、CentOS を再起動すれば、Linux 統合サービス (Linux Integration Services) が組み込まれた状態で CentOS が起動する。 Linux 統合サービス (Linux Integration Services) が組み込まれたことを確認するには、GNOME 端末で lsmod | grep vmbus コマンドを実行して以下のような行が表示されればいい。

※行頭に vmbus と出ていれば、それ以降は少々違っていても構わない

Linux 統合サービス (Linux Integration Services) のインストールが確認できたなら、ネットワーク アダプターを変更しておこう。 今 使っているレガシー ネットワーク アダプターでは、Linux 統合サービス (Linux Integration Services) に含まれる準仮想化ドライバーが生かせないままになってしまう。 ということで、次の記事でネットワーク アダプターを変更する。 余談だが、Debian にも正式に対応した Linux 統合サービス (Linux Integration Services) が出てこないものだろうかと思う。 非公式なものであれば一応は、Debian 5 (lenny) と Debian 6 (squeeze) 向けのものがそれぞれ「Yusuf Ozturk » Debian 2.6.36 kernel upgrade for Hyper-V Client drivers」と「Yusuf Ozturk » Building your own Debian Kernel packages for Hyper-V Support」から入手できないことはないのだが。 加えれば、ubuntu にも対応して欲しいのは言うまでもない なお、この記事では「山市良のえぬなんとかわーるど: CentOS 5.6 を Hyper-V 仮想マシンにインストールしてみた」を参考にした。

関連記事

  • Hyper-V 上の CentOS のネットワーク アダプターを変更2011.6.3 (金) Hyper-V 上の CentOS のネットワーク アダプターを変更 前回の記事で、Hyper-V 上の CentOS に Linux 統合サービス (Linux Integration Services) をインストールした。 折角なので、CentOS が使うネットワークアダプターを Linux 統合サービス […]
  • Hyper-V の仮想マシンに CentOS 5.6 をインストール2011.5.30 (月) Hyper-V の仮想マシンに CentOS 5.6 をインストール Microsoft が Hyper-V 上での CentOS の動作のサポートを 5 月 15日に発表した。 Hyper-V が提供する仮想マシンはかなりよくできているため、正式にサポートされていなくても Linux […]
  • Hyper-V 上の CentOS でマウス統合も2011.6.6 (月) Hyper-V 上の CentOS でマウス統合も Hyper-V のゲスト OS のサポートに CentOS が追加されたのを機に、CentOS に Linux 統合サービス (Linux Integration Services) […]
  • Hyper-V 上の Linux がもっと身近に2009.7.22 (水) Hyper-V 上の Linux がもっと身近に Microsoft は Windows Server 2008 で、仮想化支援機構として Hyper-V を標準機能で提供した。 最初はベータ版であったが、SP1 で ver.1 に、間もなく出荷されるであろう Windows Server 2008 […]

「Hyper-V 上の CentOS 5.5 に統合サービスをインストール」への1件のフィードバック

  1. CentOS 用 (に限らないと思う) の Linux 統合サービスはカーネルのバージョンに依存しているため、カーネルをアップデートしたときなど、カーネルのバージョンが変わると起動時にカーネル パニックが起きてしまう。
    これを避けるには、参考にした「山市良のえぬなんとかわーるど: CentOS 5.6 を Hyper-V 仮想マシンにインストールしてみた」に記されている DKMS パッケージを利用するのが最適だろう。

    しかし、DKMS の設定には少々手間がかかるため、一時的な評価のために Hyper-V 上に CentOS を入れたときなどでは、パッケージをアップデートしたときにもカーネルがアップデートされないようにしておくのが手軽だと思う。
    それには [cci]/etc/yum.conf[/cci] ファイルに [cci]exclude=kernel*[/cci] の一行を追加すればいい。

コメントを残す