マイクロソフト研究所

ARMプロセッサ対応のWindows Serverと「Project Olympus」

 大規模なデータセンターで使用するサーバー、ネットワーク、ラック、電源、冷却など、さまざまなハードウェア仕様をオープンソースとして公開し、多くのクラウド企業の標準規格にしていこうとしているOpen Compute Project Foundation(OCP)のイベント「OCP Summit 2017」において、MicrosoftがARM版のWindows Serverに関して言及した。

 今回は、このARM版のWindows Server、ならびにMicrosoftが進めるOCP関連の取り組みについて取り上げる。

MS自らが評価するためのARMプロセッサ版Windows Server

 OCPはもともと、大規模なデータセンターを必要とするFacebookなどの事業者が、データセンターにかかわるさまざまなハードウェアを標準化していこうという狙いで立ち上げたモノだ。

 最近では、Microsoft、Google、Appleなども参加している。Microsoftは、クラウドサービスであるMicrosoft Azureのハードウェア基盤としてOCPを採用したほか、Azureで利用するために開発しているハードウェア規格やSDN用のソフトウェアなどをOCPに提供した。

 2016年11月には、Project Olympus(プロジェクト・オリンポス)というコード名で、サーバーのハードウェア設計(シャーシ設計)などをオープンソース(仕様の公開、仕様策定の公開)で行うことも発表している。Project Olympusでは、最終的な成果をOCPの公開規格として提供するという。

 OCP Summit 2017で披露されたのは、このProject Olympus規格のARMサーバーで、プロセッサには、CaviumのThunderX2、もしくはQualcommのCentriq 2400を採用する。

Microsoftは、OCPに対して、Project Olympusというプロジェクト名で、次世代のデータセンターの構成パーツを提唱している。サーバーだけでなく、ラック、電源、管理APIなどが提唱されている(出典:OCP Summit 2017の資料より。以下同様)
サーバーやラックなどを規格化することで、大量のサーバーを運用するクラウドサービス事業者にとって使いやすいモノを開発する
Project Olympusには、プロセッサベンダー以外に、GPUベンダー、システムベンダーなど多くの企業が賛同している
Project Olympusでは、電力管理なども対象に入っている
Qualcommでは、サーバー向けのARMプロセッサCentriq 2400を使ったOCPサーバーを提唱している

 ARMプロセッサ版のWindows Serverに関しても、OCPベースのハードウェアで動作するモノが披露された。これにより、Azure上のサービスの評価を行っているという。

 現状では、フル機能のWindows Serverがインプリメントされたわけではないようだ。例えば、Active Directory(AD)のようなシステム向けのミドルウェアなど、すべての機能が動作するわけではないと見られている。

 また現状では、ARM版Windows Serverを市販する予定はなく、当面の間は、クラウドサービスのAzureで自らが評価するだけ、ということだ。Microsoftでは、まずはAzure上でARMサーバーを評価し、ノウハウを蓄積したいのだろう。

 IaaSのように仮想環境そのものを貸し出す場合はx86/x64環境が必須となるが、Azure Functionsのようなサーバーレスアーキテクチャでは、タイマーベースやイベントドリブンでの処理をC#、Node.js、PHPなどの言語で記述するため、x86/x64環境が必ずしも必要というわけではない。まずは、こういうところで評価を行っていくと見られる。

 またAzure Functions以外にも、DNSサービス(Azure DNS)、Load Balances、Application Gateway、App Service、IoTやAIなど、ARMプロセッサベースのサーバーに変更できるサービスは多く存在する。これらのサービスのインフラがx86/x64プロセッサからARMプロセッサに変わったとしても、ユーザーとしては、きちんとサービスが提供され、同じように利用できることが保証されていれば問題ない。

ARM版のWindows ServerはMicrosoft Azure向けに開発された
現状ではServer Coreがインプリされている
.NETやJavaが動作する環境として整えられている。
Microsoft Azure上で、Webサーバー、検索、電子メール、機械学習、ビッグデータなどの用途で利用される。電力あたりのパフォーマンスに優れたARMプロセッサの特性を生かしていく
ARM版Windows Serverは、現状ではAzureでの利用だけが考えられている。このため、すぐに市販されるわけではない

