7    クラスタ・インターコネクト

クラスタには,すべてのクラスタ・メンバを接続するための専用クラスタ・インターコネクトが必要です。このインターコネクトは,クラスタ・メンバ間の専用通信チャネルとして使用されます。クラスタ・インターコネクトのハードウェアには Memory Channel または専用の LAN を使用できますが,同時にはいずれか一方しか使えません。

この章では,クラスタ・インターコネクトの目的,その使用,そのトラフィック制御メソッド,および使用するインターコネクトの種類を決める方法について説明します。具体的には,次の事項について説明します。

一般に,クラスタ・インターコネクトは次のような高レベルの機能に対して使用します。

このような高レベルでの使われ方を見れば,クラスタ・インターコネクトの通信負荷がクラスタのストレージ構成とクラスタで実行するアプリケーションの組み合わせによって大きく影響されることがわかります。

表 7-1 に,LAN インターコネクトと Memory Channel インターコネクトを対象にした,コスト,性能,規模,メンバ間の距離,Memory Channel アプリケーション・プログラミング・インタフェース (API) ライブラリのサポート,および冗長性の比較を示します。以降の各節では,クラスタ・インターコネクトの帯域幅を管理する方法と,いくつかの要因に基づいて適切なインターコネクトを選択する方法を説明します。

表 7-1:  Memory Channel インターコネクトと LAN インターコネクトの特性比較

Memory Channel LAN
コスト高。 一般的に低コスト。
高帯域幅,低遅延。 100 Mb/秒の場合:帯域幅は中で,遅延は中〜高。1000 Mb/秒の場合:高帯域幅で,遅延は中〜高。
最高 8 メンバで,Memory Channel ハブの容量により制約される。 現在は最高 8 メンバ。将来,拡張予定。

メンバ間の距離は,銅線の場合,最長 20 m (65.6 フィート)。仮想ハブ・モードの光ファイバ・ケーブルの場合,最長 2000 m (1.2 マイル)。物理ハブを使った光ファイバ・ケーブルの場合,最長 6000 m (3.7 マイル)。

ネットワーク・セグメントの距離は,使用するイーサネット・ハードウェアの機能とそのオプションによって決まる。『クラスタ・ハードウェア構成ガイド』 で説明されている LAN インターコネクト・ハードウェアの要件と構成の指針を使用する場合は,http://www.compaq.com/quickspecs にある個別のネットワーク・アダプタの『QuickSpec』を参照。
Memory Channel API (アプリケーション・プログラミング・インタフェース) ライブラリを使用可能。 Memory Channel API ライブラリは使用不可。アプリケーションによっては,TruCluster Server バージョン 5.1B から新しく使えるようになったメンバ間の汎用シグナル送信機能 (クラスタ単位の kill) を使うだけで,メンバ間の通信を十分に行える。
マルチレール (フェイルオーバ・ペア) 冗長 Memory Channel 構成。 各メンバ上で複数のネットワーク・アダプタを NetRAIN (redundant array of independent network adapters) の仮想インタフェースとして構成するとともにその接続を複数のスイッチに分散することで,冗長性を実現する。

7.1    クラスタ・インターコネクトを経由するストレージ・トラフィックの制御

クラスタ・ファイル・システム (CFS) では,ファイル・システムのアクセスをクラスタ全体にわたって調整します。この調整機能は,ファイル・システムごとに CFS サーバの役割を 1 つのクラスタ・メンバに担当させることで実現します。CFS サーバは,他のクラスタ・メンバに代わって,そのファイル・システムに対するすべてのアクセス,つまり読み取りと書き込みを行います。

TruCluster Server バージョン 5.1A から,ファイル・システムの読み取りアクセスが,CFS サーバを迂回してディスクに対して直接行えるようになりました。この機能を利用すると,クラスタ・インターコネクトを経由しません。クラスタにあるすべてのディスクがどのクラスタ・メンバからでも同じようにアクセスできれば,この機能を使うことにより,読み取り操作に必要なクラスタ・インターコネクトの帯域幅を大幅に減らすことができます。ただし,読み取りアクセスがインターコネクトを迂回できても,他のメンバの提供するファイル・システムへ書き込む際は (この場合は,間接入出力アクセスになる),すべてインターコネクトを通ります。ファイル・システムに大量のデータを書き込むアプリケーションがあれば,できる限りそのアプリケーションをそのファイル・システムの CFS サーバと同じメンバに配置して,このトラフィックを減らすことをお勧めします。そうすれば,インターコネクトを経由するファイル・システムの入出力は,リモートに対する書き込みだけになります。アプリケーションの組み合わせ,CFS サーバの配置,およびリモートに対する書き込みのデータ量を分析すれば,そのクラスタに最適なインターコネクトを決定できます。

