という感じで話題になってたのをダラダラと自分のために情報を整理したいと思います。
ニュースになったのはこちら
本文を見るとAzure Cloud Switch(ACS)をLinuxベースで作ったという話です。じゃぁACSって何ですか?いきなり出てきました?いいえ前から話はありました。ニュースサイトにMSのBlobへのリンクがありますが、改めて以前から出ていた話の少し詳細情報が出てきたという感じです。
ACSって何ですか
なぜACSが必要なのか、なぜLinuxなのかといった解説されてます。もともとMicrosoftはAzureといったクラウドのプラットフォームの提供以前からOffice 365(の前身であるBPOS)、もっと前ではBing、Live Services(なつかしい)といったインターネット上のサービスを自社のデータセンター上で提供していました。これらのサービスをより効率よく高速にさばく為にデータセンターそのものやネットワークに対してかなりの労力を費やしていたと思います。昨今ではプラットフォームとしてネットワーク層も含めユーザーに提供するようになり、より高速で高可用性なネットワークのインフラを構築しユーザーや企業に提供していく必要がでてきたのは自明だと思います。MS的にはスイッチ等のハードウェアに新しい技術革新が来たとしても自前実装したクラウド全体のネットワーク管理プラットフォームなソフトウェアが(バグが含まれてたとしても)そのまま動いて欲しいと思ってるようですたぶん。
ということでACSです。ACSはスイッチなどのネットワーク機器のように実行するMS独自のソフトウェアです。Linux上で作っておりデータセンターのネットワーク用のクロスプラットフォームなモジュラー型OSにしてるようです。ソフトウェアにすることでより素早く開発、テスト、デバッグ・修正することができ、MSのニーズにそった開発に柔軟性をだすことができます。
そういうことでスイッチをソフトウェアで作ろうというわけですが、同じソフトウェアスタックで共有したいですということでじゃぁスイッチ抽象インタフェース(Switch Abstraction Interface:SAI)の仕様に基づきましょうとなりました。
SAIって何ですか
- Switch Abstraction Interface (SAI) officially accepted by the Open Compute Project (OCP)
- opencomputeproject/OCP-Networking-Project-Community-Contributions
スイッチ抽象インタフェース(Switch Abstraction Interface:SAI)のことです。Open Compute Project(OCP)のASICのスイッチングプログラミングネットワークのためのオープン規格なCのAPIです。
SAIは創設メンバーであるMSのほかにBroadcomやMellanox、Dell、Cavium、Barefoot、Metaswitchなどがcontributorとして参画してるようですね。
つまりどういうこと
SAI … ASIC用のオープン規格なネットワークスイッチ用C API
ACS … SAI使ったLinux上で動作するソフトウェアネットワークスイッチ。スイッチの状態管理なども行う。
ACSを図にするとこう(Blogより引用)
もうちょっと違う見方するとこう
* SIGCOMM講演資料より
ネットワークスイッチとしてソフトウェアでいろいろ機能を実装できる(ないし既存のものを組み込める)ことがわかりますね。またSAIとASICのおかげでハードウェアが変わっても柔軟に構成できそうですね。
おまけ:Azure SmartNICって何ですか
* SIGCOMM講演資料より
FPGAを使ったNICのようなものです。GFTのプログラムなど接続周りを担ったり暗号化やQoSを行えます。図中のASICなどの部分はACSで言及されている部分ですね。ACSから物理なポートの間で処理する感じですね。FPGAを使っていろいろ処理はされますがそのままラックに接続されたりと位置付け的にもNICですね。
それ以外にもネットワークの状態管理やら濃い話はSIGCOMM資料に書いてるのでぜひ見てみましょう。
まとめ
タイトルのLinuxを作りましたというのは大げさ。Linux上で動作するオープンな仕様のクラウドデータセンター向きネットワークスイッチなソフトウェアを作ったというほうが正しいと思う。(まぁその手のニュースにはよくある見出しです。ディストリビューションとして手を入れてるのかどうかは結局よくわからず)
MSがLinux上のソフトウェア作ることも仕様をオープンにするのも、もはや珍しいことでもなんでもなく論文を公開しオープンな世界に寄与するのは当たり前のことなのです。将来の成長に向けての依存度を減らし抽象化しつつコントロール下に置きたいという感じでしょうか?
まぁ自分はどっち意味でも学が無いので論文とか細かい話は難しいですけど、興味がある人はリンク先の原文などを追ってみてください。
なんというかこの辺難しいです。一般的な層での実装としてWindows Server 2012 R2や今後出てくるWindows Server 2016の仮想ネットワークやらSDNにも絡みますがどういう未来になるか楽しみではありますね。
Appendix
- Microsoftが、SIGCOMMでSDN (ソフトウェア定義ネットワーキング) の革新を紹介
- 今日の話以前の話。内部でこういうことやってるよという発表です。
- SIGCOMM 2015 Conference Program
- 今日の話にもでてるCloudのためのSDNの話などが行われたSIGCOMM 2015の資料等です。
- この辺りにAzure SmartNICやらの話ものってます
- MicrosoftはFPGAでDeep Learningを加速
- FPGAの利用例
- こちらはBingでの例(Catapult)
- Bing+FPGAは探せば結構記事があります
- Ananta: Cloud Scale Load Balancing
- こっちはロードバランサー等の話
- SIGCOMMでの発表スライドはこちら
- ToR
- Top of Rack
ピンバック: Azure Update (2016.03.10) | ブチザッキ