Acelerar o backup de apenas ACLs em sistemas de arquivos grandes

3

Estou tentando fazer backups rápidos apenas das ACLs em grandes sistemas de arquivos GNU / Linux. Permissões estendidas não são realmente necessárias.

Eu rodei 4 pequenas referências em uma pequena partição apenas para fazer uma estimativa do tempo decorrido (segundos) e do tamanho dos arquivos produzidos (megabytes).

  • getfacl -R -p /backup/dir > out_file : 58.715s (36MB)
  • find /backup/dir -printf "%m %u:%g %p \n" > out_file : 54.053s (27MB)
  • find /backup/dir -printf "%m %p \n" > out_file : 0.763s (26MB)
  • ls -laR /backup/dir > out_file : 4.865s (20MB)

Então ls é a melhor solução se precisar do usuário: group.

Idealmente, o out_file deve ser semelhante:

755 user:group /full/path/to/dir
744 user:group /full/path/to/file
...

Mas, até onde eu sei, obter o caminho completo para o arquivo de ls requer comandos extras que retardarão o processo. Estamos falando de sistemas de arquivos muito grandes.

Não existe uma ferramenta melhor (mais rápida / eficiente) do que ls para lidar com isso?

Por que o find diminui drasticamente ao recuperar as informações do usuário: grupo em comparação com ls ?

Como um sinal positivo, ls também pode manipular caracteres especiais em nomes de arquivos (com a opção -b ).

Resolvido: (graças a @shodanshok) Primeira vez após sync :

  • getfacl -n -R -p /backup/dir > out_file : 19.561s (36MB)

Mas a segunda vez executando o mesmo comando:

  • getfacl -n -R -p /backup/dir > out_file : 2.496s (36MB)
por Julen Larrucea 19.04.2017 / 18:24

1 resposta

3

Na minha experiência, getfacl pode ser limitado pela CPU pelo processo de resolução de nome de usuário. Tente adicionar a opção -n , por exemplo, emitindo getfacl -n -R -p /backup/dir > out_file

Durante os benchmarks, preste atenção especial ao cache inode / dentry, pois ele pode facilmente distorcer seu teste cronometrado. Antes de cada referência, emita o seguinte comando para esvaziar os dois caches: sync; echo 3 > /proc/sys/vm/drop_caches

    
por 19.04.2017 / 19:29