Oracle Parallel Server (OPS) のようなアプリケーションでは,ディスクの書き込み要求をその対象ディスクへ直接送ることで,CFS サーバに至るクラスタ・インターコネクトの利用を省くことができます。この直接入出力は,ファイルをオープンするときにアプリケーションで O_DIRECTIO フラグを指定することによって有効にされます。直接入出力が有効にされると,アプリケーションがクラスタ全体にわたってそのファイルに対する自身の書き込みを調整することが,CFS に対して宣言されます。この機能を使うアプリケーションが増えれば,指定されたファイルに対するクラスタ全体の書き込みスループットが増大するだけでなく,クラスタ・インターコネクトを経由するリモート書き込みのトラフィックも減少します。

この方法は,OPS のように他の方法ではデータ・キャッシュ,事前読み取り,および非同期書き込みによる性能改善効果を期待できないアプリケーションに対してだけ有効です。アプリケーションの開発者はこのフラグの利用を慎重に行ってください。アプリケーションがこのフラグを設定してファイルをオープンすると,オペレーティング・システムは,そのファイルがクローズされるまで,通常の書き込み同期機能をそのファイルに対して適用しなくなります。この場合,アプリケーションで独自のキャッシュ管理,ロック管理,および非同期入出力管理などを行わなければ,重大な性能低下やデータ破壊が発生します。

CFS およびデバイス要求ディスパッチャによるクラスタ・インターコネクトの使用と,直接入出力による最適化についての詳細は,『クラスタ管理ガイド』 を参照してください。

7.2    クラスタ・インターコネクトを経由するアプリケーション・トラフィックの制御

クラスタにあるコンピュータ資源の利用方法はアプリケーションごとに異なります。あるクラスタでは,各メンバが同じストレージおよび管理環境を共用して,それぞれが独立したコンピューティング・サービスを提供します (たとえば,ユーザが自分のプログラムをある 1 つのシステムで実行するタイムシェアリング中心のクラスタ)。一方,OPS のような他のアプリケーションでは,分散処理を使って,クラスタ・メンバのすべてのコンピュータ資源をクラスタ単位の単一アプリケーションに集中させます。この場合は,以下に示すように分散型アプリケーションの構成要素どうしがどのように通信するかを理解しておく必要があります。

これらの質問に答えることができれば,アプリケーションに必要な条件をインターコネクト・オプションの特性として表すことができます。たとえば,調整メッセージのやりとりに 1 秒あたり 10,000 バイトしか必要としないアプリケーションでは,クラスタの規模が大きくなっても,LAN インターコネクトに余分な負荷をかけることなく,そのコンピュータ資源を利用することができます。一方,OPSのように高いデータ転送速度と低い伝送遅延を必要とする分散型アプリケーションでは,クラスタの規模が小さくても,インターコネクトとして Memory Channel を使うことにメリットがあります。

7.3    クラスタ・インターコネクトを経由するクラスタ別名トラフィックの制御

インターコネクトの種類を決定するときには,クラスタ別名を使うアプリケーションの組み合わせ,クラスタ別名を使ってクラスタへ送信されるデータ量,およびクラスタのネットワーク・トポロジ (たとえば,メンバが外部ネットワークに対称に接続されているか非対称に接続されているか) が重要な検討項目となります。

クラスタ別名の通常の利用方法 (たとえば,telnetftp,Web ホスティング) では,インターコネクトの通信要求はわずかです。これらのアプリケーションでは,一般に,クラスタ別名に宛てて送信されるデータ量より,クラスタからクライアントに返されるデータ量の方が大きく上回ります。サーバ・プロセスに宛てて送られてくるデータ・パケットだけが,インターコネクトを経由する必要があります。すべてのメンバが外部に接続されていれば,クラスタから出ていくパケットは,すべて外部ネットワークに直接送信され,インターコネクトを経由する必要がありません。したがって,このようなアプリケーションに必要なインターコネクトの帯域幅は,一般的に狭くてすみます。

