インタビュー

超高速Flash Storage Systemへの挑戦~DSSD D5の設計について,Andy Bechtolsheimへのインタビュー~[後編]

この記事を読むのに必要な時間:およそ 4 分

Flash Moduleと接続ケーブル

取材では取り出したFlash Moduleを見せてもらいました。外側はアルミで覆われており,ちょっと重い感じです。モジュール内部ではFlashチップが直接このアルミの外板に接触しています。これを19inchラック幅いっぱいに並べるのですが,彼らはフラッシュメモリの実装厚みを計り,排熱のために空気が通り抜ける隙間を合わせてモジュールの枚数を 36 と決定したようです。

風が通る隙間を空けて配置されるFlash Moduleとそれを上下にはさむコントローラユニット

風が通る隙間を空けて配置されるFlash Moduleとそれを上下にはさむコントローラユニット

  • Andy:外側はヒートシンクになっています。全体に並列にアクセスするために熱くなるんです。Flash自体はローパワーなのですが,ミリオン単位のIOPSを受けるとフラッシュチップとコントローラのチップを合わせて,50Wになるんです。

  • 筆者:うお……(50W×36モジュールで1.8KWにもなります)

  • Andy:性能のためです。もしI/Oがなければほとんどゼロなんですが。つまりハイパフォーマンスがこれだけのパワーを持っていくのです。D5 1つで最大3,000W。通常動作時はこの半分と思えば良いでしょう。タダでハイ・パフォーマンス,というのは存在しないんだよ(ははは)

  • 筆者:まあ3KWでもいいでしょう。HPCの世界ではそういったことが起きていますし,最近のアプリケーションは徐々にHPCに近づいていますからね。

  • Andy:そのとおり。多くのHPC(企業)や政府がそう考えていると思います。ともかくこれが業界で初めてのdual portでhot swap可能なNVMeモジュールです。バッテリはなく,スーパーキャパシタが入っており,これで書き込み途中に電源喪失があってもデータを最後まで書けます。現在D5には4TバイトのFlash Moduleが用意されていますが,次の18ヵ月で倍に上げていきます。

    このFlash ModuleはDSSD専用のものですが,HBAとケーブルもやはりDSSD製です。HBAはPCIeブリッジチップが1つ載っているだけで,それほど特別なものではないと思われますが,筆者が驚いたのはむしろそのケーブルです。持ってみるとPCIe gen3 4 laneを通すとは思えないほど細くしなやかで,見るからに小さなそのコネクタにパッと見て数えるのが困難なほど細かなピッチでピン接点が並んでいます。

  • 筆者:このケーブルですが……

  • Andy:ケーブルは特別製です(Andyは質問の途中で答える傾向がある。負けずに質問を続けなければなりません)⁠

  • 筆者:とても細いですね。距離について気にしているんですが。

  • Andy:接続できるのは1ラックです。光ファイバについて探しています。それで30mかそれ以上まで届きますが,しかし今は(銅線のケーブルで)とにかく1ラック距離です。

  • 筆者:なるほど。ちょっと気にしていました。というのもユーザは大きなサーバを使いたかったりします(1ラックに入るサーバの数は限られている)⁠

  • Andy:そう,だから2ラック目にも(なんとか)届く。つまり左右隣のラックにサーバを置いてそこに届くようにすることはできます。

写真の上端にHX-2と書かれているのがHBAカードです。P1,P2と2つのポートにコネクタが挿し込まれているのが見えています。写真下側のオレンジの蓋がしてあるところがケーブルの反対側の挿し込み口,つまりファブリックのポートです。19inch ラックに48ポート,これだけ余裕を持って並べることができています。いかに細いコネクタとケーブルなのかわかると思います。

HBAカードと各種ポート

HBAカードと各種ポート

Multicast RDMA

ディスクアレイで利用されているRAIDなど,データ保全のために冗長な書き込みを行うのは一般的なことです。D5ではFlash Arrayに適したエラーリカバリ技術としてCubic RAIDと呼ばれる方法を開発してデータ保全を図っています。

が,Cubic RAIDについては情報が多くある※1ので本稿では取り上げません。Cubic RAIDのこともいくらか聞いたのですが,そこでおもしろかったのはAndyがCubic RAIDのリカバリ手法を「SUDOKU(数独)みたいでしょ?」と言ったことでしょうか。一瞬何のことかわからず混乱しましたが,すぐにあまりにもうまい表現だと思って大笑いしました。

