/
Ubuntu 12.04 LTSインストーラーでファイルシステムのフォーマットとしてbtrfsを選択しました。インストールが完了したらcompress=lzo
、マウントオプションを追加して/etc/fstab
再起動しました。
現在、既存のファイルは自動的に圧縮されますか、それともそれを引き起こすために明示的に何かをしなければなりませんか?
/
Ubuntu 12.04 LTSインストーラーでファイルシステムのフォーマットとしてbtrfsを選択しました。インストールが完了したらcompress=lzo
、マウントオプションを追加して/etc/fstab
再起動しました。
現在、既存のファイルは自動的に圧縮されますか、それともそれを引き起こすために明示的に何かをしなければなりませんか?
回答:
btrfs fi defragment
既存のデータを強制的に再圧縮するには、実行する必要があります。それ以外の場合、新しいデータのみが圧縮されます。
FAQから:
...で再マウントを検討し
-o compress
、特定のファイルをその場で書き換えるか、btrfs fi defragment
すべてを再圧縮するために実行します。これは時間がかかる場合があります。
autodefrag
オプションをマウントしますか?それはまた、自動デフラグ時に以前に圧縮されていないファイルを圧縮しますか?
ノルベルト・ファブリティウスが言った、私が作ったが、私は既存のファイルのいずれかの圧縮に気付かなかった- DF -h / 前 のbtrfs Fiのデフラグ = 658メガバイト| df -h / btrfs fiデフラグの後 = 658MB。新しいファイルは問題ありません。少し検索すると、この引用が表示されます。
これを実行する:
# btrfs filesystem defragment ~/stuff
ディレクトリのコンテンツを最適化しません。
これは仕様です。btrfs fi defragは、itに渡される単一のファイルシステムオブジェクトで動作します。これは、コマンドがディレクトリのコンテンツではなく、ディレクトリオブジェクトによって保持されているメタデータのみを最適化することを意味します。ディレクトリのコンテンツをデフラグしたい場合、次のようなものがより便利です:
# find -xdev -type f -exec btrfs fi defrag '{}' \;
この後、私の/それは656MBを占有しています-巨大なものはありませんが、確かに圧縮があります。
ソース:https : //btrfs.wiki.kernel.org/index.php/Problem_FAQ#Defragmenting_a_directory_doesn.27t_work
この助けを願っています。
すみません、私の英語。
defrag -clzo
たり、のdefrag -czlib
代わりに使用したりしないでくださいdefrag
。
btrfs fi defrag -r -czlib ~/stuff
Oracleのドキュメントによると、-c、-clzo、または-czlibオプションを使用して各ファイルを最適化することにより、既存のオンラインファイルシステム上の既存のファイルを圧縮できます。LZOは速度のために推奨されます。
find / -xdev \( -type f -o -type d \) -exec btrfs filesystem defragment -v -clzo -- {} +
これは、findコマンドを使用して、ルートファイルシステム内のすべてのファイルでbtrfsデフラグツールを実行します(先頭の「find」コマンドの直後にスラッシュが付いています)。他のサブボリュームがある場合は、単一のスラッシュの代わりに、サブボリュームのパス(たとえば、/ homeに1つあります)で再度使用できます。
これにはルート権限が必要なので、必要に応じてsudoを前面に追加します。
見る:
https://btrfs.wiki.kernel.org/index.php/Mount_options#List_of_optionsによると、 次の圧縮アルゴリズムが利用可能です。
compress,compress-force
Enable compression. Starting with kernel 2.6.38 you can choose the algorithm for compression:
- compress=zlib - Better compression ratio. It's the default and safe for olders kernels.
- compress=lzo - Faster compression.
- compress=no - Disables compression (starting with kernel 3.6).
compress-force= - Enable compression even for files that don't compress well, like videos and dd images of disks. The options compress-force=zlib and compress-force=lzo works for kernels >2.6.38.
Note that old (before 2012) btrfs-progs versions will probably fail some operations (e.g. fsck) on filesystems with LZO compression.
注:この投稿は、以下で尋ねられた圧縮アルゴリズムの種類についての追加の質問に対する回答です...だから私を責めないでください。
ArchWikiによると:
ヒント:
compress
マウントオプションを使用せずに、ファイルごとに圧縮を有効にすることもでき ます。chattr +c
ファイルに適用するだけです。ディレクトリに適用すると、新しいファイルが来ると自動的に圧縮されます。
非常に素晴らしい!ゴッドブレスBTRFS!
また、BTRFS wikiから:
マウントの圧縮オプションを使用せずにファイルを強制的に圧縮できますか?
はい。このユーティリティ
chattr
は、iノードをマークして新しく書き込まれたデータを圧縮するファイル属性cの設定をサポートしています。
Btrfsではデフォルトで圧縮が有効になっているため、明示的に無効にしない限り、圧縮する必要があります。
compression=
。それを有効にするには、fstabで「お気に入りの圧縮アルゴリズム」を渡す必要があります。
sudo mount -o remount /
、新しいfstabオプションが有効になります。