web-dev-qa-db-ja.com

SSDのオーバープロビジョニング-それはまだ保持されますか?

複数の(ただし最近ではない)ソースでは、ドライブの摩耗を減らすために、SSDスペースの約7%を未割り当てのままにしておくべきであることが示唆されています。それは今のところまだ有効ですか、それとも状況は変わりましたか?

14
marmistrz

Windowsは通常TRIMを使用します。つまり、ファイルシステムにX%の空き領域がある限り、ドライブはX%を未割り当てとして認識します。[*]オーバープロビジョニングは不要です。

例外:歴史的に、Sandforceコントローラ/ファームウェアを搭載したSSDは、TRIM :(。

フルドライブでのパフォーマンスの低下は重大な場合があり、他の一部のドライブよりもさらに大きくなります。これは、書き込みの増幅が大きくなるため、摩耗が増加します。出典:Anandtechのレビュー。

したがって、それが必要なのは、

  • tRIMが使用されるかどうかはわかりません。 AFAIKは、いくつかの古くて動作が悪いドライブでのパフォーマンスの問題のため、Linuxではデフォルトでまだ有効になっていません。
  • または、Sandforceドライブへの書き込みについて心配している(そして、コンテンツがスマートコントローラーによる圧縮の影響を受けない)。

LinuxでTRIMを有効にするのはそれほど難しくなく、問題に気付くことはほとんどありません。

幸いなことに、いくつかの最も人気のあるブランドが独自のコントローラーを作っています。 Sandforceコントローラは、以前ほど人気が​​ありません。 Sandforceの問題は、その時代に非常に積極的だった特定の「スマート」コントローラー設計に懐疑的になります。 Sandforceへの謝罪ですが、影響を受けるコントローラーモデルの正確なリファレンスはありません。


[*]断片化を減らすために、十分な空き領域があるようなファイルシステム。したがって、TRIMは素晴らしいです。2つの安全マージンを一緒に追加する必要がないため、同じ空きスペースが両方に役立ちます:)。ドライブは、割り当てられていないスペースを利用してパフォーマンスを向上させるだけでなく、言うまでもなく摩耗を防ぐことができます。

15
sourcejedi

最新のSSDコントローラーは十分にスマートなので、通常、日常の使用ではオーバープロビジョニングは必要ありません。ただし、主にデータセンター環境では、オーバープロビジョニングが推奨される状況がまだあります。オーバープロビジョニングが役立つ理由を理解するには、SSDの仕組みを理解する必要があります。

SSDは、データの書き込み時にフラッシュメモリの制限に対応する必要があります

SSDは、NANDフラッシュメモリと呼ばれるタイプのメモリを使用します。ハードドライブとは異なり、データを含むNANDセルは直接上書きできません。ドライブは、新しいデータを書き込む前に既存のデータを消去する必要があります。さらに、SSDは通常4 KBから16 KBのサイズのページにデータを書き込みますが、ブロックと呼ばれるページの大きなグループのデータのみを消去できます最近のSSDでは通常、数百KB〜数MBのサイズ。

NANDも 書き込み耐久性に制限があります 。ブロックを消去するためにデータを不必要に再書き込みすることを避け、 ブロックが不釣り合いな数の書き込みを受け取らないようにするために 、ドライブは書き込み、特に小さなランダム書き込みを異なるブロックに分散しようとします。書き込みが古いデータを置き換える場合、古いページは無効としてマークされます。ブロック内のすべてのページに無効のマークが付けられると、ドライブは有効なデータを再書き込みすることなく自由に消去できます。

SSDが最適に機能するには空き容量が必要ですが、すべてのワークロードが空き容量の維持に役立つわけではありません

ドライブの空き容量がほとんどないか、まったくない場合、書き込みを分散することはできません。代わりに、書き込みがドライブに送信されると、ドライブはすぐにブロックを消去し、それらのブロック内の有効なデータを他のブロックに書き換える必要があります。これにより、ドライブに送信されるよりも多くのデータがNANDに書き込まれます。これは、書き込み増幅として知られている現象です。書き込みの増幅は、 オンライントランザクション処理(OLTP) などのランダムな書き込み集中型ワークロードで特に顕著であり、パフォーマンスと耐久性が低下するため、最小限に抑える必要があります。

