• このエントリーをはてなブックマークに追加

OpenStackって何?その2:詳細編

  • このエントリーをはてなブックマークに追加

openstacklogo
zaco muraです。

前回の記事OpenStackって何?その1:概要編の続きです。
前回の記事でOpenStackとは?というところを説明していきましたが、実際にどんなものかをイメージするのは難しかったのではないかと思います。
今回はもう少し具体的にイメージできるような、詳細なところを説明していきたいと思います。

スポンサーリンク
Sponsords Link

OpenStackの概念

OpenStackというのは“Iaas環境を構築するためのソフトウェア群”と説明しました。”群”とある通り、個別ソフトウェアの集まりがOpenStackと呼ばれているのです。
わかりやすくするため、vSphereと比較するとこんな感じです。

プロジェクト名 OpenStack vSphere
仮想マシン管理 nova ESXi
ネットワーク仮想化 neutron NSX
管理GUI機能 horizon vCenter

(vmwareを使っていない人には全くわかりやすくないかもしれないですが、私がそれしか知らないので。。。)

OpenStackの構成要素

上の表でも説明した通り、色々な機能がコンポーネントに別れているのがOpenStackの特徴です。それを図にしてみました。
openstackコンポーネント
図に示した内容はあくまでも一部ですが、それぞれの要素について説明します。

コンポーネント名 説明
nova OpenStack全体を管理する中心的なコンポーネント。APIを通じて各コンポーネントを操作・管理する。
keystone 各ユーザやサービス(コンポーネント)の認証機能を提供するコンポーネント
rabbitMQ コンポーネント同士でやりとりするためのプロトコル。中身はHTTP(のはず)。各コンポーネントにはAPI用のURLが用意されていて、そこを通じてコンポーネント間での連携が可能となる。ちなみにrabbitMQというのはプロトコルの名前で、別のメッセージングプロトコルで代用することも可能。
nova-compute 仮想マシンを管理するコンポーネント。ハイパーバイザと連携して仮想マシンを構築・削除など行う
(図には無いですが)ハイパーバイザ リソースを仮想化し、仮想マシンを提供するコンポーネント。kvm+qemuやDockerなども利用できる。
neutron ネットワークを仮想化するコンポーネント。OpenStackではテナント内に仮想的なネットワークセグメントを構築することができるのですが、それを提供しているコンポーネントです。
cinder/swift それぞれ、仮想マシンが利用する仮想ストレージを提供するコンポーネントです。
horizon GUIの管理画面を提供するコンポーネントです。吹き出しの中のような管理画面にウェブブラウザを使ってアクセスし、仮想マシン、ネットワーク、ストレージなどを操作できます。

このような感じでそれぞれのコンポーネントを連携させることでIaas環境を構築することができます。なお、これらのコンポーネントは独立していて、それぞれを単体で使うことや一部のコンポーネントを別のものに置き換えることも可能です。(例えば、ネットワークにはneutronを使わず、実機のネットワーク機器を使うことなども可能です。)

OpenStackの構築方法

構築方法にはいろいろありますが、主には2種類あると思います。

①: 全てのコンポーネントをまとめてインストール
②: 一つ一つのコンポーネントを個別にインストール

①は、packstackやdevstackというインストールスクリプトを利用します。これを使うことで、ほぼ自動でインストールが完了します。反面、中身はあまり理解できないと思います。
②は、OpenStackの公式ドキュメントで提供されているインストール方法です。それぞれのコンポーネントを取捨選択でき、構築過程で内容も理解しやすいので私はこちらがおすすめです。apt-get や yum でコンポーネントを一つずつインストールしていきます。

で、結局OpenStackって何がいいの?

ここまでいろいろと説明してきましたが、結局何がいいのかがわからない方が多いかと思います。私は社内の人や社外のセミナーなども聞いてみましたが、結局のところ、何がいいのかわかりません。(身も蓋もない結論ですみません。。。)
何がいいのかわからない、というのは少し大雑把に言ってしまいました。もう少し言うと、OpenStackでなければいけないことがわからないということです。要するに、OpenStackでできることの大半はvmwareでできます。あえてOpenStackを選ぶ理由は何なのか?ということがわからないのです。もちろん無償というのは大きなメリットですが、企業のインフラとして使う場合にはサポート無しは不安ですし、、、規模がめちゃくちゃでかい企業や独自カスタマイズをしたいユーザ以外のメリットってなんなんだろう?

現時点のOpenStackの使いどころ

結局、OpenStackの使いどころというのは、仮想マシンを使い捨てできる用途なのかなと思います。例えばWEB系の企業インフラであればWebサーバで使う場合、ロードバランサを使えば簡単に冗長化できますし、壊れても新しいマシンを作れば問題ないです。また、検証や開発用途で単にマシンがたくさん必要な場合なども向いているかと思います。逆に言うと、普通の企業インフラとして使うには少し早いかなと思っています。(あくまで私見です。。。異論は認めます)

まとめ

ということで、OpenStackのことを書いてみました。
エンジニアとして触ってみるのは勉強になるし、知っておくといいと思いますが、実際の企業が使うようになるにはもう少し時間がかかるかなと思っています。ウチの会社ではこんなふうに使っているよ、みたいなお話があれば是非聞きたいと思います。

スポンサーリンク
Sponsords Link
  • このエントリーをはてなブックマークに追加

ZacoDesign

スポンサーリンク
Sponsords Link