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

Post on 04-Jul-2015

4.214 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

OpenStack Fast Track

1

若葉マークStackerのStacker教習所

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

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

2

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

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

3

4

ほんと?

名前

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

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

半年くらい

自己紹介

5

本日のアジェンダ

6

こんなStackを作りました

スペック

設計

冗長化

構築と運用

構築の自動化

運用の自動化

7

こんなStackを作りました

8

スペック

設計

冗長化

9

スペック

10

Computeノード数: 51台

用途: 本番サービス用

構築期間: 1.5人で1ヶ月

11

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

1台 51台

CPU 20C/40T 1020C/2040T

メモリ 160GB 8TB

ディスク 1440GiB 73TiB

設計

14

公式Docs++

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

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

15

公式Docsからの変更点

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

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

16

使用したコンポーネント

17

認証 Keystone

イメージストア Glance

コンピュート Nova

ネットワーク Neutron

オブジェクトストア Swift

Webポチ Horizon

必要なモノ

サーバ (たくさん)

冗長化されたL2スイッチ

冗長化されたL3スイッチ

冗長化された箱物LB

18

必要な周辺機能

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

パッケージレポジトリ

DNS (正引き/逆引き)

syslog

19

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

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

周辺サービス

要件

統合管理

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

20

全体のイメージ

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

コンピュート

オーバーコミットしない

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

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

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

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

Neutron L3 Agentを使わない

VLAN Type Driverを使う

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

Neutron Metadata Agentが使えない

自前で169.254.169.254を転送

24

ネットワーク$ 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

ネットワーク

$ 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

ストレージ

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

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

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

27

冗長化

28

MariaDB Galera Cluster

29

MariaDBGalera Cluster #1

MariaDBGalera Cluster #2

MariaDBGalera Cluster #3

VIP

RabbitMQ

30

RabbitMQ #1 RabbitMQ #2 RabbitMQ #3

OpenStack コンポーネント

31

DB

VIP

Rabbit MQ

Cluster

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

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

glance-api

☓: default_store=file

○: default_store=swift

32

nova-consoleauth

memcached_servers=192.0.2.1:11211,192.0.2.2:11211

33

neutron-dhcp-agent

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

dhcp_agents_per_network = 3

34

構築と運用

35

構築

36

構築方法

37

☓ 手動て ど う 努力

△ OpenStackインストーラ

PackStack JuJu FUEL …

◎ 汎用ツール

Puppet Chef Ansible

構成管理

SCMにコミット

複数環境に対応

冪等

完全自動化

38

開発・検証環境

39

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

運用

40

オーケストレーションJenkins

ビルドトリガ

screen/tmux代わり

ロギング

ワークフロー(MultiJob Plugin)

通知

41

ワークフロー

42

再インストール

ansible-playbook

初期設定

テスト

git commit

ansible-playbook

git push

ワークフロー

43

git push … upstream/master

ansible-playbook

まとめ

44

こんなStackを作りました

スペック

設計

冗長化

構築と運用

構築の自動化

運用の自動化

45

top related