フルOSSクラウド構築レシピ

2010年12月20日(月)
井上 哲也相良 幸範

3.2. クラウド基盤ソフト - Eucalyptus

Eucalyptusは、米Eucalyptus Systemsが開発するOSSのクラウド基盤ソフトです。米Amazonが運営するクラウドであるEC2/S3と互換のAPIを持つことが特徴です。

このため、EC2/S3を対象としたHybridfox[1]やtanacasino[2]などのGUIベースの管理ソフトや、RightScaleなどのネットワーク・サービスを利用できるという利点があります。

Eucalyptusには、英Canonicalが開発するUbuntu Enterprise Cloudに採用された実績や、NASA Nebula Projectで利用されているといった実績があります。

NTTデータでは、OSSベースのクラウド・サービスを提供する上で、

  • ユーザーが自由にサーバーを立ち上げてアイデアを試すことができる
  • ユーザー・フレンドリなGUIソフトウエアを利用できる
  • Amazonを対象としたAPIやミドルウエアを利用してクラウドをプログラムできる

という点を選定ポイントとして、Eucalyptusを利用しています。

Eucalyptusのシステム構成は、図2の通りです。サーバーは3種類あり、(1)ユーザー管理、仮想サーバー・イメージ管理、仮想サーバーの制御APIを担うクラウド・コントローラ(CLC)、(2)仮想サーバー・ネットワークの管理を担うクラスタ・コントローラ(CC)、(3)仮想サーバーを実行するノード・コントローラ(NC)で構成します。ストレージは2種類で、(a)オブジェクト・ストレージのWalrus、(b)ブロック・ストレージを担うストレージ・コントローラ(SC)で構成します。NCは、VMMとしてXenまたはKVMを利用できます。

図2: Eucalyptusのシステム構成

仮想サーバーの実際の使い方は、CLCに仮想サーバー・テンプレートを登録し、CLIまたはGUIから起動を指示します。すると、仮想サーバー・イメージがNCに転送され、自動的にホスト名とプライベートIPアドレスが割り当てられて起動します。プライベートIPアドレスは、CCでグローバルIPアドレスにNAT変換されるため、ユーザーはグローバル・アドレス経由で仮想サーバーを利用することになります。付与するグローバル・アドレスは、仮想サーバーの起動時に指定することが可能です。

Amazon型のIaaSを利用する際に注意すべき点は、仮想サーバーへの変更内容は永続的には保存されない、という点です。このため、設定やデータベースの保存は、ユーザーが行うことになります。一般的には、変更したOSイメージのスナップショットやデータベースのダンプなどは、Walrus機能を利用して保存します。

また、Elastic Block Store(EBS)を利用すると、読み書き可能なディスク・ボリュームを仮想サーバーに付与することができるため、この領域にデータベースを保存することが可能になります。ただし、EBSを利用する場合でも、S3や外部のストレージに対して定期的にデータをバックアップすることが推奨されます。

Eucalyptusを用いてIaaSを構築する際の検討ポイントは2つあります。1つは、WalrusからNCへ仮想サーバー・イメージが転送されることです。もう1つは、CCがNAT機能を担うということです。利用する仮想サーバー・イメージのサイズと仮想サーバーの起動頻度、仮想サーバーの起動時間、クラスタ内の各仮想サーバーが使うネットワーク帯域の合計とCCの処理性能を考慮してクラスタ・サイズを決める必要があります。

実際にEucalyptusを利用する際には、Eucalyptusそのものの不具合情報に注目するのはもちろんのこと、ハードウエア構成やLinuxディストリビューションにも気をつける必要があります。システムは、できるだけシンプルな構成がお勧めです。

Amazon EC2/S3、EucalyptusのGUI管理ソフト
[1] Hybridfox http://code.google.com/p/hybridfox/
[2] tanacasino http://sourceforge.jp/projects/eclipse-aws/

3.3. 運用監視ソフト - Hinemos

Hinemosは、OSSライセンスで提供されている運用監視ソフトウエアです。

監視対象のサーバーやネットワーク、ストレージ機器をグループ登録できる機能を備え、SNMPやSyslogを利用した各種監視を統合的に扱うことが可能です。また、ジョブ管理機能により、複数の管理対象でジョブを連携させて実行することもできます。

  • クラウドの規模に応じて拡張できる
  • ハイパーバイザからの情報収集が可能で、障害時の分析に利用できる

ということを選定ポイントとして、Hinemosを利用しています。

Hinemosでクラウド基盤を監視する際には、以下の点に注意する必要があります。

  • ハイパーバイザの情報を監視するため、VM管理オプションを利用する
  • 管理処理の分散のため、階層化構造をとる

物理サーバーでCPU使用量を取得する場合、測定できる情報は、単位時間当たりのCPU使用時間になります。しかし、仮想サーバーの場合は、ほかの仮想サーバーの負荷の影響を受けてCPU使用量が増加する現象が発生するため、正確な測定ができません。これを解決するために、HinemosのVM管理オプションを利用して、ハイパーバイザから情報を取得する必要があります。

数百台規模のクラウドを監視する場合は、監視対象数や監視項目数を考慮の上で、監視対象を複数グループに分割し、グループごとにHinemosを配置します。EucalyptusのCCが管理するクラスタ単位でまとめるように設計すると良いでしょう。また、Hinemosを複数台設置した場合は、各Hinemosを相互に監視させることにより、より強固な監視を実現できます(図3)。

図3: Hinemosの構成
株式会社NTTデータ 技術開発本部

クラウドの運用管理とメッセージ処理の自動化の研究開発を担当。現在は、次世代の共通基盤、運用システムのメッセージ対応の自動化に従事。

株式会社NTTデータ 技術開発本部

運用技術の研究開発、クラウド基盤ソフトウェアのストレージドライバ開発などを経験し、近年は通信事業社向け大規模クラウドの設計に従事。OpenStackは最初期から携わり、ソースコードレベルでの問題解析・パッチ作成・独自機能開発などを行う。インフラソフトウェアエンジニア。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています