OSS+ Compass

【OpenStackチャレンジ】 第2回 コンポーネント紹介編

2017.06.21

OpenStackチャレンジ

OpenStackの歴史を紐解いてみましょう!

reading.jpg

前回概要をご紹介したOpenStackですが、その歴史について少し振り返ってみたいと思います。元々は2010年、RackSpace社のSwift(同社の商用クラウドサービスのOSS版)とNASAのNova(NASAがクラウド基盤開発に向け開発したソフトウェアのOSS版)が合流し、両者による共同開発としてOpenStackプロジェクトはスタートしました。

現在は2012年に設立したOpenStack Foundationが主体となり、世界で500以上の企業が開発/プロモーションに参画しています。これまで約6ヶ月に一度の周期で、最新のバージョンがリリースされてきました。

release history.png

因みに各バージョンは、リリース毎にアルファベット順で、直近で開催されるOpenStackサミット開催国(都市)に合わせネーミングされています(中にはGrizzly=カリフォルニア国旗、Icehouse=香港にある道路名といった様なユニークなネーミングも)。なんと弊社のすぐ近くの東京都三鷹市も将来のバージョンとして控えているんです!

OpenStackのコンポーネントに着目

OpenStackのアイディア自体はとてもシンプルなものですが、実現するまでのプロセスになると話は別です。OpenStackという複雑なプラットフォームは、オープンソースコードで記述された複数のコンポーネントにより構成されています。私達が目、鼻、口、耳、手足を持つ様に、OpenStackも多様な機能が集合して成り立っているのです。

コンポーネント1.png

上図でも分かる通り、バージョンが更新されるにつれコンポーネントも増加し、様々な機能が実装されてきました。2015年10月リリース予定のLibertyでは、また新たに4つのコンポーネントが実装される予定です。 現在実装されている(実装が決定している)コンポーネントは合計16。コンポーネント毎に独立したプロジェクトが組織され、開発が進められています。この点からも多様なバックグラウンドを持つ開発研究者が集結していることがイメージできますね。

今回は、よりOpenStackの全体像を把握するため、各コンポーネントの役割を理解していきたいと思います。その上でただ紹介するだけでは物足りないので、各々を識別するユニークなプロジェクト名の由来にも着目し、調査を進めました!

各コンポーネントのご紹介

Nova:nova1.jpgOpenStackがIaaSを提供する上で不可欠となるサービスであり、主にVMインスタンスの管理を担います。また、後述するGlance、Keystone、Horizonといった他コンポーネントが提供するサービスとの連携も行います。直訳は新星。OpenStackプロジェクトの開始前からNASAが独自に進めていたプロジェクト名が、そのまま使用されています。Folsmのリリース以降、後述するNeutronやCeilometer、IronicといったコンポーネントがNovaから独立していく事になるのですが、当初のNovaには様々な存在(コンポーネント)が同居する1つのという意味が込められていたかもしれませんね。いずれにせよ、なんともNASAらしいネーミングです。

 

glance4-thumb-200xauto-2449.jpgGlance:OpenStackのストレージ上で、使用する仮想マシンのイメージファイルを保存・編集する機能を持ちます。イメージは見るもの。シンプルなネーミングですね。

 

 

Swift:swift.jpg仮想マシンイメージやデータ等のファイルを保存・検索する機能です(ただしファイルサーバの様なマウントディレクトリはありません)。ストレージとプロセスが分離しているため、柔軟性と信頼性に優れています。データ量の増減に合わせ、簡単にスケーリングできたり、異なるロケーションからの多数デバイスから即時アクセスも可能です。直訳は迅速にといった所でしょうか。こちらはRackSpace社が独自に進めていたプロジェクト名が、そのまま残っています。

 

horizon.jpg Horizon:WebブラウザでOpenStackを管理・操作する機能を持ちます。VMインスタンスやネットワーク、リソース使用状況等、日常的に必要とされるOpenStack機能をブラウザ上で管理できます。OpenStackの内部を地平線の彼方まで見渡せるというニュアンスが込められていそうですね。

 

