OpenStackのコンポーネントのうち、中核を成しているのが「Nova」です。OpenStackが提供するIaaSの3要素「Compute」「Network」「Storage」のうち、Computeを担当しています。
以下は、OpenStackの基本的なアーキテクチャです。
各コンポーネントの説明は前回の記事を参照ください。
Web管理画面である「Horizon」からの指示はAPI(nova-api)に渡され、AMPQ(Advanced Message Queuing Protocol)でscheduler(nova-scheduler)を経由してcompute(nova-compute)に渡されます。
最終的に仮想マシンのインスタンスを起動・停止するために、libvirtやXenへと指示が渡されます。
インスタンスをどのcomputeノードで起動するかを決めるのが、schedulerの重要な役割です。一定の条件に基づいたフィルタリングや、各computeノードのWeight(重み付け)によって、インスタンスを起動するcomputeノードを決定します。
フィルタは標準的なものがあらかじめ用意されていますが、カスタムフィルタを作成することも可能です。
発展途上にあるOpenStackプロジェクト全体に言えることですが、Novaも活発な機能追加が行われています。
Novaの新機能リクエストは、Launchpadで管理されており、誰でも閲覧できます(Novaの新機能リクエストの一覧:Blueprints for OpenStack Compute (nova))。
ここでは、中でも興味深いものを拾ってみましょう。
OpenStackでインスタンスを起動すると、一時的に使用されるブロックストレージが与えられます。しかし、初期段階のブロックストレージは暗号化されていません。このブロックストレージを攻撃されないように暗号化する機能を追加しようとしています。
schedulerは、computeノードのリストからインスタンスを起動するノードを選択しますが、この新機能では1台丸ごと利用者に割り当てる仕組みを提供します。
これらを見ると、Novaの提供している機能は「インスタンスを起動する」というシンプルなものである分、ユーザーの細かい要求に応えるためにはさまざまな機能追加がまだまだ必要であることが分かります。
日本仮想化技術 エンタープライズクラウド事業部
エンタープライズクラスのクラウド基盤を日本のお客様にお届けするお手伝いをいたします。
Copyright © ITmedia, Inc. All Rights Reserved.