100%レンタルサーバーを使いこなすサイト100%レンタルサーバーを使いこなすサイトホームページ初心者・レンタルサーバー初心者の方でもレンタルサーバーを100%使いこなす情報を徹底調査します。今回は少々インフラ寄りの話(レンタルサーバー業者側の話)になってしまいますが、Multipath(マルチパス)について詳しく解説します。Multipathとは、「サーバー」と「ストレージ」間の複数パスを単一のデバイスに設定できる機能(仕組み・技術)です。言葉を変えると、1つのデバイスに複数のパスを設定できます。言葉を変えると、システムに接続されているストレージへの物理アクセスパスが複数ある環境を「マルチパス」と言います。アダプタ)」からストレージの「コントローラ」間です。Multipathは、「冗長化」や「パフォーマンス向上」を実現する機能(仕組み・技術)です。Multipathは、複数のパスで接続されたブロックデバイスを制御します。Multipathは、「FC(ファイバーチャネル)」や「iSCSI」などで利用されます。多くなってきています。(FCより安くてそこそこ高速のため)Multipathには次のような利点があります。Multipath(マルチパス)のメリット(目的)Multipathのメリット(目的)は、大きく以下の2点が挙げられます。あるパスに障害が発生した場合、I/Oを他の使用可能なパスに切り替えます。パフォーマンスを上げます。下図では複数のHBAが1つのストレージにつながっているので、OS上からはストレージが複数に見えます。サーバー#1上からは同じストレージが2つに見えます。サーバー#2からもストレージが2つに見えます。そのため、OSからは合計4つのストレージがあるように見えますが、実際は物理的にストレージは2つしかありません。この矛盾をマルチパスドライバが解決します。ファイルオーバーマルチパス構成は、システムに耐障害性をもたらします。システムが障害に強くなります。※ちなみに下図のマルチパス構成は「4パス」あります。4パスの場合は3か所で障害があっても残りの1パスで通信できることが期待できます。下図のように障害ポイントは数点あります。下図には「HBA」や「スイッチ」や「ストレージのコントローラ」があります。マルチパスで冗長化することにより、1点に障害が発生しても「サーバー」と「ストレージ」で通信することができます。「金融系」や「JRの新幹線の予約システム」のようなリアルタイムでサービスを提供している企業では1つの障害で売り上げが大きく変わってきたり、ユーザーに損害を与えることもあるので冗長化は必須です。レンタルサーバー会社でもマルチパス構成を取り入れているかというと、法人向け、企業向け、エンタープライズ向けの高額のレンタルサーバーならここまでやっていると思いますが、月100円程度の格安のレンタルサーバーを提供している企業ではここまで手厚くシステムを構築していないかもしれません。(レンタルサーバー会社により異なります)パフォーマンスを上げるアクティブ/アクティブ構成アクティブ/アクティブ構成にすると、下図のように1回線(1パス)ではなく、複数パスで同時に通信ができるので、単純計算では1回線より2回線の方が2倍の通信速度になります。※もちろん現実では様々なボトルネックがあるので単純に2倍にはなりませんが、それでも1回線の時よりかは速度が速くなるだろうと期待できます。アクティブ/アクティブ構成は非常に条件が厳しく更に高額な「HBA」や「ストレージ」や「コントローラ」を用意しなければいけないため、実際に導入するのはエンタープライズでも名の知れた企業クラスになると思います。ブロックデバイスとは?Multipathは、複数のパスで接続されたブロックデバイスを制御しますが、そもそも「ブロックデバイス」とは何でしょうか。ちなみに、ブロックデバイスの「デバイス」とは「周辺機器」のことを表します。デバイスには以下の2種類があります。ブロックデバイス(HDD、DVD-ROMなど)キャラクタデバイス(キーボード、シリアルポートなど)ブロックデバイスとは、データの読み書きがある程度の大きさのブロック単位(512~2048バイト)でランダムにアクセスできるデバイスです。キャラクタデバイスは1文字ずつデータのやり取りを行います。ここでは「ブロックデバイス」イコール「ハードディスク」と思ってください。以下の「lsblk」コマンドは、利用可能なブロックデバイスを確認するコマンドです。←メジャー番号とマイナー番号が一致しているデバイスマッパーデバイスマッパーとはデバイスのマッピングを管理する「プログラム」です。つの別々の位置で確認することができます。内のデバイスは、ブートプロセス時に作成されます。形式を持つすべてのデバイスは内部での使用のみを目的としており、通常は使用できません。※/dev/dm-0、/dev/dm-1などのデバイスファイルは、カーネル内でのブロックデバイス共通の名前管理のためのものです。/dev/dm-nは、マップ作成時に数字が変動するので利用しません。ネットワーク)のストレージのことを言います。Identifier)が付いています。WWIDは、変更しません(されません)。OSを再起動しても、OSを再インストールしても、フォーマットしても、マルチパスデバイスを初期化しても変わりません。イーサネットのMACアドレスのように工場でデバイス製造時に組み込みます。そのため、正確にデバイスを特定することが可能です。-l」コマンドの実行結果です。これらは永続的ではありません。Identifier)を含む8バイト(64bit)の数字で表します。残る4バイトと4ビットがベンダー指定のシリアル番号マルチパスの要件マルチパスを利用するためには要件があります。ちなみに、個人向けのデバイス(安い、機能が低い、すぐ壊れる)ではなくエンタープライズ向けのデバイス(高い、機能が高い、24時間365日稼働させ続けても壊れない)が必要になります。ストレージがマルチパスに対応していないと利用できません。「HP」や「IBM」や「HITACHI」や「NEC」など主要なメーカーの高額ストレージを扱っているベンダーの営業に連絡をするところから始まります。ストレージプロトコルについてストレージプロトコルについて表にしてみました。「FC」でも「iSCSI」でもまずは「device-mapper-multipath」というパッケージが必要です。以下、device-mapper-multipathのインストール手順とその起動と起動確認手順です。トランザクションの確認を実行しています。依存性解決を終了しました。起動には失敗しています。←multipath.confファイルがないのでmultipathdが起動できませんでした。コマンドを使うので、コマンドの使い方の整理をします。特定のマルチパスデバイスを設定します。形式などのデバイス名で置き換えます。マップされたけど使用していないデバイスを削除します。マップされたけど使用していないデバイスを特定して削除します。形式などのデバイス名で置き換えます。実際のデバイスの作成やデバイスマップの設定・変更は行いません。すべてのマルチパスデバイスの状態を表示します。内の情報から収集したマルチパストポロジーとデバイスマッパーを表示します。すべてのマルチパスデバイスの状態を表示します。オプションが表示する情報と、その他のすべての使用可能なシステムコンポーネントを表示します。指定されたマルチパスデバイスのステータスを表示します。形式などのデバイス名で置き換えます。作成または更新されたマルチパス名のみが出力されます。すべての検知されたパス、マルチパスおよびデバイスマップが表示されます。ファイルをリセットします。コマンドでマルチパスデバイスの状態を確認することができます。コマンドマルチパスデバイス上のパーティションにdevmapをマップします。あり、これはグローバルに一意かつ不変であることが保証されます。形式のノードに一意の名前に設定することができます。自動的に構成してくれます。ファイルを編集して、適切なデバイス情報を挿入します。mpathconfマルチパスのセットアップは「mpathconf」コマンドで設定します。マルチパスを設定するためのコマンドです。configuration.mpathconfは/etc/multipath.confを作成または変更するユーティリティです。マルチパスを有効または無効にし、いくつかの共通オプションを構成できます。mpathconfは、dm_multipathモ​​ジュールをロードし、マルチパスデーモンの起動と停止を行い、multipathdサービスが自動的に起動するように設定することもできます。オプションなしでmpathconfコマンドを実行すると、現在の設定が表示されます。multipathd.mpathconfのデフォルトオプションは--with_moduleです--with_multipathdオプションはデフォルトでは設定されていません。マルチパスを有効にすると、dm_multipathモ​​ジュールがロードされますが、すぐには開始されません。これは、マルチパスを開始する前に、必要に応じてユーザが設定ファイルを手動で編集できるようにするためです。command./etc/multipath.confがすでに存在する場合、mpathconfはそれを編集します。存在しない場合、mpathconfは/usr/share/doc/device-mapper-multipath-0.4.9/multipath.confを開始ファイルとして使用します。このファイルにはuser_friendly_namesが設定されています。このファイルが存在しない場合、mpathconfは最初から/etc/multipath.confを作成します。nコマンドを使用しない限り、デフォルトでuser_friendly_namesが設定されることを意味します。section./etc/multipath.confブラックリストセクションからすべてのデバイスノードをブラックリストする行を削除します。one.すべてのデバイスノードを/etc/multipath.confブラックリストセクションにブラックリストする行を追加します。ブラックリストセクションが存在しない場合は、ブラックリストセクションが作成されます。command.yに設定すると、/etc/multipath.confのdefaultsセクションにuser_friendly_namesという行が追加されます。nに設定すると、行があれば削除されます。このコマンドは、他のコマンドと一緒に使用できます。yesという行が/etc/multipath.confのdefaultsセクションに追加されます。nに設定すると、行があれば削除されます。このコマンドは、他のコマンドと一緒にaldongで使用できます。dm_multipathが実行され、マルチパスモジュールがインストールされます。このオプションは--enableコマンドでのみ動作します。このオプションはデフォルトでyに設定されています。startを実行してマルチパスデーモンを起動します。reloadを実行してマルチパスを再設定します。--user_frindly_namesと--find_multipaths。このオプションはデフォルトでnに設定されています。MPATHCONF(8)初期状態では、「/etc/multipath.conf」ファイルは存在しないので、以下の2つの方法のうち、どちらかを実行します。multipathdが起動していることが確認できます。ファイルが作成されているか確認します。yes」が設定されています。-v2」コマンドで現在の設定を確認し、ローカルデバイスが含まれていたら「/etc/multipath.conf」ファイルの「blacklist」にWWIDを追加します。マルチパスデバイスの生成時にローカルディスクを無視する内蔵ディスクのマルチパス化は推奨されていません。パラメータを「yes」にするなど設定しておきます。ブラックリスト化する場合は「/etc/multipath.conf」ファイルの「blacklist」に追加します。以下、「/etc/multipath.conf」ファイルの設定例です。正規表現で指定できます。正規表現で指定できます。パラメータを修正する場合も「/etc/multipath.conf」を修正します。以下、「/etc/multipath.conf」ファイルの設定例です。デフォルトでは「yes」になっています。-v2」コマンドを実行して不要なデバイスが削除されていることを確認します。環境でマルチパスを構成するケースが多くなりました。クライアント/サーバーシステムの構成になっています。iSCSIターゲットiSCSI環境でマルチパスを設定する手順の概要iSCSIでマルチパスを作成する手順の概要を以下に記載します。随時検証環境で検証後に更新していきます。iSCSIイニシエーターのインストールiSCSIの接続元となるサーバーにiSCSIイニシエーターをインストールします。iSCSIイニシエーターをインストールすると、「iscsiadm」コマンドで管理できるようになります。--help」コマンドで動作確認をします。LinuxからiSCSIターゲットを認識させる初期は何も登録されていない状態です。nodediscoveryでターゲットを認識させます。認識されているか確認します。ターゲットにログインします。認識したディスクの確認fsckコマンドでディスクを確認します。-l※fdiskコマンドでハードディスクのパーティション情報を調べることができます。ディスクが表示されます。※フォーマットしてファイルシステムを作成するまでは正常なディスクとして認識されません。→「ディスク●●は正常な領域テーブルを含んでいません」というような警告が表示されます。ここでのチェックで重要なのは、1つのディスクを複数のパスで見えている、ということです。上図のように1つのストレージに対して複数のパスが見えていれば、マルチパスの設定がうまく行っています。CentOS7ではscsi_idコマンドは「/usr/lib/udev/scsi_id」にありました。以下のように/etc/multipath.confを編集します。※これは一例で1つのディスクを多数のパスで読み込む場合を想定しています。←自身のサーバーのwwidを調べて入力します。属性が適用されるマルチパスデバイスのシンボリック名(エイリアス)を指定します。デフォルトのパスグルーピングポリシーを指定します。デフォルトのパスグルーピングポリシーを指定します。パスグループのフェイルバックを指定します。パスの重みづけを指定します。障害が発生した場合、何回施行するのかを決定します。}}上記のようにマルチパスの設定を入れます。設定の肝は、正しいWWIDが設定されているかどうか。7.設定が正しいか確認する設定が完了したら、正しくマルチパスが設定されていることを確認します。以下の結果は参考例です。running上記のように1つのディスクに対して複数のパスが通っていることを確認します。違いは?いろいろ調べていたら似たような用語がいくつか出てきました。※ファブリックとは、ファイバーチャネルスイッチ(FCスイッチ)を中心としたネットワークのことを言います。SCSI)などのストレージで使用される一意の(ユニークな)識別子です。一意なので100%重複はありません。ユニークという意味です。WWNは、様々な利用ができます。Name)として使用できます。ストレージエリアネットワークで使用され、ネットワーク内の一意の識別子のため、イーサネットプロトコルのMACアドレスと同等の機能を実行します。単一のネットワーク・ノードの複数のネットワーク・インターフェースとしてポートを識別する、同じWWNNがネットワーク上の多くの異なるポート(異なるアドレス)で認識されます。まとめ全然まとまらない感じになってしまいました。のちほど検証して検証結果を詳しく追記したいと思います。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。