2014年6月11日水曜日

Nutanixの世界!(Virtual Computing Platform) 
         -分散システムの薦め-   -SDS11-

Nutanixを知る人は分散DB型のハードウェアを売る会社だと思っているかもしれない。実は違う。この会社はソフトウェアの会社だ。現在販売しているサーバーは台湾SuperMicroからのOEMだ。それは彼らの考えるサーバーを提供してくれるからであって、ベンダーには固執していない。実際のところ、この会社はGoogleのGFSチームのスピンアウトだと言っても良い。GFSがGoogleデータセンタの基盤となっていることは知っての通りである。Nutanixの初期メンバーの多くはGFSのエンジニア達で、彼らは商用版のGFSとでも言うべき分散型仮想コンピューティング環境の開発を目指した。今回はそのNutanixが提案する新しいプラットフォーム(Virtual Computing Platform)について考察しよう。

=Data Centerの変遷にみる課題解決=
企業データセンタの変遷を同社は次のように語る。90年代初めメインフレームのアプリケーションは暫時Unixサーバーに移行。しかしこのハイエンドサーバー環境はすぐにストレージが問題になった。ストレージ需要が増加しても、複数サーバーにまたがって容量をプールすることが出来なかったからである。90年代後半になるとSANNASが登場して、ストレージの共用プール化が実現。これによってデータセンタの大規模なストレージ構築ができるようになった。2000年代の初頭には、スナップショット重複排除なども確立されて、データ保護や使用率の向上も改善。2000年代中期にはVMwareなどの仮想化技術がデータセンタに適用されるようになった。仮想化はサーバー利用率の向上やアプリケーションの迅速展開などに大きなメリットをもたらした。しかし仮想化が企業データセンタの主要なテーマになると、今度はSAN/NASのストレージアーキテクチャが成長を妨げる要素として浮上。つまりこれらのストレージシステムは仮想環境による膨大な仮想マシン(VM)とのやりとりを前提に設計されたものではなかったからである。そしてシステム全体はマルチベンダー環境となって、管理も煩わしく、拡張コストもかさんだ。さらに構造的な問題として、ストレージ需要が増加するにつれてパフォーマンスが低下するという傾向も散見されるようになった。これらの問題解決には、基本的なアーキテクチャの見直しが必要だと同社は主張する。

=Virtual Computing Platformとは何か=
Nutanixの提案する新しいアーキテクチャを見てみよう。まず、ハードウェアは、コンピューティング層とストレージ層が一体となった構造だ。これによってシームレスに拡張できる。Googleが運営する同社のサーバープラットフォームを思い出して欲しい。OSはカスタマイズされたLinux、そして特別仕様のマザーボードに共に複数のMPUとHDDが搭載されている。Nutanixの提供するハードウェアは、SANやNASを必要とせず、ローカルにストレージを抱えたGoogleやFacebookとまったく同じ構造だ。主力モデルのNX-3060シリーズでは、同一筐体(アプライアンス)に4つのノードが収められ、個々のノードにはコンピューティング層に2つのIntel Ivy Bridge E5-2680v2(10x2=20 コア)、ストレージ層にはFlash SSD(400GB)が1つと4つのHDD(1TB)が搭載されている。これらのノードは同時並行で稼動し、必要数のアプライアンスがラックされてシステムを構成する。システム容量を増強するにはアプライアンスだけを追加すればよい。このシステムの要はNDFS(Nutanix Distribution File System)である。通常の仮想環境では複数のVMが1台の物理マシン上で実行され、結果、SANやNASなどの集中型ストレージにI/Oが集中してボトルネックが起こる。 これに対してNDFSでは、各ノードのローカルストレージを高速ネットワークでクラスタリングし、さらにローカルストレージにはSSDとHDDを搭載することで、ボトルネックを無くし、かつパフォーマンスを著しく向上させている。NDFSの核となるのは仮想ストレージコントローラ(Controller VM、以下コントローラ)だ。このコントローラが各ノードに搭載され、互いにネットワークを組んで、横への拡張性と耐障害性の向上に活躍する。実際のI/Oを見てみよう。VMからのデータ書き込み要求があると、その情報はコントローラに渡され、ローカ ルのFlashに書き込まれる。この際、ノード障害に対応するためデータは複数のノードで管理される。VMからの読み出しは、通常、ローカルストレージが対象となる。つまり、コントローラによって、VMのデータは可能な限りローカルにHOTデータとして保持され、極力ネットワーク横断を避ける。Flash SSDに保持されているHOTデータが古くなってCOLDになるとHDDに押し出され、再びHOTになるとFlashに引き戻される。ノード障害が発生すると、NDFSではVMware HAなどの標準的高可用性がサポートされているので、VMは自動的に別のノードで起動する。再起動したVMのI/O要求はコントローラに送られ、コント ローラはデータのリプリカがある場所を特定して実行。さらに、その後の処理に備えて自らのローカルストレージに保持する。こうしてみるとNDFSは商用版のGFSと言っても良いだろう。

 
=分散システムの薦め=
Nutanixを研究すると、或ることに気付く。
これまで我々は自然と縦を重視してコンピュータアーキテクチャを作り出してきたようだ。つまり、コンピュータをCPUやメモリーなどのコンポーネントを詰め込んだエレクトロニクスのひとつの箱として進化させ、補助記憶装置は当初から別の箱として、2つは結合して使うものとして扱われてきた。さらにSANやNASが登場すると専用コントローラが開発されてエンクロージャに多数のHDDが詰め込まれた。これが縦型アーキテクチャだが、しかし、2つにはアクセス速度に関して、エレクトロニクス.対.駆動装置という決定的な違いがある。これが仮想環境で加速されてボトルネックの問題となった。救世主として現れたFlashは、高価格から未だHDDを完全に置き換えるまでには至っていない。現在はFlashとHDDの共存の時代である。このような状況にあって、Nutanixのシステムはノード内に全てを内蔵し、それを高速ネットワークで接続する横型だ。しかし、LinuxやWindowsなどは分散システムを基本的な機能としてサポートしていない。Hypervisorが既存OSを補完して仮想環境を作り上げたように、我々は慣れ親しんだ構成を一度リセットし、クラウド時代に適した新しい分散型プラットフォームを考える時代となったようである。


 <補足>
無償でダウンロードできる解説本「ソフトウェア・デファインド・ストレージ」が解り易さで定評の“for DUMMIES”から出た。著者はコンサルタントのScott D. Lowe氏。スポンサーはNutanix。 勿論、Nutanix向けに書かれたものだが日本語となって内容は一読に値する。ダウンロードはここから

第1章: 現状のストレージ
第2章: ソフトウェア・デファインド・ストレージの基礎
第3章: SDSの基本概念と成功への鍵
第4章: SDSの企業への貢献
第5章: SDSの重要な真実10項目