Preciso zerar uma imagem qcow2 antes de compactá-la?

5

Eu quero recriar uma imagem qcow2 alocada dinamicamente para reduzi-la. É suficiente que todos os arquivos desnecessários tenham sido excluídos, ou eu também preciso preencher o espaço anteriormente ocupado por esses arquivos com zeros? Em outras palavras, é qemu-img filesystem-aware?

    
por Josh 30.12.2011 / 03:12

4 respostas

3

Sim, você precisa zerar o sistema de arquivos se quiser recuperar o espaço usado pelos arquivos excluídos. E não, o qemu-img não está ciente do fs.

Esqueci de fazer isso por uma imagem de VM que criei hoje (uma imagem mínima do Debian Sid para minha nuvem openstack no trabalho) e acabou sendo quase 900MB, mesmo com "-c" para compactação qcow2.

Eu recriou depois de executar "dd if = / dev / zero de = / root / zero; rm -f / root / zero; desligamento -h now", e o tamanho da imagem diminuiu para cerca de 335MB. Isso é muito menos (sem valor) dados para copiar sempre que eu inicio uma nova instância.

havia muitos arquivos deletados, porque a VM começou como debian squeeze e foi apt-get atualizada para sid.

    
por 23.02.2012 / 12:19
3

Veja também: virt-sparsify , um utilitário que pode preencher com zeros sistemas de arquivos dentro de imagens de disco (suportando vários formatos):

link

    
por 05.02.2016 / 07:47
1

Estou usando o zerofree ( apt-get install zerofree ) para esta tarefa:

Zerofree finds the unallocated blocks with non-zero value content in an ext2, ext3 or ext4 file-system and fills them with zeroes

depois disso, você pode reduzir sua imagem: kvm-img convert -O qcow2 original_image.qcow2 deduplicated_image.qcow2

    
por 05.02.2016 / 08:05
0

Pessoalmente, acho que funciona melhor clonar o disco usando o Clonezilla ou o Symantec Ghost. É muito mais rápido do que encher a unidade com zeros. Também evita o crescimento da imagem ainda mais.

Eu fiz isso com os convidados Ghost e Win inúmeras vezes. Na verdade, é mais rápido se o "espaço usado" for menor do que aqueles a serem zerados. Além disso, você pode usar qemu-nbd para montar as imagens e executar o Clonezilla a partir do host, evitando o incômodo de Clonezilla-in-guest. De qualquer forma, é sempre muito mais rápido do que sdelete / dd na minha experiência. (Além disso, muitas vezes acabo sem espaço disponível no host para uma operação full-zero-out-guest-disk, portanto, preencher o espaço disponível no guest raramente é viável para mim.)

    
por 03.04.2015 / 16:43

Tags