2022/10/27に実施したNTT ComのOpen Techlunch #2の講演資料です
© NTT Communications Corporation All Rights Reserved.クラウドの作り方 (使い方じゃないよ)NTTコミュニケーションズ株式会社エバンジェリスト・担当課長飛岡 良明
View Slide
© NTT Communications Corporation All Rights Reserved. 1⾃⼰紹介経 歴興味のある分野好きな⾔葉2005年2013年2015年2019年NTTコミュニケーションズ⼊社- ISP/⼤⼿コンテンツプロバイダーのシステム設計・運⽤アメリカにComputer Scienceを学びに留学- SDN/NFVの研究に従事し、新しいネットワークのあり⽅を模索SDPF クラウドのアーキテクトとしてサービス⽴ち上げ- インフラ、ネットワーク、SDN/NFVの設計開発をリードNTT Comのエバンジェリストとして活動開始ネットワークとソフトウェアの融合ネットワーク技術の本質を⼤事にしながら、ソフトウェア技術の適⽤で何が変わるのか、変えられるのかに興味を持ち活動中結局物理NTT Com エバンジェリスト⾶岡 良明
© NTT Communications Corporation All Rights Reserved. 2Smart Data Platform (SDPF) クラウドcSDPFクラウド利⽤例Firewall (VM)Load Balancer (VM)Application Server (VM)Database Server (Baremetal) ColocationGroup A Group BLogical NetworkInternet FIC / VPN
© NTT Communications Corporation All Rights Reserved. 3SDPFクラウドを支える技術czzNW装置NW基盤サーバー基盤SDN設定機能SDN監視機能共通系機能認証機能課金機能DNS / NTPなどzユーザーリソースInternet IP-VPN ColocationStorage BaremetalVMHypervisorVirtual Server / NFV
© NTT Communications Corporation All Rights Reserved. 4SDPFクラウドを支える技術c4zzNW装置NW基盤サーバー基盤SDN設定機能SDN監視機能共通系機能認証機能課金機能DNS / NTPなどzユーザーリソースInternet IP-VPN ColocationStorage BaremetalVMHypervisorVirtual Server / NFVc物理NW(DC-NW)01020203010203NW仮想化(SDN / NFV)リソース仮想化(OpenStack, KVM, Linux)など
© NTT Communications Corporation All Rights Reserved. 5SDPFクラウドの規模c c物理リソース 論理リソース3000台5000台VM仮想NW仮想NIC40,00030,000200,000経路 1,000,000
© NTT Communications Corporation All Rights Reserved. 6Agenda| はじめに常に重視しているのは、- エンタープライズで求められる⾼い品質- スケーラビリティ- 検証だけではない、プロダクトへの貢献Data-Center NW開発 x ソフトウェアSDN/NFV 開発 x ソフトウェア
© NTT Communications Corporation All Rights Reserved. 7Data-Center NW開発 x ソフトウェア
© NTT Communications Corporation All Rights Reserved. 8SDPFクラウドを支える技術czzNW装置NW基盤サーバー基盤SDN設定機能SDN監視機能共通系機能認証機能課金機能DNS / NTPなどzユーザーリソースInternet IP-VPN ColocationStorage BaremetalVMHypervisorVirtual Server / NFV
© NTT Communications Corporation All Rights Reserved. 9SDPFクラウドを構成するネットワークとはcConfigLBLBStorageControllerControllerControllerControllerControllerx3WAFControl-AControl-BHVAnalyticsDBControl-CAnalyticsAnalyticsAnaly6csVirtual ServerBaremetalStorageInternetGroup A Group BObjectStorageCinderNFS/iSCSINFSNFS/iSCSINFS CinderBMHVvLB VMvFW vSRXvRouterHVvLB VMvFW VMvRouterBMHVvLB VMvFW VMvRouterGroup CRRNFS CinderGlanceNFS/iSCSIL2 Fabric
© NTT Communications Corporation All Rights Reserved. 10商用クラウド開発・運用の裏側商用デプロイ・運用検証・テスト実装インフラ設計(DC / Rack / 配線)システム設計(NW / Software / 運用)
© NTT Communications Corporation All Rights Reserved. 11インフラ設計ccデータセンタ設計フロア内設計ラック設計ロケーション コスト スペース 電力配線 空調 電力ケーブリング 荷重 電力
© NTT Communications Corporation All Rights Reserved. 12システム設計・実装 | Data-Center NWcトポロジ設計 ルーティング設計実装アドレッシング設計拡張性 運用性Failure Domain コスト・性能BGP EVPNAnyCast GW VRRPCIDR IPAM
© NTT Communications Corporation All Rights Reserved. 13Data-Center NW開発の中でソフトウェア活⽤試験の高度化・網羅性・自動化の推進213ネットワークの構築の自動化ネットワークの運用の自動化今日はここ
© NTT Communications Corporation All Rights Reserved. 14c試験の高度化・網羅性・自動化の推進• Data-Center NWなどの試験では、プロダクトで利用する物理装置を使う• シミュレーション、仮想環境などでも論理設計の試験などは可能• 実際の機器のハードウェア性能(転送速度、切替時の計算時間 etc)は実機で確認• 専用機器(NW機器)ならではの、チップ上の問題なども実機で試験が必要• 100G bpsなどの広帯域な装置のテストを、品質高くやるために、Traffic Generatorなどの専用装置も利用• レアなトラブル、多様なユースケースを考えて• 繰り返し、多数の試験をすることが重要• 多様な環境を作って、多量の観測ポイントで試験をすることが必要試験の自動化 構成管理・切り替えの⾃動化
© NTT Communications Corporation All Rights Reserved. 15試験の⾃動化ConfigGWGWLBLBStorageControllerControllerControllerControllerControllerx3WAFControlControlHVControlControlControlControlInternetHVvLB VMvFW vSRXSSL-VPNL2 Fabric通信パターン3061400障害ポイント⼿動⾃動化3週 * 2⼈2⽇ * ソフト試験結果の可視化/ 大量データ解析物理機器操作の自動化Robot FrameworkプラグインNW機器向けのフレームワークNTT-Comで⾃社開発のOSS⼤量データは⾃動化で可視化問題点の発⾒を容易に⼀巡のtest log7200万⾏配線切り替えRobotTrafficGenerator
© NTT Communications Corporation All Rights Reserved. 16構成管理・切り替えの⾃動化通信パターン3061400障害ポイント⼿動⾃動化3週 * 2⼈2⽇ * ソフト構成管理の⾃動化配線切り替えロボットの導入複数環境もAPIで切り替え可能物理環境を切り替えながら試験の⾃動化可能にDCIM(NetBox)とAPI連携ロボットでの構成切り替え時NetBoxの同時に変更⾃動構成管理ConfigGWGWLBLBStorageControllerControllerControllerControllerControllerx3WAFControlControlHVControlControlControlControlInternetHVvLB VMvFW vSRXSSL-VPNL2 Fabric配線切り替えRobotTrafficGenerator
© NTT Communications Corporation All Rights Reserved. 17Data-Center NW開発の中でソフトウェア活⽤物理機器を多く扱うData-Center NWの開発において・ネットワーク x ソフトウェア の融合・ハードウェア x ソフトウェア の融合を意識し、ネットワークエンジニア、ソフトウェアエンジニアが活躍中
© NTT Communications Corporation All Rights Reserved. 18SDN/NFV 開発 x ソフトウェア
© NTT Communications Corporation All Rights Reserved. 19SDN (Software-Defined Networking)とはcSDNコントローラーSDNの世界(集中)APIAPIc従来のIPネットワーク(分散)ログインログインログインSDNとは、コンピュータネットワークを構成する通信機器の設定や挙動をソフトウェアによって集中的に制御し、ネットワークの構造や構成、設定などを柔軟に、動的に変更することを可能とする技術の総称。 http://e-words.jp/w/SDN.html
© NTT Communications Corporation All Rights Reserved. 20SDN開発としてソフトウェア開発した例2134SDNコントローラの経路計算遅延の最適化10倍の収容を実現ComputeのLinux Kernel ModuleのソフトウェアルータBug改修のためのKernel coreの分析VerUP作業時の影響を最⼩にするために、VerUPコマンド (PythonFabric) の改修。通信断時間を1/3(90秒->30秒) へサービス監視基盤の構築Prometheus, Grafana, 独⾃のExporter5SDNコントローラの各種Bug改修 Patch, Test・Deploy⾃動化Python, C++, Ansible, Fabric今日はここ
© NTT Communications Corporation All Rights Reserved. 21SDNコントローラの経路計算遅延解消SDPFクラウドにおいて、特定ユースケースにおいてSDNコントローラの経路計算に遅延が発⽣することが判明経路計算遅延が発⽣時の影響- VM作成時に通信が開始できるのが遅くなる- VMをLiveMigrationした際に、経路が正しく切り替わらず(移動後のHVに切り替わらず)通信断が発生する
© NTT Communications Corporation All Rights Reserved. 22そもそもSDN Controllerの中⾝ってどうなっているのSDN ControllerはTungsten Fabric (TF)https://tungsten.ioController:- Config (外部からAPIを受けて、NWの状態を確定する)- Control (Computeとお話をして、設定や経路情報などを投⼊)- Analytics (各VMなどのResource Monitor系)Compute(HypverVisor):- vRouterというソフトウェアルータがControlとEVPN通信で話すことで経路などを取得(実装的にはXMPPというXML Baseのprotocolでwrapしている)$PNQVUFW3PVUFS$POGJH/PEF$BTTBOESB$POUSPM/PEF "OBMZUJDT/PEF"OBMZUJDT%#$POGJH%#BQJTFSWFS[PPLFFQFSSBCCJUNR TDIFNBDPOUSPMEOT5P34XJUDI$PNQVUFW3PVUFS5P34XJUDI
© NTT Communications Corporation All Rights Reserved. 23経路計算遅延とは$POUSPM/PEFDPOUSPM$PNQVUFW3PVUFS7.EVPN over XMPP EVPN over XMPP$PNQVUF $PNQVUFW3PVUFS W3PVUFS7. 7. 7.Live Migration01234CP1はVM3がCP2上にあることを、Control経由で学習しているLMを⾏うことで、VM3がCP2へ移動CP3からControlへVM3の経路を広告Controlが、CP1へVM3がCP3にあると広告CP1がVM3がCP3上にあることを学習CP1から⾒てVM3への切り替わり完了1234Live Migration(LM)時の動作概要VM3をCompute2(CP2) ⇒ Compute3(CP3) へLMするVM3のあるCPCP1からみたVM3のCPCP2 CP2CP3 CP2CP3CP3CP3CP2CP2CP3
© NTT Communications Corporation All Rights Reserved. 24経路計算遅延とは$POUSPM/PEFDPOUSPM$PNQVUFW3PVUFS7.EVPN over XMPP EVPN over XMPP$PNQVUF $PNQVUFW3PVUFS W3PVUFS7. 7. 7.Live Migration3124経路計算に時間がかかる0124CP1はVM3がCP2上にあることを、Control経由で学習しているLMを⾏うことで、VM3がCP2へ移動CP3からControlへVM3の経路を広告Controlが、CP1へVM3がCP3にあると広告CP1がVM3がCP3上にあることを学習CP1から⾒てVM3への切り替わり完了VM3のあるCPCP1からみたVM3のCPCP2 CP2CP3 CP2CP3CP3CP3CP2CP2CP33経路計算に時間がかかるCompute1はVM3がCompute2に存在すると思いパケットを投げ続ける
© NTT Communications Corporation All Rights Reserved. 25実装として発⽣していた問題デフォルト 経路Table仮想NW1 仮想NW2実装上の問題:• EVPNではある特定の経路に関しては、Controllerが持っている全ての仮想NWに対して経路情報を保つ必要がある• EVPNのRFCによって規定されている• TF Controllerの実装上、仮想NWが作成、削除されるたびに、全NWに対して該当の経路を全てコピーする実装だった我々が実現したい(実現している) スケール・VM40,000。 Tungsten Fabric 利用でも世界最大級。他に事例がない・自分たちで見ていくしかない => パッチを書くことに経路1TF-Control経路1 経路1経路2 経路3経路150000経路3Compute1W3PVUFSCompute2W3PVUFSc論理リソースVM仮想NW仮想NIC40,00030,000200,000経路 1,000,000経路1 経路3仮想NW 10000
© NTT Communications Corporation All Rights Reserved. 26実装として発⽣していた問題全仮想NWに対してLoop経路コピーの処理Done経路コピーの動作概要処理にかかる時間概要O(MN): M * N * (1仮想NWへのコピーにかかる時間)M = 全仮想NWにコピーが必要な経路の数N = コピーが必要な全仮想NW数1仮想NWへのコピーにかかる時間例として我々のLab環境での実績M = 500N = 100001仮想NWのコピーにかかる時間 = 20usecこの際におおよそ、500*10000*20usec ~ 100sec数百秒、経路計算に時間がかかってしまう該当経路全てに対してLoopEndDoneMN10,000 程度
© NTT Communications Corporation All Rights Reserved. 27改善した内容経路コピーの改善案概要改善の観点:- 経路のコピー (20usecと遅い) の回数を減らしたい- 問題になっている経路自体はほとんどUpdateがない(実物としては物理Switchの物理ポートに依存する経路)改善案:- 経路自体にUpdateがなかった場合には、追加・削除された仮想NWにだけコピーを行う処理にかかる時間概要O(M): M * ((1仮想NWへのコピーにかかる時間) + 追加された仮想NW抽出)↕O(MN): M * N * (1仮想NWへのコピーにかかる時間)例として我々のLab環境での実績同様にM=500で計算するとおおよそ 500* 10msec ~ 5秒程度 10倍程度の短縮経路コピーの処理該当経路全てに対してLoopEnd該当経路自体にUpdateがあったか前回から追加・削除された仮想ネットワークの抽出追加・削除された仮想NWへのLoopNo: 殆どのケースがこちらLoopとしは1,2回M
© NTT Communications Corporation All Rights Reserved. 28改修Patchを書く中で | 社内Slackの中での議論・相談社内に多様なメンバがいて、気軽に相談できるの最高
© NTT Communications Corporation All Rights Reserved. 29改修Patchを書く中で | 推測するな計測せよ
© NTT Communications Corporation All Rights Reserved. 30Mergeされたぜ︕UpStreamにMergeされた!それ以外のいくつかの最適化も入れたコードがMergeされた!最終評価を待ってプロダクト展開へ。10倍のスケール実現!
© NTT Communications Corporation All Rights Reserved. 31SDN開発としてソフトウェア開発した例 | 他にも⼀杯2134SDNコントローラの経路計算遅延の最適化10倍の収容を実現ComputeのLinux Kernel ModuleのソフトウェアルータBug改修のためのKernel coreの分析VerUP作業時の影響を最⼩にするために、VerUPコマンド (PythonFabric) の改修。通信断時間を1/3(90秒 → 30秒) へサービス監視基盤の構築Prometheus, Grafana, 独⾃のExporter5SDNコントローラの各種Bug改修 Patch, 試験・Deploy⾃動化Python, C++, Ansible, Fabric
© NTT Communications Corporation All Rights Reserved. 32
© NTT Communications Corporation All Rights Reserved. 33僕たちと開発を⼀緒にしてくれる仲間募集中!
© NTT Communications Corporation All Rights Reserved. 34ネットワークだけじゃなくて、⾊々開発している仲間達カンファレンス発表:JANOG: EVPN Anycast Gateway を 商⽤導⼊した話,エンタープライズ向けクラウドのSDN基盤の安定化への挑戦CNTOM: NFVサービスの 試験自動化とCI/CDCODT: エンタープライズ向けクラウドサービスにおける大規模・商用環境でのホストOSバージョンアップエンタープライズ向けクラウドサービス 仮想サーバー基盤開発のリリースサイクル改善SRE NEXT: Blue-Green デプロイメントを採用したデプロイの仕組みを実装して共通基盤として導入した話公式Blog: NTT Communications ENGINEERS' BLOG「業務で ISUCON することになった話」について Tech Night で発表しましたQmonus Value Stream: DevOpsプラットフォームの取り組み連載他にも (学会、公開資料 etc):ベアメタルのつくりかたManaged Load Balancer のつくりかた大規模クラウドサービス故障復旧におけるゼロタッチオペレーションシステムの開発と評価
© NTT Communications Corporation All Rights Reserved. 35⼀緒に開発する仲間を募集しておりますジョブ型 スカウト採用(社会人採用): https://hrmos.co/pages/nttcom0033SDPF㘢㙜㘙㘼 㙀㘶㘻㙢㖽㘢ක䜅㘛㙦㘫㘾㘕SDPF㘢㙜㘙㘼 SDN㘕㖽㘠㘹㘢㘻㘢㙜㘙㘼㘨㖽㙆㘬㗫㗊㗑㘋㘨㖽㙆㘬ක䜅㘛㙦㘫㘾㘕RDBeNFV㵤内௰ɽᅼ㗮IaaSක䜅㘛㙦㘫㘾㘕 (㙌㘕㙔㘲㙞㘨㖽㙃㖽 / 㙂㘗㙄㖽㙃㘗㘩㖽)㘢㙜㘙㘼㘨㖽㙆㘬 Site Reliability Engineer㙝㙕㖽㘻㗮㘬㘢㙜㙓内Ⴁක䜅㗧Smart Data Platform㘒˕㗈㘋㘰㙈㘻㘙㘚㘕㘛㙦㘫㘾㘕ͦͷଞଟ