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」の設定手順となります。
サーバーを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。