arquivo esparso movendo / copiando sobre NFS

0

Eu criei um arquivo esparso com

truncate -s 4T image.img

em um sistema de arquivos ext4 que montei sobre o NFS. O teste a seguir mostra que o sistema tem problemas com o reconhecimento de arquivos esparsos:

cp --sparse=always /mnt/data_extension/a.img /tmp/a.img # where a.img is created the same way image.img is
rsync --sparse /mnt/data_extension/a.img /tmp/a.img

demorarei muito e nunca deixarei que isso demore mais de um segundo, pois o comando mostra que o arquivo esparso não é reconhecido como tal e os furos de cópia / movimentação consomem E / S, o que não deveria ser o caso.

tar --sparse -c -v -f /tmp/a.tar /mnt/data_extension/a.img

retorna imediatamente e produz um tar que pode ser descompactado se a.img estiver vazio, se eu escrever algo dentro (por exemplo, criar um sistema de arquivos btrfs falso com sudo mkfs.btrfs /mnt/data_extension/a.img ), deixa de funcionar, ou seja, demora para sempre como os comandos acima.

Tudo funciona bem no sistema de arquivos ext4 de destino local, ou seja, copiando e movendo a imagem de demonstração a.img Acontece em 1 segundo ou muito menos.

Quando eu aplico os comandos acima à imagem real image.img e watch du -h /local/image.img o tamanho de 0 nunca é atualizado, mas deve depois do primeiro byte ter sido escrito.

montar informações para /mnt/data_extension:

$ mount | grep /mnt/data_extension
192.168.178.76:/volume1/data_extension on /mnt/data_extension type nfs (rw,addr=192.168.178.76)

Como posso mover / copiar image.img da montagem NFS para um sistema de arquivos local sem a necessidade de ler 4TB ?!

EDIT: especificando sparse-version=1.0 faz tar trabalhar no cliente, mas não no NFS (e cifs que eu tentei entretanto com o mesmo comportamento). Isso permite, pelo menos, tar o arquivo esparso no servidor e transferir o resultado com o custo de uma ação untar desnecessária no cliente.

Karl Richter
fonte

Respostas: