CumulusLinux運用中

CumulusLinux運用中
BroadBandTower Cloud&SDN研究所 加藤 良輔
<[email protected]>
ブロードバンドタワー 会社概要
会
名 株式会社ブロードバンドタワー
社
BroadBand Tower, Inc.
設 立 年 月 日 2000年2月9日
所
在
地 東京都千代田区内幸町1-3-2 内幸町東急ビル
資
本
金 23.61億円(2016年6月末日 現在)
コンピュータプラットフォーム事業
事業セグメント ファッションビジネスプラットフォーム事業
代
表
者 代表取締役 会長兼社長 CEO
売
上
高 347.88億円(2016年 6月 連結)
株
式
2016/12/8
市
藤原
洋
場 JASDAQ:3776
All rights reserved. ©BroadBand Tower, Inc. 2016
2
会社設立~現在
Dell EMC社 Cloud Service Provider Progam契約締結
2016
パナソニック社製品「パナソニック データアーカイバー」販売代理店契約締結、販売開始
第5サイトオープン
2015
Scality社製品「Scality RING」販売代理店契約締結、販売開始
連結子会社エーアイスクエア、グローバルIoTテクノロジーベンチャー設立
2014
クラウドセキュリティ認証制度「STAR認証」を国内企業として初の取得
山口県防府市において太陽光発電事業を開始
2013
2012
連結子会社ブランチ・アウト事業開始
2011
2010
2009
ヤフー株式会社と資本業務提携
マネージドホスティングサービス「FlexHosting」(現 c9 Flex)サービ
スの提供開始、西梅田(関西)サイトオープン
2008
連結子会社BBFが三井物産株式会社と資本業務提携
2007
2006
2005
2004
アイシロン・システムズ社(現EMC社)製品「Isilon」の
販売代理店契約締結、販売開始
大証ヘラクレス上場(現・JASDAQ 証券コード3776)
連結子会社BBF設立 第3サイトオープン
第2サイトオープン
2003
2002
2001
2000
2016/12/8
株式会社ブロードバンドタワーに社名変更
グローバルセンター・ジャパン株式会社(現ブロードバンドタワー)設立
第1サイト(データセンター)オープン
All rights reserved. ©BroadBand Tower, Inc. 2016
3
事業概要
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
4
自己紹介
加藤 良輔
2013年11月入社
Cloud&SDN研究所 所属
活動内容
2013年~
Cloud&SDN研究所発足のスタートアップメンバとして入社
2014年~
SDN研究所用ASの設計運用、実験系Internet Exchange拠点運用に携わる
2015年~
複数クラウド接続サービスの設計・運用に携わる
2016年~
Interop Tokyo 2016 NOC サーバ担当等々 社外活動
好物
カメラ と おもちゃの鉄砲
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
5
スイッチ紹介
Quanta T3048-LY9 [x 2]
QCT (Quanta Cloud Technology) 製ホワイトボックススイッチ
Trident II
48 100/1000/10GBASE-T and 6 QSFP+ ports
Capacity: 1.44Tbps
Max Forwarding Rate: 1071Mpps
CPU:Freescale P2020, MEM: 2GB DDR3
Cumulus Linux Installed.
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
6
CumulusLinuxとは?
7
CumulusLinuxとは?
CumulusLinux とは?
もはや言わずと知れた WhiteBox スイッチで動くLinuxOS
Debian GNU/Linuxベース
apt update -> apt install xxx もできる!
スイッチはLinux的に設定 (/etc/interfaces)
Switchd (独自)にて ASIC へ橋渡し
一部機能に OpenvSwith も存在
今回、BBTower Cloud&SDN研究所でも
試験的にCumulusLinuxの導入と運用を行うことに
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
8
スイッチ設定概念
9
スイッチ設定作法
デフォルト状態は全ポートが独立したインターフェイス
Linux Bridge 設定
vlan設定
※ ip link add link swp1 name swp1.1001 type vlan id 1001でも可
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
10
個人の感想
まんまLinux だこれー!?
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
11
スイッチ設定:Traditional モード
Traditional モード
通常のLinux Bridgeの操作
auto br-VLAN100
iface br-VLAN100
bridge-ports swp1.100 swp2.100
bridge-stp on
auto br-VLAN200
iface br-VLAN200
bridge-ports swp1.200 swp2.200
bridge-stp on
VLANが多くなると管理が大変となる
Cumulus 的には vlan-awareモードを推奨
VLAN変換箱を作る場合に使うとよいモード
参考: https://docs.cumulusnetworks.com/display/DOCS/Ethernet+Bridging+-+VLANs
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
12
スイッチ設定:vlan-aware モード
vlan-awareモード (今回使用)
Cumulus2.5系でサポート (現在3.12)
(実は 1カーネル(筐体?)につき1個のみ設定)
auto bridge
iface bridge
bridge-vlan-aware yes
bridge-ports swp1 swp2
bridge-vids 100 200
bridge-pvid 1
bridge-stp on
Cumulus独自の実装の機能
参考: https://docs.cumulusnetworks.com/display/DOCS/VLAN-aware+Bridge+Mode+for+Large-scale+Layer+2+Environments
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
13
Cloud&SDN研究所にて稼動例
仮想基盤TORスイッチとして導入
沢山のVLANを通す
L2スイッチとしてはシンプルな構成
サービス用VLAN 2-4000
研究所バックボーン
上から来たTaggedを下に渡すだけ
実はスイッチ的な設定は以下のみ
Generic
Switch
Whitebox
Switch
Generic
Switch
※
※ 実はCumulusはデフォルトVID3000-3999をリザーブしています為
推奨の設定ではありません
2016/12/8
サービス用VLAN 2-4000
研究所仮想基盤
All rights reserved. ©BroadBand Tower, Inc. 2016
14
Linuxのブリッジ設定の向き
ネットワーク機器の考え方が逆
te-0/0/1
Bridge
br0
SW(JUNOS)
SW(Cumulus)
ポート操作でブリッジに登録する
2016/12/8
swp1
ブリッジ操作でポートを登録する
All rights reserved. ©BroadBand Tower, Inc. 2016
15
Linuxのブリッジ設定の向き (簡易設定例)
(雑に)
全VLANを通す設定
Bridge
SW(JUNOS)
ポート単位でブリッジ設定するx48(気持ち)
br0
SW(Cumulus)
ブリッジ単位で設定する
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
16
Cumulus自動構築
17
CumulusLinuxとAnsible
Whiteboxスイッチの使い方
たくさんデプロイを想定 安価(であってほしい)スイッチですもの
・・・管理が辛くなってくる (弊社2台故まだまだですが)
構成管理ツールを使わない手はない
素で Linux + sshd 動いている
素で Python 入ってる
→
Ansible を使うしかないじゃないか!
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
18
Ansibleの仕事
Ansible とは?
サーバ管理の構成管理/自動化ツール
指定された書式の手順書をインベントリに登録されたサーバにて実行
豊富なモジュールを駆使してサーバ、ネットワーク機器へ冪統性ある処理を実行
Cumulus Linux + Ansible でできるシナリオ
1.
2.
3.
4.
5.
作業ユーザ追加と管理権限の付与
ライセンス適用
デフォルトユーザ ”Cumulus” の無効化
使う環境の監視/管理サービスの設定
Linux Bridge の初期構成 (モジュールもCumulus対応)
上記操作を一括にて行えます
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
19
AnsibleからCumulusの操作
(触ったことある方向け)
Ansible Module for Cumulus Linux
Ansible で操作をする場合は以下のCumulus提供の操作モジュール
cl_license
- Install Cumulus Linux license
cl_bond
- Configures a bond port.
cl_bridge
- Configures a bridge port.
cl_img_install
- Install a different Cumulus Linux version.
cl_interface
- Configures a front panel, loopback or management port.
cl_interface_policy - Configure interface enforcement policy.
> This is a Core Module
いつの間にか公式のCoreModuleに登録されてしていました (以前は拡張モジュール扱い)
… 実際のところ、これ以外は完全にLinuxおよび各サービス用モジュール設定になります
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
20
Ansibleモジュールのごく一部分解説 (1)
cl_interface について
/etc/network/interface.d/ 以下に各interfaceの設定を置く
要: /etc/network/interface に source /etc/network/interface.d を記述
Debian GNU/Linux の設定としては筋の通る・・・というか、そのまま
ははーん、このモジュールはUbuntuにも使えますね?
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
21
Ansibleモジュールのごく一部分解説 (2)
cl_interface について
/etc/network/interface.d/ 以下に各interfaceの設定を置く
要: /etc/network/interface に source /etc/network/interface.d を記述
Debian GNU/Linux の設定としては筋の通る・・・というか、そのまま
ははーん、このモジュールはUbuntuにも使えますね?
→
だめでしたァァァア orz
cl_interface で呼び出す ifquery (Linux標準) に独自の拡張が含まれてる模様
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
22
モジュールのごく一部分解説 (2)
Ubuntu版 ifquery
Cumulus版 ifquery
手作業でInterface設定する場合は意識す
る必要はないが、Cumulus内のSystem寄
りコマンドはCumulus内で扱いやすいよう
にここでもカスタマイズされている模様
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
23
独自部分、一部紹介
cumulus:~$ zgrep Cumulus /usr/share/man/man*/* | sed "s/:.*$//g"|uniq
/usr/share/man/man1/netshow.1.gz
/usr/share/man/man5/apt-snapshot.conf.5.gz
/usr/share/man/man5/cl-acltool.5.gz
/usr/share/man/man5/ifupdown-addons-interfaces.5.gz
/usr/share/man/man5/interfaces.5.gz
/usr/share/man/man8/cl-acltool.8.gz
/usr/share/man/man8/clagctl.8.gz
/usr/share/man/man8/clagd.8.gz
/usr/share/man/man8/cl-cfg.8.gz
/usr/share/man/man8/cl-service-summary.8.gz
/usr/share/man/man8/dhcpd.8.gz
/usr/share/man/man8/dhcrelay.8.gz
/usr/share/man/man8/ifdown.8.gz
/usr/share/man/man8/ifquery.8.gz
/usr/share/man/man8/ifreload.8.gz
/usr/share/man/man8/ifup.8.gz
/usr/share/man/man8/iorw.8.gz
/usr/share/man/man8/ledmgrd.8.gz
/usr/share/man/man8/onie-select.8.gz
/usr/share/man/man8/phy-update.8.gz
/usr/share/man/man8/ptmctl.8.gz
/usr/share/man/man8/ptmd.8.gz
/usr/share/man/man8/pwmd.8.gz
/usr/share/man/man8/smonctl.8.gz
/usr/share/man/man8/smond.8.gz
/usr/share/man/man8/vxrd.8.gz
/usr/share/man/man8/vxrdctl.8.gz
/usr/share/man/man8/vxsnd.8.gz
/usr/share/man/man8/vxsndctl.8.gz
/usr/share/man/man8/ztp.8.gz
2016/12/8
3.12系をざっくり調べると ← の通り
幾つかのデーモンにもそれっぽい番号が↓
cumulus:~$ sudo vtysh
Hello, this is Quagga (version 0.99.24+cl3u4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
cumulus#
All rights reserved. ©BroadBand Tower, Inc. 2016
24
Cumulus+α 導入事例
25
当研究所、Cumulus は Linux Switch故の
“スイッチ管理もクラウドらしく”
をコンセプトにデプロイ設計
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
26
Cloud&SDN研究所にての試験利用中
管理ネットワーク
デプロイ後の初期設定+基本設定
Generic
Switch
サービス監視/一括操作
Cloud&SDN研究所仮想基盤
Whitebox
Switch
Generic
Switch
サービス用セグメント
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
27
CumulusLinux管理構成
Consul
サーバOS (Linux) による
スイッチ筐体の制御
2016/12/8
デプロイ (展開) ツールによる
設定の自動化
クラスタ管理ツールによる
ステータスの相互確認
All rights reserved. ©BroadBand Tower, Inc. 2016
28
Ansibleの仕事
同上
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
29
Consulの仕事
Consul とは?
Vagrant などの Hashcorp謹製OSS toolの一つ
サーバ監視と設定の為の管理エージェント
問題発生時にエージェントからのイベントとアクション
インストール済み端末を一斉操作
Cumulus Linux + Ansible +Consul
1.
2.
3.
4.
5.
2016/12/8
Ansible による初期設定から自動インストール
インストール後はConsulサーバへ自分の情報を通知
死活監視と待機
(Ansible が利用可能な最新のホスト情報を生成)
(インストール済みノードへコマンドを一括投入)
All rights reserved. ©BroadBand Tower, Inc. 2016
Consul
30
管理されたWhitebox Switch運用のサイクル
1. 電源投入からの自動初期設定
2. 自動によるベースコンフィグ設定
3. ベースコンフィグからの自動クラスタ構成
4. (群体のオペレーションの繰り返し)
5. 故障もしくは経年による入れ替え
Linux的に
自動設定
6. (1へ戻る)
2016/12/8
Consul
All rights reserved. ©BroadBand Tower, Inc. 2016
31
Ansible & Consul の違い
※
Ansible =ゼロタッチ”的”プロビジョニング
手順書を元に全体のモデル化と設定反映
自動構成として利用するツール
初期状態からのデプロイ用として利用
Consul =Linuxの一括操作
作業対象の監視と一括操作を行うツール
コマンドを一括でライブに投入が可能
Consul
同役割の冗長系スイッチへ同じコマンドを投入可
全機器のステータスの表示
指定のサービスの全停止/再起動
機能不全検知時に指定のコマンドを実行
※ 元々 CumulusとONIE自体でカバーできてはいますので…
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
32
研究所 Ansible Playbook構成
1. 初期設定
1. Cumulus共通の初期設定
2. クラスタ設定
1. Consul登録
3. サービス/スイッチ設定
1. snmpd
2. rsyslogd
3. switchd
一つのPlaybook群でも良かったですが開発中故、細かく
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
33
Consul管理
クラスタ管理画面
冗長化された管理サーバ
登録されたクライアント一覧
※管理サーバ3台の冗長構成と4台の試験用仮想スイッチ、および Quanta t3048-ly9
サーバとしての柔軟な操作
一括の設定確認/変更
必要な情報の抽出
監視項目の動的追加
RestAPIによる操作
※スイッチクラスタ内の “t3048” に一致するスイッチのポート6が学習したMACアドレスを抽出
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
34
Consulによる監視
それっぽい監視もできています
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
35
Consul watch から Slack へ通知も
ステータス変動時に
Slackへ通知
※ 細かいハンドラ書く元気は出z (ry
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
36
Cumulus Linuxで
おぉ、ちょっと
“スイッチ管理をクラウドらしく”
いけそうですね。
そうなると今度は数が欲しくなりますね…
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
37
Cumulus VX によるスイッチ開発 (1)
当研究所では現在 ”Cumulus VX” にて数の寂しさを紛らわしております。
$ consul members
Node
Address
Status Type Build Protocol
cumulus-vx1 10.22.96.111:8301 alive client 0.6.4 2
cumulus-vx2 10.22.96.112:8301 alive client 0.6.4 2
cumulus-vx3 10.22.96.113:8301 alive client 0.6.4 2
cumulus-vx4 10.22.96.114:8301 alive client 0.6.4 2
t3048-ly9-1 10.22.96.101:8301 alive client 0.6.4 2
t3048-ly9-2 10.22.96.102:8301 alive client 0.6.4 2
wbsw-ctrl1 10.22.96.1:8301 alive server 0.6.4 2
wbsw-ctrl2 10.22.96.2:8301 alive server 0.6.4 2
wbsw-ctrl3 10.22.96.3:8301 alive server 0.6.4 2
2016/12/8
DC
dc1
dc1
dc1
dc1
dc1
dc1
dc1
dc1
dc1
All rights reserved. ©BroadBand Tower, Inc. 2016
38
Cumulus VX によるスイッチ開発 (2)
Whitebox に乗る CumulusLinuxを仮想環境で使用できる「Cumulus VX」
VMware/KVM/Virtualbox 対応
スイッチとしても動作
(ASICに落とすハードウェア独特の switchd の中身 => exit () のみ)
大体の動作を確認することができる。
Vagrant (CumulusCommunity/cumulus-vx) も使用ができる
テスト・開発用に便利
手元のノートPCで Cumulus VX を作る
Ansible Playbook や ConsulのRestAPI を設計
Cumulus VX 宛に流して動作を確認する
Cumulus の実環境にデプロイする
手元のCumulus VX環境を廃棄する
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
39
Cumulus Linux VXで
ちょっと
“スイッチを今っぽく機能追加できそう”
っぽいですね。
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
40
おまけ
41
Cumulus Linux 3.2 (Dec 2016) で
なんと独自CLI “NCLU” が実装されるらしい
参考: https://cumulusnetworks.com/blog/cumulus-linux-network-command-line-utlility/
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
42
むせ返る先祖返り感。
生粋のネットワーク屋さんを取り込む感じで
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
43
まとめ
44
Whitebox + Cumulus 長所/短所
長所
Whitebox Boot時のONIE自体も賢くデプロイがしやすい
ほぼ標準といってもよい環境が既にできている
SFPのベンダロックインがない
しかも意外とSFP/SFP+兼用が効く筐体であったり
新しい管理方法を試せる、もしくは製品の土台に使える
短所
スイッチ筐体保守とOSライセンス更新の2重苦
潜むサーバOS独特の問題
(個別に来る故、まとめたい)
OOM Killerによる恐怖ロシアンルーレット問題 (あるんでしょうか… 実は試せていません)
service networking reload 時の瞬断
トラブルに直面した時の覚悟と度胸と決断
数ポートが「微妙に」壊れていました・・・を見る時はどうする?捨てる?
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
45
Whitebox + Cumulus Linux
嬉しいこと
サーバらしい管理ができるスイッチとして使える
自動化ノウハウも既に存在するのでは
スイッチ運用の新しい選択ができる
サーバリソースと同じ方法で同じ監視基盤に乗せられる
Nagios/Zabbix以外の監視方法の選択も可能、今回はConsulにて
コントロール方法の選択
所感:
大量にデプロイして壊れたら差し替えられるくらいが丁度よい
こういうところもクラウドっぽく使いたい それこそ使い捨てくらいの・・・
値下げが効く幅が狭いと嬉しいなぁ…
単体で定価だとわりと遜色ないお値段
コストメリット皮算用で選ぶのは本質ではないのかもしれない
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
46
Whitebox と Cumulus Linuxで
さぁ、
“クラウドらしくスイッチ管理してみましょう”
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
47
以上、ご清聴ありがとうございました。
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
48
2016/12/8
All rights reserved. ©BroadBand Tower, Inc. 2016
49