Misc.

2010/02/01

Linux ICs v2 のもうちょっと詳しいステップ バイ ステップ ガイド (我流) : SLES 11 編

Hyper-V 仮想マシンの Linux ゲストに統合サービスを提供する Linux Integration Components Version 2 (Linux ICs v2) で、これまでの SUSE Enterprise Linux Server (SLES) に加えて、Red Hat Enterprise Linux (RHEL) の正式サポートが追加されたらしいことなので、Linux ゲストの新規インストールからの手順をまとめておきます。Linux ICs v2 の Read Me ドキュメント (Linux Integration Components Read Me.pdf )
Linux Integration Components for Windows Server 2008 Hyper-V R2 - 日本語
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=c299d675-bb9f-41cf-b5eb-74d0595ccc5c (2010/7/29 に v2.1 がリリースされています。詳しくはこちら)

第 1 回は、SLES 11 x86 です。x64 (AMD64) も同じ手順です。
SLES 11 の ISO イメージ (60 日評価版) は、ノベルの以下の URL から入手できます。今回は、x86 版の SLES-11-DVD-i586-GM-DVD1.iso を使用しました。x64 (AMD64) 版は、SLES-11-DVD-x86_64-GM-DVD1.iso になります。
SUSE LINUX Enterprise Server 評価版のダウンロード
http://www.novell.com/ja-jp/products/server/eval.html

Windows Server 2008 R2 Hyper-V または Microsoft Hyper-V Server 2008 R2 の仮想マシンに SLES 11 をインストールする手順を説明します。ちなみに、Linux ICs v2 は、Windows Server 2008 Hyper-V や Microsoft Hyper-V Server 2008 にも対応しています。
Step 1: SLES 11 ゲストのインストール
次の手順で 仮想マシンを作成し、ゲスト OS として SLES 11 をインストールします。
  1. SLES 11 用の仮想マシンを作成します。今回は、仮想プロセッサ 1 つ (必須)、メモリは1,024 GB (サイズは任意)、起動用のディスクとして IDE 接続の 127 GB 容量可変 VHD 1 つ、ストレージ VSC 確認用に SCSI 接続の 127 GB 容量可変 VHD 1 つ、ネットワーク VSC 確認用に(統合タイプの) ネットワーク アダプター 1 つを割り当てます。
  2. 仮想マシンに SLES 11 の ISO イメージをマウントし、仮想マシンを起動します。
  3. SLES 11 の DVD から起動したら、[F2][日本語]、[F3][1024 x 768] を設定し、[インストール] メニューを選択して [Enter] を入力します。[F3] で解像度を設定しておかないと、GUI 画面が大きすぎて、操作しずらい (かつ変更が面倒) なので忘れずに。

  4. [ようこそ] と [メディアチェック] のページを [次へ] で進み、[インストールモード] のページで [新規にインストール] を選択して [次へ] をクリックします。
  5. [時計とタイムゾーン] のページでは、地域 [アジア]、タイムゾーン [日本] を選択 ( いずれも既定値 )  し、[ハードウェアの時刻は UTC に設定] のチェックを外します。このチェックが有効なままだと、起動ごとに 9 時間時計がずれてしまうという問題に悩むことになるので要注意。その理由は、以前の投稿 「Linux ゲストの時計が+9時間になってしまって悩んでいる方へ」 をご覧下さい。

  6. [サーバベースシナリオ] のページでは、[物理マシン] を選択します。[仮想マシン (Xen などの疑似仮想化環境向け) ] という選択肢もありますが、これは Hyper-V には無用のオプションです。
  7. [インストールの設定] のページで [変更] [ソフトウェア] をクリックします。[Software Selection and System Tasks] のページが表示されるので、既定の選択に加えて、[C/C++ コンパイラとツール] を追加します。このコンポーネントは、Linux ICs v2 をビルドするために必要です。

  8. [OK] をクリックして [インストールの設定] ページに戻り、[インストールする] をクリックします。
  9. [インストールの実行] が完了すると、[システム管理者「root」のパスワード] のページが表示されるので、パスワードを設定します。
  10. [ホスト名およびドメイン名] のページでは、ホスト名とドメイン名を適宜設定します。
  11. [ネットワーク設定] のページが表示されますが、ネットワークインタフェースが “検出されませんでした” と表示されます。あせらないでください。統合タイプのネットワーク アダプターは、Linux ICs v2 をインストールするまで利用できません。このページは [次へ] で進んでください。次の [インストールの概要] のページも [次へ] で先に進んでください。
  12. [新規のローカルユーザ] のページで適宜、ユーザーを作成します。以降の [リリースノート] [ハードウェア設定] のページは、[次へ] で先に進んでください。
  13. [インストールが完了しました] で [完了] をクリックします。「YaST2: 稼働中のネットワークが見つかりません! インストールを再起動して Linuxrc でネットワークを設定する またはネットワークなしで続行してください」と表示されますが、前述のように Linux ICs v2 を入れるまではネットワークは利用できないので [続行] をクリックしてメッセージは無視してください。
