Cisco Nexus 5000 シリーズ

低遅延環境を実現するカットスルーおよびストアアンドフォワード イーサネット スイッチング

ホワイト ペーパー





低遅延環境を実現するカットスルーおよびストアアンドフォワード イーサネット スイッチング



概要

このドキュメントのテーマは、データセンターにおける遅延に関する要件です。レイヤ 2 パケット転送を実行する2つのイーサネット スイッチング パラダイムであるカットスルーとストアアンドフォワードの遅延特性を取り上げます(1)。これら 2 つのスイッチング方式の機能上の説明を行い、各スイッチ タイプについて、データセンターにおいてどのような条件が導入に適しているかを全般的に評価します。

また、レイヤ 2の一般的なパケット処理アーキテクチャについても説明します。これは、エンドツーエンドの遅延要件に関係します。製品の具体的な機能は取り上げませんが、必要に応じて、シスコのイーサネット スイッチング プラットフォームをソリューションの例として紹介します。

低遅延データセンター ソリューションを選択する際は、以下の要点を考慮します。

  • 適切な遅延特性を備えた LAN スイッチを判断する際には、エンドツーエンドのアプリケーション遅延要件が主要な条件です。
  • カットスルーとストアアンドフォワードのどちらの LAN スイッチング テクノロジーも、ほとんどのデータセンター環境にもそれ以外のネットワーキング環境にも適しています。
  • 真の超低遅延性が必要とされるまれなケースでは、カットスルー スイッチング テクノロジーと特定のクラスのストアアンドフォワード低遅延スイッチの併用を検討する必要があります。この場合の低遅延または超低遅延ソリューションとは、エンドツーエンド遅延が 10 マイクロ秒程度のものを指します。
  • 3 マイクロ秒未満のエンドツーエンド アプリケーション遅延を実現するには、InfiniBand の機能を検討する必要があります。
  • スイッチの選択に際して真のアプリケーション遅延要件を理解したら、その他の重要な条件として、機能、パフォーマンス、ポート密度、およびコストを検討します。

イーサネット スイッチング パラダイムの概要

1980 年代、企業では、自社ネットワークでパフォーマンス低下の兆候が現れ始めると、イーサネット ブリッジ(透過型または学習型)を導入してコリジョン ドメインを抑えました。

1990 年代に入ると、集積回路テクノロジーの進化により、ブリッジ ベンダーはレイヤ 2 のフォワーディング決定を CISC(Complex Instruction Set Computing)および RISC(Reduced Instruction Set Computing)プロセッサから ASIC(特定用途向け集積回路)および FPGA(Field Programmable Gate Array)に移行することが可能になりました。その結果、ブリッジ内でのパケット処理時間(遅延)が数十マイクロ秒に短縮されると同時に、パフォーマンスを損なわずにさらに多くのポートを処理することができるようになりました。「イーサネット スイッチ」という言葉が一般的になったのはこの頃です。

レイヤ 2 データ パケット転送の初期の方式は、「ストアアンドフォワード スイッチング」と呼ばれていました。1990 年代初頭にカットスルー パケット転送方式のために作られた言葉と区別するためです。

レイヤ 2 フォワーディング

ストアアンドフォワードおよびカットスルー レイヤ 2 スイッチはどちらも、データ パケットの destination MAC(DMAC; 宛先 MAC)アドレスに基づいてフォワーディング決定を行います。また、各ステーションがネットワーク上の他のノードと通信する際に、パケットの source MAC(SMAC; 送信元 MAC)フィールドを調べて MAC アドレスを学習します。

レイヤ 2 イーサネット スイッチでフォワーディング決定を開始するとき、パケットを転送するか破棄するかを判断するために行われる一連の手順の違いが、カットスルー方式とストアアンドフォワード方式の違いです。

ストアアンドフォワード スイッチでは、フレーム全体を受信し、その整合性をチェックしてからデータ パケットのフォワーディング決定を行うのに対して、カットスルー スイッチでは、着信フレームの DMAC を調べるとすぐに転送処理に移ります。

カットスルー スイッチは、理論上、DMAC アドレスが格納されているフレームの先頭 6 バイトだけを受信してアドレスを調べます。ただし、後で紹介するいくつかの理由により、カットスルー スイッチはフレームのさらに数バイト分の評価が終わるのを待ってから、パケットを転送するか破棄するかを判断します。

ストアアンドフォワード イーサネット スイッチングの特性

ここでは、ストアアンドフォワード イーサネット スイッチの機能の概要を示します。

エラー チェック

