まずは書き出して眺めてみよう
OpenStack.orgのサンプルアーキテクチャを参考にします
こないだの記事と合わせて読んでなんぼになります。
まずはNeutronを用いた最小のサンプル
- コンピュートノード
KVM
Open vSwitch
Compute
Networking ML2 Plugin
Networking Open vSwitch Agent - ネットワークノード
Open vSwitch
Networking ML2 Plugin
Networking Open vSwitch Agent
Networking L3 Agent
Networking DHCP Agent
Networking Metadata Agent - コントローラノード
SQL データベースサービス
Message Queue
Network Time Service
Identity
Image Service
Compute Management
Network Management
Networking ML2 Plugin
では続いて前回参考にしたサンプルケースから、各ノードにインストールしたパッケージを並べて見まする
- コンピュートノード
Nova:Nova-compute-quem
Neutron:neutron-plugin-ml2
neutron-plugin-openvswitch-agent
Ceilometer:ceilometer-agent-compute - ネットワークノード
Neutron:neutron-plugin-ml2
neutron-plugin-openvswitch-agent
neutron-l3-agent
neutron-dhcp-agent
Open vSwitch:openvswich-switch
vlan
bridge-utils - コントローラノード
MySqlServer
RabbitMQ Server
Memcached
MongoDB
Keystone
Nova:nova-api
nova-scheduler
nova-conductor
nova-spiceproxy
nova-consoleauth
Glance:glance-api
glance-registry
Cinder:cinder-api
cinder-scheduler
cinder-volume
Neutron:neutron-server
Ceilometer:ceilometer-api
ceilometer-collector
ceilometer-agent-central
ceilometer-agent-notification
ceilometer-agent-evaluator
ceilometer-alarm-notifier
Heat:heat-api
heat-api-cfn
heat-engine
Horizon
並べてみるとこんな感じです。
次はOpenStack.orgに戻って、レガシーネットワーク(Nova-Network)を用いた最小構成アーキテクチャです。
- コンピュートノード
KVm
Compute
Compute Networking - コントローラノード
SQL Database service
Message Queue
Network Time Service
Identity
Image Service
Compute Manage
こんな感じで、レガシーネットワークを用いたケースは2台構成となっていました。過去にレガシーネットワークを使った時は1台で構築できました。
Neutronを利用するには3台必要なのでしょうか。
1台で構築する場合、レガシーネットワークでないといけないのでしょうか。
Neutronについて少し調査
レガシーネットワーク(Nova-Network)はOpenStack初期から利用されていて、枯れた技術と言えるほど情報も豊富である。しかし、これからのトレンドはNeutronとなるので、押さえるべきはNeutronらしい。
OpenStackはマルチテナントで、各テナントに対してネットワークを提供することが可能。
テナント分離というのは、各テナントにたいして完全に独立したネットワーク環境を用意することが可能。
たとえば全てのテナントで192.168.0.1/24というネットワークを使う事が可能ということ。
重複した各テナントが外部と通信するにはNAT処理の可能なルーターが必須。
あと、独自のDHCP、DNSが必要となってくる。
これらをソフトウェアで実現するのがNeutronだ。
マルチノード構成の場合、コンピュートノードとネットワークノードがGreトンネルでつながって通信をするという事になるようです。読んでみた感触だと、シングルノードでもNeutronを採用してオールインワンのOpenStack環境ができるんじゃないかなぁという気がしますがどうなんでしょうか。
Nova-networkはHavanaで非推奨 > Icehouseで一旦解除。というのもFlatDHCPなどのマイグレーションバスが欠如していたらしい。ネットワークを作っている時にFlatでセットアップがエラーでできなかったのはこの辺が起因しているのでしょうか。
もしそうなんだったら1台では作れないのかな?
うーん。難しいです。
サンプルからして基本的には複数台〜大規模なサーバーでクラウド環境を作るようなので、1台にこだわるのもおかしな話なんだがね。
以前よりネットワークまわりの疑問点が増えた
OpenStack Grizzlyの時はフローティングIPを用意して、各ローカルIPを割り当てればそのまま使えたし、まぁまぁなんとか動いていたものの、今回のIcehouceは(というよりもOVSとかSDNかな?)難しいね。
RubyのStudyでも、ひと通り進んだのでSocketなんかの話がちらほら出てきましたが、それはまたプロトコルの話になっちまうので、Let’s Enjoyしながらネットワークの学習ができるような、何かいいアイデアはないかなぁっと。
OVS RubyとかOVS Pythonとかでぐぐると色々でてくるようなので、この辺から探っていこうかなぁっと。