書き込みの増幅を減らすために、ほとんどの最近のシステムは[〜#〜] trim [〜#〜]と呼ばれるコマンドをサポートしています。消される。ドライブは、オペレーティングシステムによって論理的に削除されたデータがまだ有効であると想定する必要があるため、ドライブが適切な空き領域を維持するのを妨げるので、これは必要です。

ただし、ドライブが外部エンクロージャーにある場合(ほとんどのエンクロージャーはTRIMをサポートしていない)、またはドライブが古いオペレーティングシステムで使用されている場合など、TRIMができない場合があります。さらに、非常に集中的なランダム書き込みワークロードでは、書き込みは基礎となるNANDの大きな領域に分散されます。つまり、ドライブがほぼいっぱいになっていなくても、データの強制的な再書き込みと付随する書き込み増幅が発生する可能性があります。

最新のSSDは、古いドライブよりも書き込み増幅が大幅に少ないですが、一部のワークロードは、オーバープロビジョニングの恩恵を受けることができます

最古のSSDには、必要以上に頻繁にデータを書き換える傾向があった、それほど成熟していないファームウェアがありました。初期のIndilinxおよびJMicronコントローラー( JMF602はスタッターおよび極端なランダム書き込みパフォーマンスで悪名が高かった )は、集中的なランダム書き込みワークロードの下で、非常に高い書き込み増幅に悩まされ、時には100xを超えました。 (ちょうど1 MBを書き込もうとしているときに、100 MBを超えるデータをNANDに書き込むことを想像してください!)より高い処理能力、改良されたフラッシュ管理アルゴリズム、およびTRIMサポートの利点を備えた新しいコントローラーは、これらの状況をより適切に処理できますが、 重いランダム書き込みワークロードは、最新のSSDで10倍を超える書き込み増幅を引き起こす可能性があります

オーバープロビジョニングは、ランダムな書き込みを処理し、データの強制的な再書き込みを回避するために、ドライブに大きな空き領域を提供します。すべてのSSDが少なくともある程度はオーバープロビジョニングされています。一部は GBとGiB の違いのみを使用して、ドライブが動作するために約7%のスペアスペースを提供しますが、ニーズに合わせてパフォーマンスを最適化するために、より多くのプロビジョニングを行うものもあります。特定のアプリケーションの例。たとえば、書き込みが多いOLTPまたはデータベースワークロード用のエンタープライズSSDは、512 GiBの物理NANDを持っている可能性がありますが、アドバタイズされた容量は400です。同じ量のNANDを搭載したコンシューマーSSDの一般的な480〜512 GBではなくGB。

ワークロードが特に厳しい場合、またはTRIMがサポートされていない環境でドライブを使用している場合は、ドライブをパーティション分割して手動でスペースをオーバープロビジョニングし、一部のスペースを未使用にすることができます。たとえば、512 GB SSDを400 GBにパーティション化し、残りのスペースを未割り当てのままにすると、ドライブは未割り当てのスペースをスペアスペースとして使用します。ただし、この未割り当て領域が以前に書き込まれたことがある場合は、削除する必要があることに注意してください。それ以外の場合は、ドライブがその領域を占有されていると見なすため、メリットはありません。 (パーティション分割ユーティリティはこれを行うのに十分スマートである必要がありますが、100%確実ではありません。 "WindowsはSSD上のパーティション化されていない(フォーマットされていない)スペースをトリムしますか?" を参照してください)

通常の消費者であれば、通常、オーバープロビジョニングは必要ありません

TRIMがサポートされている一般的なコンシューマー環境では、SSDの使用率は70〜80%未満であり、ランダムな書き込みで絶えず非難されていないため、通常、書き込みの増幅は問題ではなく、通常、オーバープロビジョニングは必要ありません。

結局のところ、ほとんどのコンシューマーは、書き込みの増幅率が高くても、ほとんどのSSDの意図した耐用年数の範囲内でNANDを使い尽くすのに十分なデータをディスクに書き込まないため、スリープ状態を失うものではありません。

7
bwDraco

追加スペースのサイズはSSDドライブモデル間で大きく異なりますが、一般的にはこれはまだ当てはまります。

1
Tomasz Klim