著作一覧 |
昨日はカジュアルにインターコネクトについてゆるい勉強会をやろうという田籠さんと青木さんの雑談から始まった(多分、これっきりで終わりの)インターコネクト・カジュアルに参加しにさくらインターネット。
以下メモ。
最初は田籠さんの基調講演(なのか?)で、Interconnect Variations。
-Interconnectとは
- ざっくり言うと、主に分散計算機システムのノード間通信をどう実現しているか。
* HPC(スパコン)
* 分散データベースシステム
最近だとhadoopなど
* もう一個あったような
-なぜ必要か?
* 目的に対して十分に高速なシステムがほしい
- 特にレイテンシーに要求が高い
→ これらを満たすためにインターコネクトに工夫をする
例)Hadoop
特殊。
分散計算機システムであるが、クラシカルな分散計算機システムに比較して粒度が大きい
分割した単位については1つのノードに閉じる
→並列DBやHPCに比較して粒度が大きく、
インターコネクトへの要求が低い(ラフな要求しかしない)
処理対象がどのノードにあるかHDFS上を調べてそこで計算する。
HDFSのLocality considerationを利用する
インターコネクトとしてはHWにイーサネットしか要求しない
-Egeneral BladeFrame
ラック内に1つスィッチ(TOR ― Top of Rack)があり、それで繋がっている。
Central
+ +
TOR TOR
node node
node node
node node
……
ブレード間の通信
エンクロージャ内に物理接続-汎用ケーブルを意識しなくても良いので物理層(ちょっと特殊)で稼ぎ、ネットワーク層は普通
→1個のラック丸々筐体(空間効率は良くない)
電気信号のレイヤーでスィッチングを行っている (HW)
ブレードに対して仮想化を提供する機能がある
→ ネットワーク仮想化のためにそのような特徴がある (SW)
→ 結果的にInterconnectが速い
Oracle RACを走らせると素晴らしく速い (HW+SW)
処理の要求する粒度によって異なるInterconnectを求められる
ー何をシェアするかでInterconnectの特徴が決まる
鷲北さん
InifiniBandを使う(さくらのクラウドの場合)
民生で使えないか実験した
繋いでみてスループットを調べた
Linuxサーバーでドライバが使えるか
10GbEとの比較
4ノードのサーバーをメッシュで繋ぐと4ノードが1つに見えるというLinuxを提供するベンダーがいた
・利点
ポート単価が安い
レイテンシが低い → とにかく速い
広帯域
40Gb製品で27Gbくらい出る (10Gbイーサネットと同等以上で帯域が広い)
・欠点(サービスとして使う場合の)
社内での運用実績がない → 障害発生時に対処が大変(自分達でその場で対処が必要となる)
ドライバ安定性が未知数 → サービスをやる上には……(イーサネットは枯れている)
インターネットにどう繋ぐか? → 最終的にはインターネットにつないでサービスを届ける
GWやブリッジが必要だがどうすればよいか?
Xsigoという製品を使う
→ さくらの第一世代(4年目)
インターネット-Xsigo-InfiniBand-ストレージ
+
++++++++++++++++++
ホスト(VM,VM,VM) ホスト(VM,VM,VM) ホスト(VM,VM,VM) ホスト(VM,VM,VM)
ホスト(VM,VM,VM) ホスト(VM,VM,VM) ホスト(VM,VM,VM) ホスト(VM,VM,VM)
ホスト(VM,VM,VM) ホスト(VM,VM,VM) ホスト(VM,VM,VM) ホスト(VM,VM,VM)
……
普段イーサしか使わないさくらでどうだったか
2011/11 サービス開始
当初のトラブル:ストレージの問題(InfiniBandをネイティブサポートしている唯一の製品)
opensmの設定:2か月くらい煮詰めて以降トラブルなし
(InifiniBandのプロトコル由来の問題は発生していない)
ノード数500
Q:コリジョン? (帯域不足、パケットロス)→ 無い
→ 現在はイーサネットに戻した
ポイント:
発熱:HCA(トラフィックがかかると温度が上がる)空調やエアフローに気をつかう
設置時の不要:(イーサとの比較)
ケーブルが太くて硬く取り回し時に無理がかかる
接続不良、ケーブル断などの初期不良
慣らしが2~3週間必要(イーサは1週間くらい)
HCAの故障
年間10枚程度
10GbE(NIC)に比べて若干多いが、深刻ではない(冗長が取れている)
エラーレートが徐々に上がる(NICはプツンと壊れるがそうではない)
→監視しづらい
→ 閾値が読みづらい
ドライバ:
Xsigoのドライバが鬼門
Oracleに買収されてしまった(アップデートが止まった→システムのアップデートができない)
Mellanoxのドライバが最も安定している
InifiniBand
IBで閉じているネットワークなら最強
Ethernetとのブリッジが課題
2015年現在は価格優位性が小さくなった
10GbEが安くなった
(ぎりぎりIBのほうが安い)
データセンターの運用はEthernetの方が楽
さくらのクラウドでは、ノード間のトラフィックがそれほど伸びていない
→ノード数の上限を決めている(これが10GbEで足りている一番の理由)
ポート単位の監視ができない(スィッチではできないのでサーバー側で行っている)
『京』
豊島さん
富士通次世代TC開発本部で京のインタコネクトを作っていた
Tofu Interconnect → ICC(実装)
6次元メッシュ/トーラス
(次元によってメッシュだったりトーラスだったり)
→3次元が2つ
高機能
高性能
信頼性
柔軟性
Cool Chips XV - 「京」のTofuインタコネクトの詳細が明らかに
Teradata
青木さん
そもそもなぜインターコネクトか。
Shared Nothingはインターコネクトが問題となる
ノードローカル処理→いくらでも性能がリニアに伸びる
データ再分散→インターコネクトがボトルネックになる
・他ノードのデータとのジョイン
・他ノードのデータとGroup Byしたいとき
テラデータは1984年から並列DB。
BYNET。
現在は最高級モデルのみBYNETで、中級品はInfiniBand。
・京のICC(Tofu)がなんかやたらとかっこいい。
6次元ならコネクタは12個必要なはずなのに10しかない。隣接する2ノードについては(うむ、一晩たったらその時点ではわかったつもりだったが、忘れきっている)。なぜ12個と求まるのか田籠さんに聞いておしえてもらう(1次元はリングなのでノードから2本(数珠つなぎ)。2次元は4本(十字の交点がノード)。×2となる)。3次元は立方体の角の3辺と3面の対角線で6本と考えればよいのかな?
豊島さんいわく、6次元になると立体で考えるよりも、各駅停車、急行、快速でイメージするほうが理解しやすい。
メモリアクセスはCPUを通して行う(のはなぜかという質問が出て、これもその場ではなるほどと思ったが忘れた)。
終了後入った店のローズビアというのはおいしかった(ビールは口に合わないので普段はまったく飲まないのだが)。
ジェズイットを見習え |