14.3.2. Red Hat Enterprise Linux 3 で Para-virtualized ドライバーのインストールと 設定

このセクションには、Red Hat Enterprise 3 ゲストオペレーティングシステム内での para-virtualized ドライバーに関する詳細案内が含まれています。

注記

これらのパッケージは para-virtualized ディスクからのブートをサポートしていません。 ゲストオペレーティングシステムカーネルのブートには、まだ模倣 IDE ドライバーが 必要です。他の(システム関連ではない)ユーザースペースアプリケーションとデータは para-virtualized ブロックデバイスドライバーを使用することができます。
ドライバーのインストール

para-virtualized ドライバーを使用した Red Hat Enterprise Linux 3 ゲストのインストールに必要な手順を以下に示します。

  1. 使用しているハードウェアアーキテクチャとカーネル変種用の kmod-xenpv rpm を ゲストオペレーティングシステムにコピーします。
  2. rpm ユーティリティを使用して RPM パッケージをインストール します。使用するゲストオペレーティングシステムの変種とアーキテクチャに必要なパッケージを 正しく識別していることを確認して下さい。
    [root@rhel3]# rpm -ivh kmod-xenpv*
    
  3. 以下のコマンドを実行して正しい自動化した para-virtualized ドライバーのロードを 有効にします。%kvariant は、それに対して para-virtualized ドライバーがビルドされたカーネル変種であり、%release は その para-virtualized ドライバーのリリースバージョンに相当します。
    [root@rhel3]# mkdir -p /lib/modules/'uname -r'/extra/xenpv        
    [root@rhel3]# cp -R /lib/modules/2.4.21-52.EL[%kvariant]/extra/xenpv/%release \
    /lib/modules/'uname -r'/extra/xenpv
    [root@rhel3]# cd /lib/modules/'uname -r'/extra/xenpv/%release
    [root@rhel3]# insmod xen-platform-pci.o
    [root@rhel3]# insmod xen-balloon.o`        
    [root@rhel3]# insmod xen-vbd.o
    [root@rhel3]# insmod xen-vnif.o
    

    注記

    Red Hat Enterprise Linux 3 が MODVERSIONS を 有効にしているため、バイナリドライバーモジュールをインストールする時点で、 insmod が警告を生成します。これらの警告は無視 できるものです。
  4. /etc/modules.conf を確証して、以下のような eth0 用のエイリアスがあることを 確認します。複数のインターフェイスを設定する予定の場合は、各インターフェイス毎に追加の 行を加えます。
    alias eth0 xen-vnif
    
    /etc/rc.local を編集して行を追加します:
    insmod /lib/modules/'uname -r'/extra/xenpv/%release/xen-vbd.o
    

    注記

    “%release” を 実際の para-virtualized ドライバーのリリースバージョン(例えば、0.1-5.el)で 入れ替えます。para-virtualized ドライバーRPM パッケージを更新する場合は、そのリリースバージョンを 適切なバージョンに更新することを確認して下さい。
  5. 仮想マシンをシャットダウンします(ゲスト内で “#shutdown -h now” を使用)。
  6. 以下のようにして、/etc/xen/YourGuestsName 内のゲスト設定ファイルを編集します:
    • vif=” エントリから “type=ioemu” エントリを削除します。
    • 追加のディスクパーティション、ボリューム、又は LUN をゲストに追加して para-virtualized (xen-vbd) ゲストドライバー経由で それらにアクセスできるようにします。
    • 各追加の物理デバイス、LUN、パーティション、又はボリューム用に、以下に示した ようなエントリを、ゲスト設定ファイル内の “disk=” セクションに追加します。オリジナルの “disk=” エントリも 以下のエントリに似ているかも知れません。
      disk = [ "file:/var/lib/libvirt/images/rhel3_64_fv.dsk,hda,w"]
      
    • 追加の物理デバイス、LUN、パーティション、又はボリュームを追加すると、 XML 設定ファイル内の para-virtualized ドライバーのエントリは以下にある エントリに似たものになります。
      disk = [ "file:/var/lib/libvirt/images/rhel3_64_fv.dsk,hda,w",
      "tap:aio:/var/lib/libvirt/images/UserStorage.dsk,xvda,w" ]
      

      注記

      ファイルベースのイメージが使用されている場合、para-virtualized デバイス用に “tap:aio” を使用します。
  7. virsh コマンドを使用して仮想マシンをブートします:
    # virsh start YourGuestName

警告

weak-modulesmodversions のサポートは Red Hat Enterprise Linux 3 で提供されていないため、 para-virtualized ドライバーはシステムへの自動的追加とロードはされません。 モジュールを挿入するには、以下のコマンドを実行します。
insmod xen-vbd.ko
Red Hat Enterprise Linux 3 では xen-vbd を使用するブロック デバイス用に特殊ファイルの手動作成が必要になります。以下の手順が、para-virtualized ブロックデバイスの作成法と登録の案内となります。
para-virtualized ブロックデバイスドライバーがロードされた後に、 以下のスクリプトを使用して特殊なファイルを作成します。
#!/bin/sh
module="xvd"
mode="664"
major=`awk "\\$2==\"$module\" {print \\$1}" /proc/devices`
# < mknod for as many or few partitions on xvd disk attached to FV guest >
# change/add xvda to xvdb, xvbd, etc. for 2nd, 3rd, etc., disk added in
# in xen config file, respectively.
mknod /dev/xvdb b $major 0
mknod /dev/xvdb1 b $major 1
mknod /dev/xvdb2 b $major 2
chgrp disk /dev/xvd*
chmod $mode /dev/xvd*
各追加の仮想ディスクに、マイナー番号を 16 単位で増加します。以下の例では、追加デバイスマイナー番号 16 が作成されています。
# mknod /dev/xvdc b $major 16
# mknod /dev/xvdc1 b $major 17
これが、以下のコマンドで作成される次のデバイスを 32 にします:
# mknod /dev/xvdd b $major 32
# mknod /dev/xvdd1 b $major 33
ここで、作成したパーティションが使用できることを確認します。
[root@rhel3]# cat /proc/partitions
major   minor     #blocks   name

  3        0      10485760  hda
  3        1        104391  hda1
  3        2      10377990  hda2
202        0         64000  xvdb
202        1         32000  xvdb1
202        2         32000  xvdb2
253        0       8257536  dm-0
253        1       2031616  dm-1
上記の出力で、パーティション設定をしたデバイス “xvdb” がシステムに利用可能であることが判ります。
以下の手順はゲストに新しいデバイスを追加して、再起動後にそれを永続化します。 全てのこれらのコマンドはゲスト上で実行されるものです。
  1. ブロックデバイスイメージをマウントするディレクトリを作成します。
    [root@rhel3]# mkdir /mnt/pvdisk_p1
    [root@rhel3]# mkdir /mnt/pvdisk_p2
    
  2. デバイスを新しいフォルダにマウントします。
    [root@rhel3]# mount /dev/xvdb1 /mnt/pvdisk_p1
    [root@rhel3]# mount /dev/xvdb2 /mnt/pvdisk_p2
    
  3. デバイスが正常にマウントされたことを確認します。
    [root@rhel3]# df /mnt/pvdisk_p1
    Filesystem           1K-blocks      Used   Available Use%  Mounted on
    /dev/xvdb1               32000        15       31985   1%  /mnt/pvdisk_p1
    
  4. ブートシーケンス中にデバイスがマウントされるようにゲスト内で /etc/fstab ファイルを更新します。以下の行を追加して下さい:
    /dev/xvdb1   /mnt/pvdisk_p1   ext3    defaults        1 2
    /dev/xvdb2   /mnt/pvdisk_p2   ext3    defaults        1 2
    

注記

Red Hat Enterprise Linux 3 ホスト (dom0) を使用して 以下に見えるように、"noapic" パラメータは仮想ゲストの /boot/grub/grub.conf エントリ内のカーネルブート行に追加 される必要があります。ご使用のアーキテクチャとカーネルバージョンは異なるかも 知れないことを忘れないで下さい。
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
Red Hat Enterprise Linux 5.2 dom0 はゲスト用にこのカーネルパラメータを 必要としません。

重要

Itanium (ia64) binary RPM パッケージとビルドは現在、使用できません。