SSDの選びかた(3/5):寿命を縮める使いかた1

SSDの選びかた(3/5):寿命を縮める使いかた1

この記事で紹介している製品

おことわり

 この記事は、2019年11月にQiitaに投稿した記事を加筆修正したものです。

はじめに

 前回の記事で、「TBWの大小を左右する要因はTBW以外にSSDが搭載するNANDフラッシュメモリの寿命を消費する要素の大きさである」と説明しました。

 ということは、「TBW以外にSSDが搭載するNANDフラッシュメモリの寿命を消費する要素」が大きくなると、結果としてTBWが小さくなります。

 上記要素の大小は製品の特性に大きく依存するため一概に「大きい=悪い」とは言えません。ただ、使いかたを工夫することで過度な増大の防止が可能です。

 そこで、今回から2回の記事で「SSDの寿命を縮める(=TBWが目減りする)使いかた」を説明します。今回は第1回です。

 この記事に記載した使いかたを避けることで、TBWを最大化し、SSDの寿命を最大限活用できます。

まとめ

  • 容量に余裕なく使うのは×
  • 広いLBA空間にランダムライトするのは×
  • 同じデータを読み出し続けるのも×

容量に余裕がないのはダメ!

<ポイント:容量に十分な余裕がある状態で使えばSSDにやさしく性能も安定する>

 NANDフラッシュメモリは、ブロック単位で消去しないとデータを書きこめません。そこでSSDは、書きこみ可能なブロックがなくなる前にブロックを再利用して書きこみ可能なブロックを作り出し、ストレージとしての機能を維持します。

 あるブロックの再利用を目的として、そのブロックの有効なデータと無効なデータを選り分けて有効なデータのみ別のブロックにコピーする処理、これがGarbage Collection (GC)です。

 ある仮定の下では、有効データ量がSSD容量の50%である場合と80%である場合を比較すると後者のほうがGC時に3.2倍も寿命を消費することがわかりました(詳細はQiitaの記事参照)。

 このことから、SSDは容量に余裕を持ち使うべきです。そして、最も簡単に容量の余裕を作る方法はできるだけ容量が大きいものを選定することです。

 例えば、格納見込みデータサイズが100 GB程度の場合でも、容量128 GBのSSDではなく256 GBのSSDを選択したほうがはるかにSSDをやさしく使うことができます。

広いLBA空間にランダムライトするのはダメ!

<ポイント:HDDと比べるとはるかに性能は高いがランダムライトは苦手>

 「プチフリ」と呼ばれた性能低下が確認されていた頃と比較して、SSDのランダムライト性能、特にサイズが小さい(例:4 KB)ランダムライトの性能はとても高くなりました。

 この要因のひとつは、ホストがデータの読み書きで指定するアドレス(Logical Block Address: LBA)とそのLBAの最新データが記録されたNANDフラッシュメモリ上の位置の対応を管理する方式の違いです。

 当社製SSDを含め、近年のSSDの多くが採用する管理方法は「ページマッピング」や「ページレベルマッピング」と呼ばれる方式です[1][2][3]

 このページマッピング方式の導入によって、小サイズの書き込みを効率良くNANDフラッシュメモリに記録して管理できるようになり、特にランダムライト性能が向上しました。加えて、この方式はOSの、特にWindowsのアクセスパターン[4]と相性が良く、実使用環境での性能も大幅に向上しました。

 なお以前の管理方式は、NANDフラッシュメモリのブロック(サイズ)単位で管理することから「ブロックマッピング」や「ブロックレベルマッピング」と呼ばれます。また、この2つの管理方式を組み合わせた「ハイブリッドマッピング」などと呼ばれる方式もあります。

 しかし、ページマッピング方式を用いても、LBA空間の広い範囲にランダムライトをされるとGCの効率が悪くなります。またそのような状況では、ページマッピング方式のデメリットである管理情報の肥大化が寿命に影響を与えるようになります。

 GCの効率悪化はGCでのコピーサイズ増加つまり寿命消費量の増加を意味しますので、結果としてTBWの目減り量が多くなります。つまり、LBA空間の広範囲にわたるランダムライト(特に小サイズ)はSSDにやさしくない使いかた、となります。

 一方、シーケンシャルライトであれば、GCの必要がほとんどないか比較的効率良くGCを実行できますので、結果的にTBWの目減り量を少なくできます。

 「SSDのランダムライト性能が高いことと、SSDにとってランダムライトが得意かどうか、またランダムライトがやさしい使いかたかどうかは、別の話である」ことに留意すると、よりSSDをやさしく使うことができます。

同じデータをReadし続けるのもダメ!

<ポイント:特定のデータを頻繁に読みだすワークロードは要注意>

 NANDフラッシュメモリにはリードディスターブ(Read Disturb)という特性があります。

 この特性によるエラー数の増加には、例えば読みだし回数を記録して閾値超過を検出した時に当該データを別の場所にコピーする、などの対応が必要となります。当社製SSDには、このリードディスターブ対策としてリフレッシュが実装されています。

 ただ、この処理もデータコピーつまりNANDフラッシュメモリの書き込みが発生するため、寿命の消費を増やしTBWを減らす原因になります。

 つまり、SSDの同一データを短期間に多数回読み出す使い方はNANDにやさしくないです。

 この特性が問題となる読み出しの頻度や回数は、NANDフラッシュメモリの特性やSSDの管理アルゴリズムに依存します。

 当社製SSDでは、使用するNANDフラッシュメモリの特性を社内実験で確認し、上記リフレッシュを実施する読み出し回数などを設定しています。

おわりに

 この記事では、SSDの寿命消費の視点から、SSDの「やさしくない使いかた」をまとめました。

 SSDの寿命に影響を与える「使いかた」のポイントは多岐にわたりますが、今後SSDを選ぶ際のご参考になれば幸いです。

 次回の記事も引き続き、SSDの「やさしくない使いかた」を説明します。

References

[1] Kim, et al., “A Space-efficient Flash Translate Layer for Compactflash Systems”, IEEE Transactions on Consumer Electronics, vol. 48, no. 2, pp. 336-375, May, 2002
[2] Hu, el al., “Achieving page-mapping FTL performance at block-mapping FTL cost by hiding address translation”, in proceedings of IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST), May, 2010
[3] A Summary on SSD & FTL、2022年6月14日閲覧
[4] 麻生、花房、「SSDの仕組みと特徴」、Design Wave Magazine, no. 132, page 36, October, 2008

他社商標について
記事中には登録商標マークを明記しておりませんが、記事に掲載されている会社名および製品名等は一般に各社の商標または登録商標です。

記事内容について
この記事の内容は、発表当時の情報です。予告なく変更されることがありますので、あらかじめご了承ください。

お問い合わせ