Slide 1

Slide 1 text

モンストも⽀えるデータプレーン技術 2018/9/10 Junpei Yoshino 株式会社ミクシィ XFLAG STUDIO

Slide 2

Slide 2 text

⾃⼰紹介 1 • 名前:吉野純平 • 2008年の新卒入社から10年半くらい働いています • 所属:開発本部 XFLAG事業推進室 インフラ開発G • 事業開発の部隊と共に戦う! • 物理インフラ周りのオペレーション • 開発、構築、運用などなど • パケット加工の処理

Slide 3

Slide 3 text

2 オペレーション x ネットワーク

Slide 4

Slide 4 text

3 オペレーションをする上で必要なこと • 1つの問題で全滅しないか • 1つの実装で動いていないか • 安全に迂回ができるか • ソフトウエア改修等で断なくできるか • どんなときでもプランBがあるか

Slide 5

Slide 5 text

パケット処理を⾃作できると 5 • ⾃由度が格段にあがる • 世の中にないものもできるかも 高度な処理機能付き ネットワーク機器 変化 よくある ネットワーク機器 自作処理

Slide 6

Slide 6 text

4 パケットの処理とは • ⼤きく分けて2種類 • データプレーン • 流れているパケットデータを触る部分の処理 • 今日の主題はこちら • コントロールプレーン • データプレーンでの処理の仕方を調整するための通信 • 例としてはBGPやIGPのルーティングプロトコル

Slide 7

Slide 7 text

6 今回紹介する題材 GREのトンネルヘッダー外し

Slide 8

Slide 8 text

レイテンシを⼩さくしなければならない 7 • ボトルネックがレイテンシになることがある • アプリの作り次第で⼯夫することもできる • ⼩さなレイテンシ環境を⽤意できればシンプル • IBMのクラウドサービスはレイテンシが⼩さい • しかし、工夫が必要 • スマホアプリ「モンスターストライク」にてIBMを利⽤

Slide 9

Slide 9 text

アドレスバッティングと回避策検討 8 緑の部分で アドレスバッティングがあった IBM ベアメタル IBM VM IBM ミクシィ IBM 共通基盤 オンプレ サーバ 他社 クラウド こっちに流れて欲しい こっちに⾏く

Slide 10

Slide 10 text

9 GREトンネルでの回避策 サーバ VM IBM 共通基盤 オンプレ サーバ 他社 クラウド ミクシィ サーバ ト ン ネ ル ト ン ネ ル ト ン ネ ル オンプレにサーバ数分の トンネルを作成して回避した

Slide 11

Slide 11 text

GREトンネルのパケットフォーマット 10 実際に通信したい内容をGREで包む Ethernet IP (outer) GRE IP (inner) payload 実際に通信したい内容 トンネルのためのヘッダー パケットの先頭から=>=>=>

Slide 12

Slide 12 text

11 ということで GREトンネル終端 を実装してみた 実装と測定

Slide 13

Slide 13 text

何をするか 12 GREのついたパケットが来る =>外すして転送する! Ethernet IP (outer) GRE IP (inner) payload Ethernet IP (inner) payload

Slide 14

Slide 14 text

何をするか 12 GREのついたパケットが来る =>外すして転送する! Ethernet IP (outer) GRE IP (inner) payload Ethernet IP (inner) payload

Slide 15

Slide 15 text

開発 • DPDK • 弊社はgtestを使ってテストしています • テストでパケットを投入してどう変更されたかをチェック等 • FPGA Smart NIC • verilog使います • テストも書きます。どこのビットとクロックが。 • CDは? • ちゃんとグレースフルshutdownできるようにしてあります • かっこいいデプロイはもうちょっとやっていかないといけない

Slide 16

Slide 16 text

CD!!! • Graceful shutdownについて • ルーティング技術で迂回する ネットワーク機器 ネットワーク機器 開発物 ルーティングプロトコル ネットワーク機器 ネットワーク機器 開発物

Slide 17

Slide 17 text

測定 13 • Latency • パケットをどのくらいの処理時間で処理できるか • Packet per Second • 1秒間に何パケット処理できるか • 10Gbpsならば14.88Mppsが目標 • 最小サイズの64byteで10Gbpsが流せる • (当然ですよねってところで今回はパス)

Slide 18

Slide 18 text

レイテンシの測り⽅ 14 • 光ファイバを通る光を抜き出す • 時刻情報はArista Networks社の製品機能を使った • TAP aggregation機能 • 誤差はnano secレベルになる。分析用のサーバ性能に非依存 試験対象 トラフィック 送信 トラフィック 受信 TAP aggregation 分析用サーバ

Slide 19

Slide 19 text

CPU ASIC 実装したものと⽐較対象 15 • ⾃作 • DPDKを使ったもの • FPGA Smart NICを使ったもの • ⽐較対象 • ASICで処理されるネットワーク機器 NIC FPGA Smart NIC PCIe

Slide 20

Slide 20 text

⽐較結果 16 5回測定を回した平均値。⾚字の通常転送を基準とした時間を()に記載。 DPDK FPGA Smart NIC ASIC Latency 9.529usec (+7.435usec) 3.184usec (+1.090usec) 2.294usec (+0.200usec) Latency without GRE 9.456usec (+7.362usec) 3.010usec (+0.915usec) 2.094usec 実装期間 機能半日 +修正数日 実装5日 +事前学習 調整を加えて 3時間

Slide 21

Slide 21 text

まとめ 18 • データプレーンは作れる • ASICには劣るが⼗分な性能である • ※メモリ参照が多かったりロックが必要な処理には弱い • 変更差分を⼊れた時等にレイテンシも⽐較できることは 有意義である • こうすることでネットワークに多様性の注⼊ができる • ⾃作なのでトラフィック迂回設計の幅が広がる • この技術スタックで新しいものを実装をたくらみ中

Slide 22

Slide 22 text

No content