図 1 は、ストアアンドフォワード スイッチで 1 つのイーサネット フレーム全体を受信している様子を表しています。フレームの末尾部分で、スイッチはデータグラムの最終フィールドを自身の frame-check-sequence(FCS; フレーム チェック シーケンス)計算と照合して、パケットに物理エラーやデータリンク エラーがないことを確認します。エラーがなければ、転送処理を実行します。

ストアアンドフォワード スイッチは無効なパケットを破棄しますが、カットスルー デバイスは転送します。カットスルー デバイスでは、パケットを転送する前に FCS を評価する機会がないためです。

図 1 ストアアンドフォワード ブリッジまたはスイッチに入るイーサネット フレーム(左から右へ)

図 1 ストアアンドフォワード ブリッジまたはスイッチに入るイーサネット フレーム(左から右へ)

自動バッファリング

フレーム全体をいったん格納してから転送するプロセスでは、この動作方式の性質として、いくつものネットワーキング状況を処理できます。

ストアアンドフォワード スイッチが実行する入力バッファリング処理では、10 Mbps を下限とする複数のイーサネット速度が混在する状態に柔軟に対応できます。たとえば、1 Gbps イーサネット ポートに着信したフレームを 10 Gbps インターフェイスから送出することも、かなり単純な方法で処理できます。パケット全体を格納するアーキテクチャのスイッチなので、転送処理が簡略化されます。

Access Control List(ACL; アクセス コントロール リスト)

ストアアンドフォワード スイッチはパケット全体をバッファに格納するので(2)、パケットを ACL と照合して評価するための追加の ASIC または FPGA コードを実行する必要がありません。パケットが既に存在するため、適切な部分をチェックしてフレームを許可または拒否できます。

カットスルー イーサネット スイッチングの特性

ここでは、カットスルー イーサネット スイッチングについて説明します。カットスルー スイッチングはストアアンドフォワード スイッチングと比べてあまり広く理解されていないため、ストアアンドフォワード テクノロジーよりも詳しく説明します。

無効パケット

カットスルー スイッチングでは、ストアアンドフォワード スイッチングと異なり、無効なパケットにフラグを設定しますが、それを破棄する機会はありません。物理レイヤまたはデータリンク レイヤのエラーを含むパケットは、ネットワークの他のセグメントに転送されます。受信側のホストでは、パケットの FCS が無効とされ、パケットが破棄されます。

カットスルー転送のタイミング

図 2 に示すとおり、カットスルー スイッチは理論上、データ パケットの DMAC アドレスを調べるとすぐにフォワーディング決定を行うことができます。パケットの残り部分を待つ必要はありません。

ただし、新しいカットスルー スイッチはこの方法を採用していないことがあります。カットスルー スイッチによっては、フレームの内容から必要な情報を収集するまで、着信パケットの解析を続けます。これにより、より高度なフォワーディング決定を行うことができます。これは、ストアアンドフォワード スイッチが過去 15 年にわたって提供してきた豊富なパケット処理機能に匹敵します。

図 2 カットスルー イーサネット スイッチング:理論上、フレームはスイッチが DMAC アドレスを受信すると同時に転送されますが、実際には、さらに数バイト読み取られてから転送が開始されます。

図 2 カットスルー イーサネット スイッチング:理論上、フレームはスイッチが DMAC アドレスを受信すると同時に転送されますが、実際には、さらに数バイト読み取られてから転送が開始されます。

EtherType フィールド

カットスルー スイッチは、フォワーディング決定をする際、スイッチが調べる必要のあるフィールドの数とは無関係に、EtherType フィールドの値に基づいて一定のバイト数を取得することができます。たとえば、着信パケットが IPv4 ユニキャスト データグラムであると認識すると、インターフェイス上のフィルタリング設定の有無を調べ、設定がある場合は、あと数マイクロ秒または数ナノ秒待って、IP ヘッダーおよびトランスポート レイヤ ヘッダー(標準的な IPv4 ヘッダーの場合は 20 バイト、TCP セクションの場合はさらに 20 バイト。トランスポート プロトコルが UDP の場合は 8 バイト)を受信します。トラフィックの照合先となる ACL がインターフェイスで設定されていない場合は、IP ヘッダーだけを待ってから転送処理に移ります。より単純な ASIC 実装の場合は、設定に関係なく IPv4 ヘッダーおよびトランスポート レイヤ ヘッダー全体を取得するため、その時点までで合計 54 バイトを受信します。次に、ACL や QoS(Quality-of-Service)設定との照合を行うポリシー エンジンによってパケットをチェックできます。

