読者です 読者をやめる 読者になる 読者になる

竹林のゆとりブログ

山奥で生活し、日々の思いをつらつらと書くブログ。 IT、数学、アニメなど。

openstack勉強してみた

opnestackの基礎をざっと勉強してみました

openstackとは?

IaaSを提供するオープンソース、つまり、仮想マシンや物理マシンを作成したいと思った時に、割り当てることができるソフトウェアです。

openstackの基本コンポーネント

Grizzly以降あるものぐらいでも

仮想マシンを作り、使うためにはNova,Neutron,Cinderがあれがいい気がしたので、これらについて詳細に調べてみました。

コンポーネント詳細~Nova~

  • nova compute
    VMHostに存在するプロセス。 VMHostのリソース情報の取得とVMの作成を実施するもの

  • nova conductor
    nova computeで入手した各ノードの情報をまとめて、管理するプロセス

  • nova scheduler
    apiからきた依頼をどの順番に来たかを決定するプロセス。 ノードのリソースの情報などから順番を決定する。

仮想マシンを作りたい(API)→仮想マシンを作れ(scheduler)という命令が発行され、 定期的に、仮想マシンの状態を教えろ(nova conductorか)→こんな状態だ(nova compute) という感じだと理解しました。

コンポーネント詳細~Neutron~

L2/L3スイッチを仮想的に作ったもの DHCPサーバ、DNSサーバ、NAT等に相当する機能も存在するらしい

コンポーネント詳細~Cinder~

CinderはNovaから切り取られたコンポで、プロセスの構成が似ています

  • cinder-scheduler
    cinderに対するapiを格納し、実行順序をコントロールします。

  • cinder-volume
     ストレージ装置に対して管理するプロセス  ストレージ装置のボリューム等の情報を覚えておく、またストレージと接続されているサーバ情報なども覚えているため、複数サーバから接続させることができない?

  • cinder-backup
     backup甩のプロセス、一定サイズ毎にSwiftに格納されるそうです

openstackのすごい所

結局、すごい所がどこかが本などを読んでもわかりませんでした。 プログラムを考えると複数のアーキテクチャが異なるマシンから、仮想マシンを作り、サービスとして提供できるところがすごい気がしました。

異なるマシンに統一的なインターフェースを与えることと、複数マシンで構成されたシステムでうまく性能を維持することが一番技術的に難しいでしょう。

ざっと調べてみました。 opnestackは複雑ですね。