8.3. Red Hat Enterprise Linux 5 内に永続的ストレージを構成

このセクションは、ファイバーチャンネル、又は iSCSI ベースのストレージデバイスなどの 外部、あるいはネットワーク化したストレージを持つシステムについて説明しています。 これらのシステムでは永続的な名前が使用ホスト用に設定してあることが推奨されます。 これが移行を助けると共に、複数の仮想化システム用に不変のデバイス名とストレージを 提供することになります。
UUID (Universally Unique Identifiers) は分散型コンピューティング環境で コンピュータとデバイスの識別のための標準化した手法です。このセクションでは、 UUID を使用して iSCSI あるいはファイバーチャンネル LUN を識別します。UUID は 再始動、切断、そしてデバイススワップの後でも永続的に残ります。UUID はデバイス上の ラベルに似ています。
multipath を実行していないシステムは 単独パスの設定 を使用しなければなりません。multipath を 実行しているシステムは マルチパスの設定 を使用できます。
単独パスの設定

この手順は、udev を使用して LUN デバイスの永続化を実装します。この手順は、multipath を使用していないホストのためだけに使用して下さい。

  1. /etc/scsi_id.config ファイルを編集します。
    1. options=-b の行がコメントアウトしてあることを確認します。
      # options=-b
      
    2. 以下の行を追加します:
      options=-g
      
      このオプションは、udev を設定して全ての付帯 SCSI デバイスが UUID を返すことを想定します。
  2. 任意のデバイスの UUID を表示するには、 scsi_id -g -s /block/sd* コマンドを使用します。以下のようにします:
    # scsi_id -g -s /block/sd*
    3600a0b800013275100000015427b625e
    
    実際の出力は上記の例と異なるでしょう。この出力は デバイス /dev/sdc の UUID を表示しています。
  3. デバイスにアクセスするコンピュータから scsi_id -g -s /block/sd* コマンドで UUID 出力が 同一かどうか確認します。
  4. デバイスを命名するルールを作成します。/etc/udev/rules.d ディレクトリ内に 20-names.rules と言う名のファイルを作成します。このファイルに新規のルールを 追加します。全てのルールは同じ形式を使用して同じファイルに追加されます。ルールは以下の形式に 従います:
    KERNEL=="sd[a-z]", BUS=="scsi", PROGRAM="/sbin/scsi_id -g -s /block/%k", RESULT="UUID", NAME="devicename"
    
    UUIDdevicename を上記で取り込んだ UUID とそのデバイス名で入れ替えます。 以下が上記の例のためのルールです:
    KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT="3600a0b800013275100000015427b625e", NAME="rack4row16"
    
    udev デーモンはここで、ルール内で UUID 用の /dev/sd* と言う名の全てのデバイスを検索します。マッチするデバイスが、 システムに接続されると、デバイスはルールから名前が割り当てられます。3600a0b800013275100000015427b625e の UUID を持つデバイス内では、/dev/rack4row16 として表示されます。
  5. /etc/rc.local に以下の行を追記します:
    /sbin/start_udev
    
  6. /etc/scsi_id.config/etc/udev/rules.d/20-names.rules、及び /etc/rc.local のファイル内の変化をそれぞれ全ての関連ホストにコピーします。
    /sbin/start_udev
    
設定済のルールを持つネットワークストレージデバイスはここで、 ファイルが更新された全てのホスト上で永続化した名前を取ります。このことは、 共有ストレージを使用してホスト間でゲストを移行できて、ゲストはそれらの 設定ファイル内のストレージデバイスにアクセスできるようになると言う意味です。
マルチパスの設定

multipath パッケージはコンピュータからストレージデバイスへ 複数のパスを持つシステム用に使用されます。multipath は障害 許容、フェイルオーバー、及びパフォーマンス強化を Red Hat Enterprise Linux システムに 付帯しているネットワークストレージデバイスに提供するものです。

multipath 環境内に LUN 永続化を実装するには マルチパスデバイス用に定義したエイリアス名が必要となります。各ストレージ デバイスは、エイリアス化した名前のキーとして機能する UUID を持っています。 scsi_id コマンドの使用で デバイスの UUID を識別 することが出来ます。
# scsi_id -g -s /block/sdc
multipath デバイスは /dev/mpath ディレクトリ内で 作成されます。以下の例では、4つのデバイスが /etc/multipath.conf 内で定義されています:
multipaths { 
        multipath { 
        wwid                3600805f30015987000000000768a0019 
        alias                oramp1 
        } 
        multipath { 
        wwid                3600805f30015987000000000d643001a 
        alias                oramp2 
        } 
        mulitpath { 
        wwid                3600805f3001598700000000086fc001b 
        alias                oramp3 
        } 
        mulitpath { 
        wwid                3600805f300159870000000000984001c 
        alias                oramp4 
        } 
}
この設定は、/dev/mpath/oramp1/dev/mpath/oramp2/dev/mpath/oramp3、及び /dev/mpath/oramp4 と言う名前の 4つの LUN を作成します。入力されるとデバイスの WWID のそれらの新規名へのマッピングが この時点で再起動後に永続化されます。