待ち時間

最新の MAC コントローラ、ASIC、および TCAM(Ternary Content Addressable Memory)により、カットスルー スイッチはパケット ヘッダーの他の部分を調べる必要があるかどうかをすばやく判断できます。先頭の 14 バイト(SMAC、DMAC、EtherType)を解析してから、たとえば IPv4 レイヤ 3 ヘッダーおよびレイヤ 4 ヘッダーに関するより高度な機能を実行するために追加の 40 バイトを処理できます。10 Gbps では、IPv4 ヘッダーとトランスポート ヘッダーの 40 バイトを受信するために、約 100 ナノ秒多くかかる可能性があります。タスク間(またはプロセス間、場合によってはアプリケーション間)の遅延要件のコンテキストでは、要件の範囲が広く、大半のアプリケーションでは 10 マイクロ秒程度まで要求されるので、この追加待ち時間は無視できます。IP フレームのトランスポート レイヤ ヘッダーまで解析する場合の ASIC コード パスはそれほど複雑ではなく、遅延の増大も深刻ではありません。

カットスルー イーサネット スイッチングの利点

カットスルー スイッチの主な利点は、パケットの転送を開始するまでにかかる時間(「スイッチの遅延」)が、パケット サイズに関係なく数マイクロ秒程度であるということです。9,000 バイトのフレームを使用するアプリケーションの場合、カットスルー スイッチがフレームを転送するまでの時間は(そのデータグラムについて適切な判断であると仮定して)、ストアアンドフォワード スイッチよりも数マイクロ秒〜数ミリ秒早くなります(10 Gbps イーサネットの場合は数マイクロ秒)。

また、カットスルー スイッチは、10 マイクロ秒未満のプロセス間遅延が要求されるきわめて要件の厳しい high-performance computing(HPC; ハイパフォーマンス コンピューティング)アプリケーションに向いています。

ただし、状況によっては、カットスルー スイッチの利点が失われる場合もあります。

ウィンドウ化されたプロトコルと応答時間の増加

カットスルー方式を利用できる場合であっても、ウィンドウ化されたプロトコル(TCP など)ではエンドツーエンドの応答時間が増加する可能性があり、カットスルー スイッチングの低遅延効果が相殺されて、ストアアンドフォワード スイッチの遅延と実質的に変わらなくなります。

ユーザが体感するアプリケーション応答時間

ほとんどの企業環境では、データセンターを含め、ストアアンドフォワード スイッチまたはカットスルー スイッチのどちらが使用されていても、ユーザが応答時間の違いに気が付くことはありません。
たとえば、サーバのファイルを要求するユーザが(FTP や HTTP で)ファイルの受信開始が数百マイクロ秒遅れたかどうかに気が付くことはありません。また、ほとんどのアプリケーションのエンドツーエンド遅延は数十ミリ秒の範囲です。たとえば、カットスルーまたはストアアンドフォワード スイッチで約 20 ミリ秒のアプリケーション遅延が発生している場合、スイッチ自体の遅延が 20 マイクロ秒であれば(アプリケーション遅延の 1000 分の 1)、無視することができます。

より多くのフィールドのチェック

スイッチがカットスルーおよびストアアンドフォワードの「動作モード」を備えているとは限りません。前述のとおり、カットスルー スイッチは通常、着信パケットのタイプに応じて一定のバイト数を受信してから、フォワーディング決定を行います。設定、速度の違い、輻輳、または他の条件に応じてモードを切り替えることはしません。

たとえば、IPv4 TCP ポートが特定の範囲にあるパケットを許可または拒否する設定の場合、カットスルー スイッチは 54 バイト分調べてからフォワーディング決定を行います。非 IP パケットでは、フレーム先頭の 16 バイトを受信する場合があります。これは、type-of-service(ToS; サービス タイプ)バイト内の IP 優先ビットまたは differentiated services code point(DSCP; DiffServ コード ポイント)ビットに基づいて何らかの QoS ポリシーが設定されている場合です。

図 3 に、イーサネット ARPA フレーム内の標準的な IPv4 パケット構造を示します。カットスルー スイッチは、イーサネット ヘッダーから 54 バイト分を読み取ります(プリアンブルの 8 バイトはカウントしません。この部分の役割はトランシーバのウェイクアップおよびフレーム到達の通知のみです)。そして、ベンダーの設計によっては、IPv4 ヘッダー内の関連フィールドに対してポリシー エンジンを実行して、TCP 宛先ポートが ACL に一致しているかどうかや、送信元 IP アドレスが ACL の範囲に収まっているかどうかなどを判断します。

