Mam maszynę wirtualną z około 30 migawkami w oddziałach. Obecna ścieżka rozwoju to 22 migawki plus dysk podstawowy. Wygląda na to, że ilość plików ma teraz wpływ na IO i używany przeze mnie laptop deweloperski (nie wiem, czy jest to problem z wydajnością dysku hosta z całkowitym rozmiarem 140 GB w wielu fragmentach, czy tylko faktem, że jest to uderzanie sektorów rozproszonych w wielu plikach).
Chciałbym scalić bieżącą gałąź rozwoju migawek z dyskiem podstawowym, ale nie jestem pewien, czy poniższe polecenie przyniesie poprawny wynik. Nie mogę uruchomić tego dysku po zakończeniu procedury (5-6 godzin).
vboxmanage clonehd "C:\VPC-Storage\.VirtualBox\Machines\CRM\Snapshots\{245b27ac-e658-470a-b978-8e62137c33b1}.vhd" "E:\crm-20100624.vhd" --format VHD --type normal
Czy ktoś może potwierdzić, czy jest to właściwe podejście, czy nie?
virtualbox
vhd
merge
snapshot
Henrik
źródło
źródło
Odpowiedzi:
Co chcesz zrobić, to w oknie migawek wybierz migawkę nadrzędną, którą chcesz scalić wszystkie migawki w jednym VDI.
Z twojego opisu wygląda na to, że jest to korzeń drzewa.
Kliknij prawym przyciskiem myszy i wybierz „Usuń migawkę”.
To zrobi, co chcesz --- połączy wszystkie zmiany ze wszystkich migawek potomnych w jeden VDI.
Dodatkowo - klonowanie obrazu dysku, który znajduje się w najnowszej migawce - spowoduje także scalenie dysku różnicowego z jego rodzicem (i jego rodzicem itd., Aż dojdzie do „normalnego” typu dysku twardego).
Podejrzewam, że „usunięcie migawki” uruchamia polecenie clonehd.
Sprawdź ustawienia maszyny wirtualnej (w szczególności włączone / wyłączone IO APIC) i upewnij się, że są zgodne.
źródło
Jeśli chcesz zachować tylko jedną migawkę, ustaw ją w bieżącym stanie, a następnie wyeksportuj maszynę wirtualną i ponownie ją zaimportuj. Wyeksportowane urządzenia nie zachowują historii migawek.
Możesz też użyć tego skryptu vboxmerge.py, aby obsłużyć scalanie. Biorąc pod uwagę liczbę twoich migawek, oczekiwałbym, że cykl eksportu / importu będzie szybszy.
źródło
Oto technika (przetestowana na VirtualBox 4.3.4), która używa polecenia „Klonuj” do scalania i kompaktowania wszystkich migawek na nowej maszynie wirtualnej zawierającej pojedynczy plik VDI:
Zmień nazwę maszyny wirtualnej, aby móc ponownie użyć jej bieżącej nazwy dla sklonowanej maszyny wirtualnej (możesz zmienić nazwę maszyny wirtualnej na karcie „Podstawowe” w ustawieniach „Ogólne”).
Kliknij maszynę wirtualną prawym przyciskiem myszy i uruchom polecenie „Klonuj ...”:
Usuń starą maszynę wirtualną (kliknij maszynę wirtualną prawym przyciskiem myszy i uruchom polecenie „Usuń ...”).
źródło
Jeśli Twoim hostem jest system Windows lub masz dostęp do plików VHD z systemu Windows, istnieje możliwość scalenia wszystkich zmian w rodzicach, dziadkach itp.
Korzysta z narzędzia DiskPart i dwóch poleceń:
select vdisk file="whatever your file is, with full path"
merge vdisk depth=#
Gdzie # to liczba poziomów hierarchii, które chcesz przenieść, 1 dla bezpośredniego rodzica, 2 dla dziadka itp.
Robi to w miejscu, znacznie mniej czasochłonne niż klonowanie itp.
Pamiętaj, że po scaleniu wszystkie pośrednie dyski VHD można usunąć (nie usuwa ich za Ciebie) i nie zapomnij dołączyć do VirtualBox tego rodzica, w którym się scaliłeś.
Przykład:
Disk3.vhd jest dzieckiem Disk2.vhd, Disk2.vhd jest dzieckiem Disk1.vhd
Jeśli chcesz na Disk1.vhd wszystkie zmiany Disk3.vhd po prostu użyj
depth=2
i wybierz Disk3.vhd. Jeśli chcesz na Disk1.vhd wszystkie zmiany na Disk2.vhd wystarczy użyćdepth=1
wybierz Disk3.vhd.Pamiętaj również, że nie ma potrzeby brzydkich migawek VirtualBox, możesz użyć polecenia DiskPart create vdisk, aby utworzyć dysk różnicowy z istniejącego (który może być również dyskiem różnicowym itp.), A także utworzyć ogromne drzewo.
Reszta: Plakat korzysta z VHD (nie VDI), więc można korzystać z natywnych narzędzi, takich jak DiskPart i Zarządzanie dyskami, aby uzyskać dostęp do dysków z Gościa (na hoście, jeśli hostem jest Windows).
Dla ciebie plakat: Pamiętaj, aby zawsze mieć pełne BackUp przed scaleniem, klon VirtualBox nie działa w miejscu, tworzy nowy plik (kopiuj podczas zapisu), ale scalanie DiskPart działa na miejscu (modyfikuj plik, nie twórz nowy).
Mam nadzieję, że może dać inne podejście, ponieważ VHD / VHDX jest w użyciu (nie dotyczy VMDK, VDI itp., Tylko dla hosta Windows).
Uwaga: Windows 7 i nowsze wersje, XP i Vista mogą montować dysk VHD za pomocą zewnętrznego narzędzia M $, ale DiskPart nie obsługuje VHD w XP i Vista ... wszystko to działa również w edycjach Windows HOME (7 i nowszych), bez potrzeby Edycja SERVER.
źródło