一般提供の可能性は?

 では、一般提供の可能性はどうだろうか。

 クライアント向けOSのWindows 10はというと、2017年後半にリリースが予定されているFall Creators Update(開発コード名:RedStone 3、Creators Updateの次のアップデート)で、フル機能のARM版が計画されている。

 このARM版RedStone 3では、x86/x64のエミュレーション機能も用意され、ある程度のパフォーマンスで既存のWin32アプリケーションを動かせるようになるとしている。

 Windows Server 2016のOSのカーネル部分などはWindows 10をベースにしていることを考えると、ARM版のWindows Serverが市販される下地は整ってきている、といえる。

 サーバー向けのARMプロセッサが、IntelやAMDのx86/x64プロセッサよりも電力あたりの性能などで強みを発揮できれば、実際にARM版Windows Serverが市販される可能性もあるだろう。

ARMサーバーの性能は未知数

 ただし、CaviumのThunderX2やQualcomm Centriq 2400といったプロセッサがどれくらいの電力あたり性能を発揮できるのかは、現状では未知数だ。

 サーバーとしては、高負荷状態で動かすとx86/x64プロセッサとARMプロセッサではそれほど差はないのでは、と言われている。しかし低負荷の場合、一般的にARMプロセッサは電力消費量が高くないため、膨大な数のサーバーを並べ、負荷を多くのサーバー上に均等化していくクラウドサービスには、もしかするとARMプロセッサはマッチするのかもしれない。

 このあたりは、Azureで評価された結果を待ちたい。OCPでも状況のレポートはされるだろう。最近のMicrosoftは、自社の技術を隠すよりもオープンソースとして公開する方向になっているため、2017年後半にはいろいろなレポートが出てくると思われる。

Centriq 2400は、48コア、2チャンネル12ソケット(1チャンネルあたり6ソケット)のDDR4 2667MT/sメモリをサポート。プロセッサは、SoC化されているため、50GbpsのNIC、32レーンのPCIe Gen3、USB×2、1GbE(PHY)、8つのSATAなどが統合されている
Centriq 2400のブロックダイヤグラム
Project Olympus仕様のCentriq 2400サーバーは、ハーフノードのマザーボードのため、1Uユニットに2台搭載できる
マザーボードがコンパクトなことを生かし、さまざまなバリエーションが考えられている
Centriq2400の仕様。ARMv8アーキテクチャだが、Qualcommがサーバー向けにアーキテクチャを拡張している。世界初の10nmプロセスで製造されたプロセッサ
CAVIUMでもProject OlympusベースのARMサーバーを提供している

Project Olympusは新しいワークロードに対応する

 さてここでは、Project Olympusについて、もう少し解説しよう。

 Project OlympusはARMプロセッサだけでなく、AMDのサーバー向けx86/x64プロセッサであるNaples(開発コード名)や、IntelのSkylake(開発コード名)世代の最新Xeon、Intelが買収したFPGAメーカーAlteraのArria 10 FPGAなどを搭載したサーバーが提唱されている。

 すでに、FPGAはAzure内部でBingの検索エンジンの一部に使用されたり、SDNのハードウェア部分として使用されたりして、高いパフォーマンスを示しているという。

AMDのZenアーキテクチャの新プロセッサNaplesを採用する
Naplesベースのサーバーは、2ソケットで64コア/128スレッド。メモリも32ソケットが用意され、大容量のメモリ空間をサポートする
Project Olympusでは。もちろんIntelの次世代Xeon版も用意されている。次世代Xeonには、Xeon Phiで採用されたOmni Pathも採用されるようだ
Omni Pathなどを使ってXeon PhiやArria 10 FPGAを接続することで、機械学習やビッグデータの処理を高速化する

 また今回のOCP Summit 2017では、AIでの利用に対応するため、GPU拡張シャーシ(HGX-1)が提唱された。HGX-1は、4Uユニットで内部にNVIDIA Pascal P100を8機搭載できるPCIe拡張ユニットだ。特に面白いのは、8つのGPU間はNVIDIAが策定したインターコネクトのNVLinkを採用している点だろう。

 Microsoftでは、HGX-1をAzureのAI処理に利用することで、機械学習などの負荷の高い処理を高パフォーマンスで処理できるプラットフォームをそろえようとしている。

