btrfs의 파일에 압축 플래그를 설정할 수 없습니다.

btrfs의 파일에 압축 플래그를 설정할 수 없습니다.

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=(실제로 두 번째 파일을 원할 수도 있습니다. 그렇지 않으면 BTRFS가 압축 파일을 쉽게 버릴 수 있습니다) 설치 옵션이 설정됩니다기본이 볼륨의 경우. 즉, 마운트 compress=zlib(사용자와 마찬가지로)는 BTRFS에게 압축 플래그를 무시하고 해당 볼륨에 새로 작성된 모든 데이터만 압축하도록 지시합니다. 유일한 예외는 다음과 같습니다.

  • compress=none, 압축 플래그를 무시하지 않습니다.
  • btrfs filesystem defrag명령은 조각 모음 중인 파일의 압축을 무시할 수 있습니다(예를 들어 제가 작업하는 곳에서는 볼륨을 마운트하여 compress=none새 데이터가 압축되지 않도록 함). 그런 다음 압축 이후 마지막 이후 전달된 수정되지 않은 모든 파일에 대해 매주 조각 모음을 실행합니다. 한 번에 제자리에 배치됩니다).

관련 정보