日本初CloudStack採用のパブリッククラウド

0
日本初CloudStack採用のパブリッククラウド、
そのアーキテクチャの全貌とスケール戦略
株式会社IDCフロンティア
技術開発本部 UX開発部 部長
クラウドアーキテクト
寺門 典昭
Mar 6, 2014
Copyright IDC Frontier Inc. All rights reserved.
アジェンダ
• 歴史
• 乗り越えた課題
• IDCフロンティアのアーキテクチャ
• その他 Tips 紹介
• スケール戦略
(C) IDC Frontier Inc. All Rights Reserved.
11
22
2011年9月
(C) IDC Frontier Inc. All Rights Reserved.
33
IDCフロンティア、日本初!CloudStack採用のクラウドサービス
2011年9月
(C) IDC Frontier Inc. All Rights Reserved.
44
Google Trends "CloudStack"
2011
2012
2013
2014
by Google Trends
(C) IDC Frontier Inc. All Rights Reserved.
55
Google Trends "CloudStack"
2012年4月 CloudStackをApache Software Foundationへ寄贈
2011
2012
2013
2014
by Google Trends
(C) IDC Frontier Inc. All Rights Reserved.
66
Google Trends "CloudStack"
X
2011年9月 日本初、IDCフロンティアが「CloudStack」を採用
2011
2012
2013
2014
by Google Trends
(C) IDC Frontier Inc. All Rights Reserved.
77
Google Trends "CloudStack"
2011年7月 シトリックスがCloud.comを買収
2011
2012
2013
2014
by Google Trends
(C) IDC Frontier Inc. All Rights Reserved.
88
Google Trends "CloudStack"
2012年7月 KDDI
2013年3月 インテック
2012年3月 NTTコミュニケーションズ
2012年1月 SCSK
2011
2012
2013
2014
by Google Trends
(C) IDC Frontier Inc. All Rights Reserved.
99
Google Trends "CloudStack"
X
2012年10月
日本初、IDCフロンティア
CloudStack採用の
プライベートクラウドサービス
2011
2012
2013
2014
by Google Trends
(C) IDC Frontier Inc. All Rights Reserved.
10
10
Google Trends "CloudStack"
2011
2012
2010年10月 プロジェクト始動
(C) IDC Frontier Inc. All Rights Reserved.
2013
2014
by Google Trends
11
11
Google Trends "CloudStack"
2011年9月 日本初、IDCフロンティア
が「CloudStack」を採用
2011
2012
2010年10月 プロジェクト始動
(C) IDC Frontier Inc. All Rights Reserved.
2013
2014
by Google Trends
プロジェクト始動
公演時のみ掲載
(C) IDC Frontier Inc. All Rights Reserved.
12
12
13
13
CloudStack Administration Guide
衝撃のドキュメント
(C) IDC Frontier Inc. All Rights Reserved.
14
14
乗り越えた課題
(C) IDC Frontier Inc. All Rights Reserved.
15
15
ファイアウォール機能が無い問題
(C) IDC Frontier Inc. All Rights Reserved.
16
16
ポートフォワーディングをファイアウォールとして扱っていた
CloudStack 2.2.0 API - User role
From: 0.0.0.0/0
Accept
Public_IP : 80
VM_IP : 8080
パブリックポートと仮想マシンのプライベートポー
トを紐付けるのみ。
暗黙の From Any Accept が設定される。
(C) IDC Frontier Inc. All Rights Reserved.
17
17
送信元を限定できるファイアウォール設定APIを追加
CloudStack 2.2.11 API - User role
From: 1.1.1.0/24
Accept
Public_IP : 80
VM_IP : 8080
ポートフォワーディングとは分離。
From のアドレスを指定が可能。
(C) IDC Frontier Inc. All Rights Reserved.
ファイアウォール機能の実装
(C) IDC Frontier Inc. All Rights Reserved.
18
18
19
19
コンソールで :(コロン)が打てない問題
(C) IDC Frontier Inc. All Rights Reserved.
コンソール機能
20
20
• IPの到達性が無くても仮想マシンに
接続できる便利な機能(ハイパーバ
イザーのVNC経由で接続)
• 当時、USキーボードしか対応してな
かったためタイプ出来ないキーが存
在
• vim で、:wq で保存して終了す
るので、ファイルを開いたら、閉じ
れない。(T_T)
(C) IDC Frontier Inc. All Rights Reserved.
21
21
USキーボード
JPキーボード
(C) IDC Frontier Inc. All Rights Reserved.
日本語キーボード対応
(C) IDC Frontier Inc. All Rights Reserved.
22
22
23
23
仮想ルーターがシングル問題
(C) IDC Frontier Inc. All Rights Reserved.
仮想ルーターがシングル
24
24
インターネット
復旧まで
2〜3分
仮想ルーター
VM
VM
(C) IDC Frontier Inc. All Rights Reserved.
VM
仮想
ルーター
仮想
ルーター
物理
ホスト
物理
ホスト
X
• 障害時の2〜3分通信断
• 受け入れられなかった・・
仮想ルーター冗長化の開発
1.Keepalivedが1秒間隔でVRRP送信
インターネット
2.Conntrackdがセッション状態を送信
Master
仮想ルーター
瞬時に切替
Backup
仮想ルーター
3.VRRPを3回(2秒〜3秒)受け取らない
とフェイルオーバー発動
4.Backup仮想ルーターのIFアップ
5.セッション状態をコミット
VM
(C) IDC Frontier Inc. All Rights Reserved.
VM
VM
6.ARPキャッシュ更新のためGratuitous
ARP送信
25
25
仮想ルーター冗長化の仕組み(1)
/etc/keepalived/keepalived.conf
/ramdisk/rrouter/master.sh
・・VRRPによる死活監視
・・マスターがダウンした際に呼び出される
/ramdisk/rrouter/enable_pubip.sh
・・バックアップ仮想ルーターのIFを有効
/ramdisk/rrouter/arping_gateways.sh
・・Gratuitous ARPの送信
/ramdisk/rrouter/primary-backup.sh
・・セッション同期をコミット
/etc/conntrackd/conntrackd.conf
(C) IDC Frontier Inc. All Rights Reserved.
・・セッション情報の同期
26
26
仮想ルーター冗長化の仕組み(2)
enable_pubip.sh
keepalived.conf
! Configuration File for keepalived
global_defs {
router_id r-XXXXX-VM
}
・・省略・・
vrrp_instance inside_network {
state BACKUP
interface eth0
virtual_router_id 51
priority 98
advert_int 1
・・省略・・
virtual_ipaddress {
10.1.1.1/24 brd 10.1.1.255 dev eth0
}
・・省略・・
notify_master "/ramdisk/rrouter/master.sh"
notify_backup "/ramdisk/rrouter/backup.sh"
notify_fault "/ramdisk/rrouter/fault.sh"
}
(C) IDC Frontier Inc. All Rights Reserved.
master.sh
#!/bin/bash
set -e
ip link|grep BROADCAST|grep -v eth0|grep -v eth1|cut -d ":" -f 2 > /tmp/iflist
while read i
do
ifconfig $i down ; ifconfig $i up
done < /tmp/iflist
・・省略・・
arping_gateways.sh
#!/bin/bash
ip link|grep BROADCAST|grep -v eth0|grep -v eth1|cut -d ":" -f 2 > /tmp/iflist
while read i
do
ip addr show $i|grep "inet " > /tmp/iplist_$i
while read line
do
ip=`echo $line|cut -d " " -f 2|cut -d "/" -f 1`
arping -I $i -A $ip -c 2 >> /ramdisk/rrouter/keepalived.log 2>&1
・・省略・・
primary-backup.sh
#!/bin/bash
CONNTRACKD_BIN=/usr/sbin/conntrackd
CONNTRACKD_CONFIG=/etc/conntrackd/conntrackd.conf
・・省略・・
$CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -c
・・省略・・
27
27
28
28
テスト・テスト・テスト
(C) IDC Frontier Inc. All Rights Reserved.
リリースまで試したバージョン(2ヶ月前まで)
2010年
11月
24日 2.2β1
12月
23日 2.2β2
2011年
1月
19日 2.2β4
31日 2.2β3
インストール
テスト
(C) IDC Frontier Inc. All Rights Reserved.
VM作成テスト
2月
3月
9日 2.2.0
9日 2.2.2
16日 2.2.1
17日 2.2.3
全機能テスト
5月
24日 2.2.5
6月
7月
13日 2.2.6
14日 2.2.8
27日 2.2.7
機能修正
29
29
運用シナリオ
30
30
リリース2ヶ月前
2011年8月
2011年9月
Sun
Mon
Tue
Wed
Thu
Fri
Sat
1
2
3
4
5
6
7
2.2.9
8
9
10
11
Sun
Mon
12
13
16
17
18
19
20
Wed
Thu
Fri
Sat
1
2
3
4
9
10
11
2.2.11
2.2.10
β
14
5
6
7
8
2.2.102
2.2.10
β2
15
Tue
2.2.10-2 採用
21
12
13
14
15
16
17
18
28
19
20
21
22
23
24
25
2.2.10
β3
22
23
24
25
26
27
2.2.10
β4
29
30
2.2.101
31
(C) IDC Frontier Inc. All Rights Reserved.
サービスリリース
26
27
28
29
30
31
31
IDCフロンティアのアーキテクチャ
(C) IDC Frontier Inc. All Rights Reserved.
構成
•
•
•
•
•
•
ゾーンタイプ:
Advanced
ハイパーバイザー:
VMware vSphere ESXi
プライマリストレージ: SSD+HDD 自動階層化
セカンダリストレージ: 筐体間レプリケーション
ネットワーク:
オール10G
仮想ルーター:
Redundant Router(冗長化)
(C) IDC Frontier Inc. All Rights Reserved.
32
32
33
33
全体構成
Internet
User
UI、API Access
System
VM
VM
Hosts
…
…
…
Cluster
Cluster
Cluster
…
…
…
Cluster
Cluster
Management
Servers
Primary
Storages
Administrator
Pod
Cluster
Pod
Pod
Zone
(C) IDC Frontier Inc. All Rights Reserved.
System VMs
Secondary
Storages
全体構成 ー 現在2ゾーン
別々のデータセンターで稼働
(C) IDC Frontier Inc. All Rights Reserved.
34
34
35
35
ゾーンタイプ
(C) IDC Frontier Inc. All Rights Reserved.
36
36
Advanced Zone を採用
Advanced Mode
(ネットワーク専有タイプ)
Basic Mode
(ネットワーク共有タイプ)
インターネット
専有空間
仮想ルーター
VM
(C) IDC Frontier Inc. All Rights Reserved.
VM
インターネット
標準(無償)で利用可
•
ファイアウォール
•
ロードバランサー
•
ポートフォワーディング
•
スタティックNAT
•
VPN
VM
共有ネットワーク
VM
VM
VM
37
37
ハイパーバイザー
(C) IDC Frontier Inc. All Rights Reserved.
VMware vShpere を採用
• 最も実績のあるハイパーバイザー
• IDCFクラウドで実績あり(マネージドタイプ)
• HA機能が唯一CloudStackから独立
X
• プロジェクト始動時、VMware未サポート
• VMware対応がプロジェクトのキーでした
(C) IDC Frontier Inc. All Rights Reserved.
38
38
39
39
プライマリストレージ
(C) IDC Frontier Inc. All Rights Reserved.
プライマリストレージ SSD + HDD の自動階層化
VM
VM
VM
40
40
VM
Disk
I/O
自動再配置
SSD
ホットデータ
High I/O
HDD
プライマリストレージ
(C) IDC Frontier Inc. All Rights Reserved.
コールドデータ
Middle I/O
HDD (15,000rpm):
200 IOPS
SSD:
数万〜数十万 IOPS
参考)http://en.wikipedia.org/wiki/IOPS
自動階層化の動作ロジック
• 24時間のトータルのIO数をカウント
• IOが多い順に1GBブロックの単位でSSDに配置
• 全ての仮想マシンが対象
• 追加費用など無し
(C) IDC Frontier Inc. All Rights Reserved.
41
41
42
42
セカンダリストレージ
(C) IDC Frontier Inc. All Rights Reserved.
セカンダリストレージ 筐体間レプリケーション
バックアップデータに近い
・テンプレート
・スナップショット
コピー
セカンダリ
ストレージ
1
データ
Sync
セカンダリ
ストレージ
2
別ハードウェアにデータコピー
(C) IDC Frontier Inc. All Rights Reserved.
43
43
44
44
ネットワーク
(C) IDC Frontier Inc. All Rights Reserved.
45
45
ネットワークはすべて10Gbps
Internet
User
UI、API Access
System
VM
VM
Hosts
…
…
…
Cluster
Cluster
Cluster
…
…
…
Cluster
Cluster
System VMs
Secondary
Storages
Management
Servers
Primary
Storages
Administrator
Pod
Cluster
Pod
Pod
Zone
※ 一部のサービスでは、1Gbps部分もあります
(C) IDC Frontier Inc. All Rights Reserved.
46
46
仮想ルーター
(C) IDC Frontier Inc. All Rights Reserved.
47
47
Redundant Router
インターネット
Master
仮想ルーター
VM
(C) IDC Frontier Inc. All Rights Reserved.
瞬時に切替
VM
Backup
仮想ルーター
VM
•
障害時に2〜3秒で切り替わり
•
既存のセッションも同期することで、
サービスが継続
•
バージョンアップ時などのメンテナ
ンスで影響を最小限に
•
2つの仮想ルーターは別のポッド
(物理的に別のクラスタ)に配置さ
れる(同時にダウンしないことを保
証)
48
48
安定性 No.1
パフォーマンス No.1
(C) IDC Frontier Inc. All Rights Reserved.
安定性 No.1 の実現
許容ダウンタイム
99.95%
= 月間 約22分
99.999% = 月間 約26秒
(C) IDC Frontier Inc. All Rights Reserved.
49
49
パフォーマンス No.1 の実現
CloudHarmonyについて
CloudHarmony社は2009年に設立され、事業者からサービスの提供を受けて第三者視点による公正なクラウ
ドのパフォーマンスや稼働率を測定し、その結果をWebサイトで公表するベンチマークを提供しています。
2014年3月現在、116にもおよぶクラウドサービスが登録されており、100種類以上のベンチマーク結果が公
表され、海外では利用者がクラウドサービスを選定する際の一つの指標となっています。
(C) IDC Frontier Inc. All Rights Reserved.
50
50
ハイパフォーマンスへの追求
(C) IDC Frontier Inc. All Rights Reserved.
51
51
52
52
その他 Tips 紹介
(C) IDC Frontier Inc. All Rights Reserved.
ロードバランサーの最大コネクション数
デフォルトの最大コネクション数4,096を変更
haproxy.cfg (default)
haproxy.cfg (customzed)
global
global
log 127.0.0.1:3914 local0 warning
maxconn 4096
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
log 127.0.0.1:3914 local0 warning
maxconn 20000
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
defaults
・・省略・・
defaults
log global
mode tcp
option dontlognull
retries 3
option redispatch
option forwardfor
option forceclose
書き換え
・・省略・・
maxconn 20000
log global
mode tcp
option dontlognull
retries 3
option redispatch
option forwardfor
option forceclose
※ CloudStack 4.2より機能として実装されています
(C) IDC Frontier Inc. All Rights Reserved.
53
53
ロードバランサーの分散状況の確認
秒間セッション
同時接続数
ステータス
グローバル設定 "network.loadbalancer.haproxy.visibility" を disable 以外にすることで有効
(C) IDC Frontier Inc. All Rights Reserved.
54
54
55
55
APIコマンド(idcf.computeコマンド)
便利な CloudStack API コマンド作りました。
インストール(CentOS 6 の場合)
$ sudo yum -y localinstall http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum -y localinstall http://repo.cloud.idc.jp/Linux/CentOS/6/idc/x86_64/idcf-release-8-0.0.idcf.el6.noarch.rpm
$ sudo yum -y install idcf.compute
設定ファイル(~/.idcfrc)
コマンド例(deployVirtualMachine)
[account]
host=https://api.noahcloud.jp/portal/client/api
api_key=YOUR_API_KEY
secret_key=YOUR_SECRECT_KEY
$ idcf-compute-api ¥
deployVirtualMachine ¥
--zoneid=ZONE_ID ¥
--serviceofferingid=SERVICE_OFFERING_ID ¥
--templateid=TEMPLATE_ID ¥
--keyboard=jp ¥
--keypair=KEYPAIR_NAME ¥
--displayname=DISPLAY_NAME
詳しくはこちら
〜IDCFクラウド API ドキュメント − Getting Started
http://www.idcf.jp/cloud/docs/Getting%20Started
(C) IDC Frontier Inc. All Rights Reserved.
56
56
Vagrant
Vagrantとは?
•
•
$ vagrant up で、開発環境をつくれます
環境の統一と再利用が簡単
X
•
•
•
vagrant-cloudstack へ commit 貢献
vagrant用OSイメージの公開(CentOS 6)
$ vagrant up --provider cloudstack で、
IDCフロンティアのクラウドへ開発環境をつくれます
詳しくはこちら
〜 vagrant-cloudstack用 CentOS 6.5 テンプレート公開〜
http://www.idcf.jp/blog/cloud/vagrant-cloudstack-2/
(C) IDC Frontier Inc. All Rights Reserved.
57
57
Scalr (OSS クラウドマネージメントツール)
(C) IDC Frontier Inc. All Rights Reserved.
58
58
IDCフロンティアのスケール戦略
(C) IDC Frontier Inc. All Rights Reserved.
59
59
3メガデータセンター
1棟 600Rack x 最大 6棟
1棟 500Rack
x 最大
12棟
白河DC
北九州DC
首都圏DC
(C) IDC Frontier Inc. All Rights Reserved.
6拠点
最先端 白河データセンター
(C) IDC Frontier Inc. All Rights Reserved.
60
60
DDoS プロテクション
• ネットワークの上流でDDoS対策を実施
• DDoS攻撃の検知から防御までを自動で
実行
• IDCフロンティアのネットワークサービ
ス(クラウド含む)ご利用のすべての
お客様が対象
• お客様に合わせたカスタマイズも可能
(C) IDC Frontier Inc. All Rights Reserved.
61
61
豊富な物理サーバーラインナップ
スタンダードタイプ
ディスクタイプ: 15〃000rpm
CPU:
Xeon x 2
メモリ:
32GB〜192GB
ディスク容量: 292GB
ioDriveタイプ
ディスクタイプ: MLC
CPU:
Xeon x 2
メモリ:
32GB〜192GB
ディスク容量: 365〜785GB
大容量タイプなど、その他多数ラインナップあり
(C) IDC Frontier Inc. All Rights Reserved.
62
62
63
63
One ネットワーク構想
Internet
スマホ時代のネットワーク
NFV
NFV
NFV
IDCF Backbone
AS4694
Private Connect
(C) IDC Frontier Inc. All Rights Reserved.






