Avamar : Nettoyer manuellement les vmgroups Hyper-V orphelins
Summary: Cet article de la base de connaissances fournit des procédures détaillées pour supprimer les groupes de machines virtuelles Hyper-V orphelins à l’aide de différentes méthodes.
Instructions
Les sauvegardes Hyper-V peuvent échouer en raison de vmgroups avec des messages similaires à ce qui suit :
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
Des extensions RCT (Resilient Change Tracking) orphelines et des échecs de sauvegarde peuvent se produire lorsque les machines virtuelles (VM) migrent en direct vers un autre nœud de cluster pendant les sauvegardes.
Si une machine virtuelle (VM) Hyper-V réside sur un nœud de cluster particulier, elle est ajoutée au groupe de machines virtuelles de ce nœud (vmgroup) pendant la sauvegarde. Si la machine virtuelle Live Migrate vers un autre nœud de cluster lors de la sauvegarde, elle existe toujours en tant que membre vmgroup sur le nœud source. Avant la fin de la sauvegarde, le système d’exploitation Windows tente de supprimer le vmgroups sur tous les nœuds du cluster.
Si la machine virtuelle précédemment migrée par Live Migrate n’est plus en cours d’exécution sur le nœud source d’origine, le système d’exploitation Windows ne parvient pas à supprimer le vmgroup. Cette orpheline vmgroup peut entraîner l’échec des sauvegardes Hyper-V ultérieures.
Avant d’effectuer des procédures de nettoyage manuel, vérifiez l’URL Microsoft suivante ci-dessous. L’article de la base de connaissances fournit des solutions qui peuvent résoudre les échecs de Live Migration dus à des facteurs environnementaux :
- https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/troubleshoot-live-migration-issues (Lien externe)
get-vmgroup
Pour rechercher les orphelins vmgroup sur tous les nœuds de cluster simultanément, exécutez la commande suivante dans PowerShell (exécutez-la en tant qu’administrateur) :
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
S’il y a des orphelins vmgroups, alors le résultat doit ressembler à ce qui suit :
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. Procédures
standard de suppression de vmgroupPour supprimer tous les orphelins vmgroups sur un serveur Hyper-V autonome, exécutez les commandes suivantes dans PowerShell (exécuter en tant qu’administrateur) :
Get-VMGroup | remove-vmgroup Get-VMGroup | remove-vmgroup -Force
vmgroups sur tous les nœuds de cluster Hyper-V, exécutez les commandes suivantes dans PowerShell (exécutez-le en tant qu’administrateur) :
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup -Force }
Si les commandes ci-dessus échouent, utilisez le script PowerShell suivant (VMGrpCln.ps1) pour automatiser vmgroup Suppression sur tous les nœuds du cluster :
Téléchargement du script :
Pour plus d’informations sur la localisation et le téléchargement du script, reportez-vous à l’article suivant : Avamar : Comment trouver et télécharger les scripts et outils Avamar à partir de la page Dell Central Avamar
- Téléchargez le script PowerShell dans un répertoire tel que
"C:\temp"sur l’un des nœuds du cluster. - Ouvrez l’invite PowerShell (exécutez-la en tant qu’administrateur) et accédez au répertoire contenant le script PowerShell (PS).
- Vérifiez que le serveur Windows autorise l’exécution des scripts PS en saisissant la commande suivante dans PowerShell (exécuter en tant qu’administrateur) :
Get-ExecutionPolicy
Si la sortie affiche "Restricted" ou "Allsigned," puis exécutez la commande PowerShell suivante (exécuter en tant qu’administrateur) pour autoriser temporairement la session en cours à exécuter des scripts PS :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
4. Exécutez le script PS à partir du répertoire dans lequel il se trouve :
Si ces commandes ou scripts ne parviennent pas à supprimer les fichiers orphelins. vmgroups, l’étape suivante consiste à supprimer manuellement les groupes orphelins.
II Procédures manuelles de suppression de vmgroup
vmgroups se trouvent dans le répertoire local de chaque nœud de cluster (C:\ProgramData\Microsoft\Windows\Hyper-V\Groups).
Avamar : Plug-in Hyper-V VSS : configuration et installation des derniers correctifs cumulatifs pour les versions 19.4 et ultérieures
Pour les clusters Hyper-V où le paramètre « chemin de stockage partagé » est configuré, ces procédures ne sont pas applicables. Contactez le support client pour un dépannage
supplémentaire Étape # 1 : Exécutez la commande suivante sur chaque nœud de cluster Hyper-V :
get-VMGroup
Vous pouvez également exécuter la commande suivante pour obtenir le vmgroups À partir de chaque nœud de cluster :
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Étape #2a : Si le champ VMMembers est renseigné, exécutez la commande suivante sur chaque nœud de cluster :
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Étape #2b : Si VMMembers n’est pas renseigné :
- Rendez-vous sur le
C:\ProgramData\Microsoft\Windows\Hyper-V\Groups. Saisissez manuellement l’emplacement dans l’Explorateur Windows ou modifiez les options pour afficher les fichiers et dossiers masqués. - Modification du fichier de configuration de la machine virtuelle
"*.vmcx"qui correspond à l’ID d’instance du groupe de machines virtuelles avec un éditeur de texte tel que Notepad ou Notepad++. Cliquez sur Afficher dans la barre de menus, puis sélectionnez l’option « Retour à la ligne » pour une meilleure lisibilité. - Copiez les identificateurs globaux uniques (GUID) de la machine virtuelle (VM) dans l’éditeur de texte. ils suivent la
'GUID H'texte dans le*.vmcx. - Dans l’éditeur de texte, cliquez sur Modifier, puis sur Remplacer. Ensuite, dans l’onglet
'Find what'Appuyez sur la barre d’espacement du clavier, puis cliquez sur 'Replace All.'Ce nettoyage fournit une liste des GUID de machines virtuelles problématiques qui doivent être migrés vers le nœud de cluster précédent. - Exécutez la commande PowerShell suivante pour rechercher la machine virtuelle liée à ces GUID, ainsi que les nœuds de cluster qui l’hébergent :
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "VM GUID Previously Collected" }
Par exemple, utilisez la syntaxe de commande ci-dessous pour trouver le nom de la machine virtuelle (VM) attribuée au GUID suivant :
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "A6209559-F08F-440E-9AAE-21AEF4AF7E9D" }
Le résultat de la commande doit inclure le nom de la machine virtuelle et le nœud de cluster sur lequel elle s’exécute. Si le résultat est vide, le GUID n’existe plus et peut être ignoré en toute sécurité.
6. Effectuez une migration dynamique de la machine virtuelle vers l’hôte qui dispose du groupe de machines virtuelles obsolète à l’aide de l’outil Gestionnaire du cluster de basculement.
Répétez ces étapes pour chaque machine virtuelle identifiée dans le vmgroup's "*.vmcx" .
7. Exécutez la commande PowerShell suivante pour supprimer les machines virtuelles du champ VMMembers dans chacun des vmgroups orphelins :
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Vérifiez que l’option 'vmmembers' pour chacun des vmgroups est vide en exécutant la commande suivante sur chaque nœud du cluster :
get-vmgroup
Vous pouvez également exécuter la commande suivante pour vérifier que le champ « vmmembers » est vide pour tous vmgroups Sur tous les nœuds :
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Une fois confirmé, passez à l’étape #3.
Étape #3 : Exécutez la commande PowerShell suivante pour supprimer le fichier orphelin vmgroups sur le nœud de cluster ou le serveur Hyper-V autonome :
get-VMGroup | Remove-VMGroup
Répétez les mêmes procédures pour les autres nœuds de cluster qui sont orphelins. vmgroups.
Vous pouvez également utiliser la commande suivante pour supprimer simultanément les vmgroups orphelins sur tous les nœuds de cluster :
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Une fois tous les nœuds terminés, vérifiez que tous les nœuds orphelins vmgroups ont été supprimés :
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
La commande "remove-vmgroupmember" et "remove-vmgroup" Les commandes peuvent échouer sur le premier nœud de cluster avec une erreur similaire à ce qui suit :
Remove-VMGroup : The operation cannot be performed while the object is in its current state
Si c’est le cas, essayez les commandes sur les nœuds de cluster restants. Si les procédures se terminent avec succès, revenez au premier nœud et réessayez les commandes PowerShell.
Si les commandes ci-dessus échouent sur tous les nœuds de cluster, redémarrez le service de gestion des machines virtuelles Hyper-V sur le nœud concerné. Vous pouvez également redémarrer chacun des nœuds de cluster Hyper-V. Une fois cette opération effectuée, réessayez les commandes PowerShell pour supprimer les membres de la machine virtuelle et vmgroups.
Si les procédures standard ou manuelles ne parviennent pas à supprimer les fichiers orphelins vmgroups, alors la dernière option consiste à supprimer le vmgroup fichiers eux-mêmes.
Additional Information
Références :
Hyper-V Live Migration entre les hôtes peut échouer en raison des points de contrôle de récupération.
La sauvegarde RCT incrémentielle Avamar Hyper-V échoue avec l’erreur « Impossible d’obtenir les extensions RCT pour le fichier de disque » et/ou « Échec de la création du point de référence pour la machine virtuelle »