読者です 読者をやめる 読者になる 読者になる

SSD情報

※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。 / # The contents expressed here are only my personal opinions.

SSDとストレージインテリジェンス(Storage Intelligence)仕様

SDC(Storage Developer Conference)の取材記事として、Storage Intelligenceの話題が出ていました。日本語記事は初めて見ました。英語記事でもこの話題はかなり少ないと思いますが。

pc.watch.impress.co.jp

具体的には4つの技術をSSDおよびストレージシステムに導入することを説明した。(1)SSDのバックグラウンド動作をホストが制御する機能、(2)SSDに書き込むデータのストリーム化、(3)ストレージのオブジェクト化、(4)ストレージ内部でのコンピューティング、である。

記事にあるようにSamsungが発表していたようですが、SSDベンダー各社取り組みあり、SAS, SATA, PCIe(NVMe)それぞれで標準化が進んでいます(記事でも下記スライド紹介されています)。SCSI(SAS)では標準化済み、SATAでは今年12月までに標準化予定、PCIe(NVMe)では現在議論中で来年以降標準化の動き、とありますね。

http://pc.watch.impress.co.jp/img/pcw/docs/722/291/09.jpg


ご存知の方も多いと思いますが、SSD記憶媒体であるNANDフラッシュメモリの特徴として、

  • 1)データ書き込みがページサイズという大きな単位(※SCSI I/Oの単位であるセクタサイズ(通常512byte)よりも大きなサイズ)
  • 2)データの上書きが仕組み上できないので、上書きする場合は一度消してから新しく書く(※データ消去はページサイズよりも大きなブロックサイズ)

という点があります。上書きができないというのはHDDとは大きく異なる点で、そんなことをホストアプリケーションやOSから意識する必要がないよう、SSD内部で仮想的に上書きできるようになっています。

最近の(少なくとも一定以上のランクの)SSDではデータ管理を仮想化しているため、物理アドレス論理アドレスはマップ管理されており、大きなサイズでデータ上書きする場合は、新しいブロックに新しいデータを書いて、古いデータを無効化するだけなので簡単(余分な内部ライトは発生しない)ですが、細かい単位でデータを上書きする場合は、古いブロックの上書きされていないデータを新しいブロックにコピーする必要があり、この時に余分な内部ライト(古いブロックから新しいブロックへのコピーライト)が発生するため、ライトの増幅ということでWrite Amplificationと呼んでいます。ライトの増幅比率をWrite Amplification Factor(WAF「わふ」)と言っています。SSDの書き込み回数はNANDの仕様で決まっていますので、SSDの耐久性を向上させるというのは、いかにWAFを小さくするかというシンプルな話になります。

(余談ですが、SSDはOP(「おーぴー」)(Over Provisioning)という余剰容量を内部的に持っていて、OP比率でWAFは大きく変わります。OPを横軸、WAFを縦軸のグラフにすると、グラフの形は結構ダイナミックに右に上がっていくイメージです。。OPが大きいSSDは耐久性及び書き込み性能が相対的に高く、OPが小さいSSDは耐久性及び書き込み性能が相対的に低いです。OPと書き込み性能が連動するのは、OPが大きいと書き込みに伴う内部処理のワーキングエリアが大きいので、色々制御を工夫する余地が広がるためです。SSDのコストはNAND価格の割合が高いので、OPを大きくするとその分SSDが高価になります。また、SSDの性能と消費電力も相関関係があり、消費電力が大きくてOPも大きくてよければ性能はかなり上げられます。消費電力は仕様上レギュレーションがありますし、コストも抑える必要があるので、制約の中でいかにチューニングするかというF1みたいな地味な話になります。今回は出ませんがDWPDと合わせて、OP,WAF,DWPDくらいが説明できればSSDにかなり詳しい人かと思います。)

Storage Intelligence仕様でのStreamは、WAFを低減させるために、ホスト(アプリ)からのI/Oストリームに番号を付けて、例えば、「もしアプリが上書きしないアプリなら、データをそっとしておく」ということを実現することができます。ブロック内に上書きしないアプリ(A)(メディアファイル等)が書いたデータと、上書きしまくるアプリ(B)(データベース等)が書いたデータが混じってしまうと、(B)の上書きの影響で、(A)のデータも将来的にブロックを引っ越しする必要が発生し、WAF的にうれしくない状況になるので、(A)と(B)のブロックを分けるようなことを実現できます。(何を言っているのか分かりますでしょうか。。世の中に100万円単位でしか出金できない銀行口座しかない場合、生活費と長期預金の銀行口座は分けておいた方が銀行に行く回数が減らせて効率的というようなことです。あ、でもお金には色が付いてないのでデータとは違いますね、、下のスライドでは赤いのを隔離しておこうということです。)

 

http://pc.watch.impress.co.jp/img/pcw/docs/722/291/07.jpg

 

もう一つの(簡単な方の)仕様のBackground operationは、SSDの内部処理は色々あって、ホストのアクセス性能に影響を与える可能性がある(発表資料では実際に影響が出ているようです)ということで、ホストアクセスが少ないタイミングをホストからSSDに教えるという仕様です。

 

SSDの作りは各社、各モデル色々あると思いますので、Storage Intelligenceの効果は各SSDに依存することになりますが、ホストからの設定等を行うコマンド仕様を取り決めしているという状況です。

 

SAS(SCSI)では、SBC-4 (SCSI Block Commands)の中でStorage Intelligence仕様が書かれています。

SCSI Block Commands - 4 (SBC-4)

 

 参考情報

2015年8月のFlash Memory Summitでの話題に関連した記事:

www.marketwired.com

The Storage Intelligence feature of SBC-4 provides SSD applications control over the access and grouping of the physical information (Streams) written to the drive, allowing for improved performance and endurance through the reduction of garbage collection and the undesirable phenomenon of write amplification. The feature also allows for system control of background activities such as housekeeping so tasks can be performed during optimal times of low usage in order to meet data throughput requirements during peaks of high demand.

"Because flash memory must be erased before it can be rewritten, there are many factors that affect the performance of an SSD,"

 "The Storage Intelligence feature of the SCSI standard is a significant industry advancement that will optimize SSD applications, boost storage system performance and increase the endurance of SSD drives."

 

参考資料

VIOPS10: SSDの基本技術と最新動向