マルチパス
マルチパスとはマルチパス I/Oとも表現され、ストレージ(HDDなど)とストレージコントローラーなどストレージを接続する経路を多重化する仕組みのことです。冗長性のあるRAIDでは、ストレージの多重化によりストレージの障害に備えます。
一方、マルチパスはストレージを接続する経路を多重化し障害に備えます。
例えば、通常1つのSATA HDDはマザーボード上の1つのSATAポートに接続し利用します。
もしSATAケーブルに断線等の障害が発生した場合は、HDDにアクセスできなくなります。
マルチパスにより経路を多重化すると、1つのSATA HDDを複数のSATAポートに接続し利用することになります。
この場合、あるSATAケーブルに障害が発生しても、他のSATAケーブルが生きていればHDDを利用することができます。
実際このような単純な構成ではありませんが、ストレージの多重化ではなく経路の多重化であるという点が大きく異なります。
Ubuntuからマルチパスを見ると
Ubuntuからマルチパスを見ると、1つのストレージが多重化した経路分見えることになります。例えば経路を4重化した場合、1つのストレージが4つあるように見えます。
デバイスファイルから見ると、1つのストレージが「sda」「sdb」「sdc」「sdd」といったように複数現れます。
このままだと不便
ユーザーやアプリからすれば、どの経路を通過してデータの読み書きを行うかという点は重要ではありません。ユーザーやアプリにとって大切なのは、正しくストレージにアクセスでき、データの読み書きが行えるという点です。
そもそもアプリは、「sda」に障害が発生したとしても、「それならsdbにアクセスするか」などという経路の選択を行うことはできません。
ストレージへのアクセスを仲介する
そこでストレージへのアクセスを適切に処理するソフトウェアを、アプリとデバイスファイルの間に鋏みます。アプリからデータの読み書き要求がきたら、適切なパスを選択し処理を仲介します。
「mdadm」ではその機能を、マルチパスアレイとして提供しています。
アプリはこのマルチパスアレイにより作成された論理ボリュームを介して、ストレージにアクセスすることになります。
マルチパスアレイは推奨されない
Ubuntuでは「mdadm」のマルチパスアレイによるマルチパスへの対応を推奨していません。Ubuntuでは「multipath-tools」によるマルチパスの管理を行います。
というわけで
以下の理由によりマルチパスアレイの紹介は行いません。- マルチパスはエンタープライズ向けである
- Ubuntuでは「mdadm」のマルチパスアレイを推奨していない
- そもそも環境が用意できないため、確認が行えない