• ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • 日経BP
  • PR

  • PR

  • PR

  • PR

  • PR

RDOで実体験!基礎から学ぶOpenStack

OpenStackの主要コンポーネント、Nova/Cinderの内部構造を知る

中井 悦司=レッドハット クラウドエバンジェリスト 2016/05/24 ITpro

 OpenStackディストリビューション「RDO」を用いて、実際に動作するOpenStack環境を構築しながら、OpenStackの利用方法や内部構造を学ぶ特集の第6回です。今回は、OpenStackの主要コンポーネントであるNovaとCinderの内部構造を解説します。HorizonダッシュボードやCLIツールからAPIリクエストを受け取った後、仮想マシンインスタンスの起動やブロックボリュームの作成が行われる仕組みを理解していきましょう。

Novaを構成するサービス群

 Novaを構成する主要なサービスと関連するコンポーネントは、図1のようにまとめられます。ここでは、管理機能がインストールされた「コントローラーノード」と仮想マシンインスタンスが起動する「コンピュートノード」が分かれた構成を想定しています。「基礎編」の第1回で構築したオールインワン構成の環境では、これらはまとめて1台のPCに導入されていますが動作上の違いはありません。

図1●Novaを構成する主要なサービス
[画像のクリックで拡大表示]

 ここで言うサービスは、特定の処理を担当するデーモンプロセスに当たります。まず、コントローラーノードの「Nova API」は、REST APIでクライアントからのリクエストを受け付けます。受け取ったリクエストは、メッセージングサーバーを経由して、「Nova Scheduler」に受け渡します。

 Nova Schedulerは、コンピュートノードのリソースの空き状況を確認して、仮想マシンインスタンスを起動するコンピュートノードを決定すると、コンピュートノードで稼働する「Nova Compute」に起動を依頼します。この部分もまた、メッセージングサーバーを経由して行われます。

 Nova、Cinderなどのコンポーネントは、お互いにREST APIで連携しますが、コンポーネント内部のサービス群は、メッセージングサーバーを経由して連携する点に注意してください。OpenStackでは、メッセージングサーバーとして、オープンソースのRabbitMQが使用されています。これは複数のサービスに情報を配信する機能を持ちます。

 例えば、クライアントからのリクエストが多くて、Nova Schedulerの処理がボトルネックになったとします。このような場合、複数のNova Schedulerを起動しておくと、メッセージングサーバーによりNova APIからの依頼が振り分けられるようになります。このように同一のサービスを複数起動することで、管理機能の負荷分散や冗長化が実現できるようになっています。

 図1の「Nova Conductor」は、コンピュートノードのリソース情報を収集してデータベースに保存する役割を持ちます。コンピュートノードで稼働するNova Computeは、該当ノードのリソース使用状況を定期的にNova Conductorに通知するので、それらをまとめてデータベースに書き込みます。

ここから先はITpro会員(無料)の登録が必要です。

次ページ 仮想マシンインスタンスの起動処理
  • 1
  • 2
  • 3

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る