企業のシステム運用において、高可用性(HA)は欠かせない要素です。特にストレージへのアクセスが1本の経路に依存している場合、万が一の障害で大きな影響を及ぼしかねません。
そんな課題を解決するのが「マルチパス構成」です。Linuxでは Device Mapper Multipath
(通称:DM-Multipath)を用いて、複数の経路から同じストレージにアクセスする仕組みを構築できます。
この記事では、Linuxのマルチパス構成について、仕組み、設定方法、確認コマンド、トラブルシュート方法まで網羅的に解説します。これから構築を検討している方や、設定済み環境の理解を深めたい方にとって役立つ内容です。
マルチパスとは?
マルチパス構成とは、1台のストレージに対して複数のパス(経路)を使ってアクセスする技術です。主に以下の目的で利用されます。
- 冗長性の確保:片方のパスに障害が発生しても、もう片方のパスでアクセスを継続できる。
- 負荷分散(ロードバランシング):パス間でI/Oを分散することで、性能を向上できる。
- パスフェイルオーバー:あるパスで障害が発生した場合、自動的に別のパスに切り替えられる。
SAN(Storage Area Network)環境などで特に活用される構成で、Fibre ChannelやiSCSIなどのストレージ接続に適用されます。
Linuxにおけるマルチパス構成の基本
Linuxでマルチパス構成を実現する際は、主に device-mapper-multipath
パッケージを使用します。これはRed Hat系、Debian系を問わず主要なディストリビューションで利用可能です。
主な構成ファイル
/etc/multipath.conf
:マルチパス設定ファイル/etc/multipath/bindings
:WWIDとデバイス名の対応関係を記録/etc/multipath/wwids
:検出されたWWIDの記録
デーモン
multipathd
:パスの監視やフェイルオーバーを行う常駐プロセス
インストールと有効化手順
ここではRed Hat系(RHEL、CentOS、Rocky Linux)を例にインストールと有効化手順を解説します。
# パッケージのインストール
sudo dnf install device-mapper-multipath -y
# 初期設定ファイルの生成
sudo mpathconf --enable --with_multipathd y
# multipathdサービスの有効化
sudo systemctl enable --now multipathd
設定ファイル /etc/multipath.conf
は必要に応じて編集しますが、標準構成でも動作します。明示的にパスやデバイスを定義したい場合は設定を追加しましょう。
multipath.confの基本設定例
defaults {
user_friendly_names yes
find_multipaths yes
}
blacklist {
devnode "^sd[a-z]$"
}
user_friendly_names
:デバイス名をmpathX
のように見やすくするfind_multipaths
:マルチパス対象のみに自動適用blacklist
:マルチパス対象外のデバイスを除外
設定後は、以下のコマンドで設定を反映します。
sudo multipath -F # 設定のフラッシュ
sudo multipath -v2 # 検出と設定の確認
動作確認と管理コマンド
以下のコマンドでマルチパス構成の状態を確認できます。
# マルチパスデバイスの一覧表示
sudo multipath -ll
# multipathdのステータス確認
sudo systemctl status multipathd
# アクティブパスの確認
sudo multipathd show paths
確認できる項目:
- mpathX:マルチパスの論理名
- デバイスパス:
/dev/sdX
などの実体デバイス - ステータス:
active ready
やfailed
など
パス障害時の挙動とトラブルシュート
パスのフェイルオーバー
あるパスに障害が起きた際、multipathd
が自動的に別のパスに切り替えます。ログは以下で確認可能です。
journalctl -u multipathd
よくあるトラブル
症状 | 原因と対処法 |
---|---|
multipath -ll にデバイスが出ない | blacklist 設定が強すぎる可能性あり |
multipath名が変わってしまう | bindings ファイルを固定化していない |
パス数が意図より少ない | HBAまたはSAN側の疎通、ゾーニング要確認 |
マルチパスをfstabで自動マウントする場合
論理デバイス(例:/dev/mapper/mpathX
)を /etc/fstab
に記載する場合は、UUIDかデバイス名を利用します。
# UUIDを取得
sudo blkid /dev/mapper/mpathX
# /etc/fstab例
UUID=xxxxx-xxxx-xxxx-xxxx /data ext4 defaults 0 2
/dev/sdX
を直接記載すると、リブート後にデバイス名が変わる恐れがあるため非推奨です。
まとめ|マルチパス構成で信頼性を高める
Linuxでのマルチパス構成は、企業システムにおいて可用性と信頼性を高める重要な手段です。device-mapper-multipath
の導入により、ストレージへのアクセスパスを複数確保でき、障害時もサービス継続が可能になります。
特に、ミッションクリティカルな業務システムではマルチパス構成の導入を検討する価値が十分にあります。本記事を参考に、まずは小規模な構成からテストしてみてはいかがでしょうか。