26
1 2012.11.18 日本 OpenStack ユーザ会 中島倫明 @irix_jp openstack Open source software to build public and private clouds. 9回 動かして学ぶ! OpenStackとクラウドを支える技術 JOSUG 9th Study テキスト: http://goo.gl/pWUSG (これと一緒に参照)

JOSUG 9th Study

  • Upload
    irixjp

  • View
    1.336

  • Download
    2

Embed Size (px)

Citation preview

Page 1: JOSUG 9th Study

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 (これと一緒に参照)

Page 2: JOSUG 9th Study

2

はじめに

● 会場提供、及び、デモ環境用の

VPS をお貸し出し頂いた、

KDDI ウェブコミュニケーションズ様に

御礼申し上げます。

Page 3: JOSUG 9th Study

3

自己紹介

● 日本 OpenStack ユーザ会● 会長

● クラウド利用促進機構● 技術アドバイザー

● @irix_jp

Page 4: JOSUG 9th Study

4

今回の勉強会の趣旨

● Folsom リリース● これで大体一通りの機能が揃った● しかし OpenStack の勢いは

衰える気配を見せず、

さらなる進化が期待できる。

● ここらでちゃんと

OpenStack の構造を理解し、

次の進化に備えよう、という企画By @habuka036 & @enakai00

Page 5: JOSUG 9th Study

5

大枠の流れ

● とりあえず動かしてみる● 構造を理解する● 裏側を見てみる

By @habuka036 & @enakai00

Page 6: JOSUG 9th Study

6

デモ環境の構築 フォロー

● 事前課題の devstack を

使った環境構築が

上手く行かなかった人向け

● この環境が手元に無いと、

話についていくのが

厳しくなります(リアル話)

Page 7: JOSUG 9th Study

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

Page 8: JOSUG 9th Study

8

基本操作

● OpenStack の操作● Web インターフェース● コマンドライン

● ログイン、キーペア作成● インスタンス作成● ボリューム作成● ネットワーク作成● テナント、ユーザ作成

Page 9: JOSUG 9th Study

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

Page 10: JOSUG 9th Study

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

Page 11: JOSUG 9th Study

11

コンポーネントの基本構造

Adminor

UsersHorizon Client

Library(python)

ClientCommand

OpenStackComponent

OtherProgram

APIServer

DB

AMQP OpenStackComponent

ExternalSoftwarehttps://launchpad.net/openstack

Page 12: JOSUG 9th Study

12

quantum

● Folsom から正式コンポーネントとなったネットワークマネージャ● テナントのアイソレーション● インスタンス間の接続● ルーティング● DHCP● Floting IP

– 外部からインスタンスへアクセスさせるための IP

Page 13: JOSUG 9th Study

13

構成例

http://docs.openstack.org/trunk/openstack-network/admin/content/app_demo.html

Page 14: JOSUG 9th Study

14

プラグイン構造

● Quantum はプラグイン構造で、様々なネットワークを制御可能● OVS  ← devstack だとコレが使われる● Nicira● NEC● Bigswitch● Cisco● Ryu

– 等々

Page 15: JOSUG 9th Study

15

Quantum で作れるネットワーク

ext_net

Router

net1 net2

VM VM VM VM

Router

net1 net2VM VM

Router

net3 net4VM VM

br-ext

ethX

Page 16: JOSUG 9th Study

16

使われている技術

● OVS プラグインの場合● OVS + GRE● Network Name Space● iptables● dnsmasq● route● linux bridge● veth● tap

Page 17: JOSUG 9th Study

17

やってみよう

● ネットワークの作成● サブネットの作成● ルーターの作成● ルーターとネットワークの関連付け● Floaitng IP の割り当て

Page 18: JOSUG 9th Study

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

Page 19: JOSUG 9th Study

19

nova

● 仮想マシンを作成し管理する● スケジューラー● ハイパーバイザー管理● セキュリティグループ管理● キーペア管理● ゾーンの管理● メタデータ提供● コンソールプロキシ● ボリューム管理 → Cinder へ移管( folsom )● ネットワーク管理 → Quantum へ移管( folsom )

Page 20: JOSUG 9th Study

20

nova の構造

Page 21: JOSUG 9th Study

21

スケジューラー

● キューからリクエストを取得して、仮想マシンの配置先を決定する。● API 経由でリクエストメッセージをキューへ● キュー経由でスケジューラーがメッセージを受け取る● スケジューラーが配置先のホストを決定● キューへメッセージを送信● 配置先のホストが受け取る

– 細かく話すと長いので、こちらを参照● nova-scheduler(1)● http://www.slideshare.net/h-saito/osc2012kansaikyoto-

josug

Page 22: JOSUG 9th Study

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)

Page 23: JOSUG 9th Study

23

ゾーン (availability zone)

● 複数の nova ホストを論理的に区切る事ができる。● ラック単位● 接続スイッチ単位● 接続電源系統単位● DC 単位

– 等々の対障害性の単位で区切る。– インスタンス作成時にオプションで指定できる。

● nova.conf– node_availability_zone で設定– default_schedule_zone でデフォルトゾーンを指定

Page 24: JOSUG 9th Study

24

セキュリティグループ&キーペア

● セキュリティグループ● 仮想マシンへの FW 機能

– Iptables を駆使して実現

● キーペア管理● SSH キーの作成と管理● 仮想マシンへのねじ込み

– コンピュートノード上でイメージをループバックマウントしてねじ込む。

Page 25: JOSUG 9th Study

25

メタデータサーバ

● インスタンスに対して任意の情報を提供する● Quantum 上ではまだテストサポート。

– metadata 機能を使いたい場合は nova-network を使う。

● 仮想マシンでは知り得ない情報を入手するための機能● 169.254.169.254 で待受け。

– iptables で DNAT されている。

Page 26: JOSUG 9th Study

26

コンソールプロキシ

● 仮想マシンのコンソールへ接続するためのプロキシ(そのまんま)● ブラウザ → noVNC → nova-xvpvncproxy → VM

– VM とブラウザを使うクライアントと通信できる必要は無い。

● horizon からアクセスしてみるべし● 詳細は省略