この記事で紹介している製品
TRIM
SSDの効率化を目指して
TRIMとは実際にはATAやNVMeで規定されているData Set Managementコマンドのことです。通称名のTRIMの呼び方で広く知られています。
TRIMコマンドは、ホスト側のファイルシステムが使っていない(削除しても構わない)データの情報を、ホストからSSDへ通知するコマンドになります。
SSDの内部処理の効率改善には、オーバープロビジョニングを使用する方法があります。しかしユーザー様(OSやソフトウェア)より、SSDに対してTRIMをすることにより更に効率化をすることができます。
予備知識として複数の項目を考える必要があるので、順番にご説明いたします。
ファイルシステム上のデータ書き換え
ファイルシステム上のデータ削除=データを無効化
まず一番最初に、ファイルシステムからのデータ書き換えについて考えます。
ホストがファイルシステム上でファイルを削除した時、ファイルシステムのインデックス上で該当するデータ部分を無効とし、上書きをしても構わないものとしますが、上書きしても構わないことがSSDに通知されるとは限りません。
SSDはそのデータ部分が上書き可能であることを通知されておりませんので、そのデータが記録されている場所を再利用(=EraseおよびProgram)することはありません。このため、SSDの使用(データの書き込み)を繰り返すと、SSD上にはホスト側のファイルシステム上は無効となっているデータ(ゴミデータ)が増えていきます。
SSD上のデータ書き換え①
ガベージコレクション
次にSSD上のデータ書き換えを対比して考えます。
SSDで使用しているNAND Flash Memory(NAND)は制約があります。
1.既に書き込まれているデータに対して、上書きができない。
2.データを消去する時は、PageではなくBlock単位でしか消去できない。
そのためデータを書き換えるためには一度データを消去して空にしてから書き込む必要があります。
しかしBlock単位でしかデータを消去できないので、無効データを集めてから消去が行われます。
この動作をガベージコレクションといいます。
オーバープロビジョニング
ページ単位で書き込み可能なSSDで書き込みが行われると、どこかのタイミングで必ずガベージコレクションが発生します。しかし、データを消去してから書き込みを行うと書き込みの効率が悪く、パフォーマンスが下がってしまいます。
そのため、既に消去済みで空いている箇所(Page)にデータを書き込み、古いデータは無効データとして取り扱うことでパフォーマンスへの影響を最小限にしています。
SSD上のデータ書き換え②
オーバープロビジョニング領域
前項で説明した通りSSDへデータを書き込みする時には、既に消去済みで空いている領域が必要になります。この用途のため、SSDのデータ保存領域にはユーザー使用領域とは別に通常は数%にあたる余剰領域(OP領域:オーバープロビジョニング領域)が確保され、SSDの書き込み効率がよくなるようにしています。
実際にはSSDに書き込まれている有効データが少ないほど、残りのユーザーデータ領域とOP領域とを合わせてたエリアを、書き込み用の空き容量として使うことができるため、この空き容量が大きいほどデータの書き換えや、ウェアレベリングなどのSSD内部のデータ処理が効率よく実行できるようになります。
つまり、SSDへのファイル書き込み(書き換え)を繰り返すと、SSD側の内部処理を行うための空の領域が少なくなってくるため、効率が下がって行くことになります。
TRIMコマンド
TRIMコマンドの動作
TRIMコマンドは、具体的にはホストからSSDに対してファイルシステム上の無効データを通知することで、ファイルシステム上のゴミデータをSSD内部でガベージコレクションの対象として取り扱うことができるようになります。
TRIMコマンドの効能
TRIMコマンドによってSSDの内部情報を更新したことで、SSDは次のガベージコレクションのタイミングで、該当する不要分をOP領域とすることができます。これにより、書き込みの効率が向上(復帰)します。
TRIMコマンドの噂話
TRIMを使用すると、SSD内部で消去が発生する為、多用するのは好ましくないと思われている方も多いと聞きます。
しかし、TRIMは無効データの通知のみで実際の消去は行いません。消去はあくまでSSD側の処理になります。
むしろ適切な頻度で無効データの通知を行った方が、SSD側でガベージコレクションやウェアレベリング等の内部処理が効率よく行えるようになるため、書き換え効率(WAF:Write Amplification Factor)の向上や製品の長寿命化につながります。
このようにTRIMを正しく活用することで、SSDの内部処理の効率化が図れるため、書き込みパフォーマンスの安定化、書き換え効率の向上や長寿命化につながります。
他社商標について
記事中には登録商標マークを明記しておりませんが、記事に掲載されている会社名および製品名等は一般に各社の商標または登録商標です。
記事内容について
この記事の内容は、発表当時の情報です。予告なく変更されることがありますので、あらかじめご了承ください。