More Related Content Similar to JOSUG 9th Study (20) JOSUG 9th Study1. JOSUG 9th Study
openstack
Open source software to build public and private clouds.
第9回 動かして学ぶ!
OpenStackとクラウドを支える技術
テキスト: http://goo.gl/pWUSG (これと一緒に参照)
2012.11.18
日本 OpenStack ユーザ会
中島倫明 @irix_jp
1
2. はじめに
● 会場提供、及び、デモ環境用の
VPS をお貸し出し頂いた、
KDDI ウェブコミュニケーションズ様に
御礼申し上げます。
2
3. 自己紹介
● 日本 OpenStack ユーザ会
● 会長
● クラウド利用促進機構
● 技術アドバイザー
● @irix_jp
3
4. 今回の勉強会の趣旨
● Folsom リリース
● これで大体一通りの機能が揃った
● しかし OpenStack の勢いは
衰える気配を見せず、
さらなる進化が期待できる。
● ここらでちゃんと
OpenStack の構造を理解し、
次の進化に備えよう、という企画
By @habuka036 & @enakai00
4
5. 大枠の流れ
● とりあえず動かしてみる
● 構造を理解する
● 裏側を見てみる
By @habuka036 & @enakai00
5
6. デモ環境の構築 フォロー
● 事前課題の devstack を
使った環境構築が
上手く行かなかった人向け
● この環境が手元に無いと、
話についていくのが
厳しくなります(リアル話)
6
7. デモ環境(講師用)
glance quantum q-agt
rabbitmq nova n-cpu
mysql keystone c-vol
Internet
q-agt q-agt q-agt q-agt
n-cpu n-cpu n-cpu n-cpu
c-vol c-vol c-vol c-vol
7
8. 基本操作
● OpenStack の操作
● Web インターフェース
● コマンドライン
● ログイン、キーペア作成
● インスタンス作成
● ボリューム作成
● ネットワーク作成
● テナント、ユーザ作成
8
9. 基本操作
glance quantum q-agt
rabbitmq nova n-cpu
mysql keystone c-vol
VM
Internet
q-agt q-agt q-agt q-agt
n-cpu n-cpu n-cpu n-cpu
c-vol c-vol c-vol c-vol
VM
9
10. コンポーネントの基本構造
keystone horizon
quantum-l3
Local file,
glance nova-api quantum-server
Swift, S3
quantum-dhcp
cinder nova-compute quantum-agent
DB
LVM, NetApp, Kvm, Xen OVS, Nicira
Nexenta HyperV,ESXi NEC AMQP
10
11. コンポーネントの基本構造
Client
Command DB
Admin
or
Users
Horizon Client
Library
(python) API AMQP OpenStack
Server Component
OpenStack
Component
Other
Program
External
https://launchpad.net/openstack Software
11
12. quantum
● Folsom から正式コンポーネントとなったネットワー
クマネージャ
● テナントのアイソレーション
● インスタンス間の接続
● ルーティング
● DHCP
● Floting IP
– 外部からインスタンスへアクセスさせるための IP
12
14. プラグイン構造
● Quantum はプラグイン構造で、様々なネットワーク
を制御可能
● OVS ← devstack だとコレが使われる
● Nicira
● NEC
● Bigswitch
● Cisco
● Ryu
– 等々
14
15. Quantum で作れるネットワーク
ethX
br-ext
ext_net
Router
Router
net1 VM net2 VM
Router
net1 net2
VM VM VM VM
net3 VM net4 VM
15
16. 使われている技術
● OVS プラグインの場合
● OVS + GRE
● Network Name Space
● iptables
● dnsmasq
● route
● linux bridge
● veth
● tap
16
17. やってみよう
● ネットワークの作成
● サブネットの作成
● ルーターの作成
● ルーターとネットワークの関連付け
● Floaitng IP の割り当て
17
18. 192.168.128.100 eth0 eth0 192.168.128.101
172.26.0.100 172.26.0.101
eth1 eth1
br-tun br-tun
br-tun gre-2 (remote_ip="172.26.0.101) testvm02 gre-1 (remote_ip="172.26.0.100) br-tun
eth0
172.24.17.3
patch-int (peer=patch-tun ) patch-int (peer=patch-tun )
tap
vnet0
br-int br-int
bridge
patch-tun (peer=patch-int ) qbrdd945b9a-4a patch-tun (peer=patch-int )
veth veth
qr-01b9a7bf-ce (tag=1) ★172.24.17.254
qvbdd945b9a-4a qvodd945b9a-4a (tag=1)
tapa9806132-f2 (tag=1) ▲172.24.17.1
br-int
br-int
veth veth
qvo00a6d081-61 (tag=1) qvb00a6d081-61
bridge
qbr00a6d081-61
受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース
Tap
0.0.0.0
10.0.0.0
10.0.0.1
0.0.0.0
0.0.0.0
255.255.255.0
UG
U
0
0
0
0
0 qg-f616aed6-66
0 qg-f616aed6-66
vnet0
172.24.17.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-01b9a7bf-ce
172.24.17.2
eth0
qg-f616aed6-66 ★10.0.0.2 testvm01
br-ex br-ex 10.0.0.1 受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース
0.0.0.0 192.168.128.1 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br-ex
172.24.17.0 10.0.0.2 255.255.255.0 UG 0 0 0 br-ex 10.0.0.254
ping 172.24.17.2 eth2 172.26.0.0 0.0.0.0
192.168.128.0 0.0.0.0
255.255.255.0 U
255.255.255.0 U
0
0
0
0
0 eth1
0 eth0
Router
19. nova
● 仮想マシンを作成し管理する
● スケジューラー
● ハイパーバイザー管理
● セキュリティグループ管理
● キーペア管理
● ゾーンの管理
● メタデータ提供
● コンソールプロキシ
● ボリューム管理 → Cinder へ移管( folsom )
● ネットワーク管理 → Quantum へ移管( folsom )
19
21. スケジューラー
● キューからリクエストを取得して、仮想マシンの配置
先を決定する。
● API 経由でリクエストメッセージをキューへ
● キュー経由でスケジューラーがメッセージを受け取る
● スケジューラーが配置先のホストを決定
● キューへメッセージを送信
● 配置先のホストが受け取る
– 細かく話すと長いので、こちらを参照
● nova-scheduler(1)
● http://www.slideshare.net/h-saito/osc2012kansaikyoto-
josug
21
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)
22
23. ゾーン (availability zone)
● 複数の nova ホストを論理的に区切る事ができる。
● ラック単位
● 接続スイッチ単位
● 接続電源系統単位
● DC 単位
– 等々の対障害性の単位で区切る。
– インスタンス作成時にオプションで指定できる。
● nova.conf
– node_availability_zone で設定
– default_schedule_zone でデフォルトゾーンを指定
23
24. セキュリティグループ&キーペア
● セキュリティグループ
● 仮想マシンへの FW 機能
– Iptables を駆使して実現
● キーペア管理
● SSH キーの作成と管理
● 仮想マシンへのねじ込み
– コンピュートノード上でイメージをループバックマウントしてね
じ込む。
24
25. メタデータサーバ
● インスタンスに対して任意の情報を提供する
● Quantum 上ではまだテストサポート。
– metadata 機能を使いたい場合は nova-network を使う。
● 仮想マシンでは知り得ない情報を入手するための機能
● 169.254.169.254 で待受け。
– iptables で DNAT されている。
25
26. コンソールプロキシ
● 仮想マシンのコンソールへ接続するためのプロキシ
(そのまんま)
● ブラウザ → noVNC → nova-xvpvncproxy → VM
– VM とブラウザを使うクライアントと通信できる必要は無い。
● horizon からアクセスしてみるべし
● 詳細は省略
26