Avamar. Ручная очистка потерянных групп vmgroup Hyper-V

Summary: В статье базы знаний приведены подробные процедуры удаления потерянных групп томов Hyper-V с помощью различных методов.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Резервное копирование Hyper-V может завершиться сбоем из-за того, что vmgroups с сообщениями, подобными следующим:

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


Когда виртуальные машины (ВМ) Live Migrate на другой узел кластера во время резервного копирования могут возникать экстенты отслеживания отказоустойчивых изменений (RCT) и сбои резервного копирования. 

Если виртуальная машина (ВМ) Hyper-V находится на определенном узле кластера, она добавляется в группу виртуальных машин этого узла (vmgroup) во время резервного копирования. Если во время резервного копирования виртуальная машина Live Migрируется на другой узел кластера, она по-прежнему существует как член vmgroup на исходном узле. Перед завершением резервного копирования операционная система Windows попытается удалить vmgroups на всех узлах кластера.

 

Если виртуальная машина, которую Live Migrate выполняла ранее, больше не работает на первоначальном узле, операционной системе Windows не удается удалить группу vmgroup. Этот осиротевший vmgroup Это может привести к сбою последующих операций резервного копирования Hyper-V.

Перед выполнением процедур очистки вручную проверьте следующий URL-адрес Microsoft ниже. В следующей статье базы знаний представлены решения, которые могут способствовать устранению сбоев Live Migration из-за факторов среды:

  •   https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/troubleshoot-live-migration-issues (Внешняя ссылка)
ПРИМЕЧАНИЕ. Всегда открывайте командную строку PowerShell с учетными данными администратора (запуск от имени администратора).
Чтобы проверить наличие потерянных групп vmgroup на определенном узле кластера, выполните следующую команду в PowerShell (запуск от имени администратора):
get-vmgroup

Проверка на наличие потерянных vmgroup На всех узлах кластера одновременно выполните следующую команду в PowerShell (запуск от имени администратора):

Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }


Если есть какие-либо осиротевшие vmgroups, то вывод должен выглядеть следующим образом:
 

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. Стандартные процедуры

удаления vmgroupЧтобы удалить все потерянные vmgroups на автономном сервере Hyper-V выполните следующие команды в PowerShell (запуск от имени администратора):

Get-VMGroup | remove-vmgroup

Get-VMGroup | remove-vmgroup -Force
ПРИМЕЧАНИЕ. Будьте осторожны при использовании параметра "-Force", так как он обходит проверки безопасности и принудительно удаляет группу.
 
Чтобы удалить все потерянные vmgroups на всех узлах кластера Hyper-V выполните следующие команды в PowerShell (запуск от имени администратора):
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }

Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup -Force }


Если указанные выше команды не помогли, используйте следующий сценарий PowerShell (VMGrpCln.ps1) для автоматизации vmgroup Удаление по всем узлам кластера:
 

Скачивание сценария:

Сведения о поиске и скачивании сценария см. в следующей статье: Avamar. Как найти и скачать сценарии и инструменты Avamar со страницы Dell Central Avamar

  1. Скачайте сценарий PowerShell в каталог, например "C:\temp" на одном из узлов кластера.
  2.  Откройте командную строку PowerShell (запуск от имени администратора) и перейдите в каталог, содержащий сценарий PowerShell (PS).
  3. Убедитесь, что сервер Windows разрешает выполнение сценариев PS, введя следующую команду в PowerShell (запуск от имени администратора):
Get-ExecutionPolicy

Если в выводе отображается "Restricted" или "Allsigned," затем выполните следующую команду PowerShell (запуск от имени администратора), чтобы временно разрешить текущей сессии выполнение сценариев PS: 

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

     4. Запустите сценарий PS из каталога, в котором он находится:

Если с помощью этих команд или сценариев не удается удалить потерянный файл vmgroups, то следующим шагом будет удаление потерянных групп вручную.


II Процедуры удаления vmgroup вручную
 

ПРИМЕЧАНИЕ. Эта процедура применима только для кластеров Hyper-V, в которых НЕ настроен параметр «общий путь к хранилищу». Если функция не настроена, vmgroups находятся в локальном каталоге на каждом узле кластера (C:\ProgramData\Microsoft\Windows\Hyper-V\Groups). 
 
Дополнительные сведения о настройке параметра «shared storage path» см. в следующей статье базы знаний.
Avamar: Подключаемый модуль Hyper-V VSS — настройка и установка последних накопительных исправлений для версии 19.4 и более поздних 

Для кластеров Hyper-V, в которых настроен параметр «путь к общему хранилищу», эти процедуры не применимы. Обратитесь в службу поддержки заказчиков за дальнейшими инструкциями по поиску и устранению

неисправностей Шаг # 1. Выполните следующую команду на каждом узле кластера Hyper-V:
get-VMGroup

Кроме того, выполните следующую команду, чтобы получить vmgroups В каждом узле кластера:

Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }

Шаг#2a: Если поле VMMembers заполнено, выполните следующую команду на каждом узле кластера:

Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}

Шаг#2b: Если VMMembers не заполнен:

  1. Откройте C:\ProgramData\Microsoft\Windows\Hyper-V\Groups . Введите местоположение вручную в Проводнике Windows или измените параметры, чтобы просмотреть скрытые файлы и папки.
  2. Изменение файла конфигурации виртуальной машины "*.vmcx" который совпадает с идентификатором экземпляра группы виртуальных машин с текстовым редактором, например Notepad или Notepad++. Нажмите «Вид» в строке меню, а затем выберите параметр «Перенос по словам» для лучшего чтения.
  3. Скопируйте глобальные уникальные идентификаторы (GUID) виртуальной машины (ВМ) в текстовый редактор. они следуют 'GUID H' текст в поле *.vmcx .   
  4. В текстовом редакторе нажмите Редактировать, а затем Заменить. Затем в 'Find what' Нажмите пробел на клавиатуре и нажмите кнопку 'Replace All.' Эта очистка содержит список проблемных идентификаторов GUID виртуальных машин, которые необходимо Live Migrate обратно на предыдущий узел кластера.
  5. Выполните следующую команду PowerShell, чтобы найти виртуальную машину, привязанную к этим идентификаторам GUID, а также узлы кластера, на которых она размещена:
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "VM GUID Previously Collected" }

Например, используйте приведенный ниже синтаксис команды, чтобы найти имя виртуальной машины (ВМ), которое присвоено следующему идентификатору GUID:

Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "A6209559-F08F-440E-9AAE-21AEF4AF7E9D" }

Выходные данные команды должны включать имя виртуальной машины и узел кластера, на котором она выполняется. Если вывод пуст, то GUID больше не существует и его можно игнорировать.

     6. Выполните перенос виртуальной машины на хост с устаревшей группой виртуальных машин с помощью диспетчера отказоустойчивости кластера.

Инструмент FCMT 
Повторите эти действия для каждой виртуальной машины, указанной в vmgroup's "*.vmcx"

     7. Выполните следующую команду PowerShell, чтобы удалить виртуальные машины из поля VMMembers в каждой из потерянных групп vm:
    

Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}

Убедитесь, что параметр «vmmembers' для каждого из vmgroups пусто, выполнив следующую команду на каждом узле кластера:

get-vmgroup

Или выполните следующую команду, чтобы убедиться, что поле «vmmembers» пустое для всех vmgroups На всех узлах:

Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
 После подтверждения перейдите к шагу #3.

Шаг#3: Выполните следующую команду PowerShell, чтобы удалить потерянный vmgroups на узле кластера или автономном сервере Hyper-V:

get-VMGroup | Remove-VMGroup


Повторите те же процедуры для других узлов кластера, для которых остались бесхозные vmgroups.

Кроме того, используйте следующую команду для удаления потерянных групп vmgroup на всех узлах кластера одновременно:

Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }

Когда все узлы будут завершены, убедитесь, что все потерянные узлы vmgroups были удалены:

Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }

Переменная "remove-vmgroupmember" и "remove-vmgroup" Команды на первом узле кластера могут завершаться сбоем с ошибкой, подобной следующей:

Remove-VMGroup : The operation cannot be performed while the object is in its current state

В этом случае попробуйте выполнить команды на остальных узлах кластера. Если процедуры завершены успешно, вернитесь к первому узлу и повторите команды PowerShell.

Если приведенные выше команды завершаются сбоем на всех узлах кластера, перезапустите службу управления виртуальными машинами Hyper-V на затронутом узле. В качестве альтернативы перезагрузите каждый из узлов кластера Hyper-V. После этого повторите команды PowerShell, чтобы удалить члены виртуальной машины, и vmgroups.

Если с помощью стандартных или ручных процедур не удается удалить потерянный vmgroups, то последним вариантом является удаление vmgroup файлов.

Additional Information

Affected Products

Avamar Plug-in for Hyper-V VSS

Products

Avamar, Avamar Plug-in
Article Properties
Article Number: 000222823
Article Type: How To
Last Modified: 12 Feb 2026
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.