Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
自宅鯖はいいぞ 〜InfiniBand編〜
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
190ikp
June 27, 2021
How-to & DIY
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自宅鯖はいいぞ 〜InfiniBand編〜
KCS交流会 2021/06/26 LT
190ikp
June 27, 2021
More Decks by 190ikp
See All by 190ikp
輪講資料: A Comprehensive Study on Off-path SmartNIC
190ikp
0
87
輪講資料: パタヘネ 6章
190ikp
2
260
Other Decks in How-to & DIY
See All in How-to & DIY
How to Stylus 20251031
hareyakayuruyaka
0
140
家を建てて学ぶPjM
rinkei
0
150
「無理」を「コントロール」するスキル / Skills to Control "Muri"
hageyahhoo
6
4.1k
M5StickS3触ってXiaoZhiAI触ってみた #にぼし香 #iotlt
n0bisuke2
0
250
大学内にファブスペースをつくってみた #sapporo3dp / Making HIU Fab
yumulab
1
170
生成AIは 『コードを書く』だけじゃない アーキテクチャ設計から環境構築まで——社内データ活用DXの全貌
punipuni_mint
0
180
JAWS-UG/AWSコミュニティプログラムのご紹介 - JAWS-UG 佐賀
awsjcpm
2
270
ドローンをAWSで制御してみた
nagi900
0
150
Azure PortalのQoLを上げてたら Big Techに怒られた
horihiro
2
600
社会人9年目の僕が贈る処世術
coco_se
0
210
キャリア科目では教えてくれない、就活を生き抜く法則
logica0419
2
290
JAWS-UG初心者支部 JAWS-UG Updates
awsjcpm
4
130
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Unsuck your backbone
ammeep
672
58k
Skip the Path - Find Your Career Trail
mkilby
1
140
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
The Spectacular Lies of Maps
axbom
PRO
1
800
GraphQLとの向き合い方2022年版
quramy
50
15k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Transcript
自宅鯖はいいぞ ~InfiniBand編~
これまでの自宅鯖
これまでの自宅鯖 1台目 • ファイルサーバがほしくなった -> ファイルサーバを建てた 2台目 • デスクトップにLinuxのマシンを使っていた →
気軽にMHW:Iをやりたい → メインをWindowsにするために開発環境用のサーバを建てることに (ファイルサーバはスペックが非常に低かったので ...)
• 1台目のストレージを2台目で使いたいけどNWが貧弱 ( 1GbE x2 bonding ) • 10GbEは導入の敷居が高い ◦
10GbEのL3スイッチは高価 ◦ 10GBASE-TはNICの価格と発熱が ... ◦ 10GBASE-SRならなんとか...(中古市場はあまりない) • 10GbEは遅い ◦ 単純計算で1.25GB/s ◦ SATA SSDでRAID組むとネットワークがボトルネックに ◦ 台数によってはHDDでのRAIDでもボトルネックになる →そんなあなたにInfiniBand これまでの自宅鯖
What is InfiniBand ?
“InfiniBand 検索” “InfiniBand(インフィニバンド)とは、非常に高い RAS(信頼性・可用性・保守性)を持つ基幹系・ HPC系 のサーバ/クラスター用高速I/Oバスアーキテクチャ及びインターコネクトのこと。システム間インターコ ネクト機構としては、RAS機能の他、他機構に比較して、 低レイテンシである点も特徴である。” (Wikipediaより) •
HPC分野・DC内のバックボーンでは低レイテンシであることが非常に重要 • InfiniBandは仕組み上,Ethernetよりも低いレイテンシを実現可能 → そのような分野で使われるように
なんで低レイテンシなの? (データ転送編) Ethernet 送信側アプリケーションのメモリ空間 → 送信側のカーネル上のメモリ空間 → 送信側のNICのバッファ → 受信側のNICのバッファ
→ 受信側のカーネル上のメモリ空間 → 受信側アプリケーションのメモリ空間 InfiniBand (RDMA) 送信側アプリケーションのメモリ空間 → 受信側アプリケーションのメモリ空間 ユーザメモリ空間を直接読み書きできる! ( RDMA: Remote Data Memory Access )
なんで低レイテンシなの? (ネットワーク制御編) Ethernet 通信相手を識別するID MACアドレス … 48bit IPアドレス … 32bit
(IPv4) / 128bit (IPv6) - 非常に大きい経路テーブル - CPUのキャッシュに載らない - 多層の階層型にせざるを得ない → レイテンシの増大 InfiniBand 通信相手を識別するID LID: Local Identifier … 16bit - 小さい経路テーブル - CPUのキャッシュに全部載せられる - 単層のテーブルにできる → レイテンシを抑えられる
自宅鯖におけるInfiniBand
なぜ自宅鯖でInfiniBand? • (中古なら)転送帯域に対して安い ◦ 主に使用されるのは HPC用途 ▪ 最新のものを一度に大量に使う ▪ 今の主流はEDR
(100Gbps) / HDR (200Gbps) ▪ 中古市場には旧規格のものが大量に流れる → 投げ売り状態に ◦ QDR (40Gbps) / FDR (56Gbps) の2ポートHCAで8000~10000円程度 (ヤフオク,ebay,etc...) ▪ 10GbE NICだと1ポートですら厳しい ◦ スイッチもそこそこ安い ▪ アンマネージドだと安ければ 2,3万 / マネージドでも10万切るくらいのものがある • アンマネージドでも HCA側のサブネットマネージャで制御すれば問題ない • TCP / IPを扱える ◦ IPoIB: IP over InfiniBand ▪ Internet Protocol (L3) をエミュレート ▪ テストしたところ TCPでは非常にパフォーマンスが落ちる場合があるので一癖ある ▪ あくまでL2ではInfiniBandなのでEthernetには接続できない(対向も HCAである必要がある)
自宅鯖に最適なHCA Mellanox ConnectX-3 VPI • OEMのものでもOK(Oracle,Dell,HPなど各社から出ている) ◦ Intel(QLogic)は別モノなので注意 • FDRまで対応
• Windows10に対応しているHCAの中で最安 ◦ 宅内オールInfiniBand化が可能(macOS?知らない子ですね ...) • VPI: Virtual Protocol Interconnect に対応 ◦ IBモード → ETHモードに変更できる ◦ L2レベルでEthernet対応の40GbE / 56GbE NICとして使用可能 ◦ コネクタもEthernet互換(QSFP+)なのでL1レベルで実質ただの NIC ◦ IPoIBと違ってパフォーマンス落ちない ◦ レイテンシはIBモードに劣る(当たり前)
実際にやってみた
やってみた 今回用意したもの • InfiniBand FDRのカード x2 (MCX354A-FCBT) ◦ カードあたり2ポート ◦
ヤフオクで1枚8500円くらい • 56Gbps対応ケーブル(AOC x1,DAC x1) ◦ AOCケーブルは1本6000円程度 ◦ DACケーブルは借りました • 鯖 x2 ◦ PCIの空スロット ◦ PCIe 3.0 x8 以上が必要 • やる気(一番大事)
セットアップ(ハードウェア編) 1. PCIスロットにHCAを設置 2. ケーブルを挿し込む 以上
セットアップ(ソフトウェア編) MellanoxのサイトからOFED (Open Fabric Enterprise Distribution) をダウンロード https://www.mellanox.com/products/infiniband-drivers/linux/mlnx_ofed • InfiniBand用ドライバ(という理解でOK)
• ConnectX-3以前はLTS版 • ConnectX-4以降は通常版 • 一応OSS版のOFEDもあるが... ◦ MLNX_OFEDのほうが安定している印象 ◦ おすすめはしない マニュアルどおりにインストールしたら • systemctl enable --now openibd.service • systemctl start opensmd.service これで終わり
疎通確認してみる 状態確認: ibstat, ibstatus, ibv_devinfo, etc…(本当に色々ある) 疎通確認: ibping
転送速度をテストしてみる の前に... InfiniBandの転送方式(サービスタイプ)は 4つ - Connected (1:1) - RC: Reliable
Connected (← TCPのイメージ) - UC: Unreliable Connected - Datagram (1:n) - RD: Reliable Datagram (← ユーザーランドには提供されていない ) - UD: Unreliable Datagram (← UDPのイメージ) 実運用で主に使用されるのは RCとUD 今回はRCのベンチマークを取ってみる
ベンチマーク RDMA RC TCP
ありがとうございました