一方,よく使われるネットワーク・ファイル・システム (NFS) では,クラスタ・インターコネクトに多くの帯域幅を必要とします。サービスを行っているディスクからデータを読み取る場合は,読み取り要求だけがインターコネクトを経由するので,インターコネクトのトラフィック量はそれほど増えません。しかし,NFS を使ってディスクにデータを書き込む場合は,インターコネクトのトラフィック量がかなり増えます。この場合,インターコネクトを経由しなくてはならない入力データはディスク・ブロックから構成されています。NFS サービスを提供するクラスタでは,さまざまなインターコネクト構成案を検討して,ディスクの書き込みが発生しそうな単位時間あたりの平均データ量とそのインターコネクト構成で提供される帯域幅とを比較する必要があります。

TruCluster Server バージョン 5.1B で,NFS の書き込みによる影響を緩和する機能が導入されました。つまり,一部のクラスタ・メンバに別のクラスタ別名を割り当てて NFS のサービスを提供させることができるようになりました。この機能を使用すれば,一部の特定クラスタ・メンバだけを NFS サーバとして認識させることができるので,対応するサーバ・プロセスにインターコネクトを経由して送信しなければならない入方向の平均パケット数が減ります。4 メンバ・クラスタで負荷をランダムに分散すると,平均してディスク書き込みの 75% がインターコネクトを経由します。しかし,このうちの 2 つのメンバに別のクラスタ別名を割り当て,NFS のサービスを提供させると,インターコネクトを経由するディスク書き込みの平均的な数の割合が 50% に低下します。

クラスタ別名の使用方法と調整方法については,『クラスタ管理ガイド』 を参照してください。

7.4    クラスタ・インターコネクトのトラフィックに与えるクラスタ規模の影響

最適なインターコネクトを決定するときは,クラスタ・メンバの数,つまり規模を考慮するだけでは不十分です。クラスタにおける利用方法がインターコネクトにどのような負荷をかけるかも考える必要があります。規模の大きいクラスタでは,特定のアプリケーションの組み合わせに対して高いデータ転送容量を用意する傾向がありますが,クラスタのストレージ構成方法やアプリケーションの特性をよく検討して,適切なインターコネクトを決定した方が賢明です。しかし,クラスタの規模も,ある意味ではインターコネクトの帯域幅要件に影響を与えます。アプリケーションの処理がクラスタ全体にわたってランダムに (しかも管理されずに) 分散されており,CFS サーバも均等に分散されていると仮定すると,クラスタ・インターコネクトを経由するディスク書き込みの割合は,クラスタの規模が大きくなるにつれて増えていきます。たとえば,2 メンバのクラスタでは,平均して 50% の書き込みがインターコネクトを経由しますが,4 メンバのクラスタでは,これが 75% に増加します。7.1 節では,ファイル・システムに対する書き込みの大部分をそのファイル・システムを管理している CFS サーバが行うようなシステムを推奨しています。この推奨構成は,インターコネクトを経由する書き込み回数を最小限に抑えることができるので,使用するインターコネクトの種類に関係なく有効です。この推奨事項を満足する度合が高いほど,ディスク書き込みに必要なインターコネクトの帯域幅は少なくなります。

ただし,クラスタの規模 (メンバ数と使用するディスク数の両方) がインターコネクトのトラフィックに直接影響する場合もあります。それは,クラスタ・メンバ数の変化です。特にメンバがクラスタから外れる場合が問題で,残るメンバは他のクラスタ・メンバに調整メッセージを渡さなければなりません。Memory Channel インターコネクトは遅延が少ないので,Memory Channel を使用するクラスタではこの変化が迅速に通知されます。どちらのインターコネクトを使用するか判断するときは,メンバ数の変化がどの程度の頻度で発生するか (たとえば,クラスタ・メンバが定期的にリブートされるか) も判断基準に入れてください。

7.5    クラスタ・インターコネクトの選択

前の節で紹介した推奨事項の他に,次に述べる規則と制約事項もクラスタ・インターコネクトの選択に関係があります。

