8.3. Red Hat Enterprise Linux 5 内に永続的ストレージを構成
このセクションは、ファイバーチャンネル、又は iSCSI ベースのストレージデバイスなどの 外部、あるいはネットワーク化したストレージを持つシステムについて説明しています。 これらのシステムでは永続的な名前が使用ホスト用に設定してあることが推奨されます。 これが移行を助けると共に、複数の仮想化システム用に不変のデバイス名とストレージを 提供することになります。
UUID (Universally Unique Identifiers) は分散型コンピューティング環境で コンピュータとデバイスの識別のための標準化した手法です。このセクションでは、 UUID を使用して iSCSI あるいはファイバーチャンネル LUN を識別します。UUID は 再始動、切断、そしてデバイススワップの後でも永続的に残ります。UUID はデバイス上の ラベルに似ています。
単独パスの設定
この手順は、udev
を使用して LUN デバイスの永続化を実装します。この手順は、multipath
を使用していないホストのためだけに使用して下さい。
/etc/scsi_id.config
ファイルを編集します。options=-b
の行がコメントアウトしてあることを確認します。# options=-b
- 以下の行を追加します:
options=-g
このオプションは、udev
を設定して全ての付帯 SCSI デバイスが UUID を返すことを想定します。
- 任意のデバイスの UUID を表示するには、
scsi_id -g -s /block/sd*
コマンドを使用します。以下のようにします:# scsi_id -g -s /block/sd* 3600a0b800013275100000015427b625e
実際の出力は上記の例と異なるでしょう。この出力は デバイス/dev/sdc
の UUID を表示しています。 - デバイスにアクセスするコンピュータから
scsi_id -g -s /block/sd*
コマンドで UUID 出力が 同一かどうか確認します。 - デバイスを命名するルールを作成します。
/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"
UUIDと devicename を上記で取り込んだ UUID とそのデバイス名で入れ替えます。 以下が上記の例のためのルールです:KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT="3600a0b800013275100000015427b625e", NAME="rack4row16"
udev
デーモンはここで、ルール内で UUID 用の/dev/sd*
と言う名の全てのデバイスを検索します。マッチするデバイスが、 システムに接続されると、デバイスはルールから名前が割り当てられます。3600a0b800013275100000015427b625e の UUID を持つデバイス内では、/dev/rack4row16
として表示されます。 /etc/rc.local
に以下の行を追記します:/sbin/start_udev
/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 のそれらの新規名へのマッピングが この時点で再起動後に永続化されます。