さて,筆者が興味があるのはDSSDのもう1つのトリック,Multicast RDMAです。DSSDは多くの特許申請をしていますが,その1つにMulticastを用いたRDMAがあり※2)⁠これによって冗長書き込みを果たしていると思われました。

  • 筆者:私の理解ですが,Multicast RDMAってのは業界で初めてではないですか?

  • Andy:そのとおりです。シリコン(FabricのPCIeスイッチチップ)には(以前から)導入されていたのですが,今まで誰も使ったことがなかったのです。まず,データを書き込むと,1つはコントローラのDRAMに書かれ,それ以外にもコピーが2つFlash Moduleに作られます。しかし我々は複数回の転送を行いません。データをPCIe Fabricに入れて,これらのコピーを並列にFlashに書きます。

この説明で,どこかでデータストリームをMulticast経路に入れることはわかります。ただし,それは名称からしてほぼ自明です。筆者の興味はその先にありました。

  • 筆者:OK,ただ私はスイッチレイヤでのオーバーサブスクリプションが気になるのです。

  • Andy:いや,これ(Multicasting)はLower Layerで行われます※3)⁠

  • 筆者:どこですか?

  • Andy:Flash Module に直接つながれているところ図2参照)です。ここで複製されるのであって,上の PCIe Switch では行われません。

図2 Multicast RDMAにおけるデータストリームの複製

図2 Multicast RDMAにおけるデータストリームの複製

なるほどこの位置での複製であれば,パケットのロストは生じないでしょう。つまり,下側のPCIeブリッジチップはクロスバースイッチとしてCut and Throughをするのですから, Multicast動作をしたときに片方のポートでだけオーバーサブスクリプションが生じることはありません。

D5の設計上の工夫は,サーバとFlash ModuleをノンブロッキングなPoint to Pointで直結し,PCIeのRDMAによる高帯域と低遅延を最大限利用することに集中しています。そのゴールに対してデータの冗長書き込みは厄介な問題の1つなのですが,DSSDはこれをPCIe Fabricに眠っていた機能を更に踏み込んで利用することで解決しているわけです。

なお,コントローラのDRAM総量はもちろん100Tバイトもありませんから,そこへの書き込みは一時的なものであるはずです。この筆者の想像を裏付けるものとして,Cubic RAIDによる保護が安定するまでの一時的なものと読める説明があります※4)⁠

取材でもCubic RAIDのCheck-sum領域の計算と書き込みは事後(lately)に行われると説明されていましたから,それが完了するまでの一時的な存在と考えられます。なお,D5の100Gバイト/sec帯域はreadに関する数字で,writeは20Gバイト台であるとJeff BonwickがMSST 2016のQAで答えています※5)⁠コントローラCPUへのPCIe接続の総帯域は 48GB/sec あると思われるので,それで充分ということでしょう。

※1)
たとえば,⁠EMC DSSD Cubic RAID⁠(PDFファイル)⁠
※2)
US 8819304, “Storage system with multicast DMA and unified address space⁠
※3)
第一答が文字どおりこうでした。Andyとの対話ではよくあるパターンで,その後に相応の説明を要することでも,Andyはそれらを飛び越して最終の答を最初に出してきます。このQAに限らず,多くの場合そのようにして対話は進みます。今回の筆者の質問は「オーバーサブスクリプションによる経路途中でのデータロストがあると,そのリカバリに備えるための同期処理等が性能劣化を引き起こす筈だが,どうしているか?」というものですが,これを途中で遮ってこのように返事をしました。手っ取り早くて良いのですが,ちょっと大変です。この時も結局「ロスト対策の機構が遅延を追加する」ことについてはお互い一言も出さないまま終わりました。
※4)
⁠Software Aspects of the EMC DSSD D5 Rack Scale Flash Storage Platform⁠
※5)
⁠DSSD: Scalable High Performance FLASH Systems⁠

著者プロフィール

安田豊(やすだゆたか)

京都産業大学コンピュータ理工学部所属。KOF(関西オープンフォーラム)やiPhoneプログラミング勉強会などのコミュニティ活動にも参加。京都の紫野で育ち,いまは岩倉在住。せっかく復帰させたCBX 400Fに乗る機会がなく残念な日々を過ごしている。

バックナンバー

2016年

コメント

コメントの記入