Anlık görüntüleri VirtualBox'ta birleştirmenin en hızlı yolu?


48

50 ya da 70 anlık görüntüden oluşan çok sayıda anlık görüntü vdi. Mevcut durumda bir düz vdi istiyorum. Bu anlık görüntüler çok fazla disk alanı kaplar ve anlık görüntü olarak gerekli değildir.

Arayabilirsem biliyorum

VBoxManage clonehd thedisk.vdi thedisk-full.vdi
(50-70 times) VBoxManage clonehd {uuid-of-snapshot}.vdi thedisk-full.vdi --existing

Ne istersem onu ​​alacağım. Ancak çok uzun zaman alıyor (donanımım ve ilk 16G diskime verilen 5 saatten fazla).

Ve elbette denedim VBoxManage snapshot deleteve garipti: durdurulan makinede çalışmaz, makineyi çalıştırmada başarısız olabilir ve bir kez başarısız olduğunda, sonraki tüm aramalarda başarısız olur.

Birkaç anlık görüntüden düz vdi yapmanın bir yolu var mı?

$ VBoxManage --version
3.2.14r75509

( ServerFault'da sordu ancak bu yerin bu soru için daha uygun olduğuna karar verdi)


Kullandığınız komut, kullanmak istediğiniz komut daha hızlı bir yol değil.
Ramhound,

Tüm VM'yi dışa aktarmaya ne dersiniz? VDI istediğimi içerecek mi?
Andrey Regentov

Onu denemelisin. Sonunda, Sanal Makinenin boyutundan ötürü başka bir yöntem daha bir süre alacaktır.
Ramhound

Yanıtlar:


53

Çözüm bulundu. Buraya yazdığım komutlardan son adım kadar basittir. yani

VBoxManage clonehd fullpath/{uuid-of-last-snapshot}.vdi thedisk-full.vdi

Bu yüzden sadece son anlık görüntüyü klonlamalıyım, zincirdeki her anlık görüntüyü değil. Ve yüzde binlerce daha hızlı.

Uuid bulunabilir VBoxManage list hdds | grep VmName | tail

GUI'de (Windows'ta) VM'yi seçin , sağ üstteki Anlık Görüntüleri seçin , istediğiniz anlık görüntüye sağ tıklayın, Klonla ... seçeneğini seçin ve iletişim kutusunda Tam Klonla seçeneğini seçin .


thx ama kurulumumda çalışmıyor, görüntünün zaten var olacağını söylüyor. Varolmayı unuttun mu?
Andy,

3
Eğer zaten thedisk-full.vdidiskte bir dosya varsa, lütfen önce komuttaki adı bir şeyle değiştirin thedisk-full-new.vdi.
Andrey Regentov

Tabii ki, tam yolun VirtualBox'a kayıtlı olan olması gerekiyor. Sembolik bağlantılar işe yaramayacak, çünkü VBox'un tüm fotoğraflarına bakması gerekiyor
Andy

Kuyruğunun ne yaptığından emin değilim, " tail -1" demek mi istiyorsun ?
15'te

1
VirtualBox 5'te, clonehdkullanımdan kaldırıldı ve geriye dönük uyumluluk için bırakıldı, clonemediumbunun yerine kullanın.
George Sovetov,

22

İşte tüm anlık görüntüleri tek bir VDI dosyası içeren yeni bir VM ile birleştirmek ve sıkıştırmak için 'Clone' komutunu kullanan bir teknik (VirtualBox 4.3.4'te test edilmiştir):

  1. VM'yi, klonlanmış VM için geçerli adını tekrar kullanabilmek için yeniden adlandırın (VM adını 'Genel' ayarlarının 'Temel' sekmesinden değiştirebilirsiniz).

  2. Sanal Makineye sağ tıklayın ve 'Clone ...' komutunu çalıştırın:

    • Adı VM'nin orijinal adına ayarlayın.
    • Kalan varsayılanları kabul edin, yani Clone type: 'Full clone'; Anlık görüntüler: 'Geçerli makine durumu'.
  3. Eski VM'yi silin (VM'ye sağ tıklayın ve 'Kaldır ...' komutunu çalıştırın).


VirtualBox 6.0.8'den itibaren, bu hala çalışıyor.
Paul Sturm

3

Sen deneyebilirsiniz ihracat için OVF ve ardından içe oluşturulan dosyayı geri.

As açıkladı Burada :

OVF, sanal bir makine için çekilmiş anlık görüntüleri tanımlayamaz. Sonuç olarak, anlık görüntüleri olan bir sanal makineyi dışa aktardığınızda, yalnızca makinenin mevcut durumu dışa aktarılır ve dışa aktarmadaki disk görüntüleri sanal makinenin mevcut durumuyla aynı olan "düzleştirilmiş" bir duruma sahip olur.

