マイクロソフト研究所
ARMプロセッサ対応のWindows Serverと「Project Olympus」
2017年6月2日 06:00
大規模なデータセンターで使用するサーバー、ネットワーク、ラック、電源、冷却など、さまざまなハードウェア仕様をオープンソースとして公開し、多くのクラウド企業の標準規格にしていこうとしている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を採用する。
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プロセッサに変わったとしても、ユーザーとしては、きちんとサービスが提供され、同じように利用できることが保証されていれば問題ない。
一般提供の可能性は?
では、一般提供の可能性はどうだろうか。
クライアント向け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年後半にはいろいろなレポートが出てくると思われる。
Project Olympusは新しいワークロードに対応する
さてここでは、Project Olympusについて、もう少し解説しよう。
Project OlympusはARMプロセッサだけでなく、AMDのサーバー向けx86/x64プロセッサであるNaples(開発コード名)や、IntelのSkylake(開発コード名)世代の最新Xeon、Intelが買収したFPGAメーカーAlteraのArria 10 FPGAなどを搭載したサーバーが提唱されている。
すでに、FPGAはAzure内部でBingの検索エンジンの一部に使用されたり、SDNのハードウェア部分として使用されたりして、高いパフォーマンスを示しているという。
また今回のOCP Summit 2017では、AIでの利用に対応するため、GPU拡張シャーシ(HGX-1)が提唱された。HGX-1は、4Uユニットで内部にNVIDIA Pascal P100を8機搭載できるPCIe拡張ユニットだ。特に面白いのは、8つのGPU間はNVIDIAが策定したインターコネクトのNVLinkを採用している点だろう。
Microsoftでは、HGX-1をAzureのAI処理に利用することで、機械学習などの負荷の高い処理を高パフォーマンスで処理できるプラットフォームをそろえようとしている。
さらに、Project Olympusで面白いのは、高密度のNVMeフラッシュストレージとしての利用だ。NVMeフラッシュストレージのM.2モジュールを2つ搭載できるキャリアボードを用意し、1Uサーバーに16キャリア(M.2モジュールが32個)搭載できるフラッシュストレージが提唱されている。
フラッシュストレージの内部にはPCIeスイッチボードが用意され、大量のPCIeインターフェイスでNVMeフラッシュメモリが接続されている。ホストサーバーとの接続にはSASインターフェイスが使用される。
現在はフラッシュメモリを搭載する仕様になっているが、将来的に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)に採用され、日々運用されている。
******
ARM版のWindows Serverに関しては、すぐに一般市場向けに提供されることはないだろう。しかし、コンシューマ向けのARM版Windows 10がリリースされ、多くのユーザーがPCやタブレットなどで使用されるようになれば、オンプレミスサーバーでもARMプロセッサを使用するモチベーションになるかもしれない。
このような状況になるには、まずはAzure上で問題なく動作する環境が必要だ。また、ARMサーバーのコストパフォーマンスや低消費電力がx86/x64サーバーよりも、ずばぬけて優れている必要がある。
サーバー用途に積極的に利用されればコストも落ちていくだろうが、現状では、Cavium ThunderX2やQualcomm Centriq 2400といったプロセッサは、スマートフォンに使われているARMプロセッサほど安くはない。
とはいえ、Azureなどの大規模なクラウドで大量採用が続けば、世代ごとにコストが落ちていくことが予想される。もしかすると、Raspberry Pi並みのコストでARMサーバーが購入できる、そんな時代が来るかもしれない。
期待を持って見守っていきたい分野だ。