最近のSSDの話をしました

おはようございます。ライトノベル好きの新人ツチノコです。オー・ドロボー!は読みましたか?

さて、本題ですが火曜日に開催している部内勉強会でSSD関連の話をしました。
そのうち、SSDの最近のtopicを話した部分をご紹介します。

SSDとは

SSD(Solid State Drive)は、Flashを用いてHDDの代わりに情報を記憶する装置として知られています。
コンピュータっぽい用語を使うと「半導体素子を用いた二次記憶装置」ということになります。

一昔前は大変高価なデバイスで利用方法も限定されていましたが、今ではノートPCからエンタープライズ向けのサーバまで幅広く利用されるようになりました。

HDDと比べると、SSDの利点と欠点は以下のようなものがあります:

  • 利点
    • ランダムアクセス性能がよいこと
    • 物理的な稼働箇所がないので、静音・壊れない
  • 欠点
    • 容量単価が高価
    • Writeしていくと性能が劣化

SSD最近のtopic

SSDはここ数年で大変進歩しており、現在でも次々と新製品・新仕様が出てきています。

  • PCIe-SSD
  • NVM Express
  • M.2(NGFF)
  • SATA Express
  • mSATA
  • などなど

このうちいくつかをピックアップします。

PCIe-SSD

厳密に定義された用語ではありませんが、PCI Express(以下PCIeと表記)で接続されたSSDの総称として、PCIe-SSDという表記を使うことにしてます(少なくとも関係者間で意味が通るので・・・)。

2007年Fusion-io社が最初の製品であるioDriveを発表しました(ご参考: 当時のPress Release(pdf/web archive))。
ioDriveはPCIe Card1枚で100k IOpsという性能でした(ご参考: HDDだと数100IOps, SAS SSDだと数10kIOps)。当時の従来製品であったSAS/SATA SSDと比較して高速でしたし、FC接続されたRAID装置に匹敵する性能を安価に実現できたことから一時代を築くこととなりました。

Fusion-io社のioDriveの成功以降、Virident社・Huawai社など各社がPCIe-SSD製品を出荷しています。
すでにDMM.comのインフラにも大量に投入されており、このブログでも性能評価結果を記事にしています。

NVM Express

NVM Express(以下NVMeと表記)の前に、まずVolatile MemoryとNon-Volatile Memoryの説明をしたいと思います:

  • Volatile Memory:
    電源を切ると内容が消える記憶装置のこと。いわゆるメモリなど。
  • Non-Volatile Memory:
    電源を切っても内容が消えない記憶装置のこと。いわゆるSSDなど。

さて前述のPCIe-SSDは標準化された仕様は無く、ベンダ各社が思い思いに仕様を決定していました。結果としてドライバがOSに標準で搭載されていなかったり、ツール類がベンダ独自のものだったりといった辛い状況を生みました。

そこで、2011年にPCIe-SSDを共通ドライバで扱うためにデバイス側も共通化しようという趣旨のNVMe仕様が策定されました(ご参考: NVMeの歴史)。

NVMe仕様とは「OS/ソフトウェアがNon-Volatile Memoryを扱うための、レジスタレベルのインターフェースの仕様」です。具体的にはレジスタマップ・Read/Write Commandのフォーマット・Commandを投入するためのQueueの構造などを定義しています。

逆にNVMe仕様では、デバイスの形状(Form Factor)やコネクタの形状は定義していません。ですので、NVMeに対応しているデバイスには、後述の製品のように、PCIe Cardの製品、2.5″ Small Form Factor(SFF)の製品、M.2形状の製品があったりします。
また、実はNVMe仕様はPCIe接続されたSSDに最適化されているものの、記憶素子も規定していなかったりもします。今はNANDの製品がほとんどですが、将来的には別の素子が利用されるかもしれません。

NVMe仕様に準拠したデバイスとしては以下のような製品があります:

Intel SSD 750など、2.5″ SFFの製品は従来のSATA/SAS SSDと同じ形状に見えますが、接続はPCIeになっています。

M.2(NGFF)

M.2仕様(以前はNGFF(Next Generation Form Factor)と呼ばれていました)は小型のデバイス用の形状・コネクタの仕様です。プロトコルとしてはPCIe/SATA/USBに対応しており、NVMe対応のSSDも実現可能です。

ノートPCやIntel NUCで採用されている他、サーバでの採用例も出てきました(ご参考: HP Moonshot, Microsoft OpenCloudServer)。

前述のようにM.2はPCIe/SATA両対応ですので、購入の際にはマザーボードとSSD両方がPCIeなのかSATAなのか確認しましょう。つながらないと大変かなしいことになります。

おわりに

それぞれのtopicについてもっと詳細に語りたい気持ちはやまやまですが、まずはざっくりSSD関連のtopicを紹介させていただきました。

各社のPCIe-SSDは今NVMe対応製品がちょうど出荷され始めたころです。今後はNVMeにシフトしていくはずですので、DMM.comのインフラに投入されているPCIe-SSDも順次NVMeに置き換わっていくはずです。

他にもSSDは新製品・新仕様が出てくると思いますので、引き続き関連動向に着目していこうと思います。

 

p.s. 最近おすすめのライトノベルはご注文はうさぎですか?のKoi先生が挿絵を描いている魔法少女禁止法です