図 3 カットスルー フォワーディング決定は、適切な決定のために必要なバイト数をスイッチが受信するとすぐに実行

図 3 カットスルー フォワーディング決定は、適切な決定のために必要なバイト数をスイッチが受信するとすぐに実行

マルチパス分散

一部の高機能レイヤ 2 スイッチでは、送信元および宛先 MAC アドレス以外のフィールドを使用して、PortChannel を通してパケットを送信する際の物理インターフェイスを決定します。

カットスルー スイッチは、SMAC および DMAC 値のみ、または IP およびトランスポート ヘッダーのみを取得してハッシュ値を生成し、この値に基づいて、PortChannel を通してフレームを転送する物理インターフェイスを決定します。

特定のスイッチにおける PortChannel サポートのレベルを把握することは重要です。適切に設計されたカットスルー スイッチであれば、IP アドレスとトランスポート レイヤのポート番号を利用して、PortChannel 全体でのパケットの分散をより柔軟に行うことができます。

IP ACL

適切に設計されたカットスルー イーサネット スイッチは、ACL をサポートし、送信元および宛先 IP アドレスと、送信元および宛先 TCP/UDP ポート番号に基づいてパケットを許可または拒否します。スイッチはレイヤ 2 で動作しますが、OSI(Open System Interconnection)プロトコル スタックのレイヤ 3 およびレイヤ 4 に基づいてパケットをフィルタリングできます。

ASIC の場合は、数ナノ秒の間にパケットを解析して数多くの命令を並列処理またはパイプライン処理できるので、特定のインターフェイスで入力または出力 ACL を適用してもパフォーマンスの低下は発生しません。実際に、より柔軟で単純な ASIC コード パスでは、IPv4 または IPv6 パケットは一定のバイト数がポリシー エンジンに送信されて、すべての ACL 設定の結果が非常に短い時間で評価されます。

ACL の有無にかかわらず、また、構成に PortChannel が含まれるかどうかにかかわらず、パケット サイズが数千バイトある場合は、カットスルー スイッチングの方がストアアンドフォワード スイッチングよりも遅延上の優位性があります。パケット サイズが数千バイトに満たない場合、カットスルー スイッチングとストアアンドフォワード スイッチングは非常に似通ったパフォーマンス特性を示す可能性があります。

イーサネットの速度

スイッチにファブリック アーキテクチャが採用されている場合、1 Gbps で動作するポートはファブリックと比較して低速であると見なされます。ファブリックは、それよりも高速に、通常はワイヤ レートでいくつものインターフェイスを処理することが前提になっているためです。また、適切に設計されたスイッチ ファブリックには「スピードアップ」機能が組み込まれており、これによって競合を軽減し、内部スイッチ ヘッダーに対応します。たとえば、スイッチ ファブリックが 12 Gbps で動作している場合、それよりも遅い 1 Gbps の入力ポートでは、通常、着信フレームをバッファに入れてから、ファブリック全体のスケジューリングによって適切な宛先ポートに転送します。この状況の場合、カットスルー スイッチはストアアンドフォワード デバイスのように機能します。

さらに、スイッチのフレーム受信速度が転送速度よりも遅い場合、スイッチはアンダーランの状態になり、転送ポートはレシーバが処理できる以上の速度で動作することになります。10 Gbps 出力ポートは、1 ビットのデータを 1 Gbps 入力インターフェイスの 10 分の 1 の時間で転送できます。転送インターフェイス側では、1 Gbps 入力インターフェイスからの次のビットが到達する前に、9 ビット分の時間(0.9 ナノ秒)待たなければなりません。カットスルー スイッチで出力側のビットの「ギャップ」が生じないようにするために、低速なイーサネット LAN からフレームを受信する場合は、フレーム全体を受信してから転送を行う必要があります。

それとは逆の状況で、入力インターフェイスが出力ポートよりも高速な場合、カットスルー スイッチングを実行するためには、フレームをファブリック全体でスケジューリングし、必要なバッファリングを出力側で行います。

出力ポートの輻輳

カットスルー スイッチでは、輻輳の状態によっても、フレーム全体を格納してから転送を行わなければならない場合があります。カットスルー スイッチで特定のポートから送出するフォワーディング決定を行ったとき、そのポートが他のインターフェイスからの着信フレームの転送によってビジー状態だった場合は、転送対象のパケットをバッファに入れる必要があります。バッファリングは、カットスルー スイッチのアーキテクチャに応じて、入力インターフェイスに関連付けられているバッファまたはファブリック バッファで行われます。この場合、フレームの転送はカットスルー方式ではありません。

