サイバーエージェント様 導入事例:openstack fast track –...
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からの変更点
コントロールプレーンを冗長化する
データプレーンを冗長化しない(で済むようにする)
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