IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

グーグルのクラウドを支えるテクノロジー

CTC 教育サービス

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート 

第13回 1Pbpsのデータセンターネットワークを実現したJupiter(パート1) (中井悦司) 2017年3月

はじめに

 今回からは、2015年に公開された論文「Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network」をもとにして、Googleのデータセンターで利用されるネットワーク技術を紹介していきます。グーグルのネットワークというと、新たな海底ケーブルの敷設が記事になるなど、世界規模のネットワークインフラの構築が話題になりますが、この論文は、あくまでデータセンター内部のクラスター間ネットワークを解説したものになります。グーグルのデータセンターでは、独自設計のサーバーを使用していることが知られていますが、ネットワークスイッチについても独自設計のハードウェアを使用していることが説明されています。
 今回は、このような独自のネットワークスイッチを解説する準備として、一般的な「Closトポロジーネットワーク」について説明しておきます。

従来型のデータセンターネットワークの課題

 前述の論文によると、グーグルでは、2005年ごろからネットワークスイッチの独自開発を進めており、現在使用されている「Jupiter」は第5世代にあたります。各世代の基本性能は、図1のようにまとめられます。

fig01

図1 データセンターネットワークの性能(論文より抜粋)

 そして、これらのネットワークスイッチの大きな特徴として、マルチパスイーサネット技術を用いた「Closトポロジー」を採用していることがあげられます。まず、図2は、Closトポロジーを採用する以前にグーグルのデータセンターで使用されていたネットワーク構成です。

fig02

図2 2004年ごろのデータセンターネットワーク構成(論文より抜粋)

 各サーバーラックに設置された「ToR(Top of Rack)スイッチ」が、上位のルーターで相互接続されており、4つのルーターによる負荷分散が行われます。これが1つのサーバークラスターを構成しており、クラスター間の通信は、さらに上位のルーターを介して行われることになります。しかしながら、このような構成では、スケーラビリティに限界があることがわかってきました。グーグルのデータセンター内のネットワーク通信量は、2008年から2014年にかけて50倍以上に増加しており、クラスターを構成するサーバー群のように、ネットワークスイッチについても、よりスケーラビリティの高い構成が必要とされていたのです。

Closトポロジーネットワーク

 前述の問題を解決するのが、マルチパスイーサネット技術を用いたClosトポロジーのネットワーク構成です。まず、マルチパスイーサネットは、L2スイッチ間を複数の経路でメッシュ状に接続して、動的に負荷分散する仕組みと考えるとよいでしょう。たとえば、2台のL2スイッチを複数のネットワークケーブルで相互接続して負荷分散する、「トランク接続」は古くから使用されてきました。複数の経路をラウンドロビンで使用する、あるいは、パケットのヘッダー情報のハッシュ値で経路を分けるなど、負荷分散の方法にはいくつかの選択肢があります。それでは、これを図3のように多数のL2スイッチに拡張するとどうなるでしょうか?

fig03

図3 Firehose 1.1のネットワーク構成(論文より抜粋)

 L2スイッチをこのように接続した場合、3つ以上のスイッチを経由した接続にループができるので、このままでは正しく動作しません。従来のSTP(スパニングツリープロトコル)では、一部の接続をブロックしてループを解消しておき、使用中の接続が障害で切れた際に、ブロックする場所を変更して、新たな通信経路を計算しなおします。この場合、障害に対する冗長性は実現できても、複数経路による負荷分散を実現することはできません。
 そこで、マルチパスイーサネットでは、L2スイッチに経路計算の特別なロジックを組み込んでおき、複数のL2スイッチにまたがったパケットの転送経路を計算することで、図3のような構成でも正しく負荷分散が行われるようにします。経路計算に用いるプロトコルは、各ネットワーク機器ベンダーがそれぞれに実装を進めており、2010年ごろからは、SPB(Shortest Path Bridging)やTRILL(Transparent Interconnection of Lots of Links)などのプロトコルを標準化しようとする動きも見られるようになりました。
 先ほどの図3は、第2世代にあたるFirehose 1.1で実際に使用されていたネットワーク構成です。最下部にあるToRスイッチを上位のスイッチで相互接続して、それらをさらに上位のスイッチで相互接続するという階層構造になっています。これが一般に「Closトポロジー」と呼ばれる構成で、それぞれのToRスイッチの間には、複数の通信経路が存在することになります。これらの経路を並列に使用して負荷分散することで、高いスケーラビリティを実現するというわけです。

次回予告

 今回は、データセンターネットワークのスケーラビリティを実現する手法として、マルチパスイーサネットによるClosトポロジーのネットワーク構成を紹介しました。本文でも触れたように、現在では、各ネットワーク機器ベンダーが、それぞれにClosトポロジーを実現するための技術を提供しています。しかしながら、グーグルのデータセンターでは、市販品のスイッチチップに自社開発のソフトウェアを組み合わせることで、独自のネットワークスイッチを作り上げました。ベンダーが提供するネットワーク機器を使用せずに、わざわざ独自開発した背景には、どのような理由があるのでしょうか?
 次回は、このあたりの背景を論文から読み解いていきたいと思います。

Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

 


 

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート