Avamar: Ręczne czyszczenie osieroconych grup wirtualnych funkcji Hyper-V
Summary: Artykuł bazy wiedzy zawiera szczegółowe procedury usuwania oddzielonych grup wirtualnych funkcji Hyper-V przy użyciu różnych metod.
Instructions
Tworzenie kopii zapasowych funkcji Hyper-V może zakończyć się niepowodzeniem z powodu osierocenia vmgroups z komunikatami podobnymi do poniższych:
avhypervvss Info <0000>: Exception! WMI API returned error: 'The method call failed.' avhypervvss Info <0000>: WMI API RemoveMember returned Error! Exception in removing VMGroup Memeber 'PPDM01' from VM Group AvamarBackup_HYPERV10-app-20240301180052-0 and error message is 'The method call failed.'. avhypervvss Info <0000>: Exception in Removing VM 'PPDM01' from group 'AvamarBackup_HYPERV10-app-20240301180052-0' with error 'The method call failed.'. avhypervvss Info <0000>: Failed to RemoveVMGroupMember for groupname AvamarBackup_HYPERV10-app-20240301180052-0.
avhypervvss Info < 43394 >: Checking for Stale entries from previous backup. avhypervvss Error < 43417 >: Failed to cleanup Stale checkpoint entries for the targets
Osierocone zakresy śledzenia zmian (RCT) i awarie kopii zapasowych mogą wystąpić, gdy maszyny wirtualne (VM) migrują na żywo do innego węzła klastra podczas tworzenia kopii zapasowych.
Jeśli maszyna wirtualna funkcji Hyper-V znajduje się w określonym węźle klastra, zostanie dodana do grupy maszyn wirtualnych tego węzła (vmgroup) podczas tworzenia kopii zapasowej. Jeśli maszyna wirtualna Live zostanie zmigrowana do innego węzła klastra podczas tworzenia kopii zapasowej, nadal istnieje jako członek vmgroup w węźle źródłowym. Przed zakończeniem tworzenia kopii zapasowej system operacyjny Windows próbuje usunąć plik vmgroups we wszystkich węzłach klastra.
Jeśli maszyna wirtualna, która wcześniej migrowała na żywo, nie jest już uruchomiona w oryginalnym węźle źródłowym, system operacyjny Windows nie może usunąć grupy vmgroup. To osierocone vmgroup może w konsekwencji spowodować niepowodzenie wykonywania kolejnych kopii zapasowych funkcji Hyper-V.
Przed wykonaniem procedur czyszczenia ręcznego sprawdź poniższy adres URL firmy Microsoft. Artykuł bazy wiedzy zawiera rozwiązania, które mogą rozwiązać problemy związane z operacją Live Migration i spowodowanym czynnikami środowiskowymi:
- https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/troubleshoot-live-migration-issues (Łącze zewnętrzne)
get-vmgroup
Aby sprawdzić, czy nie ma osieroconych vmgroup na wszystkich węzłach klastra jednocześnie uruchom następujące polecenie w programie PowerShell (uruchom jako administrator):
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Jeśli jest jakiś osierocony vmgroups, dane wyjściowe powinny wyglądać podobnie do poniższych:
PS C:\> get-vmgroup
Name : AvamarBackup_Win2019-H4-crash-20240311112148-0
InstanceId : 416dd21c-e8b7-4f9e-8359-c78068cc0c69
GroupType : VMCollectionType
VMMembers : {win7-cl2}
VMGroupMembers :
CimSession : CimSession: .
ComputerName : WIN2019-H1
IsDeleted : False
Name : AvamarBackup_Win2019-H2-crash-20240311112148-0
InstanceId : 88c419c0-ceb8-46d2-af17-6560c55e0d06
GroupType : VMCollectionType
VMMembers : {}
VMGroupMembers :
CimSession : CimSession: .
ComputerName : WIN2019-H1
IsDeleted : False
I. Standardowe procedury
usuwania vmgroupAby usunąć wszystkie osierocone vmgroups na autonomicznym serwerze funkcji Hyper-V uruchom następujące polecenia w programie PowerShell (uruchom jako administrator):
Get-VMGroup | remove-vmgroup Get-VMGroup | remove-vmgroup -Force
vmgroups we wszystkich węzłach klastra funkcji Hyper-V uruchom następujące polecenia w programie PowerShell (uruchom jako administrator):
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup -Force }
Jeśli powyższe polecenia zakończą się niepowodzeniem, użyj następującego skryptu PowerShell (VMGrpCln.ps1) w celu zautomatyzowania vmgroup Usunięcie we wszystkich węzłach klastra:
Pobieranie skryptu:
Zapoznaj się z następującym artykułem, aby uzyskać informacje na temat lokalizowania i pobierania skryptu: Avamar: Wyszukiwanie i pobieranie skryptów i narzędzi Avamar ze strony Dell Central Avamar
- Pobierz skrypt programu PowerShell do katalogu, takiego jak
"C:\temp"na jednym z węzłów w klastrze. - Otwórz wiersz poleceń programu PowerShell (uruchom jako administrator) i przejdź do katalogu zawierającego skrypt PowerShell (PS).
- Sprawdź, czy serwer Windows zezwala na uruchamianie skryptów PS, wpisując następujące polecenie w programie PowerShell (uruchom jako administrator):
Get-ExecutionPolicy
Jeśli dane wyjściowe są wyświetlane "Restricted" lub "Allsigned," następnie uruchom następujące polecenie PowerShell (uruchom jako administrator), aby tymczasowo zezwolić bieżącej sesji na uruchamianie skryptów PS:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
4. Uruchom skrypt PS z katalogu, w którym się znajduje:
Jeśli te polecenia lub skrypty nie usuną osieroconego elementu vmgroups, następnym krokiem jest ręczne usunięcie oddzielonych grup.
II Ręczne procedury usuwania vmgroup
vmgroups znajdują się w katalogu lokalnym na każdym węźle klastra (C:\ProgramData\Microsoft\Windows\Hyper-V\Groups).
"shared storage path".Avamar: Wtyczka VSS funkcji Hyper-V — konfiguracja i instalacja najnowszych poprawek zbiorczych dla wersji 19.4 i nowszych
W przypadku klastrów funkcji Hyper-V, w których skonfigurowano parametr "udostępniona ścieżka magazynu", procedury te nie mają zastosowania. Skontaktuj się z obsługą klienta w celu rozwiązania problemu
Krok # 1: Uruchom następujące polecenie dla każdego węzła klastra funkcji Hyper-V:
get-VMGroup
Alternatywnie, uruchom następujące polecenie, aby uzyskać vmgroups Z każdego węzła klastra:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Krok #2a: Jeśli pole VMMembers jest wypełnione, uruchom następujące polecenie dla każdego węzła klastra:
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Krok #2b: Jeśli moduł VMMembers nie jest wypełniony:
- Przejdź do
C:\ProgramData\Microsoft\Windows\Hyper-V\Groups. Wpisz lokalizację ręcznie w Eksploratorze Windows lub zmień opcje wyświetlania ukrytych plików i folderów. - Edytuj plik konfiguracyjny maszyny wirtualnej
"*.vmcx", który jest zgodny z identyfikatorem wystąpienia grupy maszyn wirtualnych z edytorem tekstów, takim jak Notatnik lub Notepad++. Kliknij Widok na pasku menu, a następnie wybierz opcję "Zawijanie wyrazów", aby uzyskać lepszą czytelność. - Skopiuj unikatowe identyfikatory globalne (GUID) maszyny wirtualnej (VM) do edytora tekstu; Postępują zgodnie z zasadą
'GUID H'tekst w pliku*.vmcxprogramu NetWorker. - W edytorze tekstu kliknij przycisk Edytuj, a następnie przycisk Zamień. Następnie w
'Find what'Field Naciśnij spację na klawiaturze, a następnie kliknij przycisk "Replace All.'To oczyszczanie zawiera listę problematycznych identyfikatorów GUID maszyn wirtualnych, które muszą zostać zmigrowane na żywo z powrotem do poprzedniego węzła klastra. - Uruchom następujące polecenie programu PowerShell, aby znaleźć maszynę wirtualną powiązaną z tymi identyfikatorami GUID wraz z węzłami klastra ją hostującymi:
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "VM GUID Previously Collected" }
Na przykład użyj poniższej składni polecenia, aby znaleźć nazwę maszyny wirtualnej przypisaną do następującego identyfikatora GUID:
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "A6209559-F08F-440E-9AAE-21AEF4AF7E9D" }
Dane wyjściowe polecenia powinny zawierać nazwę maszyny wirtualnej i węzeł klastra, na którym jest uruchomiona. Jeśli dane wyjściowe są puste, identyfikator GUID już nie istnieje i można go bezpiecznie zignorować.
6. Przeprowadź migrację maszyny wirtualnej na żywo do hosta, który ma niestarą grupę maszyn wirtualnych przy użyciu narzędzia Menedżer klastra trybu failover.
Powtórz kroki dla każdej maszyny wirtualnej wskazanej w vmgroup's "*.vmcx" programu NetWorker.
7. Uruchom następujące polecenie programu PowerShell, aby usunąć maszyny wirtualne z pola VMMembers w każdej z oddzielonych grup maszyn wirtualnych:
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Potwierdź, że "vmmembers' dla każdego z pól vmgroups jest pusta, uruchamiając następujące polecenie dla każdego węzła klastra:
get-vmgroup
Możesz także uruchomić następujące polecenie, aby potwierdzić, że pole "vmmembers" jest puste dla wszystkich vmgroups Na wszystkich węzłach:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Po potwierdzeniu przejdź do kroku #3.
Krok #3: Uruchom następujące polecenie programu PowerShell, aby usunąć osierocone vmgroups w węźle klastra lub autonomicznym serwerze funkcji Hyper-V:
get-VMGroup | Remove-VMGroup
Powtórz te same procedury dla innych osieroconych węzłów klastra vmgroups.
Można również użyć następującego polecenia, aby usunąć oddzielone grupy vmgroups na wszystkich węzłach klastra jednocześnie:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Po zakończeniu pracy wszystkich węzłów sprawdź, czy wszystkie osierocone vmgroups zostały usunięte:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Pakiet "remove-vmgroupmember" i "remove-vmgroup" Polecenia mogą zakończyć się niepowodzeniem w pierwszym węźle klastra z błędem podobnym do następującego:
Remove-VMGroup : The operation cannot be performed while the object is in its current state
W takim przypadku wypróbuj polecenia na pozostałych węzłach klastra. Jeśli procedury zostaną zakończone pomyślnie, wróć do pierwszego węzła i ponów próbę poleceń programu PowerShell.
Jeśli powyższe polecenia nie powiodą się we wszystkich węzłach klastra, uruchom ponownie usługę zarządzania maszyną wirtualną Hyper-V na węźle, którego dotyczy problem. Można także uruchomić ponownie każdy z węzłów klastra funkcji Hyper-V. Po zakończeniu spróbuj ponownie użyć poleceń programu PowerShell, aby usunąć elementy członkowskie maszyny wirtualnej i vmgroups.
Jeśli standardowe lub ręczne procedury nie spowodują usunięcia osieroconego vmgroups, ostatnią opcją jest usunięcie vmgroup same pliki.
Additional Information
Dokumentacja:
Migracja funkcji Hyper-V Live między hostami może zakończyć się niepowodzeniem w wyniku punktów kontrolnych odzyskiwania.
Przyrostowa kopia zapasowa RCT Avamar Hyper-V kończy się niepowodzeniem z powodu błędu "Nie udało się pobrać zakresów RCT dla pliku dysku" i/lub "Tworzenie punktu odniesienia dla maszyny wirtualnej nie powiodło się"