こんにちは。てくさぽBLOGメンバーの高村です。
今回はセミナーに参加すれば必ず一度は聞く「OpenStack」の基礎知識をご紹介します。
OpenStackは「なんだか取り掛かりにくい」「開発スキルが無いと難しそう」など思われたこともあるかもしれませんが、今回で少しでも疑問点を解消頂ければ幸いでございます。
それではさっそく始めましょう!
OpenStackってなんだろう?
Web検索で「OpenStack」と検索すると複雑な解説が返ってくるかと思いますが、
OpenStackを一言で言い表すと「IaaS環境を構築するためのソフトウェア(群)」と考えてください。
つまり、OpenStackを使用することでAWSの様なクラウドサービス(環境)が作成できてしまうのです。
OpenStackの大きな特徴としては以下が挙げられます。
1.オープンソースソフトウェアである
2.IaaS環境(仮想マシン、ストレージ、ネットワーク等)の構築ができる
これまでのインフラ構築はサービス提供開始まで数か月かかることも珍しくありませんが、OpenStackなら一旦環境を作ってしまえばダッシュボードやコマンドからすばやくリソースを割り当てたり仮想サーバを作成することができます。
以下はOpenStackによるクラウドサービスのイメージ図です。
OpenStackの構成要素
前章でOpenStackは「IaaS環境を構築するためのソフトウェア(群)」とお話しました。
ではOpenStackはどのような要素で構成されているのでしょう。
はじめにOpenStackのリリースについて少しお話します。
OpenStackには「リリース」があり、リリースされる毎に新しい機能が追加されます。
毎年OpenStackSummitというグローバルイベントで次のリリースが発表され、2015年10月開催OpenStackSummitでは「Mitaka」(2016年春リリース)というリリースが発表されました。
6ヶ月毎に最新リリースが発表されるという、なかなかの早いペースなのでSEとしては技術に追いつくのが大変ですね。
以下表はリリース名と追加された主な機能(コンポーネント)になります。
OpenStackの内部へ話を進めていきましょう。
各リリースに組み込まれる”コンポーネント”のお話です。
OpenStackのコンポーネントとは、体で表せば、「手」「足」「耳」の役割です。
IaaS環境を構成するために1つ1つのコンポーネントに役割があります。
例えば「Nova」と言われるコンポーネントの役割は仮想マシンの起動を管理し、「Glance」はゲストOSが導入されたテンプレートイメージのカタログを管理します。
先程のクラウドサービスイメージにコンポーネントを配置するとこの様になります。
OpenStackの操作
OpenStackの内部構造がわかったところで、実際どうやって操作するのかご紹介します。
OpenStackの操作は大きく3つ方法があります。
①REST形式のAPIをコールする方法
②REST APIをラップしたコマンドラインを利用する方法
③ダッシュボード機能をブラウザーから操作する方法
順にご紹介します。
①REST形式のAPIをコールする方法
出ました!APIです。
APIとは外部からプログラム(ここではOpenStack)を操作できる手順やデータ形式の規約です。
ちなみにOpenStackのAPI一覧はOpenStackの公式ページで確認できます。
①の方法はこのAPIを使用して操作する方法です。
例えば仮想サーバの一覧を取得する場合は「GET /v2/{tenant_id}/servers」という形式でREST APIを呼び出します。
仮想サーバを作成する場合は「POST /v2/{tenant_id}/servers」で次のようなパラメータを与えることで作成したいサーバの情報を渡します。
いかがでしょう。
実は私はインフラ構築のSEでしたのでAPIはUnixコマンドとも違うし、少しわかりにくく感じてしまったのが正直なところです。
REST APIはプログラム運用には重要ですが、人が直接利用するには少々複雑、、、そんな方にお勧めの操作方法が
②REST APIをラップしたコマンドラインを利用する方法です。
こちらはOpenStackコマンドを使用して操作する方法です。
コンポーネント毎にコマンドが用意されており、利用者は「どのコンポーネントを利用するのか」を意識して利用することがポイントです。
例えば、仮想サーバ関連操作を行う場合には「nova」コマンドを。ボリューム関連操作を行う場合は「cinder」コマンドを利用します。
またHelpコマンドを利用すればどのようなサブコマンドがあるか確認できる便利機能も装備されています。
これなら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の各コンポーネントを自動で展開、インストールすることができます。
次にIBM社が提供する
「IBM Cloud Manager with OpneStack(CMwO)」です。
こちらの最新バージョン4.3はオープンソースOpenStackの「Kilo」をベースにしています。
RHEL-OPに比べ一つ前のリリースですがきっと…もうすぐ「Mitaka」ベースが発表されることでしょう!
CMwOの特徴としては多様なハイパーバイザーに対応している点が挙げられます。
そのため、例えばオンプレミス環境とクラウド環境の異なるハイパーバイザー上の仮想マシンを統合管理できるメリットがあります。
対応するハイパーバイザーは皆様ご存じPowerVM 、z/VM、PowerKVM、x86 KVM、Hyper-V、および VMware vSphereです。
1点PowerSystemsに関して注意頂く点があり、PowerVMの管理はPowerVC経由で管理することが必須となっています。
CMwOについては、構築ガイドも公開されておりますでご興味のある方は是非ご参照ください。
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W3b01d47f6143_4fff_8f84_2c2b102a626a/page/IBM%20Cloud%20Manager%20with%20OpenStack%20%E3%81%AB%E3%82%88%E3%82%8B%20PowerKVM%20%E7%AE%A1%E7%90%86%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E3%82%AC%E3%82%A4%E3%83%89
最後になりますが、OpenStackが向いているユーザとして、
例えばハードウェアの種類やベンダーを意識せずにリソースをコントロールしたいユーザは向いているユーザとして挙げられます。
現在多数のハードウェアベンダーがOpenStack対応のプラグインを開発していますのでOpenStackの操作を習得できれば特定ベンダーにロックされずに使用することが可能です。
今後OpenStackは次世代のインフラ基盤のキーワードとなると思いますので、本ブログで是非ご興味を持っていただけますと幸いです。
この記事に関する、ご質問は下記までご連絡ください。
エヌアイシー・パートナーズ株式会社
技術支援本部
E-Mail:nicp_support@NIandC.co.jp
商標帰属
すべての名称ならびに商標は、それぞれの企業の商標または登録商標です。
※本資料内のアイコンは、freepikからの引用となります。
http://jp.freepik.com/free-vector/casual-characters_774641.htm