この質問に対する答えが見つからなかったので、ここに質問をしたいと思います。
/etc/fstab
ext4でmountコマンドを使用するときにdiscard
SSDでTRIMを有効にするオプションを追加します。同様に、このdiscard
オプションは次のようにbtrfsボリュームでTRIMを有効にします。btrfs.wiki.kernel.org。 Btrfsはデフォルトで書き込み中のコピーを有効にする必要があります。この場合、削除オプションは書き込み中のコピーを効果的に無効にしますか?
TRIMが以前のバージョンのファイルを含むすべてのブロックを削除すると思います。書き込み中にコピーがまだ機能している場合、ブロックがゼロで満たされていないと、長期的にSSDのパフォーマンスが低下しませんか?
答え1
記録中のコピーは、割り当てられたブロックを上書きしないことを意味します。代わりに、ファイルのデータブロックが変更されると、新しいブロックに新しいデータが割り当てられ、ファイルは元のブロックではなく新しいブロックを参照するように更新されます。 。以前のブロックは、ファイルシステムのどの部分でも参照されなくなった場合に解放されます。記録中のコピーは、ブロックが解放されないという意味ではない。
このdiscard
オプションは単にBtrfsに利用可能なブロックをプライマリデバイスに報告するように指示します。 Btrfsはすでにどのブロックが利用可能かを追跡しており、この情報をプライマリデバイスに報告しても書き込み時のコピー動作には影響しません。
答え2
記録中のコピーは、使用されなくなったブロックへの参照を保持するという意味ではありません。ブロック自体は空き領域になり(他のスナップショットで使用しない限り)、私が知る限り、その時点からbtrfsは、ブロックが現在以前のコンテンツを保持しているファイルに属しているという事実さえ知りません。
あなたは正しいです。破棄すると、使用されなくなったブロック(以前のコンテンツなど)を回復できなくなります。
何を期待しているのかわかりませんが、実際に新しいバージョンが破損している場合は、ファイルを以前のバージョンに復元するための単純なbtrfsコマンドがあると確信していますが、幸いなことに以前のコンテンツはまだ浮いています。無料版の中間スペースプールではそのまま残ります。 Googleが検索した結果、この主張を裏付けるソースが見つからなかったため、btrfsはこれを提供していないようです。
そのため、記録中のコピーはそれ自体はデータの復元機能ではなく、以前のコンテンツの元に戻す可能性を高める実装の詳細ですが、削除を使用している場合はそうではありません。