Avamar: Limpar manualmente vmgroups órfãos do Hyper-V
Summary: O artigo da base de conhecimento fornece procedimentos detalhados para remover vmgroups órfãos do Hyper-V usando vários métodos.
Instructions
Os backups do Hyper-V podem falhar devido a órfãos vmgroups com mensagens semelhantes às seguintes:
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
Extensões do RCT (Resilient Change Tracking, rastreamento resiliente de alterações órfãs) e falhas de backup podem ocorrer quando máquinas virtuais (VM) migram em tempo real para um nó de cluster diferente durante os backups.
Se uma máquina virtual (VM) do Hyper-V residir em um nó de cluster específico, ela será adicionada ao grupo de máquinas virtuais desse nó (vmgroup) durante o backup. Se a VM em tempo real migrar para um nó de cluster diferente durante o backup, ela ainda existirá como um membro do vmgroup no nó de origem. Antes do fim do backup, o sistema operacional Windows tenta remover o vmgroups em todos os nós do cluster.
Se a VM migrada anteriormente não estiver mais em execução no nó de origem inicial, o sistema operacional Windows apresentará falha ao remover o vmgroup. Este órfão vmgroup pode fazer com que os backups subsequentes do Hyper-V falhem como consequência.
Antes de executar procedimentos manuais de limpeza, confira a seguinte URL da Microsoft abaixo. O artigo da KB fornece soluções que podem resolver falhas do Live Migration devido a fatores ambientais:
- https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/troubleshoot-live-migration-issues (Link externo)
get-vmgroup
Para verificar se há órfãos vmgroup em todos os nós de cluster simultaneamente, execute o seguinte comando no PowerShell (execute como administrador):
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Se houver algum órfão vmgroups, então o resultado deve ser semelhante ao seguinte:
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. Procedimentos
padrão de remoção de vmgroupPara remover todos os órfãos vmgroups em um Hyper-V Server independente, execute os seguintes comandos no PowerShell (execute como Administrador):
Get-VMGroup | remove-vmgroup Get-VMGroup | remove-vmgroup -Force
vmgroups em todos os nós de cluster do Hyper-V, execute os seguintes comandos no PowerShell (execute como administrador):
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup -Force }
Se os comandos acima falharem, use o seguinte script do PowerShell (VMGrpCln.ps1) para automatizar vmgroup Remoção em todos os nós do cluster:
Como fazer download do script:
Consulte o seguinte artigo para obter informações sobre como localizar e fazer download do script: Avamar: Como encontrar e fazer download de scripts e ferramentas do Avamar na página do Dell Central Avamar
- Faça download do script do PowerShell em um diretório como
"C:\temp"em um dos nós do cluster. - Abra o prompt do PowerShell (execute como administrador) e altere para o diretório que contém o script do PowerShell (PS).
- Verifique se o servidor Windows permite a execução de scripts PS digitando o seguinte comando no PowerShell (executar como administrador):
Get-ExecutionPolicy
Se o resultado for exibido "Restricted" ou "Allsigned," em seguida, execute o seguinte comando do PowerShell (executar como administrador) para permitir temporariamente que a sessão atual execute scripts PS:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
4. Execute o script PS a partir do diretório onde ele está localizado:
Se esses comandos ou scripts não conseguirem remover o órfão vmgroupse, em seguida, a próxima etapa é remover os grupos órfãos manualmente.
II Procedimentos manuais de remoção do vmgroup
vmgroups estão localizados no diretório local de cada nó de cluster (C:\ProgramData\Microsoft\Windows\Hyper-V\Groups).
Avamar: Plug-in de VSS do Hyper-V - Configuração e instalação dos hotfixes cumulativos mais recentes para a versão 19.4 e posterior
Para clusters do Hyper-V em que o parâmetro "caminho de armazenamento compartilhado" está configurado, esses procedimentos não são aplicáveis. Entre em contato com o atendimento ao cliente para obter mais etapas de solução de problemas
# 1: Execute o seguinte comando em cada nó de cluster do Hyper-V:
get-VMGroup
Como alternativa, execute o seguinte comando para obter o vmgroups De cada nó de cluster:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Passo #2a: Se o campo VMMembers estiver preenchido, execute o seguinte comando em cada nó de cluster:
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Passo # 2b: Se o VMMembers não estiver preenchido:
- Acesse o
C:\ProgramData\Microsoft\Windows\Hyper-V\Groups. Digite o local manualmente no Windows Explorer ou altere as opções para exibir arquivos e pastas ocultos. - Editar o arquivo de configuração da máquina virtual
"*.vmcx"que corresponde ao InstanceID do grupo de VMs com um editor de texto, como o Bloco de Notas ou o Notepad++. Clique em Exibir na barra de menu e, em seguida, selecione a opção 'Quebra automática de texto' para melhor legibilidade. - Copie os GUIDs (Globally Unique Identifiers) da máquina virtual (VMs) no editor de texto; eles seguem o
'GUID H'texto no*.vmcx. - No editor de texto, clique em Edit e em Replace. Em seguida, no
'Find what'Pressione a barra de espaço no teclado e clique em 'Replace All.'Essa limpeza fornece uma lista de GUIDs de VM problemáticos que devem ser migrados em tempo real de volta para o nó de cluster anterior. - Execute o seguinte comando do PowerShell para localizar a VM vinculada a esses GUIDs, juntamente com os nós de cluster que a hospedam:
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "VM GUID Previously Collected" }
Por exemplo, use a sintaxe de comando abaixo para localizar o nome da máquina virtual (VM) atribuído ao seguinte GUID:
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "A6209559-F08F-440E-9AAE-21AEF4AF7E9D" }
O resultado do comando deve incluir o nome da VM e o nó de cluster em que ele está sendo executado. Se o resultado estiver em branco, o GUID não existe mais e pode ser ignorado com segurança.
6. Migração em tempo real da VM para o host que tem o grupo de VMs obsoleto usando a ferramenta Gerenciador de cluster de failover.
Repita as etapas para cada VM identificada no vmgroup's "*.vmcx" .
7. Execute o seguinte comando do PowerShell para remover as VMs do campo VMMembers em cada um dos vmgroups órfãos:
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Confirme que o 'vmmemberscampo ' para cada um dos vmgroups está em branco executando o seguinte comando em cada nó de cluster:
get-vmgroup
Como alternativa, execute o seguinte comando para confirmar se o campo "vmmembers" está em branco para todos vmgroups Em todos os nós:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Depois de confirmado, vá para a Etapa #3.
Passo #3: Execute o seguinte comando do PowerShell para remover o órfão vmgroups no nó do cluster ou no Hyper-V Server independente:
get-VMGroup | Remove-VMGroup
Repita os mesmos procedimentos para outros nós de cluster órfãos vmgroups.
Como alternativa, use o seguinte comando para remover vmgroups órfãos em todos os nós de cluster simultaneamente:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Depois que todos os nós forem concluídos, verifique se todos os órfãos vmgroups foram removidos:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
A coluna "remove-vmgroupmember" e "remove-vmgroup" Os comandos podem falhar no primeiro nó de cluster com um erro semelhante ao seguinte:
Remove-VMGroup : The operation cannot be performed while the object is in its current state
Se esse for o caso, tente os comandos nos nós de cluster restantes. Se os procedimentos forem concluídos com sucesso, volte para o primeiro nó e repita os comandos do PowerShell.
Se os comandos acima falharem em todos os nós do cluster, reinicie o serviço de Gerenciamento de Máquina Virtual do Hyper-V no nó afetado. Como alternativa, reinicialize cada um dos nós de cluster do Hyper-V. Depois de concluído, repita os comandos do PowerShell para remover os membros da VM e vmgroups.
Se os procedimentos padrão ou manuais não conseguirem remover o órfão vmgroups, então a opção final é remover o vmgroup arquivos próprios.
Additional Information
Referências:
A migração do Hyper-V Live entre hosts pode falhar como resultado de checkpoints de recuperação.
Falha no backup incremental de RCT do Avamar Hyper-V com o erro "Failed to get RCT extents for the disk file" e/ou "Reference point creation for Virtual machine failed"