Sonuç olarak, diğer anlık görüntüler olmadan mevcut durumla birlikte klonlanmış bir VM'niz olacaktır.


Vdis'i soruyorum çünkü makineyi veremiyorum - kırıldı (ana bilgisayar yeniden başlatıldıktan sonra erişilemez durumdaydı) ve sahip olduğum tek şey VDI'lerin demetiydi - disk ve yaklaşık elli anlık görüntü.
Andrey Regentov

0

Bu işlem aynı fiziksel diske çok büyük dosyaları okumak ve yazmak anlamına gelir. Bunu hızlandırabilmenin tek yolu, bu dosyaları VBoxManage komutunuzdaki yolları değiştirerek farklı disklere koymak. Makinede yalnızca bir disk varsa, ağ paylaşımını kullanarak (ağınızın hızına bağlı olarak) harici bir USB sürücüsü veya hatta başka bir makinedeki diski kullanabilirsiniz


1
Genellikle ağ, dahili HDD arabiriminden daha yavaş büyüklükte siparişlerdir, bu nedenle bu işlem süreci daha hızlı yapmaz.
Andrey Regentov

-2

Bazılarında 10 Gib / sn LAN vardır, bu yüzden saniyede birden fazla gigabayt aktarabilir, böylece bir tıkanıklık olmaz.

Bazılarında 1Gib / s LAN vardır, bu yüzden saniyede 100 megabayttan fazla aktarım yapabilir, bu nedenle bir tıkanıklık olmaz (gerçekten hızlı bir SSD'niz olmadığı sürece).

Mekanik diskler, aynı anda aynı diske okuyup yazarken (veya çok fazla parçalanmışsa), saniyede yaklaşık 20 megabaytlık yere düşerken, parçalanmayanlarda sadece okunan veya yalnızca yazma saniyede 100 megabayttan daha fazlasına gidebilir.

LAN'ın yavaştır olduğunu söylersin, ancak USB ile ilgili değil (2.0, 1.1 ya da 1.0'dan bahsetmiyorum) çok daha yavaştır.

Önereceğim şey: USB 3.1 Gen2 Tip C veya bir eSATA / SATA / SAS kullanın.

Ancak daima: İkinci bir hızlı disk kullanın.

Ve yine de: Başka bir diske klonlamak ve dosyayı geri kopyalamak, SSD veya bağımsız çok kafalı kollara sahip bir sabit disk olmadıkça, diskin yalnızca birini kullanmaktan çok daha hızlıdır (aynı anda iki defa okuyabilir ve yazabilirler). yüzey yerleri, her kafanın kendi koluna sahip, çok pahalı, yaklaşık> 9876 €

En iyisi, istediğiniz durumun yalnızca sanal sabit diskini klonlamak, sonra çalışıp çalışmadığını kontrol etmek, ardından en üst düzeyde RESTORE (tüm anlık görüntüleri siler), ardından HDD'deki depolama birimini kaldırın ve yeni bir disk bağlayın.

Öyleyse adımlar, eski durumları ağaçsız bir görüntü şemasında kaybetmek için:

  1. Bir sabit diskten diğerine klonlayın, darboğazları önleyin
  2. Yeni bir makine oluşturun, bu diski bağlayın, bağlantısını kesin, değiştirilemez olarak yapılandırın
  3. Çalıştığını test edin (değiştirilemez olduğu için) aynı duruma sahip olacaksınız
  4. Değişmez olması gerekmiyorsa, bağlantısını kesin, normale dönün, vb.
  5. Eski makine anlık görüntülerini silin (önce RESTORE)
  6. Geçici test makinesini silin
  7. Sanal diske geri kopyalayın
  8. Klonlanmış diski takın

Ancak her zaman akılda tutulur, anlık görüntüler tam bir ağaç gibi olabilir, bir düğümün birden fazla çocuğu olabilir, her çocuğun birden fazla çocuğu olabilir.

Snoapshots ağaçlarıyla çalışmak için, daima, DELETE'yi, düğümlerin geri kalanını etkilemeden bir düğümü silmek olarak düşünün (yalnızca o devleti kaybedersin, ama orada istirahat etmeyin, ebeveyn ve çocuğu etkilenmeyecek, ilk altta veriler birleştirilecek) seviye childs, çok yavaş işlem) ve RESTORE'da tüm alt seviyelerdeki tüm childs'ları yok ederek (geri yüklediğinizden sonraki tüm durumları kaybedince, yalnızca dosyaları siler, bu yüzden hızlı işlem, sadece saniyeler).

Yani!

PD: VBOX'ın bu iki işleme ne kadar korkunç isimler verdiğini (sadece bir düğümü silmek = DELETE; tüm alt seviyelerdeki tüm alt düğümleri silmek = RESTORE)


Geri yükleme, yalnızca mevcut (kaydedilmemiş) durumdaki anlık görüntüleri silmez.
Melebius
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.