7 効率的なストレージのためのマルチパスの使用
ストレージ・デバイスへの複数のパスによって、接続の冗長性、フェイルオーバー機能、ロード・バランシングおよびパフォーマンスの向上が提供されます。Device-Mapper Multipath (DM-Multipath)は、サーバーとストレージ・デバイスの間で1つのパスとして複数のI/Oパスを表すことができるマルチパス・ツールです。
デバイス・マルチパス化のサンプル設定
通常は、ファイバ・チャネルベースのストレージ・エリア・ネットワーク(SAN)上のストレージにアクセスできるシステム、またはiSCSIイニシエータとターゲット間に冗長ネットワーク接続が存在する場合はイニシエータ上でマルチパスを構成します。
図7-1は、サーバーとSAN接続ストレージ・アレイのディスク間に、2つのI/Oパスが構成されている単純なDM-Multipath構成を示しています。
-
サーバーのホスト・バス・アダプタ
hba1
とストレージ・アレイのコントローラctrl1
との間。 -
サーバーのホスト・バス・アダプタ
hba2
とストレージ・アレイのコントローラctrl2
との間。
図7-1 SANを介したディスクへの2つのパスのDM-Multipathマッピング
DM-Multipathがない場合、両方のパスが同じストレージ・デバイスに接続されていても、システムは各パスを別々のパスとして扱います。DM-Multipathは、基礎となるデバイス/dev/sdc
および/dev/sdf
が組み込まれた単一のマルチパス・デバイス/dev/mapper/mpathN
を作成します。
マルチパス・サービス(multipathd
)は、次のいずれかの方法でマルチパス・デバイスとの間でI/Oを処理します。
- アクティブ/アクティブ
-
ラウンドロビン割当または動的ロード・バランシングのいずれかで、使用可能なすべてのパスにI/Oが分散されます。
- アクティブ/パッシブ(スタンバイ・フェイルオーバー)
-
I/Oには1つのパスのみが使用されます。アクティブなパスに障害が発生すると、DM-MultipathによってI/Oがスタンバイ・パスに切り替わります。これはデフォルトの構成です。
ノート:
DM-Multipathは、SANファブリック内のパス障害など、パス障害時にフェイルオーバーを提供できます。ディスク・メディア障害は、ソフトウェアまたはハードウェアのRAIDソリューションを使用して処理する必要があります。
マルチパス・デバイスのネーミングは、multipath.conf
ファイル内のマルチパスのuser_friendly_names
プロパティによって管理されます。no
に設定すると、デバイスはWorld Wide Identifier (WWID) (/dev/mapper/WWID
)に基づいて名前が付けられます。WWIDは、それぞれのデバイスに固有です。
このプロパティをyes
に設定すると、デバイスは/dev/mapper/mpathN
としてマップされます。Nはマルチパス・グループ番号です。また、alias
属性を使用して、デバイスに意味のある名前を割り当てることができます。マルチパス構成ファイルの操作を参照してください。
user_friendly_names
のステータスとその他のDM-multipath設定を確認するには、mpathconfコマンドを発行します。次に例を示します:
sudo mpathconf
次のような情報が表示されます。
multipath is enabled find_multipaths is enabled user_friendly_names is enabled dm_multipath modules is loaded multipathd is running
または、/etc/multipath.conf
で設定を表示します。
/dev/mapper
のマルチパス・デバイスは、その他の物理ストレージ・デバイスと同じ方法で使用して、ストレージを参照できます。たとえば、LVM物理ボリューム、ファイル・システム、スワップ・パーティション、自動ストレージ管理(ASM)ディスクまたはRAWデバイスとして構成できます。
マルチパスの構成
-
device-mapper-multipath
パッケージをインストールします。sudo dnf install device-mapper-multipath
-
マルチパス機能の基本構成設定をアクティブ化します。
sudo mpathconf --enable --with_multipathd y
このコマンドは、
/etc/multipath.conf
ファイルも作成します。 -
(オプション)マルチパスのステータスを確認するには、次のように入力します。
sudo mpathconf
-
必要に応じて、
/etc/multipath.conf
を編集します。詳細は、マルチパス構成ファイルの操作を参照してください。
現在のマルチパス構成を表示するには、multipath -llを実行します。
sudo multipath -ll
マルチパスが正しく構成されている場合、コマンドの出力は次のようになります。
mpath1(360000970000292602744533030303730) dm-0 SUN,(StorEdge 3510|T4 size=20G features=‘0’ hwhandler=‘0’ wp=rw |-+- policy=‘round-robin 0’ prio=1 status=active | ‘- 5:0:0:2 sdb 8:16 active ready running ‘-+- policy=‘round-robin 0’ prio=1 status=active ‘- 5:0:0:3 sdc 8:32 active ready running
この出力例では、ラウンドロビンI/Oパス選択を使用して、/dev/mapper/mpath1
に20GBのストレージへの2つのパス(/dev/sdb
と/dev/sdc
)がアクティブ/アクティブ構成で組み込まれていることを示しています。ストレージを識別するWWIDは360000970000292602744533030303730
で、sysfs
のマルチパス・デバイス名前はdm-0
です。
詳細は、mpathconf(8)
、multipath(8)
、multipathd(8)
、multipath.conf(5)
およびscsi_id(8)
の各マニュアル・ページを参照してください。
マルチパス構成ファイルの操作
/etc/multipath.conf
ファイルを介して、システム環境の設定に従ってマルチパスをカスタマイズする定義の組合せを追加できます。コメント付きの構成例は、/usr/share/doc/device-mapper-multipath/multipath.conf
から取得できます。
/etc/multipath.conf
ファイルは、次の一般的なセクションに分かれています。
-
defaults
-
devices
セクションの設定によってオーバーライドされるデフォルトのマルチパス設定を定義します。また、devices
セクションの定義は、multipaths
セクションの設定によってオーバーライドできます。 -
blacklist
-
マルチパス・トポロジ検出から除外されるデバイスを定義します。除外されたデバイスはマルチパス・デバイスには組み込まれません。
この例では、デバイスの除外に使用できる様々な方法(WWID (
wwid
)による方法およびデバイス名(devnode
)による方法)を示しています。 -
blacklist_exceptions
-
デバイスが
blacklist
セクションに暗黙的または明示的にリストされている場合も、マルチパス・トポロジ検出に含めるデバイスを定義します。 -
multipaths
-
WWIDで識別されるマルチパス・デバイスの設定を定義します。
alias
属性には、WWIDまたはマルチパス・グループ番号に基づく名前ではなく、/dev/mapper
に表示されるマルチパス・デバイスの名前を指定します。 -
devices
-
ストレージ・コントローラの個々のタイプの設定を定義します。各コントローラ・タイプは、
vendor
、product
およびオプションのrevision
設定で識別され、これがデバイスのsysfs
の情報と一致する必要があります。DM-Multipathのサポート対象としてリストされていないストレージ・デバイスを追加するには、
/sys/block/device_name/device
のvendor
、model
およびrev
ファイルからベンダー、製品およびリビジョンの情報を取得します。
/etc/multipath.conf
の次のエントリは、指定のWWIDのiSCSI LUNにアクティブ/パッシブ・マルチパス化を設定するのに適しています。
defaults { user_friendly_names yes uid_attribute ID_SERIAL } multipaths { multipath { wwid 360000970000292602744533030303730 } }
このスタンバイ・フェイルオーバー構成では、iSCSIイニシエータでネットワーク・インタフェースに障害が発生した場合、残りのアクティブなネットワーク・インタフェースを介してI/Oが続行されます。
ノート:
/etc/multipath.conf
を編集した場合は、multipathd
サービスを再起動してファイルが再度読み取られるようにします。
sudo systemctl restart multipathd
/etc/multipath.conf
の構成エントリに関する詳細は、multipath.conf(5)
マニュアル・ページを参照してください。