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
© Copyright 2024 Paperzz