Maszyna wirtualna Hyper-V utknęła w niekończącej się pętli, próbując scalić usuniętą migawkę z niewystarczającą ilością miejsca na dysku

4

Obecnie mam problem z niewystarczającą ilością miejsca na dysku na kolokowanym serwerze i mógłbym pomóc z pewną pomocą. Sytuacja jest następująca:

  • Serwer jest „mój”, ale znajduje się w obiekcie hostingowym, więc nie mam do niego łatwego dostępu.
  • Serwer ma dwa fizyczne dyski 250 GB w konfiguracji RAID1 (tj. Prezentujące jeden dysk 250 GB)
  • Dysk jest podzielony na partycje C: (177 GB) i E: (54 GB)
  • C: ma około 25 GB wolnego miejsca. W razie potrzeby może być możliwe zwolnienie nieco ponad 50 GB (ogółem).
  • Serwer to Win Server 2008 (nie R2)
  • Mam kilka maszyn wirtualnych na serwerze. Problem pierwszy nazywa się SVR03.
  • SVR03 ma dynamicznie rozwijający się plik vhd, który jest jedynym plikiem w E :, i zajmuje obecnie całe miejsce na tym dysku: 54 GB.
  • SVR03 miał migawkę, która była przechowywana w normalnej lokalizacji na C: \ programdata \ microsoft \ windows \ hyper-v \ snapshots. Odkryliśmy, że ta migawka zajmuje coraz więcej miejsca na C: i nie chcieliśmy migawki, więc została usunięta przez menedżera Hyper-V. Jednak, jak rozumiem, ta migawka musi zostać scalona z vhd, zanim zostanie naprawdę usunięta, a to scalanie ma miejsce podczas zamykania maszyny wirtualnej.
  • Teraz po wyłączeniu SVR03 Hyper-V próbuje wykonać scalenie migawki z vhd, ale ponieważ nie ma wystarczającej ilości miejsca na E: to się nie udaje. Wydaje się, że osiąga około 50%, zanim zawiedzie.
  • Początkowo osiągało tylko około 25%, zanim uległo awarii, a potem znalazłem dodatkowe 2 GB niepodzielonego miejsca na dysku, więc rozszerzyłem E :, niestety nie było wystarczającej ilości miejsca, a vhd rozszerzyło się, aby zająć całą przestrzeń oprócz migawki nie udało się scalić.
  • Gdy Hyper-V nie połączy się, czeka chwilę, a następnie próbuje ponownie.
  • Nie jestem w stanie skompresować dysku VHD dla SRV03, ponieważ jest używany przez Hyper-V, który próbuje go scalić.
  • Jestem w stanie ponownie uruchomić SVR03 ponownie, ale ten sam problem występuje po wyłączeniu.

Jak mogę wyjść z tej sytuacji?

Czy istnieje sposób, aby powiedzieć Hyper-V, aby na razie nie scalał migawki, aby móc przenosić pliki? np. mógłbym przenieść plik vhd w inne miejsce, aby uzyskać więcej miejsca (albo przez wyczyszczenie miejsca na C: lub przez wyłączenie RAID i utworzenie nowego F: z 250 GB). Jeśli miałbym przenieść plik vhd, czy będzie to w porządku, czy też migawka jest w jakiś sposób powiązana z bieżącą lokalizacją pliku?

Czy istnieje sposób na usunięcie migawki, dzięki czemu mogę zamknąć SVR03, a następnie przenieść VHD?

Wielkie dzięki!

Rory
źródło

Odpowiedzi:

2

Wyłączenie macierzy RAID wydaje się być złym pomysłem , ale jesteś całkiem niezły, chyba że możesz podłączyć dysk USB do serwera lub coś w tym rodzaju. Możesz wyłączyć maszynę, anulować scalanie, pobrać pliki vhd i avhd. Po ich przeniesieniu funkcja Hyper-V nie będzie ich automatycznie łączyć, musisz to zrobić ręcznie. Po scaleniu przenieś vhd z powrotem do pierwotnej lokalizacji, a Hyper-V automatycznie wykryje, że plik avhd zniknął.

Chris S.
źródło
Jak anulować scalanie?
Rory
2

Zmień nazwę wszystkich AVHDskojarzonych z serwerem wirtualnym naVHD

Pochodzi z metody ręcznego łączenia migawek, która może działać.

Nie wypróbowałem tej metody, więc nie biorę odpowiedzialności, jeśli się nie powiedzie. Jeśli masz zewnętrzną kopię zapasową, proponuję ją wziąć :)

Odniesienie do ręcznego łączenia dysków

http://www.virtualizationadmin.com/kbase/VirtualizationTips/ServerVirtualization/MicrosoftHyper-VR2Tips/General/ManuallyMergingHyper-VSnapshots.html

chrześcijanin
źródło
1

Oto jak to rozwiązałem:

  • Podłączony zewnętrzny dysk USB. To częściowo rozwiązuje problem z przestrzenią, ale wciąż pozostawia mi maszynę, która próbowała scalić migawkę podczas zamykania maszyny wirtualnej
  • Zatrzymaj usługi zarządzania Hyper-V, klikając prawym przyciskiem myszy nazwę serwera w Menedżerze funkcji Hyper-V> Zatrzymaj usługi. Pamiętaj, że to nie zatrzymuje żadnej z maszyn wirtualnych ani nie umożliwia dostępu do nich za pośrednictwem pulpitu zdalnego itp.
  • Pulpit zdalny do serwera SVR03 i zamknij go. Teraz pliki na dysku nie są używane.
  • Skopiuj plik VHD (z E :) i plik migawki AVHD na dysk USB.
  • Zmień nazwę oryginalnych plików VHD i AVHD. Jest tak, że (a) Hyper-V nie będzie próbował scalić ich podczas uruchamiania, a także (b) podczas korzystania z kreatora Edytuj dysk później pojawi się opcja „ponownie połącz”.
  • Postępując zgodnie z instrukcjami tutaj , zmień nazwę pliku AVHD na VHD, a następnie użyj kreatora Edytuj dysk, aby edytować plik AVHD i ponownie połączyć go z nadrzędnym VHD. Uwaga: nie dostaniesz opcji ponownego połączenia, jeśli oryginalny plik VHD (na E: w moim przypadku) nadal tam jest. Teraz ponownie użyj kreatora Edytuj dysk, aby edytować plik AVHD i połączyć go z plikiem VHD. To trwa wieki, jeśli jesteś na dysku USB!
    • Teraz mój dysk VHD był większy niż moja partycja, więc pozbyłem się tego dysku i zmieniłem rozmiar C: aby użyć tego miejsca, usunąłem stare pliki VHD i AVHD, a następnie przeniosłem scalony plik VHD do C:
    • Utwórz nową maszynę wirtualną z takimi samymi ustawieniami jak SVR03 i nadaj jej jako istniejący dysk twardy scalony plik VHD.
    • Uruchom to i wszystko dobrze!
Rory
źródło
0

Jeśli masz AVHD ręcznie scal je wszystkie w VHD Hyper-V będzie płakać, że dysk ma punkty kontrolne i nie można go zmienić, więc po prostu usuń zablokowany dysk (nie usuwaj VHD) dodaj nowy dysk i przejdź do VHD - uruchom VM jak zwykle :)

Setekh
źródło