Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
kuro kuro
PDF, PPTX
3,858 views
Maglev: A Fast and Reliable Software Network Load Balancer
GoogleのMaglevというロードバランサの論文の紹介です。
Technology
◦
Read more
8
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 53
2
/ 53
3
/ 53
4
/ 53
5
/ 53
6
/ 53
7
/ 53
8
/ 53
9
/ 53
10
/ 53
11
/ 53
12
/ 53
13
/ 53
14
/ 53
15
/ 53
16
/ 53
17
/ 53
18
/ 53
19
/ 53
20
/ 53
21
/ 53
22
/ 53
23
/ 53
24
/ 53
25
/ 53
26
/ 53
27
/ 53
28
/ 53
29
/ 53
30
/ 53
31
/ 53
32
/ 53
33
/ 53
34
/ 53
35
/ 53
36
/ 53
37
/ 53
38
/ 53
39
/ 53
40
/ 53
41
/ 53
42
/ 53
43
/ 53
44
/ 53
45
/ 53
46
/ 53
47
/ 53
48
/ 53
49
/ 53
50
/ 53
51
/ 53
52
/ 53
53
/ 53
More Related Content
PDF
Scheme to x86コンパイラ
by
Nobutaka Takushima
PDF
大規模サービスを支えるネットワークインフラの全貌
by
LINE Corporation
PPTX
Network as a Service - Data plane evolution and abstraction by NSM
by
Miya Kohno
PPTX
Go-ICP: グローバル最適(Globally optimal) なICPの解説
by
Yusuke Sekikawa
PDF
ニューラルネットワーク勉強会5
by
yhide
KEY
Packetshader: A GPU-accelerated Software Routerを読んだ
by
y_uuki
PDF
BGP as a method for Abstraction
by
Miya Kohno
PDF
Cloud OnAir #04 今話題の機械学習・GCP で何ができるのか?
by
Google Cloud Platform - Japan
Scheme to x86コンパイラ
by
Nobutaka Takushima
大規模サービスを支えるネットワークインフラの全貌
by
LINE Corporation
Network as a Service - Data plane evolution and abstraction by NSM
by
Miya Kohno
Go-ICP: グローバル最適(Globally optimal) なICPの解説
by
Yusuke Sekikawa
ニューラルネットワーク勉強会5
by
yhide
Packetshader: A GPU-accelerated Software Routerを読んだ
by
y_uuki
BGP as a method for Abstraction
by
Miya Kohno
Cloud OnAir #04 今話題の機械学習・GCP で何ができるのか?
by
Google Cloud Platform - Japan
Similar to Maglev: A Fast and Reliable Software Network Load Balancer
PPTX
電子情報通信学会_NS研究会20250905_1.pptx_クラウドネイティブなテレコム装置のトラフィック制御の一考察-eBPFとLSTMを利用したダ...
by
ssuser370dd7
PPTX
3GPP TS 38.300-100まとめ
by
Tetsuya Hasegawa
PDF
2015.7.9 Juniper Cloud Builder Conference 2015
by
Shuichi Ohkubo
PPT
20060520.tcp
by
Ken SASAKI
PDF
SDNアプローチによるBGP経路監視の提案
by
Toshiki Tsuboi
PDF
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
by
Takashi Sogabe
PDF
RIFT A new routing protocol for IP fabrics
by
Masayuki Kobayashi
PDF
AWS Black Belt Online Seminar 2017 AWSへのネットワーク接続とAWS上のネットワーク内部設計
by
Amazon Web Services Japan
PDF
netfilterを利用したDSP監視
by
Kazuhito Ohkawa
PPTX
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
by
VirtualTech Japan Inc.
PDF
How to apt-get from the internal network: remote sshd with kneesocks
by
inaz2
PPTX
545人のインフラを支えたNOCチーム!
by
Masayuki Kobayashi
PDF
Mutualized Oblivious DNS (μODNS): Hiding a tree in the wild forest
by
Jun Kurihara
PDF
【Interop Tokyo 2018】 Telemetryの匠が解説~オープン技術を用いたマイクロバースト検知の最前線~
by
Juniper Networks (日本)
PDF
Mk state in-programming-01
by
Miya Kohno
PDF
Network Programmability and the statefulness/transactionality
by
Miya Kohno
PDF
Segment Routing @ SDN Japan 2013
by
Miya Kohno
PDF
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
by
シスコシステムズ合同会社
PDF
Mk onic data-intensive-public
by
Miya Kohno
PDF
Mk onic data-intensive-public
by
Miya Kohno
電子情報通信学会_NS研究会20250905_1.pptx_クラウドネイティブなテレコム装置のトラフィック制御の一考察-eBPFとLSTMを利用したダ...
by
ssuser370dd7
3GPP TS 38.300-100まとめ
by
Tetsuya Hasegawa
2015.7.9 Juniper Cloud Builder Conference 2015
by
Shuichi Ohkubo
20060520.tcp
by
Ken SASAKI
SDNアプローチによるBGP経路監視の提案
by
Toshiki Tsuboi
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
by
Takashi Sogabe
RIFT A new routing protocol for IP fabrics
by
Masayuki Kobayashi
AWS Black Belt Online Seminar 2017 AWSへのネットワーク接続とAWS上のネットワーク内部設計
by
Amazon Web Services Japan
netfilterを利用したDSP監視
by
Kazuhito Ohkawa
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
by
VirtualTech Japan Inc.
How to apt-get from the internal network: remote sshd with kneesocks
by
inaz2
545人のインフラを支えたNOCチーム!
by
Masayuki Kobayashi
Mutualized Oblivious DNS (μODNS): Hiding a tree in the wild forest
by
Jun Kurihara
【Interop Tokyo 2018】 Telemetryの匠が解説~オープン技術を用いたマイクロバースト検知の最前線~
by
Juniper Networks (日本)
Mk state in-programming-01
by
Miya Kohno
Network Programmability and the statefulness/transactionality
by
Miya Kohno
Segment Routing @ SDN Japan 2013
by
Miya Kohno
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
by
シスコシステムズ合同会社
Mk onic data-intensive-public
by
Miya Kohno
Mk onic data-intensive-public
by
Miya Kohno
More from kuro kuro
PDF
Scalaプロダクトのビルド高速化
by
kuro kuro
PDF
Logback stackdriver-loggingを作った
by
kuro kuro
PDF
AWSで透過プロキシをやってみた
by
kuro kuro
PDF
さくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LT
by
kuro kuro
PPTX
ICT Trouble Shooting Contest
by
kuro kuro
PPTX
holidaymakerを支える技術
by
kuro kuro
PDF
CTFに参加してきました。
by
kuro kuro
PDF
明大・日大交流会全体統括
by
kuro kuro
Scalaプロダクトのビルド高速化
by
kuro kuro
Logback stackdriver-loggingを作った
by
kuro kuro
AWSで透過プロキシをやってみた
by
kuro kuro
さくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LT
by
kuro kuro
ICT Trouble Shooting Contest
by
kuro kuro
holidaymakerを支える技術
by
kuro kuro
CTFに参加してきました。
by
kuro kuro
明大・日大交流会全体統括
by
kuro kuro
Maglev: A Fast and Reliable Software Network Load Balancer
1.
CyberAgent, Inc. All
Rights Reserved Maglev: A Fast and Reliable Software Network Load Balancer アドテクスタジオ Dynalyst 黒崎 優太
2.
黒崎 優太 ● アドテクスタジオ
Dynalyst エンジニア ● 2年目 ○ Scala, LXD ● 今日はGoogleの論文の紹介をします 査読に参加しました 自宅に設置しました
3.
概要 ● Maglevとは ● ロードバランサ
3方式 ○ ふつうのやつ(?) ○ DNS-RR ○ DSR ● Maglevのアーキテクチャ ○ ECMP ○ 分散 Connection Tracking ○ DSR
4.
Maglevとは
5.
Maglevとは ● Googleの分散型L4ロードバランサ ○ GCPのロードバランサの元になっている ●
今日はタイトルになっているMaglevに関す る論文を解説します。
6.
GCPのロードバランサ ● Compute Engine
Load Balancing hits 1 million requests per second! ○ https://cloudplatform.googleblog.com/2013_11_01_archive.html ● 1IPアドレス/ウォームアップなしでいきなり 100万RPSをさばける ○ グローバルな ■ 負荷分散 ■ 障害耐性 ○ ソフトウェアLB
7.
余談: Facebook ● http://www.slideshare.net/pallotron/dhcp-at-facebook-evolution-of-an-infrastructure
8.
ロードバランサ3方式: ふつうのやつ
9.
● 普通すぎて(?)なんと言えばよいのやら… ○ 一番わかりやすい例 ○
NAPTする ふつうのやつ
10.
ロードバランサ3方式: DNS RR
11.
● DNSのAレコードを複数登録しておく ○ RR
= ラウンドロビン DNS RR example.com (198.51.100.1) example.com (198.51.100.2) example.com (198.51.100.3) example.com (198.51.100.4) Aレコードが複数あった場合に 毎回違うものが帰ってくるのを利用 (AWSのELBは前述のLBとDNS RRの 組み合わせ)
12.
ロードバランサ3方式: DSR
13.
● Direct Server
Returnの略 L2 DSR 198.51.100.10 198.51.100.11 (lo: 198.51.100.10) 198.51.100.12 (lo: 198.51.100.10) 198.51.100.13 (lo: 198.51.100.10) 198.51.100.14 (lo: 198.51.100.10) s01 s02 s03 s04 198.51.100.10 に アクセス L2 SW
14.
● Direct Server
Returnの略 L2 DSR 198.51.100.10 198.51.100.11 (lo: 198.51.100.10) 198.51.100.12 (lo: 198.51.100.10) 198.51.100.13 (lo: 198.51.100.10) 198.51.100.14 (lo: 198.51.100.10) s01 s02 s03 s04 pc01 宛先MACアドレスを s02のものに書き換える (送信元/宛先IPは書き換えない) 198.51.100.10 に アクセス
15.
● Direct Server
Returnの略 L2 DSR 198.51.100.10 198.51.100.11 (lo: 198.51.100.10) 198.51.100.12 (lo: 198.51.100.10) 198.51.100.13 (lo: 198.51.100.10) 198.51.100.14 (lo: 198.51.100.10) s01 s02 s03 s04 198.51.100.10 に アクセス 宛先MACアドレスを s02のものに書き換える (宛先IPは書き換えない) 戻りパケットは LBを経由しない! (DirectにReturnする!)
16.
● 戻りトラフィックがどんなに大きくてもLBはリ クエストだけ転送すれば良いので ○ 転送負荷が非常に低くなる! ○
遅延も抑えられる! ○ 送信元IPが書き換わらない! L2 DSR のいいところ
17.
L3 DSR ● 前述のDSRをL3で行う ●
L2 DSRだと各ネットワークセグメントごとにLB を設置しなければならない ● →別セグメントにLBを設置! ○ このままだとパケットがセグメントを またげないのでL3に対応する必要が…
18.
L3 DSR このままだとセグメントを 超えられない app-A app-B app-C L2 SW L2
SW L2 SW L2 SW L3 SW セグメントをまたぐ必要性
19.
L3 DSR パケットをカプセリングする (トンネリング) app-A app-B app-C L2 SW L2
SW L2 SW L2 SW L3 SW セグメントをまたぐ IP TCP Data IP TCP DataIP 先頭にIPヘッダを付加する(IPIPトンネルの例) IP TCP Data LBでIPヘッダを1つ足す サーバでIPヘッダを1つ取る
20.
L3 DSR パケットをカプセリングする (トンネリング) app-A app-B app-C L2 SW L2
SW L2 SW L2 SW L3 SW セグメントをまたぐ 戻りのパケットはカプセリング不要
21.
Maglevのアーキテクチャ: ECMP
22.
パケットは吸い込むもの ● インターネット上では トラフィックは吸い込まれる ○ 経路を広告すると、パケットが 送られてくる(吸い込まれるイメージ) ○
複数拠点で同じ経路を広告すれば、 近い方(コストが小さい方)に吸い込まれる
23.
パケットは吸い込むもの ● 同じアドレスレンジを広報しても、 近い方に吸い込まれる(IP AnyCast) 日本リージョン
アメリカリージョン 198.51.100.1/24 は こっちですよ♪ 198.51.100.1/24 は こっちですよ♪
24.
パケットは吸い込むもの ● リージョン丸ごと障害が起きても大丈夫 198.51.100.1/24 は こっちですよ♪ 198.51.100.1/24
は こっちですよ♪ 一番近いところへ 日本リージョン アメリカリージョン
25.
ECMP ● Equal Cost
Multi Path ○ コスト(前のスライドで言う距離)が同じだった時 の挙動 ○ 等コストの場合はルータがロードバランシングす る ○ (今回の場合)インターネット接続部分 だけでなく、自組織内でも行っている
26.
ECMP ● 同じ距離(コスト)のルータが複数あったら? アメリカリージョン 198.51.100.1/24 は こっちですよ♪ 198.51.100.1/24
は こっちですよ♪ 日本リージョン
27.
ECMP ● ロードバランスされる アメリカリージョン 198.51.100.1/24 は こっちですよ♪ 198.51.100.1/24
は こっちですよ♪ 日本リージョン
28.
Maglevのアーキテクチャ: 分散 Connection Tracking
29.
Connection Tracking ● これがないと通信が崩壊する
30.
Connection Trackingがない時… TCPのコネクションを確立してみる SYN
31.
Connection Trackingがない時… TCPのコネクションを確立してみる SYN SYN/ACK
32.
TCPのコネクションを確立してみる Connection Trackingがない時… SYN SYN/ACK ACK 身に覚えのない ACK コネクション 確立不能
33.
Connection Trackingがある時! TCPのコネクションを確立してみる SYN
34.
Connection Trackingがある時! TCPのコネクションを確立してみる SYN SYN/ACK
35.
Connection Trackingがある時! TCPのコネクションを確立してみる SYN SYN/ACK ACK コネクション 確立成功! connection tracking
36.
Connection Trackingのしくみ ● 5-tuple ○
● 5-tupleの組み合わせで転送先を固定する ● これでコネクションが維持される ● ここまでは普通 ○ (前述の3種類のLBもやってる) ● どうやってこれをスケールアウトさせるか ○ => 分散 Connection Trackingを実装したい!
37.
スケールアウトさせるには ● どのLBに通信が来ても同じ挙動をする必要 がある ECMP コネクション確立済
38.
● どのLBに通信が来ても同じ挙動をする必要 がある ○ 独立してコネクション 管理するとダメ スケールアウトさせるには 身に覚えのない コネクション ECMP クライアントは 1コネクションしか張っていな いので 1台としか通信できない コネクション確立済
39.
● こうなってほしい ○ 全台が同じ情報を持った状態 ○
とはいえLB間でコネクションの情報を リアルタイムに同期するのは難しい スケールアウトさせるには コネクション確立済 ECMPECMP 必ず1対1で通信が 成立する状態!
40.
Consistent Hashing ● http://www.slideshare.net/paulowniaceae/consistent-hash
41.
Consistent Hashing ● 円を用意します ●
ハッシュ関数を使って適当に サーバを置きます
42.
Consistent Hashing ● ハッシュ関数を使って適当にサーバと クライアントを 振り分けます ○
5-tupleを使う hash((srcIP, srcPort, dstIP, dstPort, proto))
43.
Consistent Hashing ● 各サーバは時計回り方向のクライアントを 処理する
44.
● 複数LBでも一意な転送ができる! Consistent Hashing hash(
) hash( ) Maglev nodes
45.
● スケールアウトしても担当が変わる サーバが最小限 Consistent Hashing ↑増えた hash(
) hash( ) Maglev nodes
46.
● バックエンドの数が変わっても均一にしたい Maglev Hashing
(Consistent Hashingの応用) ● https://blog.acolyer.org/2016/03/21/maglev-a-fast-and-reliable-software-network-load-balancer/ offset = hash1(hostname) mod M skip = hash2(hostname) mod (M-1) + 1 (M = 100より大きい素数) // offset = 3, skip = 4のとき B0 = [ 3, // (3 + 0 * 4) mod 7 0, // (3 + 1 * 4) mod 7 4, // (3 + 2 * 4) mod 7 1, // (3 + 3 * 4) mod 7 5, // (3 + 4 * 4) mod 7 2, // (3 + 5 * 4) mod 7 6, // (3 + 6 * 4) mod 7 ]
47.
Maglevのアーキテクチャ: DSR
48.
DSR ● 前述のL3 DSR ○
GREでカプセリング ■ IPIPのようにヘッダを付加する方式 IP TCP Data IP TCP DataIP IP TCP Data LBでIP + GREヘッダを1つ足す サーバでIP + GREヘッダを1つ取る GRE
49.
Maglevとは
50.
Maglev論文のまとめ ● ECMP +
分散connection tracking + DSR ○ => Fast and Reliable Software Network Load Balancer ● http://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/44824.pdf
51.
今日話さなかったこと
52.
疑問 ● GCPはHTTP ロードバランサ(L7)も 用意されてるがどんな仕組みなのか ●
1ノードあたりの性能高すぎない? ○ ショートパケットでも10Gbps出るらしい ■ ユーザ空間でパケットを処理 (Intel DPDK的な)してるらしい
53.
ご清聴ありがとうございました
Download