Intelによると、ソリッドステートドライブにLinuxファイルシステムを作成するときにブロックを破棄しないことが重要です。ドキュメントには、デフォルトの動作がブロックをmke2fs
破棄しないことが示されています(2015年3月)。ただし、現在のmke2fs
マニュアルページには次のように記載されています。
捨てる:mkfsでブロックを削除してみてください(初期ブロックの削除は、ソリッドステートデバイスやスパース/シンプロビジョニングされたストレージに役立ちます)。デバイスがデータをゼロにする廃棄を通知する場合(廃棄後および書き込み前のすべての後続の読み取りは0を返します)、まだゼロになっていないすべてのinodeテーブルは0として表示されます。これにより、ファイルシステムの初期化速度が大幅に向上します。これがデフォルト設定です。
SSDを手動でフォーマットするときにコマンドライン-E nodiscard
に追加すると、フォーマット中のブロックの破棄を防ぐことができますが、mke2fs
ディストリビューションインストーラは自動的なので、そうすることはできません。これが気になる価値はありますか?
答え1
リンクされたドキュメントは特定の目的(LinuxカーネルNVMEドライバの開発とベンチマーク)を持っているように見え、エンドユーザーのための一般的な推奨事項を示していません。
mkfsが実行されてもext4が削除されないと主張します。
コアファイルシステム:
- ext4 - デフォルトの拡張オプションは、ファイルシステムの作成時にブロックを削除せずに維持し、一部の情報が示すように、「削除」拡張オプションを追加しないことです。
- xfs – mkfs.xfsの場合、ブロックが削除されないように-Kオプションを追加します。
…でもそうです。これが最初にすることです。
# mkfs.ext4 /dev/loop0
mke2fs 1.46.4 (18-Aug-2021)
Discarding device blocks: done
Creating filesystem [...]
したがって、すべてのデータを捨てたくない場合は、積極的にブロックする必要があります。 xfsの使用をmkfs.xfs -K
推奨し、ext4の使用を推奨しますmkfs.ext4 -E nodiscard
。
# mkfs.ext4 -E nodiscard /dev/loop0
mke2fs 1.46.4 (18-Aug-2021)
Creating filesystem [...]
デフォルトの動作が変更されたかどうかわかりません。私が知っている限り、それは常にデフォルトでした。 -E廃棄以前はnodiscardオプションが登場し、データを保存するための-Kがあり(デフォルトでは無効)、廃棄を有効にするオプションはありませんでした(デフォルトでは無効)。
マニュアルページでは、nodiscardがデフォルトであると主張したことがありますが、コミット履歴のどこでもその内容がコードに反映されていないため、ドキュメントエラーで追跡された可能性があります。
mke2fs: -K オプションを使用せずに廃棄/nodiscard を導入します。
(実際にこのコミットでは、廃棄とnodiscardの両方をデフォルトとして宣言します。)
nodiscardがデフォルトであり、1週間後までfstrimが可能でない場合は良いでしょう。 Linuxはデータを少し早く削除します。間違ったデバイスをフォーマットしてすぐにエラーを検出したとしても、どんな種類のデータ復旧も実行するには遅すぎます。
答え2
初期段階:あまり購入しません。
この文書は古いので、もはや正確ではないかもしれません。
さらに、これも間違っている可能性があります。歴史的にこれについて多くの誤解があり、ガイドを書いた人が必ずしもLinuxカーネルに貢献したのと同じ会社の人ではありませんでした。状況は本当に複雑です。 1つのSSDを最適化することが他のSSDにとって最悪である可能性があり、チップセットメーカーはコントローラに好みを伝える方法を見つけることができませんでした。
しかし、NVMeのドロップ機能は長い間標準化されており(Intelが参加し、実際に支配的である)、それが意図された用途なので、「良くない」場合は少し驚くでしょう。
一般に廃棄を使用すると、SSDにさらに情報を提供できます。この情報の処理方法はSSDによって異なります。したがって、見落とした可能性があることをもっと知っていれば、状況はさらに悪化します。これは実際にはドライバの問題ではなく、SSDコントローラのファームウェアの問題です。 Intelは優れたLinuxデータセンターのサポートに大きな関心を持ち、長い間この問題を解決してきました。