HGX-1では、NVIDIAの最新GPUを8つ搭載したGPU拡張ユニットを用意している。最大32GPUまで拡張できる
HGX-1では、NVIDIAが開発したGPU間インターコネクトのNVLinkで8つのGPUを接続している(PCIe接続のハードウェアもある)
HGX-1で採用されているGPUのPascal GP100は、GPUだけでなくHBM2メモリが搭載されたユニット
複数台のHGX-1を利用して機械学習を高速に処理することができる

 さらに、Project Olympusで面白いのは、高密度のNVMeフラッシュストレージとしての利用だ。NVMeフラッシュストレージのM.2モジュールを2つ搭載できるキャリアボードを用意し、1Uサーバーに16キャリア(M.2モジュールが32個)搭載できるフラッシュストレージが提唱されている。

 フラッシュストレージの内部にはPCIeスイッチボードが用意され、大量のPCIeインターフェイスでNVMeフラッシュメモリが接続されている。ホストサーバーとの接続にはSASインターフェイスが使用される。

Project Olympusでは、NVMeフラッシュストレージも利用されている
PCIeスイッチを内部に搭載することでM.2メモリキャリア(M.2モジュールが2つ搭載できる)が16スロット搭載可能
フロント側からM.2メモリキャリアを挿せるため、メンテナンス性が向上した
M.2メモリキャリアは、コンシューマPCでも使われているM.2メモリを2つ挿せる
OCPでは、NVMeフラッシュメモリの接続をファブリック経由で行うことを検討している

 現在はフラッシュメモリを搭載する仕様になっているが、将来的にIntel Optaneなど、さらに高速で高い信頼性を持つ不揮発メモリなどが利用されるようになれば、ストレージインターフェイスはSASではなく、もっと高速なインターコネクト(OpenCAPIではPCIe Gen3の10倍となる150~160GB/秒を目指している)などが採用される可能性もある。そうなると、大容量の不揮発メモリを持つクラウドが誕生するかもしれない。

 消費電力に関してもHDDなどとは比べものにならないほど低くできるので、クラウドストレージは大容量のフラッシュメモリや不揮発メモリに切り替わっていくだろう。その場合、HDDは一部のコールドストレージ(アーカイブ)用途で主として使われるようになる。

 ただFacebookでは、書き換え可能回数が150回程度しかない代わりに100TBの大容量を持つ特殊なSSD「WORM」の技術仕様を、Flash Memory Summitで発表している。これができれば、コールドストレージもHDDや光磁気ディスクではなく、低消費電力でコンパクトはSSDに変わっていくかもしれない。

 ストレージの変化は、データセンターの電源容量やスペースにも大きくかかわっていく。このあたりは2017年にすぐ実現するものではないが、あと数年で、ある程度のめどが見えてくると思われる。

 ネットワークについては、Project Olympusでは、昨年OCPで発表したSDN向けのスイッチSONiC(Software for Open Networking in the Cloud、LinuxベースのSDN用ネットワークOS)を、OCPに寄贈している(OCP/ONIE対応ハードウェアで動作)。実際、Azure上ではTier 0(ラック内部のスイッチ)やTier 1(Row Leaf)に採用され、日々運用されている。

2016年のOCP Summitで公開されたSDN用スイッチ。すでにAzureでは、中心的なSDNスイッチとして実運用されている
SONiCのエコシステムには、Microsoftだけでなく多くの企業が参加している
SONiCは、AzureのTier 0/1に使用されている。ちなみにSONiCはMicrosoftがオープンソースとして提供している
今回のSummitでは、SONiCのDockerコンテナ化が発表された
SONiCのコンテナは、Swarmでオーケストレーションが可能

******

 ARM版のWindows Serverに関しては、すぐに一般市場向けに提供されることはないだろう。しかし、コンシューマ向けのARM版Windows 10がリリースされ、多くのユーザーがPCやタブレットなどで使用されるようになれば、オンプレミスサーバーでもARMプロセッサを使用するモチベーションになるかもしれない。

 このような状況になるには、まずはAzure上で問題なく動作する環境が必要だ。また、ARMサーバーのコストパフォーマンスや低消費電力がx86/x64サーバーよりも、ずばぬけて優れている必要がある。

 サーバー用途に積極的に利用されればコストも落ちていくだろうが、現状では、Cavium ThunderX2やQualcomm Centriq 2400といったプロセッサは、スマートフォンに使われているARMプロセッサほど安くはない。

 とはいえ、Azureなどの大規模なクラウドで大量採用が続けば、世代ごとにコストが落ちていくことが予想される。もしかすると、Raspberry Pi並みのコストでARMサーバーが購入できる、そんな時代が来るかもしれない。

 期待を持って見守っていきたい分野だ。