JOSUG 9th Study

1,665 views

Published on

Published in: Technology

JOSUG 9th Study

  1. 1. 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. 2. はじめに● 会場提供、及び、デモ環境用の VPS をお貸し出し頂いた、 KDDI ウェブコミュニケーションズ様に 御礼申し上げます。 2
  3. 3. 自己紹介● 日本 OpenStack ユーザ会 ● 会長● クラウド利用促進機構 ● 技術アドバイザー● @irix_jp 3
  4. 4. 今回の勉強会の趣旨● Folsom リリース ● これで大体一通りの機能が揃った ● しかし OpenStack の勢いは 衰える気配を見せず、 さらなる進化が期待できる。● ここらでちゃんと OpenStack の構造を理解し、 次の進化に備えよう、という企画 By @habuka036 & @enakai00 4
  5. 5. 大枠の流れ● とりあえず動かしてみる● 構造を理解する● 裏側を見てみる By @habuka036 & @enakai00 5
  6. 6. デモ環境の構築 フォロー● 事前課題の devstack を 使った環境構築が 上手く行かなかった人向け● この環境が手元に無いと、 話についていくのが 厳しくなります(リアル話) 6
  7. 7. デモ環境(講師用) glance quantum q-agt rabbitmq nova n-cpu mysql keystone c-vol Internetq-agt q-agt q-agt q-agtn-cpu n-cpu n-cpu n-cpuc-vol c-vol c-vol c-vol 7
  8. 8. 基本操作● OpenStack の操作 ● Web インターフェース ● コマンドライン ● ログイン、キーペア作成 ● インスタンス作成 ● ボリューム作成 ● ネットワーク作成 ● テナント、ユーザ作成 8
  9. 9. 基本操作 glance quantum q-agt rabbitmq nova n-cpu mysql keystone c-vol VM Internetq-agt q-agt q-agt q-agtn-cpu n-cpu n-cpu n-cpuc-vol c-vol c-vol c-vol VM 9
  10. 10. コンポーネントの基本構造 keystone horizon quantum-l3Local file, glance nova-api quantum-serverSwift, S3 quantum-dhcp cinder nova-compute quantum-agent DB LVM, NetApp, Kvm, Xen OVS, Nicira Nexenta HyperV,ESXi NEC AMQP 10
  11. 11. コンポーネントの基本構造 Client Command DBAdmin orUsers Horizon Client Library (python) API AMQP OpenStack Server Component OpenStack Component Other Program Externalhttps://launchpad.net/openstack Software 11
  12. 12. quantum● Folsom から正式コンポーネントとなったネットワー クマネージャ ● テナントのアイソレーション ● インスタンス間の接続 ● ルーティング ● DHCP ● Floting IP – 外部からインスタンスへアクセスさせるための IP 12
  13. 13. 構成例http://docs.openstack.org/trunk/openstack-network/admin/content/app_demo.html 13
  14. 14. プラグイン構造● Quantum はプラグイン構造で、様々なネットワーク を制御可能 ● OVS  ← devstack だとコレが使われる ● Nicira ● NEC ● Bigswitch ● Cisco ● Ryu – 等々 14
  15. 15. Quantum で作れるネットワーク ethX br-ext ext_net Router Router net1 VM net2 VM Router net1 net2VM VM VM VM net3 VM net4 VM 15
  16. 16. 使われている技術● OVS プラグインの場合 ● OVS + GRE ● Network Name Space ● iptables ● dnsmasq ● route ● linux bridge ● veth ● tap 16
  17. 17. やってみよう● ネットワークの作成● サブネットの作成● ルーターの作成● ルーターとネットワークの関連付け● Floaitng IP の割り当て 17
  18. 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 使用数 インタフェース Tap0.0.0.010.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 vnet0172.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. 19. nova● 仮想マシンを作成し管理する ● スケジューラー ● ハイパーバイザー管理 ● セキュリティグループ管理 ● キーペア管理 ● ゾーンの管理 ● メタデータ提供 ● コンソールプロキシ ● ボリューム管理 → Cinder へ移管( folsom ) ● ネットワーク管理 → Quantum へ移管( folsom ) 19
  20. 20. nova の構造 20
  21. 21. スケジューラー● キューからリクエストを取得して、仮想マシンの配置 先を決定する。 ● API 経由でリクエストメッセージをキューへ ● キュー経由でスケジューラーがメッセージを受け取る ● スケジューラーが配置先のホストを決定 ● キューへメッセージを送信 ● 配置先のホストが受け取る – 細かく話すと長いので、こちらを参照 ● nova-scheduler(1) ● http://www.slideshare.net/h-saito/osc2012kansaikyoto- josug 21
  22. 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. 23. ゾーン (availability zone)● 複数の nova ホストを論理的に区切る事ができる。 ● ラック単位 ● 接続スイッチ単位 ● 接続電源系統単位 ● DC 単位 – 等々の対障害性の単位で区切る。 – インスタンス作成時にオプションで指定できる。 ● nova.conf – node_availability_zone で設定 – default_schedule_zone でデフォルトゾーンを指定 23
  24. 24. セキュリティグループ&キーペア● セキュリティグループ ● 仮想マシンへの FW 機能 – Iptables を駆使して実現● キーペア管理 ● SSH キーの作成と管理 ● 仮想マシンへのねじ込み – コンピュートノード上でイメージをループバックマウントしてね じ込む。 24
  25. 25. メタデータサーバ● インスタンスに対して任意の情報を提供する ● Quantum 上ではまだテストサポート。 – metadata 機能を使いたい場合は nova-network を使う。 ● 仮想マシンでは知り得ない情報を入手するための機能 ● 169.254.169.254 で待受け。 – iptables で DNAT されている。 25
  26. 26. コンソールプロキシ● 仮想マシンのコンソールへ接続するためのプロキシ (そのまんま) ● ブラウザ → noVNC → nova-xvpvncproxy → VM – VM とブラウザを使うクライアントと通信できる必要は無い。 ● horizon からアクセスしてみるべし ● 詳細は省略 26

×