ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 ネットワークパフォーマンスの管理 Oracle Solaris 11.1 Information Library (日本語) |
Oracle Solaris では、IPMP には次の機能があります。
IPMP により、複数の IP インタフェースを、IPMP グループと呼ばれる単一のグループに構成できます。IPMP グループは、そのベースとなる複数の IP インタフェースを含め、全体で単一の IPMP インタフェースとして表されます。このインタフェースは、ネットワークスタックの IP 層のほかのインタフェースとまったく同様に扱われます。IP 管理タスク、ルーティングテーブル、アドレス解決プロトコル (ARP) テーブル、ファイアウォール規則、およびその他の IP 関連手順はすべて、IPMP インタフェースを参照することで IPMP グループを操作します。
システムは、ベースとなるアクティブインタフェース間でデータアドレスの分配を処理します。IPMP グループの作成時に、データアドレスはアドレスプールとして IPMP インタフェースに属します。続いてカーネルが自動的かつランダムに、グループのデータアドレスとベースとなるアクティブインタフェースをバインドします。
ipmpstat ツールは、IPMP グループに関する情報を取得するための主要ツールです。このコマンドは、グループのベースとなる IP インタフェース、検査用アドレスとデータアドレス、使用される障害検出のタイプ、故障したインタフェースなど、IPMP 構成のあらゆる側面についての情報を提供します。ipmpstat の機能、使用できるオプション、および各オプションが生成する出力についてはすべて、「IPMP 情報のモニタリング」で説明しています。
IPMP インタフェースにカスタマイズされた名前を割り当てて、IPMP グループをより簡単に識別できます。「IPMP グループの構成」を参照してください。
インタフェースの故障や、インタフェースが保守のためにオフラインになっている場合など、さまざまな要因によりインタフェースが使用不可能になる可能性があります。IPMP を使用しないと、その使用不可能になったインタフェースに関連付けられたどの IP アドレスを使用しても、システムと通信できなくなります。さらに、それらの IP アドレスを使用する既存の接続が切断されます。
IPMP を使用すると、複数の IP インタフェースを 1 つの IPMP グループに構成できます。このグループは、ネットワークトラフィックを送受信するデータアドレス付きの IP インタフェースのように機能します。グループ内のベースとなるインタフェースの 1 つが故障すると、グループ内の残りのアクティブなベースとなるインタフェースの間でデータアドレスが再分配されます。したがって、インタフェースの 1 つが故障しても、グループはネットワークの接続性を維持します。IPMP では、グループで最低 1 つのインタフェースが使用可能であれば、ネットワーク接続を常に使用できます。
IPMP は、IPMP グループ内のインタフェースセット全体にアウトバウンドネットワークトラフィックを自動的に分散させることにより、全体的なネットワークパフォーマンスを向上させます。このプロセスは、アウトバウンド「負荷分散」と呼ばれます。システムはさらに、アプリケーションによって発信元 IP アドレスが指定されなかったパケットに対して発信元アドレス選択を実行することにより、インバウンド負荷分散も間接的に制御します。ただし、アプリケーションが発信元 IP アドレスを明示的に選択した場合は、システムはその発信元アドレスを変更しません。
注 - リンクアグリゲーションは IPMP と同様の機能を実行して、ネットワークのパフォーマンスと可用性を向上させます。これら 2 つのテクノロジの比較については、付録 B リンクアグリゲーションと IPMP: 機能比較を参照してください。
IPMP グループの構成はシステム構成によって決まります。
IPMP を使用するときは、次の規則に従ってください。
同じ LAN 上の複数の IP インタフェースは、1 つの IPMP グループに構成される必要があります。LAN は、同じリンク層ブロードキャストドメインに属するノードを含む VLAN や有線と無線の両方のローカルネットワークなど、さまざまなローカルネットワーク構成を広く指します。
注 - 同じリンク層 (L2) ブロードキャストドメイン上の複数の IPMP グループはサポートされていません。通常、L2 ブロードキャストドメインは特定のサブネットに対応します。したがって、サブネットごとに IPMP グループを 1 つだけ構成する必要があります。
IPMP グループのベースとなる IP インタフェースが異なる LAN にまたがってはいけません。
たとえば、3 つのインタフェースを備えたシステムが 2 つの別個の LAN に接続されているとします。一方の LAN に 2 つの IP インタフェースが接続し、他方の LAN に単一の IP インタフェースが接続します。この場合、最初の規則により、1 つ目の LAN に接続する 2 つの IP インタフェースは 1 つの IPMP グループとして構成される必要があります。2 番目の規則のため、2 つ目の LAN に接続する単一の IP インタフェースがその IPMP グループのメンバーになることはできません。単一の IP インタフェースでは、IPMP 構成は必須ではありません。ただし、その単一のインタフェースの可用性をモニターするために、そのインタフェースを 1 つの IPMP グループに構成してもかまいません。単一インタフェースの IPMP 構成の詳細については、「IPMP インタフェース構成のタイプ」を参照してください。
別のケースとして、1 つ目の LAN へのリンクが 3 つの IP インタフェースから構成され、もう 1 つのリンクが 2 つのインタフェースから構成される場合を考えます。この設定は 2 つの IPMP グループの構成を必要とします (1 つ目の LAN に接続する 3 つのインタフェースから成るグループと、2 つ目の LAN に接続する 2 つのインタフェースから成るグループ)。
マルチパスデーモン in.mpathd - インタフェースの故障や修復を検出します。ベースとなるインタフェースで検査用アドレスが構成されている場合、このデーモンは、リンクベースの障害検出とプローブベースの障害検出の両方を実行します。このデーモンは、使用される障害検出手法のタイプに応じて、インタフェース上で適切なフラグを設定または解除し、そのインタフェースが故障しているかどうかや修復されたかどうかを示します。オプションとして、IPMP グループに属するように構成されていないインタフェースを含むすべてのインタフェースの可用性をモニターするようにこのデーモンを構成することもできます。障害検出については、「IPMP での障害検出」を参照してください。
in.mpathd デーモンは、IPMP グループ内のアクティブインタフェースの指定も制御します。このデーモンは、IPMP グループの作成時に最初に構成されたのと同じ数のアクティブインタフェースを維持しようとします。したがって、in.mpathd は、ベースとなるインタフェースを必要に応じて起動したり停止したりして、管理者が構成したポリシーとの一貫性を保ちます。in.mpathd デーモンがベースとなるインタフェースの起動を管理する方法の詳細については、「IPMP の動作方法」を参照してください。このデーモンの詳細は、in.mpathd(1M) のマニュアルページを参照してください。
IP カーネルモジュール - IPMP グループ内で使用可能な一連の IP データアドレスをグループ内で使用可能な一連のベースとなる IP インタフェースに分配することで、アウトバウンド負荷分散を管理します。さらにこのモジュールは、発信元アドレス選択を実行してインバウンド負荷分散を管理します。このモジュールのどちらの役割も、ネットワークトラフィックのパフォーマンスを改善します。
IPMP 構成ファイル (/etc/default/mpathd ) - デーモンの動作を定義します。
次のパラメータを設定するには、このファイルをカスタマイズします。
プローブベースの障害検出を実行している場合に、プローブするターゲットインタフェース
障害を検出するためにターゲットをプローブする時間
故障したインタフェースが修復されたあとにフラグ付けするステータス
モニターする IP インタフェースの範囲 (IPMP グループに属するように構成されていない、システム内の IP インタフェースも含めるかどうか)
この構成ファイルを変更する手順については、「IPMP デーモンの動作を構成する方法」を参照してください。
ipmpstat コマンド - IPMP の全体としてのステータスに関するさまざまなタイプの情報を提供します。さらにこのツールは、各 IPMP グループのベースとなる IP インタフェースに関するその他の情報や、グループで構成されているデータアドレスや検査用アドレスも表示します。このコマンドの詳細は、「IPMP 情報のモニタリング」および ipmpstat(1M) のマニュアルページを参照してください。
IPMP 構成は、通常同じ LAN に接続された同じシステムの複数の物理インタフェースで構成されます。これらのインタフェースは、次のいずれかの構成の IPMP グループに属することができます。
アクティブ - アクティブ構成 – ベースとなるインタフェースのすべてがアクティブである IPMP グループ。「アクティブインタフェース」とは、IPMP グループによって現時点で使用可能な IP インタフェースのことです。
注 - デフォルトでは、あるベースとなるインタフェースを IPMP グループの一部になるように構成すると、そのインタフェースはアクティブになります。
アクティブ - スタンバイ構成 – 少なくとも 1 つのインタフェースがスタンバイインタフェースとして管理上構成されている IPMP グループ。スタンバイインタフェースはアイドル状態になっていますが、その構成方法に応じて、可用性を追跡するためにマルチパスデーモンによってモニターされます。インタフェースによってリンク障害通知がサポートされている場合は、リンクベースの障害検出が使用されます。インタフェースで検査用アドレスが構成されている場合は、プローブベースの障害検出も使用されます。いずれかのアクティブインタフェースが故障すると、スタンバイインタフェースが必要に応じて自動的に配備されます。1 つの IPMP グループには、スタンバイインタフェースを必要な数だけ構成できます。
単独インタフェースをそれ自体の IPMP グループ内で構成することもできます。単独インタフェース IPMP グループは、複数のインタフェースを持つ IPMP グループと同じように動作します。ただし、この IPMP 構成は、ネットワークトラフィックの高可用性を提供しません。ベースとなるインタフェースが故障すると、システムはトラフィックを送受信する機能をすべて失います。単一インタフェースの IPMP グループを構成する目的は、障害検出を使用してインタフェースの可用性をモニターすることです。インタフェースで検査用アドレスを構成することにより、プローブベースの障害検出を使用してマルチパスデーモンでそのインタフェースを追跡できます。
単一インタフェースの IPMP グループ構成は通常、Oracle Solaris Cluster ソフトウェアなど、より幅広いフェイルオーバー機能を備えたほかのテクノロジとともに使用されます。システムは引き続き、ベースとなるインタフェースのステータスをモニターできますが、Oracle Solaris Cluster ソフトウェアは、障害発生時にネットワークの可用性を保証するための機能を提供します。Oracle Solaris Cluster ソフトウェアの詳細は、『Oracle Solaris Cluster Concepts Guide』を参照してください。
ベースとなるインタフェースが削除されたグループなど、ベースとなるインタフェースを持たない IPMP グループも存在できます。この IPMP グループは破棄はされませんが、このグループを使用してトラフィックを送受信することはできません。このグループでベースとなるインタフェースがオンラインになると、それらのインタフェースに IPMP インタフェースのデータアドレスが割り当てられ、システムがネットワークトラフィックのホスティングを再開します。
IPMP は、IPMP グループの作成時に構成されたアクティブインタフェースとスタンバイインタフェースの元の数を保持しようとすることによって、ネットワークの可用性を維持します。
グループ内の特定のベースとなる IP インタフェースの可用性を判定するための IPMP 障害検出は、リンクベースまたはプローブベース、あるいはその両方にすることができます。あるベースとなるインタフェースが故障したと IPMP が判定した場合、そのインタフェースは故障としてフラグが付けられ、使用できなくなります。次に、故障したインタフェースに関連付けられていたデータ IP アドレスが、グループ内で機能している別のインタフェースに再分配されます。さらに、使用可能な場合は、スタンバイインタフェースも配備され、アクティブインタフェースの元の数を維持します。
次の図に示すような、3 つのインタフェースを含むアクティブ - スタンバイ構成の IPMP グループ itops0 を考えます。
図 5-1 IPMP アクティブ-スタンバイ構成
IPMP グループ itops0 は次のように構成されています。
このグループには、2 つのデータアドレス 192.168.10.10 と 192.168.10.15 が割り当てられています。
ベースとなる 2 つのインタフェースがアクティブインタフェースとして構成され、柔軟なリンク名 net0 と net1 が割り当てられています。
このグループにはスタンバイインタフェースが 1 つ含まれており、これにも柔軟なリンク名 net2 が割り当てられています。
プローブベースの障害検出が使用されるため、アクティブインタフェースとスタンバイインタフェースは次のような検査用アドレスで構成されています。
net0: 192.168.10.30
net1: 192.168.10.32
net2: 192.168.10.34
注 - 図 5-1、図 5-2、図 5-3、および 図 5-4 のアクティブ、オフライン、スタンバイ、および故障の各領域は、ベースとなるインタフェースのステータスを示しているだけであり、物理的な場所を示しているわけではありません。この IPMP 実装内では、インタフェースまたはアドレスの物理的な移動や IP インタフェースの転送は一切発生しません。これらの領域の役割は、ベースとなるインタフェースのステータスが故障、修復のいずれかの結果としてどのように変化するかを示すことだけです。
さまざまなオプションとともに ipmpstat コマンドを使用して、既存の IPMP グループに関する特定の種類の情報を表示できます。その他の例については、「IPMP 情報のモニタリング」を参照してください。
次の ipmpstat コマンドは、図 5-1 の IPMP 構成に関する情報を表示します。
# ipmpstat -g GROUP GROUPNAME STATE FDT INTERFACES itops0 itops0 ok 10.00s net1 net0 (net2)
グループのベースとなるインタフェースに関する情報を表示するには、次のように入力します。
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 yes itops0 ------- up ok ok net1 yes itops0 --mb--- up ok ok net2 no itops0 is----- up ok ok
IPMP は、アクティブインタフェースの元の数を維持できるようにベースとなるインタフェースを管理することで、ネットワークの可用性を維持します。したがって、net0 が故障すると、IPMP グループが引き続き 2 つのアクティブインタフェースを持てるように、net2 が配備されます。net2 のアクティブ化を次の図に示します。
図 5-2 IPMP でのインタフェースの故障
注 - 図 5-2 のデータアドレスとアクティブインタフェースとの 1 対 1 のマッピングは、図を単純化するためのものにすぎません。IP カーネルモジュールは、データアドレスとインタフェースとの間の 1 対 1 の関係に必ずしも縛られることなく、データアドレスをランダムに割り当てることができます。
ipmpstat コマンドは、図 5-2 の情報を次のように表示します。
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 no itops0 ------- up failed failed net1 yes itops0 --mb--- up ok ok net2 yes itops0 -s----- up ok ok
net0 が修復されると、アクティブインタフェースとしてのステータスに戻ります。一方、net2 は元のスタンバイステータスに戻されます。
別の故障シナリオを図 5-3 に示します。このシナリオでは、スタンバイインタフェース net2 が故障します (1)。そのあと、アクティブインタフェースの 1 つである net1 が管理者によってオフラインに切り替えられます (2)。その結果、この IPMP グループには、機能しているインタフェース net0 が 1 つ残されます。
図 5-3 IPMP でのスタンバイインタフェースの故障
ipmpstat コマンドは、図 5-3 の情報を次のように表示します。
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 yes itops0 ------- up ok ok net1 no itops0 --mb-d- up ok offline net2 no itops0 is----- up failed failed
この故障では、インタフェースが修復されたあとの回復の動作は異なります。この回復プロセスは、修復後の構成と比較した IPMP グループのアクティブインタフェースの元の数に依存します。この回復プロセスを次の図に視覚的に示します。
図 5-4 IPMP の回復プロセス
図 5-4 で、net2 が修復されると、通常、スタンバイインタフェースとしての元のステータスに戻ります (1)。ところが、この IPMP グループは依然として、アクティブインタフェースの元の数である 2 個を反映していません。これは、net1 が引き続きオフラインのままになっているからです (2)。したがって、IPMP は代わりに net2 をアクティブインタフェースとして配備します (3)。
ipmpstat コマンドは、修復後の IPMP シナリオを次のように表示します。
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 yes itops0 ------- up ok ok net1 no itops0 --mb-d- up ok offline net2 yes itops0 -s----- up ok ok
FAILBACK=no モードも構成されたアクティブインタフェースが故障に関与している場合にも、同様の回復プロセスが発生します。その場合、故障したアクティブインタフェースが修復されても、自動的にはアクティブステータスに戻りません。図 5-2 の net0 が FAILBACK=no モードに構成されているとします。そのモードでは、修復された net0 は、最初はアクティブインタフェースであったとしても、スタンバイインタフェースになります。この IPMP グループのアクティブインタフェースの元の数である 2 個を維持するように、インタフェース net2 はアクティブのままになります。
ipmpstat コマンドは、回復情報を次のように表示します。
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 no itops0 i------ up ok ok net1 yes itops0 --mb--- up ok ok net2 yes itops0 -s----- up ok ok
このタイプの構成の詳細については、「FAILBACK=no モード」を参照してください。