適切に設計されたネットワークであれば、クライアントから届くアクセス レイヤ トラフィックがサーバへ向かう出力ポートまたは PortChannel の容量を超えることは原則としてありません。ポート競合の発生する可能性が高い場所は、ネットワークのディストリビューション(アグリゲーション)レイヤです。一般的に、アグリゲーション スイッチは多数の低速なユーザ インターフェイスをネットワーク コアに接続します。ネットワーク コアの設計には、許容範囲内のオーバーサブスクライブ係数を組み込む必要があります。このような場合、カットスルー スイッチはストアアンドフォワード デバイスと同じように機能します。

IEEE 802.1D ブリッジング仕様

カットスルー スイッチングでフレームのチェックサムが検証されない場合は、IEEE 802.1D ブリッジング仕様に違反する可能性がありますが、実際的な影響は大きくありません。エラーを含むフレームは受信ホストによって破棄されるからです。ホストのネットワーク インターフェイス カード(NIC)ハードウェアが破棄機能を実行するので、ホストの CPU 利用率には影響しません(1980 年代には影響が及んでいました)。また、過去 5 年以内、またはそれよりも前に設置されたものでも、イーサネットの新しいワイヤリングおよびコネクタ インフラストラクチャであれば、破棄しなければならない無効なパケットがホストによって数多く検出されることは考えられません。

ネットワーク モニタリングの観点から見ると、レイヤ 2 カットスルー スイッチは、検出されたイーサネット チェックサム エラーを追跡していることになります。

それに対してレイヤ 3 IP スイッチングは、転送する必要のある各パケットが変更されるため、RFC 1812 で規定されている IP ルーティング要件に違反することはありません。ルータはパケットに対して必要な変更を行う必要があります。変更を行わなかった場合、ルータから送信される各フレームには IP レベルのエラーおよびイーサネット レイヤ エラーが含まれ、エンド ホストで破棄されます。

カットスルー イーサネット スイッチングの復活

1990 年代初頭、「最良の」スイッチング パラダイムに関する議論が巻き起こり、専門家たちは 1 つの方式のもう一方に対する優位性を強調していました。やがて、注目はカットスルー スイッチングからストアアンドフォワード スイッチングに移りました。そして今、シスコは強化されたカットスルー スイッチング モデルを復活させようとしています。

Cycle Redundancy Check(CRC; 巡回冗長検査)エラーの伝播

1990 年代、企業のイーサネット ネットワークでは、セグメントを拡張するためにハブ(またはリピータ)を使用したことで衝突の発生率が高まり、結果的にフラグメントの発生も増えました。さらに、イーサネット コネクタ、ケーブル配線インフラストラクチャ、NIC ハードウェアで品質上およびエンジニアリング上の問題が発生した結果、半二重接続で多くの無効パケットが発生しました。ハブと同様にカットスルー スイッチもそのような無効パケットを転送し、CRC 問題を深刻化させていました。

また、ホストまたはホスト グループ宛てのパケットはレシーバによって処理され、その際に行われるソフトウェア割り込みによって宛先ホストのプロセッサ パフォーマンスが影響を受けていたため、パケットにチェックサム エラーが含まれる場合は、ホストの CPU 利用率が増大し、場合によってはホスト上のアプリケーション パフォーマンスにも影響していました。

機能パリティ

1990 年代の中盤から後半にかけて、企業は、第 1 世代のカットスルー スイッチの限られた機能では満足していませんでした。より高度な機能が提供される限りは、どちらのスイッチング パラダイムも前向きに検討する姿勢を見せていました。

企業がスイッチに求めていたのは、ACL 機能、QoS 機能、Cisco EtherChannel® における一層の細分化、そして PortChannel 機能でした。当時は ASIC および FPGA に制限があったため、カットスルー スイッチングの開発者たちは、これらの高度なレイヤ 2 機能の組み込みにおいて大きな課題を抱えていました。ネットワーキング業界はカットスルー スイッチングから遠ざかりました。企業がより多くの機能を求めるようになった結果、この転送方式がさらに複雑に(3)なったからです。この複雑さの増大は、遅延およびジッタの一貫性の面での進歩で相殺することはできませんでした。

また、ASIC および FPGA が改善されたことで、ストアアンドフォワード スイッチの遅延特性はカットスルー スイッチのそれとあまり変わらなくなりました。

