【Linux】Multipathインストール設定手順


LinuxOSの「Multipath」を設定したときのメモを纏めておきます。

「Multipath」は複数パスを冗長化する機能で、主に複数のパスを冗長化し、ブロックデバイスを制御する機能となります。

サーバーで言うとbondingのような機能ですが、ロードバランシング機能があり負荷分散をすることが可能となります。
以下では「Multipath」の設定手順となります。


Multipathのインストールと設定まで

Linux_マルチパスI/Oは普通にインストールするとデフォルトでインストールされていますがインストールされていない場合はインストールメディアからインストールします。

$ rpm -ihv device-mapper-multipath-x.x.x.x.rpm

またはKVMなどからisoディスクを参照し、上記rpmをインストールする。
※上記のパッケージをインストールする際に、必要なパッケージもインストールすること!

事前確認

WWIDの確認方法

$ scsi_id --whitelisted --device=/dev/[対象のデバイス]


「/etc/multipath.conf」 ファイルを初期化

以下コマンドを実行します。

$ mpathconf --enable

/etc/配下にmultipath.confが作成されます。

「/etc/multipath.conf」を編集します。

// デフォルトで全てのデバイスについてのマルチパスを無効にする
blacklist {
  devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"  devnode "^(hd|xvd)[a-z]*"
 wwid	*
}


// 事前に確認したWWIDのみをマルチパス配下に置く
blacklist_exceptions {
  wwid "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

}


// 認識したマルチパスデバイスにわかりやすい名前を付けるようにする。
//デフォルトだとWWIDが名前になるのでわかりにくい。
defaults {
  user_friendly_names yes
}

// WWID指定でマルチパスのポリシーを設定する。
multipaths {
  multipath {
    wwid           "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    alias          denshiDB
    path_grouping_policy multibus
#    path_checker    readsector0
    path_selector  "round-robin 0"
    failback       manual
    rr_weight      priorities
    no_path_retry  5
  }
}

※path_checkerはパスのチェック方法を定義するものですが、適用するとエラーを吐くので止めています。
 ちなみにEMC製品の場合、チェック方法を「emc_clariion」にすると、EMC ClariionのEVPDページ0xC0をクエリしてパスの状態を判別します。

multipathdの起動

Multipathを起動します。

$ service multipathd start

WWIDに対してマルチパスが設定情報が表示されているか、以下のコマンドで確認します。

$ multipath -ll

次に以下のコマンドで設定をロードします。

$ multipath

Multipath作成後のマウント例

Multipath作成後、対象のボリュームをマウントする設定例は以下となります。

$ mkdir /testvol
$ mkfs -t ext4 /dev/mapper/testvol
$ mount /dev/mapper/testvol /testvol

起動時用にfstabへ登録する方法は以下となります。

$ vi /etc/fstab

以下を追記します。

$ /dev/mapper/testvol /testvol   ext4    default  0 0

オペレーティング・システム・ブート時にmultipathを有効にするには以下のコマンドを実行します。

$ chkconfig multipathd on

以上が「Multipath」の設定手順となります。


関連記事


ABOUTこの記事をかいた人

blank

インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!