Summit
Developers
Developers Summit 2013 Summer
OpenStack on OpenStack
with CI
金渕金渕金渕金渕 満満満満
NTTソフトウェア株式会社
技術開発センター OSS技術部...
Summit
Developers
Developers Summit 2013 Summer
自己紹介
【氏名】
金渕 満 (かなぶち みつる)
【所属】
NTTソフトウェア株式会社
技術開発センター OSS技術部門 クラウド推進室
【担当業...
Summit
Developers
Developers Summit 2013 Summer
本日伝えたいこと
テスト基盤にOpenStackを使いましょう!!テスト基盤にOpenStackを使いましょう!!
【アジェンダ】
• 1. 私たち...
Summit
Developers
Developers Summit 2013 Summer
OpenStackをご存知ですか?
クラウドを構築するオープンソースソフトウェア
• コミュニティ側でもCIやIntegrationTestを活用し...
Summit
Developers
Developers Summit 2013 Summer
1. 私達のプロジェクト
Summit
Developers
Developers Summit 2013 Summer
私達のプロジェクトの開発サイクル
各チーム環境各チーム環境
UT環境UT環境CI環境
コミュニティに倣いつつ独自の味付けを実施
×チーム数分
×1~...
Summit
Developers
Developers Summit 2013 Summer
“1テスト環境”の内容
Tempest ServerTempest ServerCloud ControllerCloud Controller
N...
Summit
Developers
Developers Summit 2013 Summer
ノード数の爆発
各チーム環境各チーム環境
UT環境UT環境CI環境
CIサイクルを回すために必要なノード数が爆発
×8環境
×1環境×1環境
72 ...
Summit
Developers
Developers Summit 2013 Summer
2. OpenStack on OpenStack
Summit
Developers
Developers Summit 2013 Summer
アプローチ:OpenStack on OpenStack
OpenStack上でOpenStackのテストを実施し物理ノード数を削減
BareMet...
Summit
Developers
Developers Summit 2013 Summer
9 VMs
得られたメリット1:物理ノード削減
物理ノード数の数量を約1/3に削減
9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 ...
Summit
Developers
Developers Summit 2013 Summer
得られたメリット2:環境の復元
バグやテストモジュールでテスト環境が破損した場合でも、
9 VMs
OpenStack
Essex
OpenStac...
Summit
Developers
Developers Summit 2013 Summer
得られたメリット3:構成の変更
環境構成の変更を行いたい場合でも、
9 VMs
OpenStack
Essex
OpenStack
Essex
Fo...
Summit
Developers
Developers Summit 2013 Summer
得られたメリット4:環境の更新
各環境の更新をしたい場合は、
9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9...
Summit
Developers
Developers Summit 2013 Summer
得られたメリット4:環境の更新
各環境の更新をしたい場合は、
OpenStack EssexOpenStack Essex
UTUT
CI チーム1...
Summit
Developers
Developers Summit 2013 Summer
得られたメリット4:環境の更新
各環境の更新をしたい場合は、
OpenStack EssexOpenStack Essex
UTUT
CI チーム1...
Summit
Developers
Developers Summit 2013 Summer
3. まとめ
Summit
Developers
Developers Summit 2013 Summer
まとめの前に、支えている基礎技術
OpenStack on OpenStackは以下の基礎技術に支えられています
• VMネスト方式 ⇨ KVM o...
Summit
Developers
Developers Summit 2013 Summer
まとめ
• 一昔前、OpenStackのセットアップはやや敷居の高い作業だった
⇨現在はdevstack(http://devstack.org)で...
Summit
Developers
Developers Summit 2013 Summer
ご清聴ありがとうございました
Summit
Developers
Developers Summit 2013 Summer
おまけ1:OS on OSの構成技術
Summit
Developers
Developers Summit 2013 Summer
2つのXonX
VM及びネットワークのネスト方式が重要
• VMのネスト方式
⇨ KVM on KVM(Nested KVM)
• ネットワークのネ...
Summit
Developers
Developers Summit 2013 Summer
KVM on KVM
一応二つの選択肢があるがKVM on KVMを使わない理由はない
OSOS
OSOS
KVMKVM
KVMKVM
Guest ...
Summit
Developers
Developers Summit 2013 Summer
VLAN on VLAN
OpenStackは「テナント」単位に仮想NWを分離する
VMVM VMVM
VMVM VMVM
Hypervisor #...
Summit
Developers
Developers Summit 2013 Summer
VLAN on VLAN
VLAN on VLAN構成を選択
VMVM VMVM
VMVM VMVM
Hypervisor #1 Hyperviso...
Summit
Developers
Developers Summit 2013 Summer
おまけ2:トラブル集
Summit
Developers
Developers Summit 2013 Summer
特定Hypervisorに通信できない!
特定のHypervisorに通信できない事象が発生
VMVM
Hypervisor #1
VM
VM
VM...
Summit
Developers
Developers Summit 2013 Summer
特定Hypervisorに通信できない!
18:54:44.656627 fa:16:3e:53:a3:44 > ff:ff:ff:ff:ff:ff...
Summit
Developers
Developers Summit 2013 Summer
特定UDP通信ができない!
特定のUDP通信ができない事象が発生
VMVM VMVM
Hypervisor #1 Hypervisor #2
テナン...
Summit
Developers
Developers Summit 2013 Summer
特定UDP通信ができない!
宛先MAC 送信元MAC Type Data FCS
宛先MAC 送信元MAC Type Data FCSTag
宛先M...
Summit
Developers
Developers Summit 2013 Summer
商標及び登録商標について
• OpenStack及びOpenStackロゴはOpenStack Foundationの登録商標または商標
です
Upcoming SlideShare
Loading in...5
×

OpenStack on OpenStack with CI

2,529

Published on

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,529
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

OpenStack on OpenStack with CI

  1. 1. Summit Developers Developers Summit 2013 Summer OpenStack on OpenStack with CI 金渕金渕金渕金渕 満満満満 NTTソフトウェア株式会社 技術開発センター OSS技術部門 クラウド推進室#natsumiB2
  2. 2. Summit Developers Developers Summit 2013 Summer 自己紹介 【氏名】 金渕 満 (かなぶち みつる) 【所属】 NTTソフトウェア株式会社 技術開発センター OSS技術部門 クラウド推進室 【担当業務】 OpenStackをテスト/高品質化するプロジェクトに所属 OpenStackに関する調査及び、トラブルシュートなどを実施 【活動領域】 元々はWeb系エンジニア、システム連携エンジニアを経て、3年ほど前 からOS・仮想化・ネットワーク等のプラットフォーム技術にどっぷり。
  3. 3. Summit Developers Developers Summit 2013 Summer 本日伝えたいこと テスト基盤にOpenStackを使いましょう!!テスト基盤にOpenStackを使いましょう!! 【アジェンダ】 • 1. 私たちのプロジェクト • 2. OpenStack on OpenStack • 3. まとめ
  4. 4. Summit Developers Developers Summit 2013 Summer OpenStackをご存知ですか? クラウドを構築するオープンソースソフトウェア • コミュニティ側でもCIやIntegrationTestを活用したGatingに強く取り組んでおり、 コードの品質維持に努めている • 私たちのプロジェクトでは、更に使用するコンポーネント及びAPIに対してのテス ト及びバグ改修を実施 引用元: http://www.openstack.org/software引用元: http://www.openstack.org/software
  5. 5. Summit Developers Developers Summit 2013 Summer 1. 私達のプロジェクト
  6. 6. Summit Developers Developers Summit 2013 Summer 私達のプロジェクトの開発サイクル 各チーム環境各チーム環境 UT環境UT環境CI環境 コミュニティに倣いつつ独自の味付けを実施 ×チーム数分 ×1~2環境×1~2環境 改修部分局所的な 部分的IntegrationTest レグレッションテストの役 割を含んだ 全体IntegrationTest 受け入れ側確認のための UnitTest
  7. 7. Summit Developers Developers Summit 2013 Summer “1テスト環境”の内容 Tempest ServerTempest ServerCloud ControllerCloud Controller Network GatewayNetwork Gateway Check ServerCheck Server Storage NodeStorage Node HypervisorHypervisor HypervisorHypervisor バックエンド系ノード 実行系ノード テストノード Check ServerCheck Server API ProviderAPI Provider 各チーム内のIntegrationTestもマルチノード構成で実施 • CI環境で実施するIntegrationTest(Full)は長時間(半日~一日)を要し、この地点 でバグが頻出すると、開発サイクルが停滞する ⇨IntegrationTest(Partial)を各チーム環境/マルチノード構成で実施し、 早期に構成問題も含めて不具合を刈り取り
  8. 8. Summit Developers Developers Summit 2013 Summer ノード数の爆発 各チーム環境各チーム環境 UT環境UT環境CI環境 CIサイクルを回すために必要なノード数が爆発 ×8環境 ×1環境×1環境 72 ノード 9 ノード 1 ノード 82 ノード!! 各各各各チームチームチームチーム環境環境環境環境のののの ノードノードノードノードをををを減減減減らすらすらすらす???? 各各各各チームチームチームチーム環境環境環境環境のののの ノードノードノードノードをををを減減減減らすらすらすらす???? 環境数環境数環境数環境数をををを 減減減減らすらすらすらす???? 環境数環境数環境数環境数をををを 減減減減らすらすらすらす???? ⇨⇨⇨⇨CIサイクルサイクルサイクルサイクルのののの停滞停滞停滞停滞 ⇨⇨⇨⇨環境待環境待環境待環境待ちのちのちのちの発生発生発生発生
  9. 9. Summit Developers Developers Summit 2013 Summer 2. OpenStack on OpenStack
  10. 10. Summit Developers Developers Summit 2013 Summer アプローチ:OpenStack on OpenStack OpenStack上でOpenStackのテストを実施し物理ノード数を削減 BareMetal Servers チーム1環境チーム1環境 CI 環境UT環境UT環境 ・・・ テスト基盤テスト基盤 テスト対象テスト対象 OpenStack EssexOpenStack Essex OpenStack Folsom OpenStack Folsom OpenStack Folsom OpenStack Folsom OpenStack Folsom OpenStack Folsom OpenStack Folsom OpenStack Folsom GuestGuest GuestGuest GuestGuest GuestGuest GuestGuest GuestGuest GuestGuest GuestGuest チーム2環境チーム2環境
  11. 11. Summit Developers Developers Summit 2013 Summer 9 VMs 得られたメリット1:物理ノード削減 物理ノード数の数量を約1/3に削減 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs OpenStack EssexOpenStack Essex 30 nodes Bare Metal Servers FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom UTUT CI チーム1チーム1 チーム2チーム2 チーム3チーム3 チーム4チーム4 チーム5チーム5 チーム6チーム6 チーム7チーム7 チーム8チーム8UTUT 82物理ノードが必要なところを30物理ノード(82VM)で実現
  12. 12. Summit Developers Developers Summit 2013 Summer 得られたメリット2:環境の復元 バグやテストモジュールでテスト環境が破損した場合でも、 9 VMs OpenStack Essex OpenStack Essex FolsomFolsom チーム1チーム1 テスト実行テスト実行 環境破損環境破損 OpenStack Essex OpenStack Essex チーム1チーム1 9 VMs OpenStack Essex OpenStack Essex FolsomFolsom チーム1チーム1 テスト基盤管理者テスト基盤管理者 環境削除環境削除 テスト基盤管理者テスト基盤管理者 環境再配置環境再配置 イメージ管理イメージ管理 再実行再実行 テスト基盤側イメージ管理により、容易/迅速な復元が可能
  13. 13. Summit Developers Developers Summit 2013 Summer 得られたメリット3:構成の変更 環境構成の変更を行いたい場合でも、 9 VMs OpenStack Essex OpenStack Essex FolsomFolsom チーム1チーム1 SE作業を最小限に留めつつ、テスト基盤操作で構成変更が可能 9 VMs OpenStack Essex OpenStack Essex FolsomFolsom テスト基盤管理者テスト基盤管理者 環境追加環境追加 環境再構成環境再構成環境再構成環境再構成 チーム1チーム1 OpenStack Essex OpenStack Essex FolsomFolsom 11 VMs チーム1チーム1
  14. 14. Summit Developers Developers Summit 2013 Summer 得られたメリット4:環境の更新 各環境の更新をしたい場合は、 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs OpenStack EssexOpenStack Essex FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom UTUT CI チーム1チーム1 チーム2チーム2 チーム3チーム3 チーム4チーム4 チーム5チーム5 チーム6チーム6 チーム7チーム7 チーム8チーム8UTUT イメージ管理 (Glance) イメージ管理 (Glance) ハイパーバイザ管理 (nova) ハイパーバイザ管理 (nova) テスト基盤管理者テスト基盤管理者 最新イメージアップロード最新イメージアップロード
  15. 15. Summit Developers Developers Summit 2013 Summer 得られたメリット4:環境の更新 各環境の更新をしたい場合は、 OpenStack EssexOpenStack Essex UTUT CI チーム1チーム1 チーム2チーム2 チーム3チーム3 チーム4チーム4 チーム5チーム5 チーム6チーム6 チーム7チーム7 チーム8チーム8UTUT イメージ管理 (Glance) イメージ管理 (Glance) ハイパーバイザ管理 (nova) ハイパーバイザ管理 (nova) テスト基盤管理者テスト基盤管理者 環境一括削除環境一括削除 削除削除削除削除 削除削除削除削除 削除削除削除削除 削除削除削除削除 削除削除削除削除 削除削除削除削除 削除削除削除削除 削除削除削除削除 削除削除削除削除
  16. 16. Summit Developers Developers Summit 2013 Summer 得られたメリット4:環境の更新 各環境の更新をしたい場合は、 OpenStack EssexOpenStack Essex UTUT CI チーム1チーム1 チーム2チーム2 チーム3チーム3 チーム4チーム4 チーム5チーム5 チーム6チーム6 チーム7チーム7 チーム8チーム8UTUT イメージ管理 (Glance) イメージ管理 (Glance) ハイパーバイザ管理 (nova) ハイパーバイザ管理 (nova) 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs 9 VMs FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom FolsomFolsom テスト基盤管理者テスト基盤管理者 環境一括生成環境一括生成 生成生成生成生成 生成生成生成生成 生成生成生成生成 生成生成生成生成 生成生成生成生成 生成生成生成生成 生成生成生成生成 生成生成生成生成 生成生成生成生成 イメージを更新の上、一括展開することで同一作業繰返しを排除 イメージ取得イメージ取得
  17. 17. Summit Developers Developers Summit 2013 Summer 3. まとめ
  18. 18. Summit Developers Developers Summit 2013 Summer まとめの前に、支えている基礎技術 OpenStack on OpenStackは以下の基礎技術に支えられています • VMネスト方式 ⇨ KVM on KVM • NWネスト方式 ⇨ VLAN on VLAN (≠Q-in-Q) ⇨上記についての詳細は本発表には収まりきりませんでした!! 【その他補足】 • IaaS上で全てのテストを実施しているわけではなく、性能系、障害系、運用系テ ストについては、本テストの後にベアメタル環境で実施を行なっています • OpenStackコミュニティ側でも "TripleO" というプロジェクトにて、OpenStack on OpenStackの取り組みが行われています(本内容はTripleOとは関連ありませ ん) slideshareにはアップしますので、ご参照ください!slideshareにはアップしますので、ご参照ください!
  19. 19. Summit Developers Developers Summit 2013 Summer まとめ • 一昔前、OpenStackのセットアップはやや敷居の高い作業だった ⇨現在はdevstack(http://devstack.org)で最低限環境なら簡単に セットアップ可能 ドキュメントも充実、運用で主に使うコマンドマニュアルも以下にあります http://docs.openstack.org/ops/ • 更にオーケストレーションエンジンが搭載され、1つの環境をテンプレートで生成 できるように OpenStackをテスト基盤に用いるメリットは計り知れない、さらに $ git clone https://github.com/openstack-dev/devstack.git $ cd devstack/ $ git checkout origin/stable/grizzly $ ./stack.sh テスト基盤にOpenStackを使う準備は整っている!!テスト基盤にOpenStackを使う準備は整っている!!
  20. 20. Summit Developers Developers Summit 2013 Summer ご清聴ありがとうございました
  21. 21. Summit Developers Developers Summit 2013 Summer おまけ1:OS on OSの構成技術
  22. 22. Summit Developers Developers Summit 2013 Summer 2つのXonX VM及びネットワークのネスト方式が重要 • VMのネスト方式 ⇨ KVM on KVM(Nested KVM) • ネットワークのネスト方式 ⇨ VLAN on VLAN(≠Q-in-Q)
  23. 23. Summit Developers Developers Summit 2013 Summer KVM on KVM 一応二つの選択肢があるがKVM on KVMを使わない理由はない OSOS OSOS KVMKVM KVMKVM Guest OSGuest OS OpenStack EssexOpenStack Essex OpenStack FolsomOpenStack Folsom • KVM on KVM • QEMU on KVM OSOS OSOS KVMKVM QEMUQEMU Guest OSGuest OS OpenStack EssexOpenStack Essex OpenStack FolsomOpenStack Folsom • Guest OSの速度差は歴然(というよりは、QEMU on KVMの場合、Guest OSインス トールテストなど重めのテストは実行不可)
  24. 24. Summit Developers Developers Summit 2013 Summer VLAN on VLAN OpenStackは「テナント」単位に仮想NWを分離する VMVM VMVM VMVM VMVM Hypervisor #1 Hypervisor #2 テナントA テナントB • テナント単位に仮想NWを分離する方式には幾つか選択肢があります。 • 最もシンプルな方式はタグVLANを使う方法です。 • VLAN ID数の制限(1~4094)がありますが、ID数が不足しない場合、最も構築が 簡単な仮想NW環境となります。
  25. 25. Summit Developers Developers Summit 2013 Summer VLAN on VLAN VLAN on VLAN構成を選択 VMVM VMVM VMVM VMVM Hypervisor #1 Hypervisor #2 テナントA テナントB • テスト対象側のVLANは必要機能と定義されていたため必要確定 • テスト基盤側はnova-networkとVLAN構成を選択 VM VM VM VM テナントα テナントβ
  26. 26. Summit Developers Developers Summit 2013 Summer おまけ2:トラブル集
  27. 27. Summit Developers Developers Summit 2013 Summer 特定Hypervisorに通信できない! 特定のHypervisorに通信できない事象が発生 VMVM Hypervisor #1 VM VM VMVM Hypervisor #2 VM VM VMVM Hypervisor #3 VM VM テナントA テナントα テナントβ VMVM VMVM VM VM テナントB テナントγ テナントε VM VM
  28. 28. Summit Developers Developers Summit 2013 Summer 特定Hypervisorに通信できない! 18:54:44.656627 fa:16:3e:53:a3:44 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 50, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype ARP, Request who-has .... 4:44.656916 fa:16:3e:6c:51:a6 > fa:16:3e:53:a3:44, ethertype 802.1Q (0x8100), length 50: vlan 50, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype ARP, Reply .... 18:57:44.537006 fa:16:3e:3a:5e:a6 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 20, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype ARP, Request who-has .... 18:57:44.537449 fa:16:3e:39:3f:d5 > fa:16:3e:3a:5e:a6, ethertype 802.1Q (0x8100), length 46: vlan 20, p 0, ethertype ARP, Reply .... 正常に通信できている場合のパケット 通信できていない場合のパケット ethertype 802.1Q (0x8100), length 50: vlan 50, p 0, ethertype 802.1Q, vlan 100 ethertype 802.1Q (0x8100), length 46: vlan 20 tcpdumpでの解析⇨NICドライバ依存 • 特定のハードウェア(厳密には特定のハードウェアのNICドライバ)はVLAN on VLANで付 与される二重タグの一つを捨ててしまうことが判明 ⇨Hypervisorにパケットが到達した時点で捨てられているため、アプリ側 で対処の仕様がない • 二重タグに対応しているハードウェア/していないハードウェアを分類し、非対応ハード ウェア上でネットワーク処理が必要なコンポーネントを立ち上げないよう、テスト基盤側で コントロールし解決
  29. 29. Summit Developers Developers Summit 2013 Summer 特定UDP通信ができない! 特定のUDP通信ができない事象が発生 VMVM VMVM Hypervisor #1 Hypervisor #2 テナントA VM テナントα VM • 同じUDP通信だが、DHCPの通信は確実に成功し、netperfからのUDP負荷通信 は必ず失敗する(1パケットも届かない) • Hypervisor間及びVM間でのフィルタリングはしていない DHCP netperf
  30. 30. Summit Developers Developers Summit 2013 Summer 特定UDP通信ができない! 宛先MAC 送信元MAC Type Data FCS 宛先MAC 送信元MAC Type Data FCSTag 宛先MAC 送信元MAC Type Data FCSTag Tag 通常のイーサネットフレーム タグVLANのイーサネットフレーム 二重タグVLANのイーサネットフレーム(VLAN on VLAN) ifconfigに不審な形跡⇨イーサネットフレーム超過 RX packets:36490322 errors:108060 dropped:2322613 overruns:0 frame:108060 TX packets:24722828 errors:0 dropped:0 overruns:0 carrier:0 dropped:2322613 overruns:0 frame:108060 MAX 1518 bytes MAX 1522 bytes MAX 1526 bytes • 二重タグにより、イーサネットフレームの最大値を超え、不正パケットとして破棄 されていることが判明 • netperfのUDPデータサイズを1468bytesとし、イーサネットフレームを1522bytesに収める ことで疎通
  31. 31. Summit Developers Developers Summit 2013 Summer 商標及び登録商標について • OpenStack及びOpenStackロゴはOpenStack Foundationの登録商標または商標 です

×