keystone.jpgKeystone:Webブラウザにアクセスする際のユーザ認証や、各コンポーネント間の相互認証を可能にします。特に後者については、各コンポーネントが異なるプロジェクトとして開発されてきたため、認証の考え方にもばらつきがあり、認証機能も個別に実装されてきました。そのため個々の認証機能を統合し一元化することを目的に、OpenStack共通の統合認証サービスとして導入されました。各コンポーネントはユーザからAPIで命令を受け取ると、まずは正確なユーザであるかKeystoneに問合せた上で、処理を実行します。要石を意味するKeystoneは、全てのコンポーネントの中心。抜け落ちると全てが崩れてしまいます。

 

 neutron1.jpgNeutronOpenStack環境でネットワークの設計構築を実現します。L2、L3といったネットワーク機能に加え、ユーザのニーズに合わせてVPNやファイアウォールといった機能の追加が可能です。因みにProject名は元々Quantum=量子でしたが、既に実在する社名があったため、後に中性子を意味するNeutronになったそうです。量子は粒子と波の両方の性質を持っています。実体のある粒子は物理サーバ、実体のない波は仮想サーバにそれぞれ例えており、名称には両者を併せ持つものという意味が込められているのではないでしょうか。


cinder block.jpgCinder
作成されたVMインスタンスのデータを保存するため、インスタンス終了後も保持される永続的なブロックストレージを提供します。OpenStackで作成したVMインスタンスには一定容量のローカルストレージが割り当てられますが、これはVMインスタンスを削除すると同時に消えてしまいます。プロジェクト名はCinder Block=穴の空いているコンクリートブロックに由来しています。

heat.jpgHeat:仮想マシンおよびアプリケーションなどの管理・運用の効率化を行います。テンプレートを使用することで、環境構築の自動化やオートスケーリングを実現させます。は上昇気流を発生させ、クラウド(雲)をつくる。捻りの聞いたネーミングですね。

 

ceilometer.jpgCeilometer各コンポーネントのリソース消費量を計測/集計するためのコンポーネントです。直訳は雲高計。クラウド(雲)の高さ=リソース消費を計測するという意味が込められています。この計測量に則って、ユーザへの課金が実施されます。

 

 trove.jpgTrove:バンク宝庫という訳のこのコンポーネントは、OpenStack上でDBaaS(DataBase as a Service)を提供します。データベースの種類は幾多として存在しますが、操作を始め、バージョンアップ、バックアップやリストア、監視までOpenStack上で標準的に管理できる様、開発が進められています。

 

sahara.jpgSahara:OpenStack上でHadoop環境を容易に構築/管理するためのコンポーネントです。特にOpenStackを使用する企業には、ビッグデータのプロビジョニングや管理の自動化が可能になるという大きなメリットが生まれました。因みに開始当時のプロジェクト名はSavanna。いずれにせよ、サバンナサハラの持つ広大さがビッグデータを扱うコンポーネントとしての名前の由来なのでしょう。

 

ironic.jpgIronic:Openstackのインスタンスとして、通常の仮想サーバや仮想ネットワークといったクラウド環境に代わり、物理マシンを扱うためのコンポーネントです。より高性能な環境構築を目的とする場合は、仮想化よりも物理マシンの方が適当である、という考えが背景になりますが、「クラウドなのに物理を使う」という皮肉が込められたネーミングなのかもしれません。或いは、単純にベアメタルとを掛けているのかも。

  

Zaqar.jpgZaqar:マルチテナントでクラウドメッセージを提供します。因みにZakarとはメソポタミア文明における、神々からのメッセージを伝達する神との事でした。(特定するのに一苦労でした…笑)

 


manila.jpgManila
上述のCinder が土台となっており、共有ファイルシステムをインスタンスに提供するためのコンポーネントです。都市のマニラ由来となっている様ですが、残念ながら詳細は確認できず。設立メンバーにフィリピン人の方がいらっしゃるのでしょうか?

 

designate.jpgDesignate指名指定を意味するこのコンポーネントは、OpenStack上でDNSaaS(DNS as a Service)を提供します。

 

 

 barbican.jpgBarbicanパスワードや認証といったセキュリティ事項管理のためのREST APIを提供するコンポーネントです。OpenStackの開発が進み成熟化していく中で、セキュリティへの強化意識も高まっています。こちらは稜堡(城壁の防御施設)の意。セキュリティを意識したネーミングになっています。

 

おわりに

each function.png少し長丁場の解説になりましたが、調査を進めていく内にOpenStackの全体像が何となく見えてきた気がします。皆さんも、まるでOpenStackという実世界が存在している様でワクワクしてきませんか?

各コンポーネント名の由来を通して感じられる開発チームの遊び心からも、ソースコードや開発体制を含み“Everything is open”なOpenStackプロジェクトの姿勢が伝わってきますね。

今回の記事では、各コンポーネントの詳細については省きました。(ボリュームもすごいことになりそうなので….)。次回以降、実際にOpenStack環境で様々な動作を確認する中で、各コンポーネントの働きについても触れていきたいと思います。


最後までお付き合いを頂き、ありがとうございました。

photo-1439396087961-98bc12c21176.jpg

最新記事

Category

Old Blogs