米国国立標準技術研究所(National Institute of Standards and Technology、NIST)が定義した「クラウドコンピューティング」の特性を備えたシステム。それをユーザー企業が主体的に構築するものを「プライベートクラウド」と定義しています。
筆者なりにNISTの定義をとらえると、以下のようになります。
(1)プール化
計算資源(CPU資源やメモリ資源など)はプール化されて取り扱われ、利用者は必要なときにそれを利用できること。
(2)自律運用
ポリシーベースの運用が可能で、ルーチン化された操作タスクは自動化もしくは半自動化できること。
(3)セルフサービス
プロビジョニングとデプロイメントは、ポリシーベースのセルフサービスモデルを通じて極めてシンプルに提供されること。
(4)コントロール
インフラは可用性の高いプラットフォーム上に構築され、適切な資源管理、資源配分のメカニズムを保有していること。
(5)オープン性と相互運用性
アプリケーションの可搬性は、標準化された共通の管理モデルの上で実現されること。また、パブリッククラウドプロバイダによる広範なエコシステムに対して拡張可能な方式であること。
(6)投資の保護
既存のアプリケーションとITインフラをクラウドコンピューティングモデルに移行できること。またクラウド化の初期ステップとして、そのインフラを社内に構築できること。
こうした特性を備えたクラウドの実現において、サーバー仮想化技術は大きな役割を果たしますが、仮想マシンを導入しただけでクラウドが完成するわけではありません。
そこでこの記事では、仮想サーバーの「プール化」における課題と解決策を解説します。次回、仮想サーバーにまつわる「自動化」に焦点を当てます。
計算資源のプール化とリソースマネジメント
今日のx86サーバーの処理能力の向上には目を見張るものがあります。特に最近はマルチコア化が進み、単一システム内に多数の演算コアを保有するサーバーが一般的になりつつある。計算スループットが大幅に拡大されたシステムを無駄なく利用するためには、仮想マシンの活用が欠かせません。
ユーザーが実環境で使用しているアプリケーションの多くは1CPUもしくは2CPU程度のシステム上で動作させるのが効率がよいといわれており、計算資源を任意のキャパシティーに細分化して仮想マシンとしてプロビジョニングし、それらを並列的に多数実行するアプローチは極めて理にかなった方式といえます。
しかし、単純に物理資源を分割できるだけでは資源のプール化とはいえません。1台の物理マシンを複数の仮想マシンに分割して利用するだけでは、規模、信頼性、運用性、柔軟性、拡張性などのさまざまな観点において十分ではありません。複数台の物理マシンをグループ化し、そこにあたかも巨大な計算資源があるかのように取り扱う管理技術が必要となります。
プール化で求められる管理技術を、「VMware vCenter Server」を基に説明します。vCenter Serverは、個々の物理マシン上で動作するハイパーバイザー「VMware ESX」をグループ化し、計算資源としてまとめて取り扱うことができます。この管理単位のことを「クラスタ」と呼びます。
プール化した計算資源を、必要な容量分ずつ適切に「切り出す」ことについて考えてみます。クラスタから単純に「仮想マシン」としてプロビジョニングするだけでは資源管理という観点では十分ではありません。計算資源をプロビジョニングするに当たり、利用部門や個々のプロジェクトなど、階層的な資源管理機構が必要と考えられます。VMware vSphere 4ではこれを実現するため「リソースプール」と呼ばれる概念が導入されています。
「リソースプール」は「クラスタ」の下位オブジェクトとして位置付けられており、リソースプールを多段に構成することもできます。最終的な実行インスタンスである「仮想マシン」を作成したリソースプール配下に配置することにより、適切な資源管理機構を実現できます(画面1)。