kvm / qemu'daki qcow2-image-file üzerinde boş alan kullanılmamıştır


23

sanal makinelerimiz için kcowm-qemu ile qcow2-imajlarını kullanıyoruz.

qcow2, resim dosyasının yalnızca gerçekten gerekli alanı sanal makine tarafından tahsis ettiği bu güzel özelliğe sahiptir. Ancak, sanal makinenin ayrılmış alanı küçülürse, görüntü dosyasını nasıl daraltabilirim?

örnek:

1.) qcow2 formatı, boyutu 100GB olan yeni bir görüntü oluşturuyorum

2.) ubuntu kurmak için bu resmi kullanıyorum. kurulum yaklaşık 10 gb gerektirir, resim dosyası yaklaşık 10 GB'a kadar büyür. şu ana kadar beklenmeyen bir şey yok.

3.) Görüntüyü yaklaşık 40 GB ek veri ile doldururum. görüntü dosyası 50GB'a kadar büyür. Ben bununla iyiyim :-)

4.) tuhaflaştığı yer burası: resimdeki 40GB veriyi sildim, ancak resim boyutu hala 50GB yiyor.

Soru: Bu 40 GB veriyi nasıl serbest bırakabilirim ve görüntüyü sadece gereken 10 GB'a nasıl küçültebilirim?

şimdiden teşekkürler, berni

Yanıtlar:


26

Görüntü otomatik olarak küçülmez, çünkü dosyaları silerken, aslında verileri silmezsiniz (bu nedenle geri alma çalışmaları budur). Qemu, qcow2 görüntülerini geri çekmek için bir donanıma sahiptir, ancak yardımcı programın yaptığı şey diskteki sıfırları tekilleştirerek diğer tüm bilgileri bozulmadan bırakmaktır. Yani fikir şuydu:

  1. Sürücüyü sıfırla doldurun ( dd if=/dev/zero of=/some/filesiz boşalıncaya kadar)
  2. sil / bazı / dosya
  3. VM'yi kapat
  4. VM için görüntülerin tutulduğu ve çalıştırıldığı yere cd qemu-img convert -O qcow2 original_image.qcow2 deduplicated_image.qcow2
  5. yeni deduplicated_image.qcow2 kullanmak için VM ayarlarını değiştirin, VM'nin çalışıp çalışmadığını test edin ve eski görüntüyü kaldırın.

Bu, afaik, sadece qcow2 görüntüleri ile çalışacak, diğer formatları test etmedim.


3
Windows misafiriniz varsa, tüm boş alanları sıfırlamak için SDelete -z
komutunu

17

virt-sparsify, bunları sizin için daha az güçlükle yapabilir: http://libguestfs.org/virt-sparsify.1.html


2011'de orada olduğundan o kadar da emin değil
dyasny

2
@dyasny Eski soruların mevcut cevapları zaman içinde eski hale gelmişse, yeni bir cevap yazmaya değer. Ancak bu yeni cevap, bu site için standartlara uygun olmayabilir.
kasperd

4
@dyasny Biri yeni bir kalite cevabı yazma çabasını harcamak isterse, eskisi eskiyse, bunu yapmaya teşvik edilmelidir. Modası geçmiş cevaplarla nasıl başa çıkılacağına dair daha ayrıntılı bir tartışma meta için daha uygundur.
kasperd

1

virt-sparsify fileA fileBhepsini yapacak, ancak görüntünün boyutunu küçültmeyecek. Bunun için eklemeniz gerekir --compress.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.