フルOSSクラウド構築レシピ
前回、前々回で、クラウドの運用設計について解説しました。今回は、NTTデータ社内で運用しているクラウドや、クラウド関連のSIサービスで利用してきたOSSを紹介します。ここで扱うクラウドは、IaaS(Infrastructure as a Service)を対象範囲としています。
3.1. クラウド運用に必要なソフトウエア
クラウドを運用する際には、いくつかのソフトウエアを組み合わせて使うことになります。以下では、必要となる機能とソフトウエアを説明します(図1)。
図1: クラウド運用環境 |
3.1.1. クラウド基盤ソフトウエア
IaaSを実現するソフトウエアであり、仮想サーバー・イメージの管理、仮想サーバーの制御(起動/停止)、仮想サーバー・ネットワークの実現、ユーザーの管理、ユーザーが利用するインタフェース/APIを備えている必要があります。
クラウド基盤ソフトを選ぶ際には、
- ユーザー自身で仮想サーバーの払い出しや追加が可能なセルフサービス型か、管理者しか追加作業を行うことができない仮想化サーバー統合型か
- 利用可能なVMM(Virtual Machine Monitor)はXenか、KVMか
- 仮想サーバーのOSにWindowsを使用できるかどうか
- 仮想サーバーのインストール方法や標準のGUIがユーザーに対して優しいか
など、目的と用途に応じて選択します。
ソフトウエアとしては、Eucalyptus [1]、OpenStack[2]、CloudStack[3]、OpenNebula [4]、Wakame-vdc [5]、Karesansui [6]などがあります。
クラウド基盤ソフト | |
---|---|
[1] Eucalyptus | http://www.eucalyptus.com/ |
[2] OpenStack | http://www.openstack.org/ |
[3] CloudStack | http://cloud.com/ |
[4] OpenNebula | http://www.opennebula.org/ |
[5] Wakame-vdc | http://wakame.jp/ |
[6] Karesansui | http://www.karesansui-project.info/ |
3.1.2. 運用監視ソフトウエア
サーバー機、ネットワーク機器、ストレージなどに対する死活監視、リソース使用状況のしきい値監視、ログ監視、定期的な作業の自動実行などの機能を備えたソフトウエアです。
クラウドの運用には、クラウド基盤自身の運用と、その上で稼働するシステムの運用という2つの側面があります。後者は、システムの運用環境が仮想サーバーになる点と、運用システム自身の安定性や独立性を確保する必要がある点を除いて、従来のシステム運用と同様に行えます。
しかし、前者、クラウド基盤自身の運用の場合は、クラウド基盤ソフト自身やハードウエア環境などを監視することはもちろんのこと、仮想サーバーごとの稼働状況の管理や、仮想サーバーからの直接取得では正確に把握できないリソース使用状況の管理などが必要になります。
このため、クラウド基盤ソフトやVMMとの連携を行うことができる管理ソフトを選択する必要があります。ソフトウエアとしては、Hinemos [1]、Hyperic HQ [2]などがあります。
運用監視ソフト | |
---|---|
[1] Hinemos | http://www.hinemos.info/ |
[2] Hyperic HQ | http://www.hyperic.com/ |
3.1.3. レポート・ソフト
クラウド基盤の稼働状況や、仮想サーバーの稼働状況とリソースの割り当て状況などを定期的に確認するための機能です。
クラウド基盤の稼働状況として、物理サーバー機、ネットワーク機器、ストレージ機器などの性能情報やリソース容量の傾向などを監視します。クラウドの管理者は、これらの情報をクラウドの運用や計画に利用します。
仮想サーバーの稼働状況を管理する際のポイントは2つあります。1つは、IaaSで提供している仮想サーバーの稼働状況を、IaaSの管理者がIaaSのユーザーとは別に確認できることです。もう1つは、ユーザー側では把握できない仮想サーバーの稼働状況をユーザーに報告する必要があることです。
仮想サーバーの稼働状況は、CPUの使用状況や、ネットワーク、ディスクなどのリソース情報、性能情報です。これらの情報を閲覧可能にするには、情報をグラフ化する必要があります。
性能情報を収集し、グラフ化するソフトとしては、Munin [1]、Nagios[2]、Cacti [3]、collectd [4]などが存在します。
リソースの割り当て状況には、仮想サーバーに割り当てるCPUコア数、メモリー・サイズ、ストレージ容量などの構成情報や、仮想サーバーの稼働時間などがあります。IaaSの運用では、リソースの使用状況に応じて従量課金するのが一般的です。クラウド基盤ソフトがリソースの割り当て表示機能を備えない場合は、別途用意する必要があります。
後ほど紹介するEucalyptusの環境で、この情報をレポートしてくれるOSSは、著者が知る限りではまだありません。
レポート・ソフト | |
---|---|
[1] Munin | http://munin-monitoring.org/ |
[2] Nagios | http://www.nagios.org/ |
[3] Cacti | http://www.cacti.net/ |
[4] collectd | http://collectd.org/ |
3.1.4. バックアップ・ソフト
クラウド基盤のシステムとデータ、および仮想サーバーをバックアップする機能です。
仮想サーバーのバックアップは、IaaSのユーザーが自前で行う方法や、クラウド基盤ソフトが提供している機能を利用してもらう方法のほかに、外部のバックアップ・ソフトの機能を提供する方式があります。
クラウド基盤のバックアップは、通常のシステムのバックアップと同様ですが、クラウドの規模に応じて、効率的なバックアップ/リストアの方式は変わります。ソフトウエアとしては、Amanda[1]があります。
バックアップ・ソフト | |
---|---|
[1] Amanda | http://www.amanda.org/ |
3.1.5. 構築、デプロイの自動化ソフト
クラウド基盤は、同じ構成のサーバーを大量に構築したり、ハードウエア故障などのために何度も同じサーバーを構築したりします。こうした作業を正確かつ効率的に行うために、OSとクラウド基盤ソフトの自動インストール・設定機能を備えた管理ソフトが用意されています。自動インストールのソフトウエアとしては、Clonezilla[1]、Cobbler[2]があります。設定自動化のソフトウエアとしては、Puppet[3]、Cfengine[4]、Cheff[5]があります。
構築、デプロイの自動化ソフト | |
---|---|
[1] Clonezilla | http://clonezilla.org/ |
[2] Cobbler | https://fedorahosted.org/cobbler/ |
[3] Puppet | http://www.puppetlabs.com/ |
[4] Cfengine | http://www.cfengine.org/ |
[5] Chef | http://wiki.opscode.com/display/chef/Home |