Step 2: Linux ICs v2 のインストール
続いて Linux ゲストに Linux ICs v2 をインストールします。
  1. SLES 11 ゲストに root アカウントでログインします。root 以外のユーザーでログインして su や sudo で切り替えて Linux ICs v2 のインストール作業を行った場合、パス (/sbin や /usr/sbin など) の関係でインストールが失敗して苦労することになります。root ログインして作業することをお勧めします。
  2. ログインしたら端末を開き、vi エディター (またはお好みのエディター) を使用して、/etc/modprove.d/unsupported-modules ファイルの以下の行を変更して上書き保存します。なお、この手順は SLES 10 では不要です。

    変更前)
    allow_unsuppoted_modules 0
    変更後)
    allow_unsuppoted_modules 1
  3. 仮想マシンに Linux ICs v2 の ISO イメージ (LinuxIC v2.iso) をマウントします。
  4. 次のコマンドラインを実行して、ISO イメージの中身をすべて /opt/linux_ic_v2 にコピーします。なお、ISO イメージの実際のマウント ポイント (/media/CDROM など) は、mount コマンドなどで確認してください。コピーが完了したら、マウントを解除し、仮想マシンから ISO イメージを解放します。

    # mkdir /opt/linux_ic_v2
    # cp /media/CDROM/* /opt/linux_ic_v2 -R
    # umount /media/CDROM
  5. 次のコマンドラインを実行して、Linux ICs v2 のコンポーネントをインストールします。[*** The drivers have been installed successfully. ***] と表示されれば完了です。
    # /opt/linux_ic_v2/setup.pl drivers


  6. vi エディター (またはお好みのエディター) を使用して /etc/fstab を開き、/dev/disk/by-id/ata-Virtual_HD-part1 を /dev/hda1 に、/dev/disk/by-id/ata-Virtual_HD-part2 を /dev/hda2 に変更して上書き保存します。なお、この手順は SLES 10 では不要です。

    変更前)
    /dev/disk/by-id/ata-Virtual_HD-part1 swap  swap  defaults  0 0
    /dev/disk/by-id/ata-Virtual_HD-part2 /         ext3    defaults acl,user_eattr 1 1
    変更後)
    /dev/hda1 swap swap defaults 0 0
    /dev/hda2 / ext3 defaults acl,user_eattr 1 1
  7. vi エディター (またはお好みのエディター) を使用して /boot/grub/menu.lst を開き、/dev/disk/by-id/ata-Virtual_HD-part1 を /dev/hda1 に、/dev/disk/by-id/ata-Virtual_HD-part2 を /dev/hda2 に変更して上書き保存します。なお、この手順は SLES 10 では不要です。

    変更前)
    title SUSE Linux Enterprise Server 11 - ....
      root (hd0,1)
      kernel /boot/vmlinuxz=2.6.27.19-5-pae root=/dev/disk/by-id/ata-Virtual_HD-part2 resume=/dev/disk/by-id/ata-Virtual_HD-part1 splash= ....
      initrd /boot/initrd-2.6.27.19-5-pae
    変更後)
    title SUSE Linux Enterprise Server 11 - ....
      root (hd0,1)
      kernel /boot/vmlinuxz=2.6.27.19-5-pae root=/dev/hda2 resume=/dev/hda1 splash= ....
      initrd /boot/initrd-2.6.27.19-5-pae
  8. vi エディター (またはお好みのエディター) を使用して、/etc/modprove.d/unsupported-modules ファイルの以下の行を既定に戻して上書き保存します。なお、この手順は SLES 10 では不要です。

    変更前)
    allow_unsuppoted_modules 1  変更後)
    allow_unsuppoted_modules 0
  9. reboot コマンドを使用して、SLES ゲストを再起動します。
これで Linux ICs v2 のインストールは完了です。この作業で SLES ゲストに次のコンポーネントが追加されます。
 
vmbus:  仮想マシン バス (VMBus) のサポート
netvsc:  統合タイプのネットワーク アダプターのサポート (vmbus に依存)
storvsc: SCSI 接続の VHD および SCSI 接続のパススルー ディスク (物理ディスク) のサポート (vmbus に依存)
blkvsc:  storvsc を利用した IDE 接続の起動デバイスの高速化 (上記手順の 6~7 は、これを有効にするための手順です)
 
SLES 10 の場合はさらにマウス統合のための inputvsc をインストールできます (SLES 11 には対応していません)。inputvsc は、Citrix Satori Project からダウンロードできます。inputvsc は、次の手順でインストールできます。
  1. 仮想マシンに inputvsc.iso をマウントします。
  2. root アカウントでログインして、次のコマンドラインを実行します。

    # mkdir /opt/inputvsc
    # cp /media/CDROM/* /opt/inputvsc -R
    # umount /media/CDROM 
    # /opt/inputvsc/setup.pl inputvsc
Step 3: 動作確認
次の手順で Linux ICs の動作を確認します。
  1. /sbin/lsmod | grep vsc を実行して、vmbus、netvsc、storvsc、blkvsc (、inputvsc) がロードされていることを確認します。
  2. /sbin/ifconfig を実行して、ネットワーク アダプターとして seth0 が存在することを確認します。
  3. cat /proc/scsi/scsi を実行して、SCSI デバイスが存在することを確認します。SLES 11 の場合、blksvc が有効に機能している場合、3 つのデバイスが表示されます。scsi0 は IDE 起動デバイス (/dev/sda) 、scsi1 は CD-ROM デバイス、そして scsi2 が SCSI ディスク (/dev/sdb) です。SLES 10 の場合は、scsi0 が SCSI ディスク (/dev/sda) になります。

Step 4:  Linux ゲストの追加の構成
Linux ICs v2 の Read Me ドキュメントは、Step 3 までの説明しかありません。しかし、まだゲストの時刻同期や SCSI ディスクの構成など、やるべきことが残っています。

時刻同期:
Linux ICs v2 には、ホストとの時刻同期機能が含まれていません。そのため、NTP デーモンなどを構成して、外部タイムソースと同期するように構成する必要があります。Linux ICs v2 をインストールして、netvsc が利用可能になれば、NTP デーモンによる時刻同期が可能になります。

SCSI ディスクの初期化:
YaST2 の [ディスクの分割] (エキスパートパーティショナ) などを使用して、/dev/sdb にパーティションを作成、追加し、マウント設定をします。


ここで注意点があります。SLES 11 および SLES 10 では、SCSI ディスクを起動時に自動マウントするように構成してしまうと、起動時にディスクの状況をチェックできずに、fsck failed のエラーでメンテナンス モードに入ってしまいます。


この問題を回避するためには、自動マウントしないように構成します。それには、パーティション作成時に fstab オプションの [システム起動時にマウントしない] を有効にします。あるいは /etc/fstab のマウント設定を次のように変更して上書き保存します (マウント ポイントが /local の場合の例)。

変更前)
/dev/sdb1  /local  ext3  default  0 0
変更後)
/dev/sdb1  /local  ext  noauto,acl,user_xattr  0 0

このように構成した場合、SCSI ディスクをマウントするには手動で mount コマンドを実行する必要があります。ただし、/etc/init.d/boot.local ファイルに次の1行を記述することで、自動マウントさせることができます (マウント ポイントが /local の場合の例)。

追加)
/bin/mount /local

次回は、第 2 回として RHEL 5.4 の手順を説明します。