高可用性 LAN インターコネクト構成の場合は,メンバごとに 2 つのネットワーク・アダプタを用意して 2 メンバ NetRAIN (redundant array of independent network adapters) 仮想インタフェースとして構成するとともに,どちらも 2 つの独立したスイッチに接続することをお勧めします。ただし,この構成で NetRAIN を正しく動作させるためには,保守およびフェイルオーバ・トラフィックを通すためのスイッチ間リンクが必要です。LAN インターコネクトをこのような NSPOF (no-single-point-of-failure) 構成にしておけば,1 つの機器に障害が発生しただけでクラスタ全体が使用不能になるという事態を避けることができます。ただし,ある状況でこのスイッチ間リンクに障害が発生すると,ネットワークが分断され,最悪の場合,クラスタ・メンバの半数が削除されてしまいます (6.3.3 項を参照)。
こうした事態を避けるために,スイッチ間リンクを追加して構成することをお勧めします。ただし,リンクを追加すると,ルーティング・ループが形成されて,パケットの転送に問題が生じます。そのため,スイッチを追加構成してこの問題を回避する必要があります。
スイッチ間の並列リンクをサポートする方法には,以下に示す 3 つの方法があります。一般的なスイッチであれば,少なくともその 1 つを備えています。それらを有効な順に説明すると,以下のとおりです。
2 つのスイッチの間にある複数の物理的なリンクを単一のリンクとして扱い,その中でパケットのトラフィックを分散する。 (B.1 節)
2 つのスイッチの間にある複数の物理リンクのうち,1 つのリンクをアクティブ・リンクにし,他のリンクをスタンバイ・リンクにして,その間でフェイルオーバを行う。 (B.2 節)
分散ルーティング・アルゴリズムを使うことにより,スイッチどうしが協調しあってルーティング・ループを検出し削除する。この方法は,IEEE の標準 (IEEE 802-1d) になっている。 (B.3 節)
以降の各節では,これらの方法を詳しく説明するとともに,その方法を有効に働かせるために必要なスイッチの条件と構成オプションを説明します。
B.1 リンク集約
リンク集約 (別名,ポート・トランキング) は,高可用性 LAN インターコネクトのために実装する並列スイッチ間リンクとして,最適のソリューションです。リンク集約を使う場合は,それぞれのスイッチで,もう一方のスイッチのポートへクロス・ケーブルで接続しているポートをグループ化します。グループ化したポートの各組が,それぞれ 1 本の仮想リンクになります。2 つのスイッチの間を流れるトラフィックは,この仮想リンクを構成している物理リンクを通して送信されます。
この構成にはいくつかの利点があります。
仮想リンク内のリンクまたはポートに障害が発生した場合,その物理リンクは使用できなくなりますが,同じ仮想リンクに属する他の物理リンクは継続して使用できます。そのため,スイッチ間の接続は失われません。
特別なことがない限り,フェイルオーバは直ちに行われます。
どの物理リンクもスイッチ間のトラフィックを運べるので,スイッチ間で利用可能な総帯域幅は 1 本のスイッチ間リンクで利用可能な帯域幅より大きくなります。
注意
特に指定しない限り,スイッチの多くは,データ・パケットの宛先 IP アドレスまたは媒体アクセス制御 (MAC) アドレスに基づいて,データの転送に使うポートを決定します。つまり,スイッチ間リンクを経由するシステム間のトラフィックは,常に同じ物理リンク上を流れます。どのアダプタがアクティブになっても帯域幅が増加することはありません。スイッチによっては,ラウンド・ロビン・アルゴリズムを選択して,宛先とは無関係にトラフィックを均等分散できるものもあります。LAN インターコネクトで使うスイッチがこのようなアルゴリズムをサポートしていれば,その機能を利用することで,スイッチ間リンクを一層効率的に使用することができます。ただし,このようなアルゴリズムをサポートしていなくても,リンク集約の耐障害性に影響があるわけではなく,性能改善の可能性が減るだけです。
スイッチによっては,リンク復元をサポートしているものがあります。リンク集約がサポートされていない場合は,リンク復元が次善の方法です。リンク復元は,リンクのフェイルオーバだけを目的に設計された方法です。通常は,2 本のリンクを用意して,一方のリンクをメイン・リンクとし,もう一方のリンクをスタンバイ・リンクとして利用します。2 つのスイッチの間でトラフィックを流すのはメイン・リンクだけです。スイッチは,メイン・リンクに障害を検出すると,直ちにスタンバイ・リンクを使い始めます。メイン・リンクが障害から回復した場合,スイッチはメイン・リンクを再び使うようにするか,またはスタンバイ・リンクを使い続けます。
リンク集約の場合と同じように,リンク復元でも,リンクに障害が起こったときに迅速にフェイルオーバできます。ただし,リンク集約と違って,同時に使用するリンクは 1 本だけです。そのため,利用可能な帯域幅は増えません。
B.3 スパニング・ツリー・プロトコル (STP)
上記の 2 つのオプションがサポートされていない場合でも,双方のスイッチがスパニング・ツリー・プロトコルの標準 (IEEE 802.1d) をサポートしていれば,スイッチ間で並列リンクを使うことができます。業界で広く使われているこの標準は,ネットワークにおけるパケット・ループを検出し削除できるように設計されています。リンクに障害が発生すると,スイッチは自分自身を自動的に再構成し,もう一方のスイッチ間リンクを使い始めます。これは,リンク復元の場合と似ています。
LAN インターコネクトで STP を使う場合は,以下の要件を満たすスイッチを使用する必要があります。
スイッチは,ポートごとに STP を無効にできること。STP の有効または無効をスイッチ全体でしか切り替えられない製品でも,その製造元によっては,高速転送などの機能を使うことで,選択したポートでこのプロトコルを使わせないようにできる製品もあります。
STP のルート学習時間を,クラスタの NetRAIN リンク・フェイルオーバ時間 (10 秒) より短く構成できること。
LAN インターコネクトで STP 対応のスイッチを構成する場合は,以下の規則に従ってください。
STP はスイッチ間リンクで使うポートだけに構成すること。NetRAIN のフェイルオーバにいくつかのネットワーク・カードが絡んでいる場合は,それらのポートで STP が有効になっていると,スパニング・ツリーが再構成されることがあります。スパニング・ツリーの再構成中,スイッチはその間に入ってくるパケットを廃棄します。そのため,NetRAIN フェイルオーバに巻き込まれたノードでは,スパニング・ツリーの再構成が完了しても,接続が切れてしまいます。従って,クラスタ・メンバに接続しているスイッチのポートでは,スパニング・ツリー・ルーティングを無効にし,スイッチどうしをクロス・ケーブルで接続しているポートだけを有効にする必要があります。
スパニング・ツリー・ルーティングは終端ノードに接続しているポートでは意味がなく,問題を起こす可能性があります。しかし,すべてのスイッチがポートごとにスパニング・ツリー・プロトコルを有効および無効にできるわけではありません。その場合は,リンク集約かリンク復元 (これらの方が STP より優れています) を使って並列リンクを実現するか,またはスイッチ間並列リンクを一切使わないようにします。
再構成中はパケットが廃棄されてしまうので,スイッチの STP 設定を調整して,再構成の処理に必要な時間をできるだけ短くすること。ハロー・タイム,転送遅延,および最大経過時間の 3 つの基本的な設定は,ほとんどのスイッチで変更できます。これらの値を最小値に設定してください。通常,ハロー・タイムは 1 秒,転送遅延は 4 秒,そして最大経過時間は 6 秒です。このように調整すれば,スイッチ間リンクに障害が発生しても,スイッチを迅速に回復できます。