最適経路
高信頼性
低コスト
シームレス
オンデマンド
ロケーションフリー
64
64
One ネットワーク
GSLB(West)
GSLB(East)
Internet
標準仮想ルーター
選べる
ネットワーク
選べる
サーバー
(C) IDC Frontier Inc. All Rights Reserved.
拡張仮想ルーター
専用アプライアンス
HAProxy,LVS,
Stingray,Vyatta..
仮想サーバー
物理サーバー
お客様サーバー
プライベートコネクト
65
65
閉域網でIDCフロンティアの
すべてのサービスと接続が可能
分散ストレージ
(C) IDC Frontier Inc. All Rights Reserved.
オープンソース分散データベースへの投資
2012年7月、米国 Basho Technologies, Inc. と戦略的資本提携を行いました
Basho Riak、Riak CS の技術を用いたクラウドストレージを近日リリース!
(C) IDC Frontier Inc. All Rights Reserved.
66
66
67
67
CloudStack事業者の会
(C) IDC Frontier Inc. All Rights Reserved.
68
68
CloudStack事業者の会
•
•
•
•
四半期毎で開催
不具合情報の交換
ノウハウの共有
日本の声をCloudStackへ届ける
2014年3月 参加企業:
SCSK
NTT Communications
FUJITSU
富士通エフアイピー
(C) IDC Frontier Inc. All Rights Reserved.
KDDI
2013年3月共同レター
公演時のみ掲載
69
69
公演時のみ掲載
(C) IDC Frontier Inc. All Rights Reserved.
70
70
ご清聴ありがとうございました。
(C) IDC Frontier Inc. All Rights Reserved.
71
71
(C) IDC Frontier Inc. All Rights Reserved.