ServerSwitch 〜 Networkはシンプルに?柔軟に?

北京にあるMicrosoftリサーチアジアと精華大学が共同論文 "ServerSwitch: A Programmable and High Performance Platform for Data Center Networks"を公開しています。わずか15ページの論文ですが、なかなか面白い内容です。

ハードウェアベースのネットワーク制御アプローチにおいては、専用ASICによる高パフォーマンスが可能でしたが柔軟性が制限されることや、ASIC開発に多大なコストがかかるために製品が高価となるなどの課題がありました。対して、ソフトウェアベースのネットワーク制御アプローチにおいては、プログラマブルとなることやコストが抑えられることなどのメリットがありますが、ソフトウェア処理によるオーバーヘッドや遅延などのデメリットが大きな課題でした。

ServerSwitchはこの問題に対する解決策の1つとして検討されている、標準化されたサーバアーキテクチャ(つまりはx86/64ってことでしょうね)と、PCIeインターフェイスに接続するモジュールである"Switching chip"を使用することにより、ある程度プログラム可能でありながらコストを抑え、ハイパフォーマンスかつ低遅延なネットワーク制御を両立させようということを目標とするデータセンター向け次世代スイッチ仕様です。

I/O性能として専用機に遜色のない処理性能を発揮できるPCIeインターフェイスにスイッチング処理を受け持つSwitching Chipを接続し、その制御に高い処理性能を持つx86/64アーキテクチャCPUを活用することがベースとなりますが、ServerSwitchはその名の通り、ハードウェアデバイスの制御を汎用Server OSが担う点が大きなポイントとなります。Kernelモードで動作するドライバ(Switching Chipドライバ、NICドライバ、ServerSwitchドライバ)とUserモードで動作するアプリケーションによってSwitching Chipを制御することが可能となるため、必要に応じてAPIやライブラリを拡張して制御をおこなうことができます。この柔軟性がASICとFirmwareによって動作するこれまでのモジュールスイッチに対するアドバンテージといえるかもしれません。

Microsoft Resarchが開発/試作したServerSwitch Card (PCIeカード)は、BroadcomIntelなどのコモデティ化されたパーツ群から構成されており、100枚製造してコストは$400/枚。大量生産(1万枚単位)されればよりハイエンドな仕様にしつつ1枚当たりのコストも$200/枚程度には下げることができると思われます。

コアとなるスイッチング制御はBroadcomのBCM56338チップ(※リンク先はBroadcomのBCM56330シリーズPDF1ページャ資料)で、ここでMACアドレスIPアドレスに基づく制御やMPLS制御が実行されます。8ポートの1GbEポートと2ポートの10GbEポートを持ちます。8つの1GbEポートの内、4ポートはBCM5466 Ethernetトランシーバチップ(リンク先は同様にPDF1ページャ資料)を通じて外部接続ポートとなり、残り4ポートはPCIeカード基板上でデュアルGbEポートx2を制御するIntel 82576EBチップに接続され、ServerSwitch Card自体を搭載したサーバにとってのNICインターフェイスとして使用されます。2つの10GbEポートは複数のServerSwitch Cardを搭載した場合におけるモジュール間通信に使用することを想定しています。

この論文にはAPI例やServerSwitch Cardを搭載してテストするためのBCubeと呼ぶプロトコルを用いた簡易的なテスト結果などが記載されています。

ここで試作されたServerSwitchでは、プログラムできる制御範囲が制限されていたり、完全な低遅延通信の実現にまでは至っていない点、通信速度に限界があることなど、まだまだ実用化には多くの課題や開発が必要となるステータスではあります。しかしコモデティ化されたサーバハードウェアとチップと汎用OSを組み合わせてプログラマブル通信制御の仕組みを作り出そうという試みはなかなか興味深いところがあります。ネットワークの管理においてはシンプル化しようという流れと柔軟性を持たせようという流れの両面があると思いますが、ServerSwitchは柔軟性を目指す1つのチャレンジとしては注目すべき取り組みといえるでしょう。現時点での状況でも、本番用途での使用は無理だとしても、DCN研究用のプラットフォームとしては十分価値がある実装レベルに到達しています。

仮想化などによりサーバ、そしてストレージが物理的な制約から解放されて様々な拡張機能・柔軟性を獲得しつつある現在、ネットワークについてもブレイクスルーが模索されています。ServerSwitchがそのままのかたちで製品化されることはないと思いますが、こうした試みがこれまでのネットワーク機器の構成を大きく変えるきっかけに繋がっていくことを期待したいですね。