Upload
irixjp
View
1.336
Download
2
Embed Size (px)
Citation preview
1
2012.11.18日本 OpenStackユーザ会中島倫明 @irix_jp
openstackOpen source software to build public and private clouds.
第9回 動かして学ぶ!OpenStackとクラウドを支える技術
JOSUG 9th Study
テキスト: http://goo.gl/pWUSG (これと一緒に参照)
2
はじめに
● 会場提供、及び、デモ環境用の
VPS をお貸し出し頂いた、
KDDI ウェブコミュニケーションズ様に
御礼申し上げます。
3
自己紹介
● 日本 OpenStack ユーザ会● 会長
● クラウド利用促進機構● 技術アドバイザー
● @irix_jp
4
今回の勉強会の趣旨
● Folsom リリース● これで大体一通りの機能が揃った● しかし OpenStack の勢いは
衰える気配を見せず、
さらなる進化が期待できる。
● ここらでちゃんと
OpenStack の構造を理解し、
次の進化に備えよう、という企画By @habuka036 & @enakai00
5
大枠の流れ
● とりあえず動かしてみる● 構造を理解する● 裏側を見てみる
By @habuka036 & @enakai00
6
デモ環境の構築 フォロー
● 事前課題の devstack を
使った環境構築が
上手く行かなかった人向け
● この環境が手元に無いと、
話についていくのが
厳しくなります(リアル話)
7
デモ環境(講師用)
q-agt
n-cpu
c-vol
q-agt
n-cpu
c-vol
q-agt
n-cpu
c-vol
q-agt
n-cpu
c-vol
q-agt
n-cpu
c-vol
quantum
nova
keystone
glance
rabbitmq
mysql
Internet
8
基本操作
● OpenStack の操作● Web インターフェース● コマンドライン
● ログイン、キーペア作成● インスタンス作成● ボリューム作成● ネットワーク作成● テナント、ユーザ作成
9
基本操作
q-agt
n-cpu
c-vol
q-agt
n-cpu
c-vol
q-agt
n-cpu
c-vol
q-agt
n-cpu
c-vol
q-agt
n-cpu
c-vol
quantum
nova
keystone
glance
rabbitmq
mysql
Internet
VM
VM
10
コンポーネントの基本構造
nova-api
nova-compute
Kvm, XenHyperV,ESXi
glanceLocal file,Swift, S3 quantum-server
quantum-l3
quantum-dhcp
quantum-agentcinder
LVM, NetApp, Nexenta
OVS, NiciraNEC
horizonkeystone
DB
AMQP
11
コンポーネントの基本構造
Adminor
UsersHorizon Client
Library(python)
ClientCommand
OpenStackComponent
OtherProgram
APIServer
DB
AMQP OpenStackComponent
ExternalSoftwarehttps://launchpad.net/openstack
12
quantum
● Folsom から正式コンポーネントとなったネットワークマネージャ● テナントのアイソレーション● インスタンス間の接続● ルーティング● DHCP● Floting IP
– 外部からインスタンスへアクセスさせるための IP
13
構成例
http://docs.openstack.org/trunk/openstack-network/admin/content/app_demo.html
14
プラグイン構造
● Quantum はプラグイン構造で、様々なネットワークを制御可能● OVS ← devstack だとコレが使われる● Nicira● NEC● Bigswitch● Cisco● Ryu
– 等々
15
Quantum で作れるネットワーク
ext_net
Router
net1 net2
VM VM VM VM
Router
net1 net2VM VM
Router
net3 net4VM VM
br-ext
ethX
16
使われている技術
● OVS プラグインの場合● OVS + GRE● Network Name Space● iptables● dnsmasq● route● linux bridge● veth● tap
17
やってみよう
● ネットワークの作成● サブネットの作成● ルーターの作成● ルーターとネットワークの関連付け● Floaitng IP の割り当て
br-int
br-ex
br-tun
qr-01b9a7bf-ce (tag=1)
tapa9806132-f2 (tag=1)
patch-tun (peer=patch-int )
gre-2 (remote_ip="172.26.0.101)
patch-int (peer=patch-tun )
▲172.24.17.1
★172.24.17.254
qg-f616aed6-66 ★10.0.0.2
br-int
br-tun
patch-tun (peer=patch-int )
br-tun
gre-1 (remote_ip="172.26.0.100)
patch-int (peer=patch-tun )
br-int br-int
br-tun
br-ex 10.0.0.1
eth1
eth0
eth1
eth0192.168.128.100
172.26.0.100
192.168.128.101
172.26.0.101
eth2 Router10.0.0.254
vethqvo00a6d081-61 (tag=1)
vethqvodd945b9a-4a (tag=1)
vethqvb00a6d081-61
vethqvbdd945b9a-4a
testvm02
eth0
testvm01
eth0172.24.17.2
172.24.17.3
bridgeqbr00a6d081-61
Tapvnet0
bridgeqbrdd945b9a-4a
tapvnet0
受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース0.0.0.0 192.168.128.1 0.0.0.0 UG 100 0 0 eth010.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br-ex172.24.17.0 10.0.0.2 255.255.255.0 UG 0 0 0 br-ex172.26.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1192.168.128.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0ping 172.24.17.2
受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 qg-f616aed6-6610.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 qg-f616aed6-66172.24.17.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-01b9a7bf-ce
19
nova
● 仮想マシンを作成し管理する● スケジューラー● ハイパーバイザー管理● セキュリティグループ管理● キーペア管理● ゾーンの管理● メタデータ提供● コンソールプロキシ● ボリューム管理 → Cinder へ移管( folsom )● ネットワーク管理 → Quantum へ移管( folsom )
20
nova の構造
21
スケジューラー
● キューからリクエストを取得して、仮想マシンの配置先を決定する。● API 経由でリクエストメッセージをキューへ● キュー経由でスケジューラーがメッセージを受け取る● スケジューラーが配置先のホストを決定● キューへメッセージを送信● 配置先のホストが受け取る
– 細かく話すと長いので、こちらを参照● nova-scheduler(1)● http://www.slideshare.net/h-saito/osc2012kansaikyoto-
josug
22
ハイパーバイザー管理
● 複数のハイパーバイザーを混在して管理可能(ゾーンを分ける必要あり)● KVM - Kernel-based Virtual Machine● LXC - Linux Containers (through libvirt)● QEMU - Quick EMUlator ● UML - User Mode Linux● VMWare ESX/ESXi 4.1 update 1● Xen - Xen, Citrix XenServer and Xen Cloud
Platform (XCP)
23
ゾーン (availability zone)
● 複数の nova ホストを論理的に区切る事ができる。● ラック単位● 接続スイッチ単位● 接続電源系統単位● DC 単位
– 等々の対障害性の単位で区切る。– インスタンス作成時にオプションで指定できる。
● nova.conf– node_availability_zone で設定– default_schedule_zone でデフォルトゾーンを指定
24
セキュリティグループ&キーペア
● セキュリティグループ● 仮想マシンへの FW 機能
– Iptables を駆使して実現
● キーペア管理● SSH キーの作成と管理● 仮想マシンへのねじ込み
– コンピュートノード上でイメージをループバックマウントしてねじ込む。
25
メタデータサーバ
● インスタンスに対して任意の情報を提供する● Quantum 上ではまだテストサポート。
– metadata 機能を使いたい場合は nova-network を使う。
● 仮想マシンでは知り得ない情報を入手するための機能● 169.254.169.254 で待受け。
– iptables で DNAT されている。
26
コンソールプロキシ
● 仮想マシンのコンソールへ接続するためのプロキシ(そのまんま)● ブラウザ → noVNC → nova-xvpvncproxy → VM
– VM とブラウザを使うクライアントと通信できる必要は無い。
● horizon からアクセスしてみるべし● 詳細は省略