rsync da imagem do qemu esparso aumenta o tamanho do disco

6

Eu tenho uma imagem qemu bruta esparsa que eu quero transferir para outro servidor. qemu-img info me dá:

image: sparse.img
file format: raw
virtual size: 50G
disk size: 16G

Eu transfiro com:

rsync -azhP --sparse origin:/path/to/img/sparse.img .

Agora, no servidor de destino, eu tenho:

image: sparse.img
file format: raw
virtual size: 50G
disk size: 40G

No entanto, depois de executar virt-sparsify novamente na imagem copiada, recebo isso:

image: sparse.img
file format: raw
virtual size: 50G
disk size: 16G

Ambos os servidores estão executando o CentOS 7.2 em um sistema de arquivos XFS. Então o que aconteceu?

Atualização:

Depois de mais algumas pesquisas, eu encontrei vários posts indicando que o rsync não lida bem com arquivos esparsos, e que é melhor usar uma ferramenta diferente, como tar , para transferir arquivos esparsos.

Você pode acompanhar a tar transfer com rsync --inplace , para garantir que o arquivo foi transferido sem erros, conforme explicado aqui .

Outra A solução proposta foi criar um arquivo esparso vazio do mesmo tamanho no destino e, em seguida, usar rsync --inplace para transferir os dados reais.

Eu não escrevi isso como uma solução, porque isso não explica realmente porque o rsync --sparse está se comportando dessa maneira.

    
por orodbhen 16.12.2016 / 00:24

1 resposta

2

Aposto que isso se deve às disparidades do FS entre a origem e o destino.

Deixe-me elaborar com um exemplo. Arquivos esparsos são arquivos cujos blocos vazios (ou seja, cheios de 0) não são alocados no disco. Quanto menor o tamanho do bloco no FS, mais provável é que tal bloqueio seja encontrado. Portanto, seu problema pode estar relacionado a um tamanho de bloco maior no destino do que na origem.

Pode haver outros parâmetros do XFS que eu não conheço.

Veja também esta questão no ServerFault

    
por 16.12.2016 / 02:13