SSD 上の TRIM とファイルの断片化

SSD 上の TRIM とファイルの断片化

私はTRIMテストによって提案されました霜よけそしてまた発見したここ結果の 1MB のファイルは高度に断片化されています。どうしてそうなるのでしょうか?

私の唯一のストレージ デバイスは、/dev/sdaSamsung 500GB SSD です。これは「TRIM 対応」で、カーネルfstrimには の実行ファイルが付属しています/etc/cron.weekly。それでも、好奇心からテストを実行したいと思いました。テストにより、英字で満たされた 1MB のファイル (trim.test) が生成されましたy

ファイルの作成後、ディスク上のファイルの正確な位置を確認しました。

> cd /
> yes | sudo dd iflag=fullblock bs=1M count=1 of=trim.test
> sudo filefrag -s -v trim.test

Filesystem type is: ef53
Filesystem cylinder groups approximately 177
File size of trim.test is 1048576 (256 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..      15:    2816076..   2816091:     16:             merged
   1:       16..      31:     170064..    170079:     16:    2816092: merged
   2:       32..      63:     170848..    170879:     32:     170080: merged
   3:       64..     127:     168269..    168332:     64:     170880: merged
   4:      128..     255:     170112..    170239:    128:     168333: merged,eof
trim.test: 5 extents found, perfection would be -1 extent

ファイルを消去して手順を繰り返すと、これが繰り返されます。1MB のファイルがどうしてこれほど断片化されるのでしょうか?

答え1

TRIM と断片化の問題についていろいろ調べて読んだ後、私自身の質問に答えることが他の人の役に立つかもしれません。

TRIM について読むと、ファイルの断片化について頻繁に言及されています。どちらの側面も SSD ストレージのパフォーマンスに関する正当な疑問の原因ですが、2 つの問題は異なります。

  • ファイルの断片化1つのファイルがHDDまたはSSDに、パーティション内のストレージメディアに分散された物理ブロックを使用して、連続していない多数の書き込み領域に書き込まれることです。SSDの特定のコンテキストでは、TRIMの動作やTRIMのストレージ管理レベルとは関係ありませんが、次のことに関連していることがわかります。ウェアレベリング(WL) は、SSD に常に存在する、低レベルのストレージ メディア管理のための別のプロセスです (TRIM とは異なります)。SSD の内部データ管理は、セクターを不揮発性フラッシュ メモリ セル (つまり SSD のセル) とそれに対応するブロック (フラッシュ ブロック) に割り当てる点で、HDD とは根本的に異なります。ファイルの断片化に直接影響します。
  • トリム少なくとも 1 回書き込まれた SSD 上の物理ブロックを新しい書き込み操作 (Wops) 用に準備し、Wop が発生する直前に対象のブロックを実際に消去する必要をなくします (TRIM のないセットアップの場合のように)。そのためには、SSD に TRIM 対応のハードウェア コントローラーが必要です。常にそうであるとは限りません。使用の最初の段階 (つまり、SSD がまだ比較的新しく、すべてのブロックが少なくとも 1 回上書きされていないとき) の後、Wops は速度が一定になるまで遅くなります。その段階では、経験則として、TRIM が有効になっていない同じハードウェアと比較して、TRIM 対応 SSD の書き込み時間が TRIM によって約半分になります。

Wops 中、SSD は HDD とはまったく異なる動作をします。HDD は Wop の前にブロックを消去する必要はありません。SSD は常に必要であり、時間がかかります。TRIM は、TRIM 対応 SSD で最近解放されたブロックを事前に調整することで、その時間消費を軽減します。基本的には、ファイルが変更され、ボリュームの別の領域に移動された後に解放されたブロックを事前に消去します。これは現実を簡略化した見方ですが、専門家ではないユーザーがハードウェアや低レベルのハードウェア管理について決定を下す際に、大まかに頼ることができます。続きを読む...

TRIM は SSD の断片化に関係していますか?
- 短い答え: いいえ、関連はありません。
- 長い答え: 断片化はウェアレベリング(WL)と関連していますが、別のSSD の寿命を最適化するプロセスです。WL は、ボリューム/パーティション内の SSD の空き/使用可能/未予約ブロック スペース全体で Wop を均一化するために不可欠です。これは、各 Wop が半導体層の小さな領域に比較的大きな電圧を適用することで対応する SSD セルを老化させ、寿命を縮めるためです。(これは SSD の大部分に導入された熱誘発欠陥と関係があると思いますが、それは本題から外れます。)

Wops が HDD と同様に SSD でも管理されていた場合、ストレージ メディアの特定の領域が他の領域よりもずっと早く摩耗し、ブロックが動作不能になったり、容量が失われたり、データが失われたり、エラーが発生したりします。WL は、実際に、特定の SSD パーティション内のすべてのブロックが同じ量の Wops にさらされ、SSD の使用可能なパーティション領域全体で摩耗が「平準化」されることを保証します。その意味で、WL は SSD の寿命を効果的に延ばし、SSD が寿命を迎えるまでその全容量を維持します。

WLモードには静的と動的の2種類があります。ウィキ(ドイツ語) SSD の寿命末期の書き込みサイクル数は、WL がオフになっている同じハードウェアと比較して、静的 WL では 100 倍、動的 WL では 25 倍に増加する可能性があることを規定しています。

WL は、パーティション内の SSD のストレージ スペース全体に Wops (SSD の寿命を定義する制限パラメータ) を可能な限り均一に物理的に分散するため、必然的にデータの断片化につながります。これは、特定の SSD パーティション全体に書き込まれたブロックを最適に分散するという主な目的を達成するために行われます。SSD に保存されたファイルは、従来の HDD よりもかなり断片化される可能性があります。ただし、断片化によって SSD のパフォーマンスが低下することはありません。

WL の動作には、他の結果も伴います。SSD ボリュームが大きいほど、特定の使用条件での寿命が長くなります。ユーザーにとって、「使用条件」とは主に次のことを意味します。
- SSD のパーティションの使用済みスペースの量 -
Wop の頻度、つまりストレージ メディアへの書き込みアクセス頻度。
これは実際には次のことを支持している可能性があります。
- lx swap、/home、/tmp、および /var を HDD に配置し、OS の残りの部分はより小さな SSD で問題なく動作させる。
- Wop の多いパーティションを SSD 上で小さくしすぎない。たとえば、swap を SSD に配置する必要があり、lx-swap を DRAM サイズの 2 倍に設定するのが最適であると読んだ場合は、4 倍にします。私の計算が正しいかどうかはわかりませんが、一般的な考え方としては、これにより swap スペースの寿命もほぼ 2 倍になるということです。スワップを必要とする操作を多く実行する場合 (DB の使用頻度が高いサーバーなど)、スワップと /tmp を HDD に移動することを検討してください。ただし、もちろん、ガスバーナーを SSD に持ち込むのは気が進みません。

一方、TRIMはSSDのブロックを今後の新しいWopに備えて準備します。これは、一度書き込まれたセルを消去し(実際にはブロックレベルで操作が行われます)、新しいWopのために準備を整えます。ガベージコレクション必要に応じて。その意味で、TRIM は、WL コントローラによって低レベルで管理されている新しく解放された(少なくとも 1 回は使用された)ブロックの分布マップを監視します。

結論:

  • 断片化は問題ではありません。SSDのパフォーマンスに悪影響を与えることはありません。SSDには(SSDに関するインテルの講演) また、デフラグという形でのハウスキーピングの恩恵も受けません。OS が何であれ、デフラグをオフにしてください。今すぐに。
  • TRIM は、SSD が TRIM 対応であれば、重要かつ有益です。現在、TRIM 対応の SSD を提供しているブランドはわずかです。このスレッドを最初から読んでいるなら、評判の良いブランドの名前を少なくとも 1 つは知っているでしょう。また、数年前には、第 1 世代 SSD を使用する場合、ジャーナリングは TRIM によってもたらされる利点の一部に反するものであったため、ext2 は ext3 よりも優れたオプションと考えられていました。しかし、今ではそうではなく、TRIM + ガベージ コレクションでは ext4 が実際に推奨されています。

ありがとう。

関連情報