OpenStack 基本概要

OpenStackってなんだろう?

Web検索で「OpenStack」と検索すると複雑な解説が返ってくるかと思いますが、
OpenStackを一言で言い表すと「IaaS環境を構築するためのソフトウェア(群)」と考えてください。

つまり、OpenStackを使用することでAWSの様なクラウドサービス(環境)が作成できてしまうのです。

OpenStackの大きな特徴としては以下が挙げられます。

1.オープンソースソフトウェアである
2.IaaS環境(仮想マシン、ストレージ、ネットワーク等)の構築ができる

これまでのインフラ構築はサービス提供開始まで数か月かかることも珍しくありませんが、OpenStackなら一旦環境を作ってしまえばダッシュボードやコマンドからすばやくリソースを割り当てたり仮想サーバを作成することができます。

以下はOpenStackによるクラウドサービスのイメージ図です。

open15

OpenStackの構成要素

前章でOpenStackは「IaaS環境を構築するためのソフトウェア(群)」とお話しました。

ではOpenStackはどのような要素で構成されているのでしょう。

はじめにOpenStackのリリースについて少しお話します。

OpenStackには「リリース」があり、リリースされる毎に新しい機能が追加されます。

毎年OpenStackSummitというグローバルイベントで次のリリースが発表され、2015年10月開催OpenStackSummitでは「Mitaka」(2016年春リリース)というリリースが発表されました。

6ヶ月毎に最新リリースが発表されるという、なかなかの早いペースなのでSEとしては技術に追いつくのが大変ですね。

以下表はリリース名と追加された主な機能(コンポーネント)になります。

open7

OpenStackの内部へ話を進めていきましょう。

各リリースに組み込まれる”コンポーネント”のお話です。
OpenStackのコンポーネントとは、体で表せば、「手」「足」「耳」の役割です。
IaaS環境を構成するために1つ1つのコンポーネントに役割があります。

例えば「Nova」と言われるコンポーネントの役割は仮想マシンの起動を管理し、「Glance」はゲストOSが導入されたテンプレートイメージのカタログを管理します。

open9


先程のクラウドサービスイメージにコンポーネントを配置するとこの様になります。

open16

OpenStackの操作

OpenStackの内部構造がわかったところで、実際どうやって操作するのかご紹介します。

OpenStackの操作は大きく3つ方法があります。

①REST形式のAPIをコールする方法
②REST APIをラップしたコマンドラインを利用する方法
③ダッシュボード機能をブラウザーから操作する方法

順にご紹介します。

①REST形式のAPIをコールする方法
出ました!APIです。
APIとは外部からプログラム(ここではOpenStack)を操作できる手順やデータ形式の規約です。
ちなみにOpenStackのAPI一覧はOpenStackの公式ページで確認できます。

http://docs.openstack.org/

①の方法はこのAPIを使用して操作する方法です。
例えば仮想サーバの一覧を取得する場合は「GET /v2/{tenant_id}/servers」という形式でREST APIを呼び出します。
仮想サーバを作成する場合は「POST /v2/{tenant_id}/servers」で次のようなパラメータを与えることで作成したいサーバの情報を渡します。

open11


いかがでしょう。
実は私はインフラ構築のSEでしたのでAPIはUnixコマンドとも違うし、少しわかりにくく感じてしまったのが正直なところです。

REST APIはプログラム運用には重要ですが、人が直接利用するには少々複雑、、、そんな方にお勧めの操作方法が
②REST APIをラップしたコマンドラインを利用する方法です。

こちらはOpenStackコマンドを使用して操作する方法です。

コンポーネント毎にコマンドが用意されており、利用者は「どのコンポーネントを利用するのか」を意識して利用することがポイントです。

例えば、仮想サーバ関連操作を行う場合には「nova」コマンドを。ボリューム関連操作を行う場合は「cinder」コマンドを利用します。

またHelpコマンドを利用すればどのようなサブコマンドがあるか確認できる便利機能も装備されています。

open12

これならUnixコマンドにも似ているのでREST APIを直接入力するよりも簡単ですね!
最後の操作方法は

③ダッシュボード機能をブラウザーから操作する方法です。

「Horizon」というコンポーネントが提供するダッシュボード機能をブラウザーから操作する方法になります。
複雑なAPIのパラメータ、コマンドの知識がなくてもOpenStackを操作できますが、GUI操作によくあるようにコマンドラインに比べると操作できる範囲が限定されることが注意点です。

さて、ここまでお話してきたのはオープンソースのOpenStackについてですが、

やはりオープンソースはサポートが無いから不安というお客様も多いのではないかと思います・・・

安心してください!
OpenStackにはサポートのある商用ディストリビューションも発表されており、2製品ピックアップしてご紹介します。

OpenStack商用ディストリビューション

まず、RedHat社が提供するOpenStackパッケージである

Red Hat Enterprise Linux OpenStack Platform(RHEL-OP)」です。

RHEL-OPはオープンソースのOpenStackとほぼ同等のソフトウェアを提供しており、ベースのOpenStackリリース後、ほぼ2,3ヶ月後にリリースされています。
さすがRedHat!アップデートが早いですね。

最新リリースのRHEL-OP8は「Liberty」ベースとなっており、「Liberty」のコンポーネントが使用可能です。
Nodeの機能停止検知機能の追加やOSP Directorが組み込まれています。
OSP Deirectorの特徴としてOpenStackの各コンポーネントを自動で展開、インストールすることができます。

最後になりますが、OpenStackが向いているユーザとして、

例えばハードウェアの種類やベンダーを意識せずにリソースをコントロールしたいユーザは向いているユーザとして挙げられます。

現在多数のハードウェアベンダーがOpenStack対応のプラグインを開発していますのでOpenStackの操作を習得できれば特定ベンダーにロックされずに使用することが可能です。