Поиск

четверг, 11 апреля 2019 г.

Объединение виртуальных машин Hyper-V в группы.

Проблема:
В Hyper-V в графическом интерфейсе отсутствует возможность объединения серверов в группы для удобства управления.

Решение:
В решении данной проблемы поможет функционал PowerShell. ❤️

Существуют два типа групп:
VMCollectionType - группа виртуальных машин;
ManagementCollectionType - группа управления (корневая группа).

Создание корневой группы:
New-VMGroup -Name TEST -GroupType ManagementCollectionType
New-VMGroup -Name PRODUCTION -GroupType ManagementCollectionType

Создание локальной группы:
New-VMGroup -Name DC -GroupType VMCollectionType
New-VMGroup -Name EXCHANGE-P -GroupType VMCollectionType
New-VMGroup -Name LINUX-P -GroupType VMCollectionType
New-VMGroup -Name LINUX-T -GroupType VMCollectionType

Включение локальной группы в корневую:
Add-VMGroupMember -VMGroup (Get-VMGroup PRODUCTION) -VMGroupMember (Get-VMGroup DC)
Add-VMGroupMember -VMGroup (Get-VMGroup PRODUCTION) -VMGroupMember (Get-VMGroup EXCHANGE-P)
Add-VMGroupMember -VMGroup (Get-VMGroup PRODUCTION) -VMGroupMember (Get-VMGroup LINUX-P)
Add-VMGroupMember -VMGroup (Get-VMGroup TEST) -VMGroupMember (Get-VMGroup LINUX-T)

Включение виртуальных машин в локальную группу:
Add-VMGroupMember -VMGroup (Get-VMGroup DC) -VM (Get-VM TMNSV0010)
Add-VMGroupMember -VMGroup (Get-VMGroup DC) -VM (Get-VM TMNSV0020)
Add-VMGroupMember -VMGroup (Get-VMGroup EXCHANGE-P) -VM (Get-VM TMNSV0005)
Add-VMGroupMember -VMGroup (Get-VMGroup EXCHANGE-P) -VM (Get-VM TMNSV0015)
Add-VMGroupMember -VMGroup (Get-VMGroup LINUX-P) -VM (Get-VM TMNSV0012)
Add-VMGroupMember -VMGroup (Get-VMGroup LINUX-P) -VM (Get-VM TMNSV0014)
Add-VMGroupMember -VMGroup (Get-VMGroup LINUX-T) -VM (Get-VM TMNSV0047)

Посмотреть список виртуальных машин на хосте и принадлежность к группе:
Get-VM | ft Name, Groups -AutoSize

Посмотреть список виртуальных машин в указанной группе с VMCollectionType:
Get-VMGroup -Name LINUX-P

Посмотреть список групп VMCollectionType  входящих в ManagementCollectionType, со списком виртуальных машин:
Get-VMGroup -Name PRODUCTION | Select-Object -ExpandProperty VMGroupMembers

Примеры использования:

Запуск виртуальных машин в группе:
Start-VM -VM (Get-VMGroup EXCHANGE).VMMembers

Отключение на контроллерах домена сервиса интеграции синхронизации времени:
(Get-VMGroup DC).VMMembers | Get-VMIntegrationService -Name “Time Synchronization” | Disable-VMIntegrationService