Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新情報セミナー 2014年12月

7,609 views

Published on

サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所
講師:長谷川 誠様、田上 亮様(株式会社サイバーエージェント アドテク本部)

既にバズワードとしては一定の地位を確立した感のあるOpenStackですが、一方で何となく導入を敬遠されている方も少なくないかと思います。

本セッションでは、自社でのOpenStackの導入に際してどのような設計をし、どのような運用を行っているかを皆様に共有させて戴きます。具体的には、

- クラウド全体の設計
- 各コンポーネントの冗長化
- 自動化(CI/CD)
といった点を中心にお話をさせて戴きます。

OpenStackの導入を敬遠されている方に、具体的なOpenStackの導入事例を共有させて戴く事により、Stackerとして初めての一歩を踏み出すための一助となれば幸いです。

Published in: Technology
  • Be the first to comment

サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新情報セミナー 2014年12月

  1. 1. OpenStack Fast Track 1 若葉マークStackerのStacker教習所
  2. 2. “... OpenStackを活用することは容易ではなく ...” http://news.mynavi.jp/news/2014/10/29/114/ 2
  3. 3. “... OpenStackのセットアップと日常の運用が、 当初の難しさを引きずっている ...” http://jp.techcrunch.com/2014/11/04/20141103a-maturing-openstack- prepares-to-take-on-new-challenges/ 3
  4. 4. 4 ほんと?
  5. 5. 自己紹介 名前 田上 亮 (たがみ りょう) 所属 株式会社サイバーエージェント アドテク本部 Stacker歴 半年くらい 5
  6. 6. 本日のアジェンダ 6
  7. 7. こんなStackを作りました スペック 設計 冗長化 構築と運用 構築の自動化 運用の自動化 7
  8. 8. こんなStackを作りました 8
  9. 9. スペック 設計 冗長化 9
  10. 10. スペック 10
  11. 11. Computeノード数: 51台 用途: 本番サービス用 構築期間: 1.5人で1ヶ月 11
  12. 12. ノードのスペック CPU Xeon E5-2470 v2 (2.4GHz, 10C/20T) * 2 Memory 16GB * 10 Disk 480GiB SSD * 4 (RAID5) NIC Intel X540 10Gbps DP * 1 12
  13. 13. クラウドのスペック 13 1台51台 CPU 20C/40T 1020C/2040T メモリ160GB 8TB ディスク1440GiB 73TiB
  14. 14. 設計 14
  15. 15. 公式Docs++ 公式Docsの “Install OpenStack”に 従って作れば(一応)動く 公式に近い形にすると 楽に早く動かせる 15
  16. 16. 公式Docsからの変更点 コントロールプレーンを冗長化する データプレーンを冗長化しない(で済むようにする) 16
  17. 17. 使用したコンポーネント 17 認証Keystone イメージストアGlance コンピュートNova ネットワークNeutron オブジェクトストアSwift WebポチHorizon
  18. 18. 必要なモノ サーバ (たくさん) 冗長化されたL2スイッチ 冗長化されたL3スイッチ 冗長化された箱物LB 18
  19. 19. 必要な周辺機能 ベアメタルプロビジョニング パッケージレポジトリ DNS (正引き/逆引き) syslog 19
  20. 20. アンダークラウド クラウドを動かすためのクラウド (鶏と卵) OpenStackのコントロールプレーン 周辺サービス 要件 統合管理 共有ストレージ無しでライブマイグレーション 20
  21. 21. 全体のイメージ 21 mysqld rabbitmq-server keystone-all UnderCloud コントロールプレーンデータプレーン glance-api glance-registry nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler nova-xvpvncproxy neutron-server swift-proxy-server dnsmasq (neutron-dhcp-agent) KVM (nova-compute) Open vSwitch (neutron-openvswitch- agent) swift-object-server swift-object-server swift-account-server swift-container-server
  22. 22. コンピュート オーバーコミットしない cpu_allocation_ratio = 1.0 disk_allocation_ratio = 1.0 ram_allocation_ratio = 1.0 reserved_host_disk_mb = 10240 reserved_host_memory_mb = 2048 22
  23. 23. フレーバー 23 CPU(vCPU) メモリ(GB) ディスク(GB) tiny 1 3.5 32 small 2 7 64 medium 4 14 128 large 8 28 256 xlarge 10 35 320 xxlarge 12 42 384
  24. 24. ネットワーク Neutronの標準機能のみ Neutron L3 Agentを使わない VLAN Type Driverを使う テナントにProvider Networkを直接割り付け Neutron Metadata Agentが使えない 自前で169.254.169.254を転送 24
  25. 25. ネットワーク $ sudo cat ml2_conf.ini | grep -v -e '^#' -e '^$' [ml2] type_drivers = vlan tenant_network_types = vlan mechanism_drivers = openvswitch [ml2_type_flat] [ml2_type_vlan] network_vlan_ranges = physnet1:1:4094 [ml2_type_gre] [ml2_type_vxlan] [securitygroup] enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriv er [ovs] bridge_mappings = physnet1:br-physnet1 25
  26. 26. ネットワーク $ neutron net-create net-v123 --provider:network_type vlan --provider:physical_network physnet1 --provider:segmentation_id 123 --tenant-id $TID $ neutron subnet-create net-v123 "192.0.2.0/24" --name subnet-v123 --gateway "192.0.2.1" --allocation-pool "start=192.0.2.11,end=192.0.2.199" --dns-nameserver "8.8.8.8" --tenant-id $TID 26
  27. 27. ストレージ ブロックストレージはインスタンスストアのみ インスタンスストアはRAID5で保護 Glanceの冗長化の為にSwiftが必要 27
  28. 28. 冗長化 28
  29. 29. MariaDB Galera Cluster 29 MariaDB Galera Cluster #1 MariaDB Galera Cluster #2 MariaDB Galera Cluster #3 VIP
  30. 30. RabbitMQ 30 RabbitMQ #1 RabbitMQ #2 RabbitMQ #3
  31. 31. OpenStack コンポーネント 31 DB VIP Rabbit MQ Cluster とある コンポーネント #1 とある コンポーネント #2
  32. 32. glance-api ☓: default_store=file ○: default_store=swift 32
  33. 33. nova-consoleauth memcached_servers=192.0.2.1:11211,192.0.2.2:11211 33
  34. 34. neutron-dhcp-agent neutron-dhcp-agentが起動している物理マシン * 3 dhcp_agents_per_network = 3 34
  35. 35. 構築と運用 35
  36. 36. 構築 36
  37. 37. 構築方法 37 ☓ 手てど動う努力 △ OpenStack インストーラ PackStack JuJu FUEL … ◎ 汎用ツール Puppet Chef Ansible …
  38. 38. 構成管理 SCMにコミット 複数環境に対応 冪等 完全自動化 38
  39. 39. 開発・検証環境 39 https://www.flickr.com/photos/ejpphoto/2314610838 https://www.flickr.com/photos/eulenfan/9471676777
  40. 40. 運用 40
  41. 41. オーケストレーション Jenkins ビルドトリガ screen/tmux代わり ロギング ワークフロー(MultiJob Plugin) 通知 41
  42. 42. ワークフロー 42 再インストール ansible-playbook 初期設定 テスト git commit ansible-playbook git push
  43. 43. ワークフロー 43 git push … upstream/master ansible-playbook
  44. 44. まとめ 44
  45. 45. こんなStackを作りました スペック 設計 冗長化 構築と運用 構築の自動化 運用の自動化 45

×