このような理由により、カットスルー スイッチングは徐々に姿を消し、ストアアンドフォワード スイッチがイーサネットの世界で標準になりました。

シスコがカットスルー イーサネット スイッチングを復活させた理由

1980 年代および 1990 年代、ストアアンドフォワード スイッチは、余裕を持ってアプリケーション、ホスト OS、および NIC の要件を満たすことができましたが、時代は変わり、今日のデータセンターではカットスルー スイッチングの低遅延性の恩恵を受けるアプリケーションが多くなりました。それ以外のアプリケーションにとっても、カットスルー スイッチングには、パケット サイズに関係のない一貫性のある配信というメリットがあります。

カットスルー スイッチングおよび低遅延ストアアンドフォワードスイッチングの実装におけるシスコの数年間にわたる成功体験と、ASIC 設計における柔軟性とパフォーマンスの進歩とが相まって、1990 年代前半当時よりもさらに高度なカットスルー スイッチング機能が実現しました。たとえば、最新のカットスルー スイッチには PortChannel での負荷分散をより効果的に行うための機能が備わっており、パケット深部のフィールドに基づいてデータ パケットを許可または拒否します(たとえば、IP アドレスおよび TCP/UDP ポート番号を使用する IP ACL があります。以前は、IP ACL をハードウェアで実装してカットスルー フォワーディングを行うことは困難でした)。

また、シスコ スイッチでは、virtual output queue(VOQ; 仮想出力キュー)の機能により、head-of-line(HOL; ヘッドオブライン)ブロッキングを軽減できます。VOQ が実装されていれば、使用可能な出力ポートからホスト宛てに送出されるパケットは、HOL パケットがスケジュールによって送出されるまで待機する必要がなくなります。

これらの要因を背景に、シスコは Cisco Nexus 5000 シリーズ スイッチを発表することができました。このスイッチは、ストアアンドフォワード スイッチに比肩する機能を備えた、低遅延のカットスルー スイッチです。

今日のデータセンターにおけるカットスルー スイッチング

前述のとおり、ASIC の機能とパフォーマンス特性の進歩により、さらに高度な機能を備えたカットスルー スイッチを復活することができました。

アプリケーション開発が進歩し、オペレーティング システムと NIC の機能が強化されたことで、すべての必要条件が揃い、アプリケーション間またはタスク間でのパケット処理時間を 10 マイクロ秒未満に短縮することが可能になりました。RDMA(Remote Direct Memory Access)(4)やホスト OS のカーネル バイパス(5)などのツールは、一部の企業アプリケーション環境で確実な効果を発揮します。具体的には、遅延時間が約 2、3 マイクロ秒のカットスルー スイッチの機能およびパフォーマンス特性を活用できる環境です。

低遅延特性を備えたイーサネット スイッチは、HPC 環境において特に重要です。

遅延要件とハイパフォーマンス コンピューティング

HPC はテクニカル コンピューティングとしても知られ、コモディティ サーバをクラスタ化して、エンジニアリング、製造、研究、およびデータ マイニング用アプリケーションのための大規模な仮想マシンを形成します。

HPC 設計は、並列処理アルゴリズムおよびソフトウェアの開発に利用されます。使用するプログラムは小さなコード断片に分割でき、それを複数のサーバに分散することで、各コード断片を同時に実行できます。このコンピューティング パラダイムでは、タスクとデータを個別のサブタスクに分割し、複数のプロセッサに分散します。

並列コンピューティングの中核はメッセージ パッシングであり、これによって各プロセスは情報を交換できます。データは計算のために個々のプロセッサに分散され、その後、各計算結果がまとめられて最終結果が算出されます。

通常、本来の意味での HPC を行うためには、アプリケーション間の遅延特性が 10 マイクロ秒前後である必要があります。遅延が 3 マイクロ秒の適切に設計されたカットスルー レイヤ 2 スイッチおよび一部のストアアンドフォワード レイヤ 2 スイッチは、この要件を満たすことができます。

環境によっては、エンドツーエンド遅延が通常 2 マイクロ秒以内という超低遅延要件のアプリケーションを使用することがあります。このような特殊な状況では、InfiniBand テクノロジーを検討します。このテクノロジーは実稼働ネットワークで使用されており、非常に厳しいアプリケーション要件を満たしています。

