サイバーエージェント様 導入事例:openstack fast track –...

45
OpenStack Fast Track 1 若葉マークStackerのStacker教習所

Upload: virtualtech-japan-inc

Post on 04-Jul-2015

4.214 views

Category:

Technology


3 download

DESCRIPTION

サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 講師:長谷川 誠様、田上 亮様(株式会社サイバーエージェント アドテク本部) 既にバズワードとしては一定の地位を確立した感のあるOpenStackですが、一方で何となく導入を敬遠されている方も少なくないかと思います。 本セッションでは、自社でのOpenStackの導入に際してどのような設計をし、どのような運用を行っているかを皆様に共有させて戴きます。具体的には、 - クラウド全体の設計 - 各コンポーネントの冗長化 - 自動化(CI/CD) といった点を中心にお話をさせて戴きます。 OpenStackの導入を敬遠されている方に、具体的なOpenStackの導入事例を共有させて戴く事により、Stackerとして初めての一歩を踏み出すための一助となれば幸いです。

TRANSCRIPT

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

OpenStack Fast Track

1

若葉マークStackerのStacker教習所

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

http://news.mynavi.jp/news/2014/10/29/114/

“... OpenStackを活用することは容易ではなく ...”

2

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

http://jp.techcrunch.com/2014/11/04/20141103a-maturing-openstack-prepares-to-take-on-new-challenges/

“... OpenStackのセットアップと日常の運用が、 当初の難しさを引きずっている ...”

3

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

4

ほんと?

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

名前

田上 亮 (たがみ りょう) 所属

株式会社サイバーエージェント アドテク本部 Stacker歴

半年くらい

自己紹介

5

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

本日のアジェンダ

6

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

こんなStackを作りました

スペック

設計

冗長化

構築と運用

構築の自動化

運用の自動化

7

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

こんなStackを作りました

8

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

スペック

設計

冗長化

9

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

スペック

10

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

Computeノード数: 51台

用途: 本番サービス用

構築期間: 1.5人で1ヶ月

11

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

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

クラウドのスペック

13

1台 51台

CPU 20C/40T 1020C/2040T

メモリ 160GB 8TB

ディスク 1440GiB 73TiB

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

設計

14

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

公式Docs++

公式Docsの “Install OpenStack”に 従って作れば(一応)動く

公式に近い形にすると 楽に早く動かせる

15

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

公式Docsからの変更点

コントロールプレーンを冗長化する

データプレーンを冗長化しない(で済むようにする)

16

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

使用したコンポーネント

17

認証 Keystone

イメージストア Glance

コンピュート Nova

ネットワーク Neutron

オブジェクトストア Swift

Webポチ Horizon

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

必要なモノ

サーバ (たくさん)

冗長化されたL2スイッチ

冗長化されたL3スイッチ

冗長化された箱物LB

18

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

必要な周辺機能

ベアメタルプロビジョニング

パッケージレポジトリ

DNS (正引き/逆引き)

syslog

19

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

アンダークラウドクラウドを動かすためのクラウド (鶏と卵)

OpenStackのコントロールプレーン

周辺サービス

要件

統合管理

共有ストレージ無しでライブマイグレーション

20

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

全体のイメージ

21

UnderCloud

mysqld rabbitmq-server

keystone-all

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)

swift-object-serverswift-object-server

コントロールプレーン データプレーン

KVM (nova-compute)

Open vSwitch (neutron-

openvswitch-agent)

swift-account-server swift-container-server

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

コンピュート

オーバーコミットしない

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

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

フレーバー

23

CPU(vCPU) メモリ(GB) ディスク(GB)

tiny 1 3.5 32small 2 7 64medium 4 14 128large 8 28 256xlarge 10 35 320xxlarge 12 42 384

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

ネットワークNeutronの標準機能のみ

Neutron L3 Agentを使わない

VLAN Type Driverを使う

テナントにProvider Networkを直接割り付け

Neutron Metadata Agentが使えない

自前で169.254.169.254を転送

24

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

ネットワーク$ 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.OVSHybridIptablesFirewallDriver [ovs] bridge_mappings = physnet1:br-physnet1

25

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

ネットワーク

$ 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

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

ストレージ

ブロックストレージはインスタンスストアのみ

インスタンスストアはRAID5で保護

Glanceの冗長化の為にSwiftが必要

27

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

冗長化

28

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

MariaDB Galera Cluster

29

MariaDBGalera Cluster #1

MariaDBGalera Cluster #2

MariaDBGalera Cluster #3

VIP

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

RabbitMQ

30

RabbitMQ #1 RabbitMQ #2 RabbitMQ #3

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

OpenStack コンポーネント

31

DB

VIP

Rabbit MQ

Cluster

とあるコンポーネント #1

とある コンポーネント #2

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

glance-api

☓: default_store=file

○: default_store=swift

32

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

nova-consoleauth

memcached_servers=192.0.2.1:11211,192.0.2.2:11211

33

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

neutron-dhcp-agent

neutron-dhcp-agentが起動している物理マシン * 3

dhcp_agents_per_network = 3

34

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

構築と運用

35

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

構築

36

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

構築方法

37

☓ 手動て ど う 努力

△ OpenStackインストーラ

PackStack JuJu FUEL …

◎ 汎用ツール

Puppet Chef Ansible

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

構成管理

SCMにコミット

複数環境に対応

冪等

完全自動化

38

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

開発・検証環境

39

https://www.flickr.com/photos/ejpphoto/2314610838 https://www.flickr.com/photos/eulenfan/9471676777

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

運用

40

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

オーケストレーションJenkins

ビルドトリガ

screen/tmux代わり

ロギング

ワークフロー(MultiJob Plugin)

通知

41

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

ワークフロー

42

再インストール

ansible-playbook

初期設定

テスト

git commit

ansible-playbook

git push

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

ワークフロー

43

git push … upstream/master

ansible-playbook

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

まとめ

44

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

こんなStackを作りました

スペック

設計

冗長化

構築と運用

構築の自動化

運用の自動化

45