Não é possível definir o sinalizador de compactação em um arquivo no btrfs

0

Eu tenho o seguinte sistema de arquivos btrfs no CentOS 7:

mount | grep btrfs

/dev/sdc on /everything type btrfs (rw,relatime,compress=zlib,space_cache,subvolid=5,subvol=/)

Quando tento definir o sinalizador de compactação, ele falha:

# LANG=C chattr +c  /everything/filelists.xml 
chattr: Invalid argument while setting flags on /everything/filelists.xml

Estou usando esta versão do btrfs: btrfs-progs-4.9.1-1.el7.x86_64

Não vejo erros nos arquivos de log.

É um bug ou estou faltando alguma coisa?

    
por sebelk 17.09.2018 / 20:52

1 resposta

1

Sem um pouco mais de contexto sobre o sistema de arquivos, não posso ter certeza, mas acredito que a tentativa de definir o sinalizador está sendo rejeitada porque é redundante com a opção compress= mount. Este não é um comportamento padrão em qualquer versão do BTRFS que eu conheço, mas o RHEL (e por extensão CentOS) usa um kernel muito estranho que é baseado no que é atualmente uma versão base antiga com um monte de patches mais recentes escolhidos a dedo e backported, então é realmente difícil de dizer exatamente o que seus kernels farão.

Definindo o compress= ou compress-force= (e você provavelmente realmente deseja o segundo, caso contrário o BTRFS desiste de compactar arquivos com bastante facilidade) as opções de montagem definirão o padrão para esse volume. Em outras palavras, a montagem com compress=zlib (como você é) diz ao BTRFS para ignorar o sinalizador de compactação e apenas compactar todos os dados recém-gravados nesse volume. As únicas exceções são:

  • compress=none , que não ignora o sinalizador de compactação.
  • O comando btrfs filesystem defrag , que pode substituir a compactação de arquivos que está desfragmentando (por exemplo, onde trabalho montamos o volume com compress=none (para que novos dados não sejam compactados) e executamos uma passagem de desfragmentação semanal em todos os arquivos que não foram modificados desde o último passe que os compacta no lugar).
por 17.09.2018 / 21:55