HPC アプリケーションは次のいずれかのカテゴリに分類されます。

  • 密結合アプリケーション:これらのアプリケーションの特徴は、コンピューティング ノード間でのプロセッサ間通信(IPC)メッセージ交換の多さにあります。密結合アプリケーションの一部は、遅延に対して非常に敏感(2 〜 10 マイクロ秒の範囲)です。
  • 疎結合アプリケーション:このカテゴリのアプリケーションの場合、コンピューティング ノード間での IPC トラフィックは、ほとんどあるいはまったく発生しません。低遅延性は必要とされません。
  • パラメトリック実行アプリケーション:これらのアプリケーションの場合、IPC トラフィックは発生せず、遅延の影響は受けません。

密結合アプリケーションのカテゴリでは、超低遅延特性を備えたスイッチが必要です。

HPC を必要とする企業は、以下の業種および分野に存在します。

  • 石油:原油および天然ガスの探査
  • 製造:自動車および航空宇宙
  • バイオサイエンス
  • 金融:データ マイニングおよびマーケット モデリング
  • 大学および政府関連の研究機関および研究所
  • 気候および天気シミュレーション:National Oceanic and Atmospheric Administration(NOAA; 米国海洋大気庁)、Weather Channel など

図 4 に、複数の業界で使用されている HPC アプリケーションの例を紹介します。

図 4 HPC アプリケーションの例

図 4 HPC アプリケーションの例

スイッチ選択のためのその他の条件

データセンター、特に HPC 環境におけるイーサネット スイッチの遅延特性を確認することは、適切なスイッチング プラットフォームを選択する際の最初の重要なステップです。イーサネット スイッチを選択するうえで重要なその他の条件を以下に簡単にまとめます。

  • 機能:
    スイッチング プラットフォームの必要な機能を特定したら、検討対象のスイッチが機能上および運用上のすべての要件が満たすこと、およびパフォーマンスの低下や遅延の増加が発生しないことを確認する必要があります。

    たとえば、IGMPv3(Internet Group Management Protocol Version 3)スヌーピングの機能が必要な場合は、パフォーマンスの低下を伴うことなくサポートされなければなりません。同様に、スイッチが PortChannel 全体に負荷を分散できるように IP アドレスおよび TCP/UDP ポート番号をサポートしているかどうか、十分に調査してください。IP アドレスや UDP/TCP ポート番号のフィルタリングなど、MAC レベルの ACL を超えるパケット フィルタリングが必要になる場合があります。

    高度なモニタリング ツールやトラブルシューティング ツールなどがベンダーによってサポートされていることも確認してください。たとえば、スイッチ内部でパケットをデバッグする機能や、ライブ ネットワークでオンライン状態にあるスイッチのソフトウェアおよびハードウェア機能をチェックするツールがあります。ハードウェアおよびソフトウェア コンポーネントを監視して、重要なシステム イベントを電子メールで通知する機能も必要になる場合があります。
  • パフォーマンス:
    接続およびアプリケーションの要件を満たすために、スイッチは、必要な機能構成によってすべてのポートでワイヤレートのパフォーマンスをサポートするか、オーバーサブスクライブしてパフォーマンスしきい値を下げる必要があります。後者は、パフォーマンス制限について理解が得られ、その制限が許容範囲内である場合に限って実行可能な選択肢です。
  • ポート密度:
    必要最低限のスイッチで機能上およびパフォーマンス上の要件をコスト効率よく満たすことが重要です。特に、低遅延 HPC 環境では、1 台のスイッチ(理想的には)に収容される複数のサーバでアプリケーションを実行します。
  • コスト:
    データセンターでのスイッチの稼働およびサポートに要する総コストを考慮する必要があります。コストには、スイッチ自体の価格だけでなく、エンジニアリング スタッフや運用スタッフのトレーニングにかかる経費も含める必要があります。また、事前対応型および事後対応型の高度なモニタリング ツールを利用できるかどうかや、発生した問題のトラブルシューティングおよび解決に要する時間を短縮するうえでのそれらのツールの全般的な効果についても考慮する必要があります。

シスコの低遅延レイヤ 2 スイッチの例

Cisco Nexus 5000 シリーズ アクセス レイヤ スイッチは、カットスルー方式による低遅延単一ステージ ファブリック実装の一例で、超低遅延アプリケーションを除くすべてのアプリケーションの要件を満たします。Cisco Nexus 5000 シリーズでは、VOQ を使用してポート競合を最小限に抑えています。

ほとんどの低遅延アプリケーションの要件を満たすもう 1 つのプラットフォームとして、Cisco Catalyst® 4900M スイッチがあります。これは、ストアアンドフォワード方式のスイッチで、データセンターのアクセス レイヤおよびディストリビューション レイヤで使用します。Cisco Catalyst 4900M では、共有メモリアーキテクチャと共に、超低遅延 ASIC 設計が採用されています。

