「Ceilometer」は、2012年に開始されたOpenStackの主要プロジェクトの1つで、CPUやネットワークなどの各リソースの使用状況を計測する「メータリング機能」を持つ。
本コンポーネントを使用して、課金システムを開発することができる。また、閾値を超えた場合に外部に対してアラーム通知を行う機能を持っており、オーケストレーションサービスの「Heat」と連携させれば、自動的に仮想インスタンスを追加・起動するオートスケール機能を実現することができる。
以下、「Ceilometer」の機能や特徴を紹介しよう。
主要な機能と特徴
Ceilometerの主要な機能は以下の通りである。
- 各プロジェクトからデータを計測する
- 計測したデータをDatabaseに保存する
- あらかじめ設定した閾値を超えているかどうかを判断し、外部に通知する
計測できるデータの例を以下の表に示そう。
データ元 | 計測するデータ例 |
---|---|
OpenStack Nova Compute | CPU使用時間[ns]、ネットワーク使用量(入力/出力)[B/s]、メモリ使用量[MB]、ディスク読み込み量[B]、ディスク書き込み量[B] |
OpenStack Glance | イメージのアップロード数、ダウンロードされたイメージのサイズ[B] |
OpenStack Cinder | ボリュームサイズ[GB]、スナップショットサイズ[GB] |
OpenStack Swift | オブジェクトサイズ[B]、オブジェクトの入力量[B]、オブジェクトの出力量[B] |
OpenStack Keystone | 認証に成功したユーザ、作成されたユーザ/グループ/ロール/プロジェクト |
OpenStack Neutron | サブネット作成リクエスト、ルータ作成リクエスト、フローティングIP作成リクエスト |
IPMI | ハードウェアのCPU使用率[%]、メモリ使用率[%]、ハードウェアの電源使用量[W] |
SNMP | ハードウェアのディスク使用量[KB]、メモリ使用量[KB]、ネットワーク使用量(入力/出力)[B] |
また、Ceilometerは次回紹介するオーケストレーションサービス「Heat」と連携して、リソース消費の閾値を超えた場合に、自動的に仮想インスタンスを追加して起動するオートスケール機能を実現することができる。
関連したサービスが提供する主な機能
メータリングサービスCeilometerに関わる各サービスが提供する主な機能を以下にまとめる。
サービス名称 | サービスが提供する機能 |
---|---|
central | ポーリングすることによって、Nova、Glance、Neutron等の各プロジェクトのメータリング情報を計測 |
notification | 通知をモニタリングすることによって、Nova、Glance、Neutron等の各プロジェクトのメータリング情報を計測 |
collector | NotificationとCentralにより作成されたイベントとメータリングデータを計測しデータベースに記録 |
api | データベースにクエリを発行して、コレクタサービスによって集められたデータを取得 |
alarm-evaluator | 予め設定した閾値を超えているか判断 |
alarm-notifier | 外部に対してアラーム通知 |
compute | コンピュートノードで動作し、libvirt経由の統計を計測 |
続いて、Ceilometerの各サービスとOpenStackの各プロジェクトの関係図を以下に示す。情報の収集方法は、Notification Busを使用する方法と、API Pollingを使用する方法がある。
Notification Busは、各コンポーネントがCeilometerに対してメッセージキューを使用して値を通知する仕組みで、Ceilometer側の負荷を最小限に収めることができるため推奨されている方式である。API Pollingは、Ceilometerが能動的に値を収集する方式で、Polling先が多くなると高負荷の懸念があることからあまり推奨されていないが、Notification Busに対応していないコンポーネントに対しては有効な手段である。
Ceilometerの各サービスは、スケールアウト型の設計に基づいており、負荷が増加した場合にはノードを追加することによって対応できる。
今回は、OpenStackコンポーネントの紹介として、メータリングサービスのCeilometerを紹介した。次回は、オーケストレーションサービス「Heat」を紹介する。
知念 紀昭
ネットワンシステムズ株式会社 ビジネス推進本部 第2応用技術部 クラウドソフトウェアチーム
仮想化ハードウェア・ソフトウェアの評価・検証業務を経て、現在クラウドソフトウェアを担当している。