7.6    Memory Channel インターコネクト

Memory Channel インターコネクトは,クラスタのニーズに合わせて特別に設計されています。Memory Channel インターコネクトでは,ブロードキャストとクラスタ・メンバ間のポイント・ツー・ポイント接続の両方が可能です。

Memory Channel インターコネクトには,次のような機能があります。

図 7-1 は,Memory Channel 転送の概略フローを示しています。

図 7-1:  Memory Channel の論理図

各メンバ・システムの PCI スロットには,Memory Channel アダプタを取り付ける必要があります。これらのアダプタは,リンク・ケーブルで接続します。クラスタ内に 3 つ以上のメンバがある場合は,Memory Channel ハブも必要です。

Memory Channel の構成を冗長性のあるマルチレールにすると,信頼性と可用性がさらに高くなります。マルチレールにするには,各クラスタ・メンバに 2 つ目の Memory Channel アダプタと,そのアダプタを接続するためのリンク・ケーブルが必要です。クラスタ内に 3 つ以上のメンバがある場合は,2 つ目の Memory Channel ハブも必要です。

Memory Channel のマルチレール・モデルは,物理レールと論理レールという概念で動作します。物理レールは,ケーブルと Memory Channel アダプタが接続された Memory Channel ハブと,各ノードのアダプタ用の Memory Channel ドライバとして定義されます。論理レールは,1 つまたは 2 つの物理レールからなります。

1 つのクラスタでは,1 つ以上 (最大 4 つ) の論理レールを使用できます。論理レールは,次のようなスタイルで構成されます。

クラスタがシングルレールのスタイルで構成されている場合,物理レールと論理レールの間には 1 対 1 の関係があります。この構成には,フェイルオーバ機能がありません。物理レールに障害が発生すると,論理レールにも障害が発生します。この構成は,高可用性アプリケーションではなく,Memory Channel アプリケーション・プログラミング・インタフェース (API) ライブラリを使用する高性能のコンピューティング・アプリケーションで主に使用されます。

クラスタがフェイルオーバ・ペアのスタイルで構成されている場合,論理レールは,1 つがアクティブでもう 1 つが非アクティブの,2 つの物理レールからなります。アクティブな物理レールに障害が発生すると,フェイルオーバが発生して,非アクティブの物理レールが使用され,論理レールはフェイルオーバの後もアクティブなままです。このフェイルオーバは,ユーザには見えません。フェイルオーバ・ペアのスタイルは,マルチレール構成での省略時の設定です。

構成済みで利用可能な二次 Memory Channel インターコネクトがすべてのメンバ・システム上にあり,一次インターコネクトで次のいずれかの状態が発生すると,クラスタは 1 つの Memory Channel インターコネクトから別のインターコネクトへフェイルオーバします。

フェイルオーバが完了すると,二次 Memory Channel インターコネクトが一次インターコネクトになります。当初一次であったインターコネクトの問題を修正するまでは,新たなインターコネクト・フェイルオーバは発生しません。

1 分間に発生した Memory Channel エラーが 10 個を超えるメンバ・システムがある場合,Memory Channel のエラー回復処理では,二次 Memory Channel インターコネクトがメンバ上に構成されているかどうかを次のように調べます。

クラスタ内に Memory Channel インターコネクトを構成する方法についての詳細は,『クラスタ・ハードウェア構成ガイド』 を参照してください。

Memory Channel の API ライブラリは,Memory Channel API クラスタ・メンバ間の効率的なメモリ共用を実現します。このメモリ共用には,自動エラー処理,ロック処理,UNIX スタイルの保護機能が備わっています。Memory Channel API ライブラリについての詳細は,『クラスタ高可用性アプリケーション・ガイド』 を参照してください。

7.7    LAN インターコネクト

標準的な 100 Mb/秒 や 1000 Mb/秒の LAN で動作するイーサネット・アダプタ,スイッチ,またはハブであれば,LAN インターコネクトでもまず問題なく動作します。

注意

FDDI (Fiber Distributed Data Interface),LANE (ATM LAN Emulation),10 Mb/秒のイーサネットは,LAN インターコネクトではサポートされていません。

クラスタ LAN インターコネクトのイーサネット・ハードウェアには,次の条件が必要です。