まとめ

ほとんどのデータセンター アプリケーション環境では、採用するイーサネット スイッチの種類を決定する際、スイッチの低遅延特性だけではなく、機能、パフォーマンス、ポート密度、およびインストールと運用に必要な真のコストを考慮する必要があります。

一部のアプリケーション環境では、機能上の要件として、10 マイクロ秒未満のエンドツーエンド遅延に対応することが求められます。そのような環境の場合は、カットスルー スイッチおよび特定クラスのストアアンドフォワード スイッチを使用することで、RDMA や OS カーネル バイパスなどの OS および NIC ツールを補完して、低遅延アプリケーションの要件を満たすことができます。

カットスルーおよびストアアンドフォワード LAN スイッチは、ほとんどのデータセンター ネットワーキング環境に適しています。アプリケーションによって 10 マイクロ秒未満の応答時間が要求される一部の環境では、低遅延イーサネットまたは InfiniBand スイッチが適切な選択肢です。

関連情報

Cisco Nexus 5000 シリーズ スイッチ:http://www.cisco.com/jp/go/nexus5000/

Cisco Catalyst 4900M スイッチ:
http://www.cisco.com/web/JP/product/hs/switches/cat4900/cat4900m/index.html

Cisco Catalyst 4948 スイッチ:
http://www.cisco.com/web/JP/product/hs/switches/cat4900/cat4948/index.html

(1)レイヤ 2 スイッチングとは異なり、レイヤ 3 IP フォワーディングでは、送出される各データ パケットの内容が RFC 1812 の規定に従って変更されます。スイッチが IP ルータとして適切に動作するためには、送信元および宛先 MAC ヘッダーの書き換えを行い、time-to-live(TTL; 存続可能時間)フィールドをデクリメントし、IP ヘッダー チェックサムを再計算する必要があります。さらに、イーサネット チェックサムも再計算する必要があります。ルータがパケット内の関連フィールドを変更しなかった場合は、各フレームに IP エラーとイーサネット エラーが含まれます。レイヤ 3 のカットスルー実装でパケットの再循環によって必要な操作が実行される場合を除き、レイヤ 3 スイッチングはストアアンドフォワード機能でなければなりません。再循環により、カットスルー スイッチングの遅延上の利点はなくなります。

(2)実際には、多くのストアアンドフォワード スイッチング実装で、ヘッダー(Ethernet II フレームの EtherType 値に基づく一定のサイズ)とパケット本体はメモリ内で別の場所に格納されます。ただし、パケット処理およびフォワーディング決定の観点からすると、パケットの各部分がどのような方法でどこに格納されるかは意味を持ちません。

(3)カットスルー スイッチングに関するセクションで説明したとおり、複雑さは主に、両方のタイプのイーサネット スイッチングを実行しなければならないことに起因します。カットスルー スイッチは、ある条件下ではストアアンドフォワード デバイスのように動作し、別の条件下では 2 つのパラダイムの中間的な動作を行います。出力ポートで輻輳が発生しているときは、パケット全体をいったん格納し、その後で出力インターフェイスからスケジュール送出する必要があります。したがって、カットスルー スイッチのソフトウェアとハードウェアは、ストアアンドフォワード スイッチのものよりも複雑になる傾向がありました。

(4)RDMA プロトコルは、サーバ OS および NIC の実装です。これにより、通信プロセスが変更され、実行されるほとんどの作業が OS カーネルではなくネットワーキング ハードウェアで処理されます。基本的にすべてのサーバ処理サイクルが解放され、通信の代わりにアプリケーションに処理が集中します。また、RDMA プロトコルを使用すると、ある 1 つのサーバで稼働しているアプリケーションはネットワークを経由して別のサーバ上のメモリにアクセスでき、通信オーバーヘッドも最小限に抑えられます。ネットワーク遅延もわずか 5 マイクロ秒に短縮されます。対照的に、RDMA プロトコルを使用しない従来の TCP/IP 通信では、数十または数百マイクロ秒のネットワーク遅延が発生します。HPC 環境内の各サーバは、低遅延スイッチ(理想的には)を介して同一クラスタ内の他のサーバのメモリにアクセスできます。

(5)カーネル バイパスがあれば、アプリケーションはホスト マシンの OS カーネルをバイパスしてハードウェアに直接アクセスできるので、アプリケーション コンテキストの切り替えが大幅に削減されます。