CentOS 7には、次のbtrfsファイルシステムがあります。
mount | grep btrfs
/dev/sdc on /everything type btrfs (rw,relatime,compress=zlib,space_cache,subvolid=5,subvol=/)
圧縮フラグを設定しようとすると失敗します。
# LANG=C chattr +c /everything/filelists.xml
chattr: Invalid argument while setting flags on /everything/filelists.xml
私はこのバージョンのbtrfsを使用しています。
btrfs-progs-4.9.1-1.el7.x86_64
ログファイルにエラーがありません。
これはバグですか、それとも何か抜けましたか?
答え1
ファイルシステム自体に関する追加のコンテキストがなければ、はっきりわかりませんが、フラグを設定しようとする試みはcompress=
マウントオプションに重複していたので拒否されたと思います。これは私が知っているBTRFSバージョンの標準的な動作ではありませんが、RHEL(および拡張CentOS)は、選択された新しいパッチを含む現在の古代の基本バージョンに基づく非常に奇妙なカーネルを使用してバックポートされます。 、そうですね本物彼らのコアが何をするのか正確に言うのは難しいです。
設定するcompress=
かcompress-force=
(実際には2番目のファイルが必要な場合があります。そうしないと、BTRFSは圧縮ファイルを簡単に捨てることができます)インストールオプションが設定されます基本このボリュームの場合。つまり、マウントcompress=zlib
(ユーザーと同様)は、BTRFSに圧縮フラグを無視し、そのボリュームに新しく作成されたすべてのデータのみを圧縮するように指示します。唯一の例外は次のとおりです。
compress=none
、圧縮フラグを無視しません。- この
btrfs filesystem defrag
コマンドは、デフラグしているファイルの圧縮を無視することができます(たとえば、作業している場所ではボリュームをマウントして新しいデータがcompress=none
圧縮されないようにします)。次に、圧縮後の最後以降に渡された変更されていないすべてのファイルに対して毎週デフラグを実行します。一度に所定の位置に配置されます)。