ここからは、OpenStackの各コンポーネントをどのように実際の物理環境に配置してIaaSを構成すればよいかを見ていこう。

 図1は、物理構成の一例である。各コンポーネントは、その役割から「クラウドコントローラー」「リソースプール」「オブジェクトストレージ」の三つに大別できる。この構成を例に、可用性や性能を確保するためのアーキテクチャーを解説する。

図1●OpenStackで構築したIaaSの物理構成の例
性能や可用性を考慮して物理サーバーやストレージ、ネットワークの配置を最適化する
[画像のクリックで拡大表示]

リソースプールは物理ホストを分ける

 図1で示した基本構成には、多数の単一故障点(SPOF:Single Point of Failure)が見られる。IaaSにおける可用性確保の方法は、構成要素の冗長化および多重化が基本となる。ただしそのアプローチは、コンポーネントごとに異なる。投資対効果のバランスを取りつつ、それぞれで最適な物理構成をとる必要がある。

 クラウドコントローラーは、一連の管理系コンポーネント(API Server / Scheduler / Keystone / RabbitMQ)を一つに集約して扱うとよい。物理構成においても、1台のホストに収容するアプローチを推奨する。構成をシンプルに保ちつつ、冗長化対策もセットで行えるからだ。

 Network Controller、Compute Worker、Volume Workerから成るリソースプールは、個々のコンポーネントを別々の物理ホストに配置すべきである。サーバーやネットワーク、ストレージといったリソースへのワークロードを隔離し、可用性や拡張性を個別に最適化するという観点からだ。

 構築したIaaSで提供するSLA(サービスレベル契約)の規定によっても異なるが、一般的には、機器の故障時の影響がクラウド全体に及ぶタイプのコンポーネント(Network ControllerとVolume Worker)については、性能・拡張性と可用性のバランスのとれたハードウエア構成とすべきである。 Novaは内部ステート情報をデータストア(DB)に格納しており、障害発生時もそれに基づき、リカバリーが可能である。一方で、仮想マシン(VM)上でゲストOSがどのように動作しているかなど、すべての内部ステートが管理できているわけではなく、コンポーネントによっては、冗長化困難なものもある。そのため、各コンポーネントの特徴にあわせて、冗長化のアプローチを検討すべきである。

 Network Controllerから具体的にみていこう。機器の選択にあたってはネットワーク冗長化のため、多数のNICを搭載可能であることが望ましい。さらにNetwork Controllerの冗長化について対策が必要であれば、Rackspaceのリファレンスアーキテクチャー(http://referencearchitecture.org/network-design/)において、「High-Availability FlatDHCP Model」という構成が挙げられているのでそちらも参考にしてほしい。各Compute WorkerにNetwork Controllerを配置し、Network Controllerは自ホストで起動されているVMのみがアドレス変換の対象となる構成である。この構成により、Network ControllerがSPOFとはならず、物理ホスト障害の影響をそのホスト内に限定可能である。

 Volume Workerは、RAIDなどの冗長化を実施し、ストレージネットワークに十分な帯域および処理能力を確保するよう配慮する。Volume WorkerはあくまでソフトウエアiSCSIターゲットの機構であるため、エンタープライズ用途においてはiSCSI外部ストレージを検討すべきだろう。

 Compute Workerについては、ホスト障害の際、VMを回復させる手段はない。また機器の故障の影響は、そのホスト上で起動する仮想マシンのみに限定される。そのため、ある程度は「壊れることを前提」とし、コストパフォーマンス(CPUコア単価またはラック集約率)を重視したハードウエアの選定が有効なアプローチといえる。

 GlanceとSwiftで構成されるオブジェクトストレージに関しても、やはりコストパフォーマンス(ストレージ容量単価)を重視するアプローチが有効である。冗長化の部分はSwiftのソフトウエア機能として提供されるためだ。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら