Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
自宅鯖はいいぞ 〜InfiniBand編〜
Search
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
100
輪講資料: パタヘネ 6章
190ikp
2
310
Other Decks in How-to & DIY
See All in How-to & DIY
ドローンをAWSで制御してみた
nagi900
0
200
OSSコミュニティがくれた「人との繋がり」
tanahiro2010
2
470
エッジで動くNode-REDを作る実験 #noderedjp #noderedcon
n0bisuke2
0
680
M5StickS3触ってXiaoZhiAI触ってみた #にぼし香 #iotlt
n0bisuke2
0
320
MustをWillに変える技術 〜アイドル・郁田はるきが"すべき"の壁を超えるまで〜
subroh0508
1
2.1k
NJ-WS10Aを使ったおいしい使い方
masafumi_ohta
0
110
画面の向こうから「気づき」を得る 画面の向こうを「物差し」として捉える
subroh0508
1
480
餃子コミュニティの活性化/TechGYOZA
nishiuma
2
420
進捗報告 + 開発の連鎖
tanakamasayuki
1
520
JAWS-UG初心者支部 JAWS-UG Updates
awsjcpm
4
160
AWS Summit Japan 2025 個人的参加レポート
midnight480
0
540
Linuxが動く自作SBCを作る話.pdf
daimiya
1
980
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
We Have a Design System, Now What?
morganepeng
55
8.4k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
Tell your own story through comics
letsgokoyo
1
1.1k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
Designing for Timeless Needs
cassininazir
1
520
Mind Mapping
helmedeiros
1
400
A Soul's Torment
seathinner
8
3.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
For a Future-Friendly Web
brad_frost
184
10k
Done Done
chrislema
187
17k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
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
ありがとうございました