Mam vdi z całkiem dużą liczbą migawek - powiedzmy 50 lub 70 migawek. Chcę mieć jeden zwykły vdi z bieżącym stanem. Te migawki zajmują zbyt dużo miejsca na dysku i nie są potrzebne jako migawki.
Wiem to, jeśli zadzwonię
VBoxManage clonehd thedisk.vdi thedisk-full.vdi
(50-70 times) VBoxManage clonehd {uuid-of-snapshot}.vdi thedisk-full.vdi --existing
Dostanę co chcę. Ale zajmuje to bardzo dużo czasu (ponad 5 godzin, biorąc pod uwagę mój sprzęt i początkowy rozmiar dysku 16G).
I, oczywiście, próbowałem VBoxManage snapshot delete
i jest to dziwne: nie działa na zatrzymanym komputerze, może zawieść na uruchomionym komputerze, a gdy raz zawiedzie, zawiedzie wszystkie kolejne połączenia.
Czy istnieje sposób na szybsze utworzenie zwykłego vdi z wielu migawek?
$ VBoxManage --version
3.2.14r75509
(zadał to na ServerFault, ale zdecydował, że to miejsce jest bardziej odpowiednie dla tego pytania)
virtualbox
performance
virtualization
snapshot
Andrey Regentov
źródło
źródło
Odpowiedzi:
Znalazłem rozwiązanie. Jest to tak proste, jak ostatni krok z poleceń, które tu napisałem. To znaczy
Powinienem więc sklonować tylko ostatnią migawkę, a nie każdą migawkę z łańcucha. I to jest o tysiące procent szybsze.
Uuid można znaleźć w
VBoxManage list hdds | grep VmName | tail
W interfejsie GUI (w systemie Windows) wybierz maszynę wirtualną, wybierz Migawki w prawym górnym rogu, kliknij prawym przyciskiem myszy żądaną migawkę, wybierz Klonuj ... i wybierz Pełny klon w oknie dialogowym.
źródło
thedisk-full.vdi
plik na dysku, najpierw zmień nazwę w poleceniu na coś podobnegothedisk-full-new.vdi
.tail -1
”?clonehd
jest przestarzały i pozostawiony do kompatybilności wstecznej, użyjclonemedium
zamiast tego.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
Możesz spróbować wyeksportować do OVF, a następnie zaimportować z powrotem wygenerowany plik.
Jak wyjaśniono tutaj :
W rezultacie będziesz mieć sklonowaną maszynę wirtualną z bieżącym stanem bez innych migawek.
źródło
Ta operacja oznacza odczyt i zapis bardzo dużych plików na tym samym dysku fizycznym. Jedynym sposobem na przyspieszenie jest umieszczenie tych plików na różnych dyskach, zmieniając ścieżki w poleceniu VBoxManage. Jeśli urządzenie ma tylko jeden dysk, możesz użyć zewnętrznego napędu USB lub nawet dysku w innym komputerze poprzez udział sieciowy (w zależności od prędkości twojej sieci)
źródło
Niektóre mają sieć LAN 10 Gib / s, więc może przesyłać więcej niż jeden gigabajt na sekundę, więc nie będzie wąskim gardłem.
Niektóre mają sieć LAN 1 Gib / s, więc może przesyłać więcej niż 100 megabajtów na sekundę, więc nie będzie wąskim gardłem (chyba że masz naprawdę szybki dysk SSD).
Dyski mechaniczne, gdy odczytują i zapisują na tym samym dysku w tym samym czasie (lub znacznie pofragmentowane), zmniejszają się o około 20 megabajtów na sekundę, podczas gdy na niefragmentowanych tylko do odczytu lub tylko zapisu można przejść do ponad 100 megabajtów na sekundę.
Mówisz, że LAN działa wolniej, ale nie o USB (2.0, nie wspominając o 1.1 lub 1.0) jest znacznie wolniejszy.
Sugerowałbym: użyj USB 3.1 Gen2 Type C lub eSATA / SATA / SAS
Ale zawsze: użyj drugiego wystarczająco szybkiego dysku.
I zawsze: klonowanie na inny dysk i kopiowanie pliku jest znacznie szybsze niż przy użyciu tylko jednego dysku, chyba że jest to dysk SSD lub dysk twardy z niezależnymi głowicami wielogłowicowymi (mogą jednocześnie czytać i zapisywać na dwóch miejsca na powierzchni, każda głowa ma własne ramię, bardzo drogie, około 9876 €).
Najlepiej jest sklonować tylko wirtualny dysk twardy w żądanym stanie, następnie sprawdzić, czy działa, a następnie PRZYWRÓCIĆ najwyższy poziom (usunie wszystkie migawki), a następnie usunąć dysk twardy z pamięci i podłączyć nowy.
Więc kroki, aby stracić wszystkie stare stany w schemacie migawek bez drzewa:
Ale zawsze należy pamiętać, że migawki mogą być jak pełne drzewo, jeden węzeł może mieć więcej niż jedno dziecko, każde dziecko może mieć więcej niż jedno dziecko itp.
Aby pracować z drzewami snoapshotów, zawsze myśl o DELETE jako usuwaniu węzła bez wywoływania reszty węzłów (tylko stracić ten stan, ale nie ma odpoczynku, nie ma elementu nadrzędnego i żadnego elementu podrzędnego, dane zostaną scalone na wszystkich pierwszych sub poziom childs, tak powolny proces) i przy PRZYWRACANIU niszcząc wszystkie jego childs na wszystkich poziomach podrzędnych (tracąc wszystkie stany po tym, który przywrócisz, usuwa tylko pliki, tak naprawdę szybki proces, zaledwie kilka sekund).
To jest!
PD: Jak okropne nazwy VBOX nadał tym dwóm operacjom (usuń tylko jeden węzeł = USUŃ; usuń wszystkie węzły potomne na wszystkich poziomach podrzędnych = PRZYWRÓĆ)
źródło