インタビュー

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

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

DSSD D5は,2016年2月末にEMC Worldで発表された,いわゆるAll Flashストレージシステムです※1)⁠多数のサーバを同じラックに詰めて1つのシステムとして利用する,ラックスケールなアプライアンスであり,かつてない超高性能を狙ったものです。

筆者は2016年の3月にDSSD社を訪問して,その開発に深く関わってきたAndy Bechtolsheim氏にインタビューする機会を得て,DSSDの技術やその起業にまつわるストーリーなどを聞くことができました。

取材当日のAndy

取材当日のAndy

今回の取材では,D5がその高い性能を実現している機構を理解することに集中してAndyに質問しました。筆者は以前にも一度Andyを取材したことがありますが※2)⁠彼は技術的に意味のある質問には常に真っ直ぐ丁寧に説明してくれます。1時間少しの取材によって,筆者はDSSDがシステム全体のアーキテクチャと多数のエンジニアリングの積み重ねによって総合的に高い性能を実現していることを理解しました。

以下に取材で交わされた会話を元に,そのあたりの説明を試みます。

(すべての記述は筆者の解釈・理解に基づいたものです。もし錯誤があったとしてもご容赦ください)⁠

※1)
発表時のスピーチを動画で見ることができます。
https://www.emc.com/en-us/storage/flash/dssd/dssd-d5/index.htm
※2)
「歴史を変えるエンジニアリング」『Software Design』2009年6月号p.106-113)

DSSD D5

D5の開発ははじめ,そのためにスタートアップしたDSSD社によって行われていました。しかし2014年の5月にEMC社がDSSD社を買収したため,現在はEMCの製品として販売されています。

DSSDのエントランス

DSSDのエントランス

DSSDの起業は2010年の夏ですが,設立時からAndy Bechtolsheim氏が関わっていたことから注目され※3)⁠また長いステルスモードの間,何を開発しているのかほとんど表に出てこなかったために,長く「謎の起業」としてIT業界人から認知されていました※4)⁠

発表されたD5は,5Uサイズの筐体にNVMeベースの専用Flash Moduleを最大144Tバイト収め(データ格納量は100Tバイト)⁠最大48台のサーバを接続できる,ラックスケールの超高性能ストレージシステムでした。なんと10M IOPS,100GB/secスループットを遅延100μsecで提供するとあります。従来的なシステムの10倍高速である,と謳われています。

ラボで見せてもらったD5。球付きの小型ラックにセットされていたのでデモ用か。上下に4台のDELLサーバを配置

ラボで見せてもらったD5。球付きの小型ラックにセットされていたのでデモ用か。上下に4台のDELLサーバを配置

36枚の専用Flash Moduleと48台のサーバは大規模なPCIe Fabricを用いて相互接続されます。またシステム全体の制御のためにIntel CPUを2つ積んだコントローラボードが2枚入っています図1)⁠

図からわかるように,Fabricとコントローラボードを1つの組としてそれぞれ独立に構成することで冗長性を高めています。サーバマシンはDSSD専用のHBA(Host Bus Adapter)を2枚持ち,そこからこの2つのFabricの両方に接続します。最大4Tバイトの容量があるFlash Muduleもまたインターフェースを2つ持ち,この2つのFabricの両方に接続しています。サーバから両手を回して,2つのFabricを介してFlash Moduleを抱え込む格好ですね。

図1 D5システム構成図
“Scalable High Performance Flash Systems”,Jeff Bonwick Co-founder and CTO, DSSD / EMC, MSST 2016と取材時の情報からリドロー。筆者の取材から2ヵ月後にDSSDのCTOによって行われた発表です

図1 D5システム構成図 “Scalable High Performance Flash Systems”,Jeff Bonwick Co-founder and CTO, DSSD / EMC, MSST 2016と取材時の情報からリドロー。筆者の取材から2ヵ月後にDSSDのCTOによって行われた発表です

D5ではこれらすべての構成要素をPCIeで接続しています。つまり,サーバからFlash Moduleまでのすべての経路をPCIeで統一して究極の低遅延アクセスを手に入れるために設計されたシステムであり,それを実現するために設計努力を集中させています。

まず,PCIeは現代のサーバ向けCPUにとって最速のI/Oインターフェースであることに注意が必要です。Intelをはじめ,多くのプロセッサはPCIeインターフェースをCPUのシリコンダイ上に実装しています。つまりサーバCPUから直接出ているPCIeインターフェースからFlash Moduleまでのすべての経路をPCIeで統一することは,一切のプロトコル変換を取り除けることを意味します。

もし,I/O機器を何か別のインターフェース,たとえばSASを用いて接続にすると,常にPCIe―SASといったプロトコル変換(データの変換)が必要となり,そのぶんアクセス遅延が生じます。

NVMeやioDriveのようなPCIe直結のSSDはこの点を追求したものです。ただ,PCIeは一般にホストシステム内のスロットにデバイスを挿す形で利用されており,ケーブルを介して筐体外で接続する製品はとても少数です。

実際のところPCIeは上位層ではPCIバス互換ですが,内部的には階層化された(トランザクション層やデータリンク層などが普通にある)パケット構造とプロトコルで構成された,ほぼネットワークシステムと思って良いものです。そのままネットワークシステムとして使えるような構造であるはずなのに,ちょっともったいないと個人的には思っています※5)⁠

つまり,複数ホストからケーブルを介して共有ストレージをPCIeでアクセスするためには,その部分の技術開発が必要です。そしてできあがったシステム規模の大きさを見ると,投入したであろう開発努力の量に驚きます。各要素部品の構成を見るとFlash ModuleにはPCIe gen3を4レーン使ったポートが2つあり,これが36枚分の合計で72ポート。サーバのHBAも同じくPCIe gen3の4レーンインターフェースが2ポートで48台の96ポート。これらをPLX(現 Avago)製のPCIe gen3 64レーン(16ポート)のブリッジチップを12個使ってフルメッシュ接続したファブリックボード2枚で相互接続するのです。でかい,と言うほかありません。

あまりのゴージャスさに「すごいFabricですねえ」と筆者が言うと,Andyは「実のところ過去最大のPCIe fabricだと思いますよ。12もチップを使っていて,これを冗長性のために2つ,つまり24個使っているのですから。」と笑っていました。

※3)
AndyはSun Microsystems社の共同創業者であり,他にも多くの会社を起業し成功させたシリアル・アントレプレナーとして,あるいはGoogleをはじめとした複数企業のエンジェル・インベスターとして有名で,その挙動は常に多くの人の注目を集めています。
※4)
たとえば,GigaOmの2013年の記事では,彼らは高速ストレージのためのSoCと思われるLinuxを載せたチップモジュールを開発していると推定されています。D5にはそうしたチップは含まれていないので,いろいろと違う情報が飛び交っていたか,あるいはピボットしたか(設計指針などで大きな変更があったか)⁠なんにせよ謎の企業でした。
※5)
これは筆者の専門がネットワーク屋だからでもあります。また,興味のある人はAkib Networksの製品などを見るとおもしろいですよ。

著者プロフィール

安田豊(やすだゆたか)

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

バックナンバー

2016年

コメント

コメントの記入