2013/10/23 wakamonog4 発 表 資 料 さくらのクラウド の 舞 台 裏 さくらインターネット 研 究 所 大 久 保 修 一 ohkubo@sakura.ad.jp
自 己 紹 介 1980 年 10 月 生 まれ (ワカモノではありません 2003/4~ さくらインターネット 入 社 バックボーンネットワークの 運 用 2009/7~ さくらインターネット 研 究 所 に 異 動 2011/3~ クラウドの 開 発 に 携 わる 主 にネットワーク ストレージ 担 当
Agenda さくらのクラウドとは? ストレージの 話 第 2ゾーンの 話 DoSアタック 対 策 の 話
さくらのクラウドとは? IaaSの 基 本 的 なリソースを 提 供 サーバ 1コア/1GB~12コア/128GB 全 42 種 類 UNIX 系 OS 各 種 Windows ストレージ SSD 20GB, 100GB HDD 40GB~4TB アーカイブ ISOイメージ 領 域 ネットワーク 共 有 グローバルセグメント 専 用 グローバルセグメント スタティックルート ローカルスイッチ ロードバランサ パケットフィルタ 全 てAPIで 自 由 に 操 作 可 能 これらの 組 み 合 わせで Software-Defined Data Centerを 実 現!
ウェブサイト http://cloud.sakura.ad.jp/
簡 単 なデモします
さくらのクラウド システム 構 成 インターネット お 客 様 コンパネ 自 動 制 御 ルータ L2ネットワーク API クラウド コントローラ ホストサーバ ストレージ ネットワーク 課 金 システム ストレージ
2 年 半 いろいろありました 2011/3/2~ クラウドの 開 発 本 格 スタート 2011/9/6~ ベータ 提 供 開 始 2011/11/15~ さくらのクラウド 正 式 リリース 2011/12~ ストレージの 障 害 が 顕 在 化 2012/3~ サービスの 無 償 化 新 規 申 し 込 み 受 付 停 止
新 ストレージ 導 入 の 経 緯 2012/4 2012/5 2012/6 2012/7 2012/8 2012/9 2012/10 2012/11 2012/4 頃 新 ストレージの 開 発 導 入 をスタート 2012/10/1~ 既 存 ユーザの 課 金 再 開 2012/6/25~ 第 一 期 iscsiストレージの β 提 供 開 始 2012/8/31~ 第 二 期 iscsiストレージの β 提 供 開 始 2012/11/1~ 新 規 ユーザ 募 集 再 開 (サービス 正 常 化 ) SSDプランの 提 供 開 始
ストレージのボトルネック ホストサーバ ストレージネットワーク 10GbE 10GbE コントローラ#0 コントローラ#1 minisas(24gbps) RAID-XX JBOD 各 6Gbps ストレージのキャパシティ IOPS プールサイズ 帯 域 (MBytes/sec) コントローラの 性 能 ディスクの 性 能 ストレージ
性 能 と 容 量 効 率 のトレードオフ 性 能 HDDの 場 合 絶 対 的 にIOが 不 足 どうせ 容 量 が 余 るので 弊 社 の 場 合 この 辺 でチューニング 容 量 をケチると 性 能 は 落 ちる 容 量 効 率 ( 低 ) 容 量 効 率 ( 高 ) シンプロビジョニング 重 複 排 除 クローン コピーオンライト 他
ストレージ 収 容 設 計 の 難 しさ 40~1024GBのユーザを 最 大 N 個 詰 めて 容 量 が 余 らない プールを 作 りたい ナップサック 問 題 を 解 く! 40GB 40GB 250GB 100GB 100GB 100GB 1024GB SAS XXXGB 2.5 10Krpm XX 本 RAIDXX X,XXXIOPS( 最 大 XXXユーザ) XX,XXXGiB 会 場 のみ
現 在 2 種 類 のストレージを 運 用
20GB, 100GB SSDストレージ ホストサーバ InfiniBand(QDR) ホストサーバ IPoIBによる 接 続 ターゲットは 仮 想 IP IB 経 由 でデータのミラー 市 販 サーバにSSD 搭 載 仮 想 IP ストレージ サーバ RAID0 DRBD ストレージ サーバ RAID0 OS: CentOS 6.2 HA: Pacemaker + DRBD ボリューム 制 御 : LVM iscsi Target: scsi-target-utils
40GB~4TB HDDストレージ NEC istorage M300とM100 1 年 がかりでようやく 導 入 事 例 出 ました http://ascii.jp/elem/000/000/819/819520/ 詳 しくは さくらのクラウド istorage
石 狩 第 2ゾーン 始 めました (2013/10/8より)
ゾーンとは? AWSさんのアベイラビリティーゾーン 的 な システムを 完 全 に 分 離 障 害 が 波 及 しない APIサーバ(クラウドコントローラ)とコンパネ サーバも 分 離 GSLB 等 と 組 み 合 わせた 冗 長 システムの 構 築 が 可 能
折 角 なので 第 2ゾーンは ネットワーク 構 成 を 一 新 しました
第 1ゾーンの 構 成 は ルータ インターネット 10GbEな ストレージ 10GbE L2スイッチ (ファブリック 的 な) Ethernet InfiniBand 変 換 装 置 Etherの 世 界 InfiniBandの 世 界 InfiniBand QDR(40Gbps) ホストサーバ IBな ストレージ
第 2ゾーンでは 10 年 使 えるアーキテクチャにしたい InfiniBandやめました 普 通 の10GbEベースのネットワーク VMの 通 信 とストレージ 通 信 を1 面 のネット ワークに 収 容 SDNはまだ 入 ってません
こんな 感 じ インターネット ルータ 10GbEのみでシンプルに! 以 前 IBで 組 んでいたストレージは 10GbEで 組 み 直 した 10GbE L2スイッチ (ファブリック 的 な) ラック 間 は 全 て 10GBase-SR サーバは Twinaxで ToR ToR Twinax ToR ホストサーバ 1ラック30 台 ずつ ホストサーバ 1ラック30 台 ずつ 10GbEなストレージ
IBをやめて10GbEにした 理 由 10GbEインターフェイスのストレージが 増 えた Ether over InfiniBandの 部 分 がボトルネックに 10GbE(NIC スイッチ)も 安 くなってきた 帯 域 は 減 るが 10G Nでも 足 りる IBドライバのインストールが 大 変 いろんなドライバが 入 ってると 障 害 解 析 も 大 変
IBの 良 かったところ IB 自 体 はすごく 良 いメディアだと 思 います ループフリー サブネットマネージャがノード 間 の 通 信 経 路 を 制 御 し てくれる IBスイッチはどんなトポロジでつないでも 良 い ECMP Shortest Path 普 通 に 動 く マネジメントフリー IBスイッチは 個 別 にマネジメントしていない サブネットマネージャのトポロジ 情 報 で 監 視 可 能 バーストトラフィックでもパケットロスしない End to Endのフロー 制 御 がある
バーストによるパケロスが 心 配 アップリンク バッファ バッファから 溢 れると パケットロス 瞬 間 的 に 合 計 10Gbpsを 超 える 10G 10G 10GbEのL2スイッチ バースト バースト 10G サーバとか ストレージとか サーバとか ストレージとか
参 考 :パケットバッファの 測 定 PC ping PC 10GbE L2スイッチ 1Gbps 10Gbps 10GbE L2スイッチ テスター ポートを 溢 れさせ 何 μsecのパケットを 貯 められるかを pingのレイテンシで 測 定 し バッファサイズを 逆 算 する
参 考 :パケットバッファの 測 定 無 輻 輳 時 の 遅 延 105 packets transmitted, 105 received, 0% packet loss, time 5213ms rtt min/avg/max/mdev = 0.031/0.035/0.176/0.016 ms 輻 輳 時 の 遅 延 224 packets transmitted, 216 received, 3% packet loss, time 11369ms rtt min/avg/max/mdev = 4.369/4.374/4.404/0.039 ms バッファサイズ 10*1000^3/8*(0.004374-0.000035) = 5,423,750 ( 約 5.4MB) 輻 輳 時 の 遅 延 148 packets transmitted, 148 received, 0% packet loss, time 7372ms rtt min/avg/max/mdev = 0.078/0.084/0.231/0.015 ms バッファサイズ 検 証 中 に 試 した とあるスイッチ 10*1000^3/8*(0.000084-0.000035) = 61,250 ( 約 61KB) 実 はカタログスペックで64KB
ホストの 配 線 数 を 増 やしたくない 普 通 に 安 全 に 組 むなら できれば 一 緒 にしたい VM 間 通 信 用 ネットワーク VM 間 通 信 用 & ストレージ ネットワーク MGMT MGMT MGMT MGMT ストレージ ネットワー クA 面 ストレージ ネットワー クB 面 配 線 もスイッチも たくさん 必 要 文 化 の 違 う ネットワーク
InfiniBandの 時 は インター ネット 10G 8 VLAN-XX コアスイッチ(VDX) コアスイッチ(VDX) 10G 8 VLAN-YY 物 理 ポートは 分 離 する 1/1 2/1 3/1 4/1 1/1 2/1 3/1 4/1 Ether over InfiniBand InfiniBand VLAN-XX VLAN-YY vnic1 vnic2 vnic3 vnic4 OVS x.x.x.x y.y.y.y VM VM VLAN-XX VLAN-YY vnic1 vnic2 vnic3 vnic4 OVS x.x.x.x y.y.y.y VM VM ストレージ 用 の vnicを 別 に 張 る OVSを 経 由 しない
文 化 の 違 いは 覚 悟 を 決 める 10GbEでどうしたか ToR#1 VLAN2~4094 L2ネットワーク Twinax ToR#2 ストレージ 通 信 をOVSから 分 離 することで 安 定 化 VLANタグの 付 与 除 去 は NICへHWオフロード eth0 eth1 ホストサーバ bonding Open vswitch eth0.96 eth1.96 VM VM VM vlan99 bond96 VM VM VM 100.64.32.1 (OVS 監 視 用 ) 100.64.16.1 (ストレージ 用 ) eth2 MGMT IPMI
配 線 数 Before After 第 1ゾーン(InfiniBand) 電 源 2 InfiniBand QSFPケーブル 2 IPMI マネジメント 第 2ゾーン(10GbE) 電 源 2 10GbE Twinaxケーブル 2 IPMI マネジメント サーバあたり6 本 ラックあたり180 本 変 わらず! サーバあたり6 本 ラックあたり180 本
ブリッジ 接 続 機 能 ( 近 日 提 供 予 定 ) インターネット 第 1ゾーン 第 2ゾーン お 客 様 仮 想 サーバ ローカル スイッチ お 客 様 仮 想 サーバ ローカル スイッチ ゾーンを 超 えて ローカル 接 続 ブリッジ 接 続
ハイブリッド 接 続 サービスとの 違 い? ハイブリッド 接 続 は2012/10/3より 提 供 開 始 各 サービスの 特 長 を 生 かしたシステム 構 築 が 可 能
仕 組 み クラウド 第 1ゾーン クラウド 第 2ゾーン VLAN200 VLAN100 VLAN200 VLAN100 VLAN ID 変 換 装 置 VLAN100 VLAN101 VLAN102 内 部 VLAN ID 専 用 サーバ リモートハウジング VLAN700 VLAN600 VLAN500 VLAN800 ハイブリッド 接 続 の 仕 組 みをそのまま 利 用
DoSアタック 対 策 の 話
DoSアタック 対 策 バックボーン 全 体 で 見 ると DoSの 発 生 頻 度 は 日 常 茶 飯 事 ただ 何 をDoSとみなすかは 難 しい 弊 社 では 帯 域 とppsの 閾 値 で 他 ユーザに 影 響 が 発 生 する 場 合 はバックボーンでフィルタ
バックボーンでの 検 出 とフィルタ インターネット アラート sflowなど バックボーン フローコレクタ サービス ネットワーク サービス ネットワーク サービス ネットワーク
バックボーンでの 検 出 とフィルタ インターネット アラート フィルタ sflowなど バックボーン フローコレクタ サービス ネットワーク サービス ネットワーク サービス ネットワーク
ある 日 発 生 した 事 象 バックボーン クラウドのネットワーク L2ネットワーク 仮 想 スイッチ VM ホストサーバ ホストサーバ ホストサーバ ホストサーバ
ある 日 発 生 した 事 象 バックボーン クラウドのネットワーク 仮 想 スイッチの 負 荷 が L2ネットワーク 全 サーバに フラッディング 仮 想 スイッチ VM ホストサーバ ホストサーバ ホストサーバ ホストサーバ 居 なくなる
ルータのARPタイムを 短 縮 してみた ルータの CPU 負 荷 が バックボーン ルータ ARP Age 4 時 間 4 分 L2ネットワーク MAC Age 5 分 仮 想 スイッチ VM ホストサーバ ホストサーバ ホストサーバ ホストサーバ
結 局 どうしたか? バックボーン ARP Age 4 分 4 時 間 フラッディングする けど 問 題 ないレベル L2ネットワーク MAC Age 5 分 unknown unicastの フラッディング 制 限 ホストサーバ ホストサーバ ホストサーバ ホストサーバ
Open vswitchはdosに 弱 い Open vswitchは フローベースのアーキテクチャ DoSアタックなど 大 量 のフローが 発 生 すると 転 送 性 能 が 極 端 に 低 下 する フローキャッシュを 見 る 方 法 % ovs-dpctl dump-flows br0 in_port(2),eth(src=52:54:00:15:3e:a3,dst=52:54:00:b3:d4:57),eth_type( 0x0800),ipv4(src=220.205.27.17,dst=61.12.213.224,proto=17,tos=0),udp( src=49766,dst=19968), packets:0, bytes:0, used:never, actions:1 in_port(2),eth(src=52:54:00:15:3e:a3,dst=52:54:00:b3:d4:57),eth_type( 0x0800),ipv4(src=200.254.249.181,dst=14.232.213.232,proto=17,tos=0),u dp(src=54759,dst=10904), packets:0, bytes:0, used:never, actions:1
Open vswitchのアーキテクチャ デーモン (ユーザランド) ovs-vswitchd CPU 負 荷 上 昇 フロー 単 位 で ovs-vswitchdに 問 い 合 わせる カーネル モジュール openvswitch.ko パケット 転 送 処 理 Src MAC = XX:XX:XX:XX:XX:XX Dst MAC = YY:YY:YY:YY:YY:YY Ethertype = TTTT Src IP = A.B.C.D Dst IP = E.F.G.H Proto = PPPP Src Port = NNNN Dst Port = MMMM フロー キャッシュ
これまでの 対 策 フロー 数 の 監 視 閾 値 を 超 えたら 通 知 して 対 処 新 しいバージョンを 使 う フローのセットアップ 性 能 が 向 上 これまで 使 ってきたバージョン: 1.1 1.2 1.4 パラメータの 調 整 % ovs-vsctl set bridge br0 other_config=flow-eviction-threshold=120000 ガベコレ 処 理 開 始 の 閾 値 を 上 げる
Open vswitch 1.11.0を 入 れてみた 2013/8/28にリリースされた 第 2ゾーンのホストサーバに 適 用 カーネルモジュールのフローキャッシュが ワイルドカードマッチに 対 応!! http://openvswitch.org/pipermail/announce/2013-august/000054.html より Support for megaflows, which allows wildcarding in the kernel (and any dpif implementation that supports wildcards). Depending on the flow table and switch configuration, flow set up rates are close to the Linux bridge.
効 果 の 程 は? host % ovs-ofctl add-flow br0 priority=39990,ip,in_port=4,nw_src=1.0.1.0/24,actions=drop guest % mz -c0 -t ip -A 1.0.0.0/23 -B 10.0.0.0/24 -t udp "sp=1,dp=1-10" host % ovs-dpctl dump-flows skb_priority(0),in_port(5),skb_mark(0/0), eth(src=52:54:00:07:63:77,dst=2e:ba:27:b5:de:d1), eth_type(0x0800), ipv4(src=1.0.0.1/255.255.255.0,dst=10.0.0.2/0.0.0.0, proto=17/0,tos=0/0,ttl=255/0,frag=no/0xff), udp(src=1/0,dst=3/0), packets:31994986, bytes:1343789412, used:0.001s, actions:4 マスクが 表 示 されるようになった don t care bitが 異 なるフローは 1エントリに 集 約 される
でも フローエントリが 参 照 するフィールドの 和 集 合 (or)でマスクが 生 成 される 参 照 するフィールドが 増 えるほど 完 全 一 致 に 近 くなる ワイルドカードが 活 かせない フロー 数 の 問 題 が 完 全 に 解 決 するわけでは ないが ちょっとはマシかなというレベル
まとめ( 欲 しいもの) HDDではIOが 絶 対 的 に 不 足 既 に 小 容 量 ディスクはSSDに 移 行 済 み 大 容 量 高 性 能 高 可 用 なフラッシュストレージ 希 望 超 高 速 にARPのリフレッシュができるルータ フロー 数 が 爆 発 しないOpen vswitch 気 持 ちよく 使 えるSDN VLAN 数 MAC 数 を 気 にせず 心 配 事 の 少 ない まるっと 全 部 が 繋 がれるネットワークインフラを End to Endでフロー 制 御 できるEthernet 製 品 群 (802.1Qauとか)