Sanal kutu, anlık görüntüleri ve temel diski birleştirme


9

Dallarda yaklaşık 30 anlık görüntüye sahip sanal bir makinem var. Geçerli geliştirme yolu 22 anlık görüntü ve temel disktir. Dosyaların miktarı şimdi IO ve kullandığım dev dizüstü bilgisayar üzerinde bir etkiye sahip gibi görünüyor (çok fazla parça üzerinde 140GB toplam boyutu ile ana disk performansı sorunları olup olmadığını bilmiyorum, ya da sadece çok sayıda dosyaya dağıtılmış sektörlere isabet).

Anlık görüntülerin geçerli geliştirme dalını temel diskle birleştirmek istiyorum, ancak aşağıdaki komutun doğru sonucu üretip üretmeyeceğinden emin değilim. İşlem tamamlandıktan sonra (5-6 saat) bu diski önyükleyemiyorum.

vboxmanage clonehd "C:\VPC-Storage\.VirtualBox\Machines\CRM\Snapshots\{245b27ac-e658-470a-b978-8e62137c33b1}.vhd" "E:\crm-20100624.vhd" --format VHD --type normal

Herkes bunun doğru yaklaşım olup olmadığını teyit edebilir mi?


Bazı bilgiler eklemek için, aldığım hata bir VirtualBox hatası değil, Windows'dan bir önyükleme hatası. Başlangıç ​​onarımını başlatmak istiyor, ancak hatayı bilmediğim için düzeltmeyi bilmiyorum. Pencereleri başlatmak normalde uzun süre beklemeye ve mavi ekrana neden olur. Bu beklenen mi veya diski kopyalarken yanlış yöntemi kullandım mı?
Henrik

Sorunuzda önerdiğiniz gibi VBoxManage'i (Windows ana bilgisayarında, Ubuntu misafirinde) kullandım ve anlık görüntüleri tek bir çıkış diski görüntüsüne doğru bir şekilde birleştirdi
Chaulky

1
Evet bu doğru bir yaklaşım. Dosya adı yerine yalnızca kaynak UUID'yi belirtmek daha iyidir, o zaman VBox'ın ekleri çözebileceğinden emin olabilirsiniz.
rustyx

Yanıtlar:


7

Yapmak istediğiniz anlık görüntüler iletişim kutusundan, daha sonra tüm anlık görüntüleri tek bir VDI ile birleştirmek istediğiniz ana anlık görüntünüzü seçin.

Açıklamanızdan, bu ağacın kökü gibi görünüyor.

Sağ tıklayın ve 'Anlık Görüntüyü Sil'i seçin.

Bu istediğinizi yapacaktır --- tüm çocuk anlık görüntülerindeki tüm değişiklikleri tek bir VDI'da birleştirecektir.

Ek olarak - en son anlık görüntüdeki disk görüntüsünün klonlanması - aynı zamanda 'normal' bir sabit disk türüne ulaşıncaya kadar farklı diski üst öğesi (ve üst öğesi vb.) İle birleştirir.

'Anlık görüntünün silinmesinin' clonehd komutunu çalıştırdığından şüpheleniyorum.

VM ayarlarınızı kontrol edin (özellikle IO APIC etkin / devre dışı) ve eşleştiğinden emin olun.


Sanırım bu şu anda bunu yapmanın tek yolu, ancak bunu yapmak için GUI şekilde manuel, zaman alıcı, çoklu tıklama.
Henrik

3

Yalnızca tek bir anlık görüntü tutmak istiyorsanız, bunu geçerli durumunuz yapın ve ardından VM'yi dışa aktarın ve yeniden içe aktarın. Dışa aktarılan cihazlar anlık görüntü geçmişlerini korumaz.

Veya bu vboxmerge.py komut dosyasını birleştirmeyi sizin için kullanabilirsiniz. Sahip olduğunuz anlık görüntü sayısı göz önüne alındığında, ihracat / ithalat döngüsünün daha hızlı olmasını beklerim.


2

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 'Klon' komutunu kullanan bir teknik (VirtualBox 4.3.4'te test edilmiştir):

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

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

    • Adı VM'nin orijinal adına ayarlayın.
    • Kalan varsayılanları kabul edin, örn. Klon türü: 'Tam klon'; Anlık görüntüler: 'Mevcut makine durumu'.
  3. Eski VM'yi silin (VM'yi sağ tıklayın ve 'Kaldır ...' komutunu çalıştırın).


0

Ana makineniz bir Windows ise veya VHD dosyalarına bir pencereden erişebiliyorsanız, ebeveyn, büyük ebeveyn vb.

DiskPart aracını ve iki komutu kullanıyor:

select vdisk file="whatever your file is, with full path"

merge vdisk depth=#

Burada #, taşımak istediğiniz hiyerarşi düzeylerinin sayısı, dirent üst öğe için 1, büyük ebeveyn için 2 vb.

Yerinde yapar, klonlamadan çok daha az zaman alır.

Unutmayın, birleştirdikten sonra tüm ara VHD'ler silinebilir (bunları sizin için silmez) ve birleştirdiğiniz sanal kutuya eklemeyi unutmayın.

Misal:

Disk3.vhd, Disk2.vhd'nin alt öğesidir, Disk2.vhd, Disk1.vhd'nin alt öğesidir

Disk1.vhd'de isterseniz Disk3.vhd'deki tüm değişiklikler sadece depth=2Disk3.vhd öğesini kullanın ve seçin. Disk1.vhd üzerinde isterseniz Disk2.vhd 'deki tüm değişiklikler sadece Disk3.vhd' yi kullanın depth=1.

Ayrıca, çirkin VirtualBox Anlık Görüntülerine gerek olmadığını hatırlayın, varolan bir diskten farklı bir disk oluşturmak için DiskPart create vdisk komutunu kullanabilirsiniz (aynı zamanda farklı bir disk olabilir, vb.), Ayrıca büyük bir ağaç da oluşturabilirsiniz.

Geri kalan her şey için: Poster VHD kullanıyor (VDI değil), bu nedenle Konuk'tan (Ana makine Windows ise Ana Bilgisayarda) disklere erişmek için DiskPart ve Disk Yönetimi gibi yerel araçları kullanabilir.

Sizin için poster: Birleştirme işleminden önce her zaman tam bir Yedekleme olduğunu unutmayın, VirtualBox klonu yerinde çalışmaz, yeni bir dosya oluşturur (yazmaya kopyalanır), ancak DiskPart birleştirme yerinde çalışır (dosyayı değiştirir, oluşturmaz yeni bir).

VHD / VHDX kullanımda olduğu için farklı bir yaklaşım sağlayabileceğini umuyoruz (VMDK, VDI, vb. İçin, yalnızca Windows Host için geçerli değildir).

Not: Windows 7 ve Yukarı, XP ve Vista harici bir M $ aracıyla VHD'yi bağlayabilir, ancak DiskPart'ın XP ve Vista'da VHD desteği yoktur ... tüm bunlar Windows HOME sürümlerinde (7 ve Yukarı) da çalışır; SUNUCU sürümü.

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.