Avamar: Zwevende Hyper-V-vmgroepen handmatig opschonen
Summary: Het KB-artikel bevat gedetailleerde procedures voor het verwijderen van zwevende Hyper-V-vmgroepen met behulp van verschillende methoden.
Instructions
Hyper-V-back-ups kunnen mislukken als gevolg van zwevende vmgroups met berichten die vergelijkbaar zijn met de volgende:
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
Orphaned Resilient Change Tracking (RCT) extents en back-upfouten kunnen optreden wanneer virtuele machines (VM) Live migreren naar een ander clusterknooppunt tijdens back-ups.
Als een Hyper-V virtuele machine (VM) zich op een bepaald clusterknooppunt bevindt, wordt deze toegevoegd aan de virtuele machinegroep van dat knooppunt (vmgroup) tijdens de back-up. Als de VM Live tijdens de back-up naar een ander clusterknooppunt migreert, bestaat deze nog steeds als lid van de vmgroup op het bronknooppunt. Vóór het einde van de back-up probeert het Windows-besturingssysteem de vmgroups op alle clusterknooppunten.
Als de VM die eerder live is gemigreerd niet meer wordt uitgevoerd op het oorspronkelijke bronknooppunt, kan het Windows-besturingssysteem de vmgroup niet verwijderen. Deze verweesde vmgroup kan ertoe leiden dat volgende Hyper-V-back-ups mislukken.
Controleer de volgende Microsoft-URL hieronder voordat u handmatige opschoonprocedures uitvoert. Het KB-artikel bevat oplossingen voor Live Migration-fouten als gevolg van omgevingsfactoren:
- https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/troubleshoot-live-migration-issues (Externe link)
get-vmgroup
Controleren op zwevend vmgroup op alle clusterknooppunten tegelijk, voert u de volgende opdracht uit in PowerShell (uitvoeren als administrator):
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Als er verweesde vmgroups, dan moet de uitvoer er ongeveer als volgt uitzien:
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. Standaardprocedures
voor het verwijderen van vmgroupAls u alle zwevende vmgroups op een zelfstandige Hyper-V-server voert u de volgende opdrachten uit in PowerShell (als administrator uitvoeren):
Get-VMGroup | remove-vmgroup Get-VMGroup | remove-vmgroup -Force
vmgroups Voer op alle Hyper-V clusterknooppunten de volgende opdrachten uit in PowerShell (uitvoeren als administrator):
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup -Force }
Als de bovenstaande opdrachten mislukken, gebruikt u het volgende PowerShell-script (VMGrpCln.ps1) om te automatiseren vmgroup Verwijdering op alle clusterknooppunten:
Het script downloaden:
Raadpleeg het volgende artikel voor informatie over het vinden en downloaden van het script: Avamar: Avamar scripts en tools vinden en downloaden vanaf de Dell Central Avamar pagina
- Download het PowerShell-script naar een map zoals
"C:\temp"op een van de knooppunten in het cluster. - Open de PowerShell-prompt (als administrator uitvoeren) en ga naar de map met het PowerShell-script (PS).
- Controleer of de Windows-server toestaat dat PS-scripts worden uitgevoerd door de volgende opdracht in PowerShell (als administrator uitvoeren) uit te voeren:
Get-ExecutionPolicy
Als de uitvoer het volgende weergeeft "Restricted" of "Allsigned," en voer vervolgens de volgende PowerShell-opdracht uit (uitvoeren als administrator) om tijdelijk toe te staan dat de huidige sessie PS-scripts uitvoert:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
4. Voer het PS-script uit vanuit de map waar het zich bevindt:
Als deze opdrachten of scripts er niet in slagen om de zwevende vmgroups, dan is de volgende stap het handmatig verwijderen van de zwevende groepen.
II Procedures vmgroup handmatig verwijderen
vmgroups bevinden zich in de lokale directory op elk clusterknooppunt (C:\ProgramData\Microsoft\Windows\Hyper-V\Groups).
"shared storage path".Avamar: Hyper-V VSS plug-in: configuratie en installatie van de nieuwste cumulatieve hotfixes voor versie 19.4 en hoger
Voor Hyper-V-clusters waar de parameter "shared storage path" is geconfigureerd, zijn deze procedures niet van toepassing. Neem contact op met de klantenservice voor verdere probleemoplossing
Stap # 1: Voer de volgende opdracht uit op elk knooppunt van het Hyper-V-cluster:
get-VMGroup
U kunt ook de volgende opdracht uitvoeren om de vmgroups Van elk clusterknooppunt:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Stap #2a: Als het veld VMMembers is ingevuld, voert u de volgende opdracht uit op elk clusterknooppunt:
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Stap #2b: Als VMMembers niet is ingevuld:
- Ga naar de
C:\ProgramData\Microsoft\Windows\Hyper-V\GroupsMap. Typ de locatie handmatig in Windows Verkenner of wijzig de opties om verborgen bestanden en mappen weer te geven. - Het configuratiebestand voor de virtuele machine bewerken
"*.vmcx"die overeenkomt met de instance-id van de VM-groep met een teksteditor zoals Notepad of Notepad++. Klik op Weergeven in de menubalk en selecteer vervolgens de optie 'Tekstterugloop' voor een betere leesbaarheid. - Kopieer de Globally Unique Identifiers (GUID's) van de virtuele machine (VM's) naar de teksteditor; Ze volgen de
'GUID H'Tekst in de*.vmcxBestand. - Klik in de teksteditor op Bewerken en vervolgens op Vervangen. Vervolgens in de
'Find what'veld Druk op de spatiebalk op het toetsenbord en klik vervolgens op 'Replace All.'Deze opschoning biedt een lijst met problematische VM-GUID's die live moeten worden gemigreerd naar het vorige clusterknooppunt. - Voer de volgende PowerShell-opdracht uit om de VM te vinden die aan deze GUID's is gekoppeld, samen met de clusterknooppunten die deze hosten:
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "VM GUID Previously Collected" }
Gebruik bijvoorbeeld de onderstaande opdrachtsyntaxis om de naam van de virtuele machine (VM) te vinden die aan de volgende GUID is toegewezen:
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "A6209559-F08F-440E-9AAE-21AEF4AF7E9D" }
De uitvoer van de opdracht moet de VM-naam en het clusterknooppunt bevatten waarop deze wordt uitgevoerd. Als de uitvoer leeg is, bestaat de GUID niet meer en kan deze veilig worden genegeerd.
6. Live de VM migreren naar de host met de verouderde VM-groep met behulp van de Failover Cluster Manager tool.
Herhaal de stappen voor elke VM die is geïdentificeerd in de vmgroup's "*.vmcx" Bestand.
7. Voer de volgende PowerShell-opdracht uit om de VM's uit het veld VMMembers in elk van de zwevende vmgroepen te verwijderen:
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Bevestig dat het 'vmmembers" veld voor elk van de vmgroups is leeg door de volgende opdracht uit te voeren op elk clusterknooppunt:
get-vmgroup
U kunt ook de volgende opdracht uitvoeren om te bevestigen dat het veld 'vmmembers' leeg is voor alle vmgroups Op alle knooppunten:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Eenmaal bevestigd, ga dan naar stap #3.
Stap #3: Voer de volgende PowerShell-opdracht uit om de zwevende vmgroups op het clusterknooppunt of de standalone Hyper-V-server:
get-VMGroup | Remove-VMGroup
Herhaal dezelfde procedures voor andere clusterknooppunten die zwevend zijn geworden vmgroups.
U kunt ook de volgende opdracht gebruiken om zwevende vmgroups op alle clusterknooppunten tegelijk te verwijderen:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Zodra alle knooppunten zijn voltooid, controleert u of alle zwevende knooppunten vmgroups Verwijderd:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
De "remove-vmgroupmember" als "remove-vmgroup" Opdrachten kunnen mislukken op het eerste clusterknooppunt met een fout die lijkt op de volgende:
Remove-VMGroup : The operation cannot be performed while the object is in its current state
Als dat het geval is, probeer dan de opdrachten op de resterende clusterknooppunten. Als de procedures zijn voltooid, gaat u terug naar het eerste knooppunt en probeert u de PowerShell-opdrachten opnieuw uit te voeren.
Als de bovenstaande opdrachten mislukken op alle clusterknooppunten, start u de Hyper-V Virtual Machine Management-service opnieuw op het betreffende knooppunt. U kunt ook alle knooppunten van het Hyper-V-cluster opnieuw opstarten. Als u klaar bent, probeert u de PowerShell-opdrachten opnieuw uit te voeren om de VM-leden en vmgroups.
Als de standaard- of handmatige procedures er niet in slagen de zwevende vmgroups, dan is de laatste optie om de vmgroup bestanden zelf.
Additional Information
Referenties:
Hyper-V Live Migratie tussen hosts kan mislukken als gevolg van herstelcontrolepunten.
Avamar Hyper-V incrementele RCT-back-up mislukt met de foutmelding "Failed to get RCT extents for the disk file" en/of "Reference point creation for Virtual machine failed"