Eu tenho 2 hosts ambos com o Server 2016 Datacenter
Em cada host, tenho 2 VMs atualmente Dev usando armazenamento compartilhado
Eu posso fazer todas as coisas do cluster, ou seja, migrar ao vivo, mover armazenamento,
Eu tenho procurado em todo o google por um script para poder salvar todas as vms no cluster ao mesmo tempo.
Se eu executar isso:
$clusterNodes = Get-ClusterNode;
$Name = ForEach($item in $clusterNodes){Get-VM -ComputerName $item.Name; }
{save-VM -ComputerName $item.Name; }
Ele salvará as VMs, no entanto, ele me solicitará duas vezes os nomes das VMs uma vez para cada host.
Meu objetivo geral é poder reconfigurar todas as VMs no cluster a partir de um PC, também as VMs se movem muito para que nem sempre estejam no mesmo host.
Exemplo:
Salve todos os vms
Desative o armazenamento compartilhado:
Set-VM pv02 -SnapshotFileLocation C:\ClusterStorage\Volume1\pv02
Set-VM pv02 -SmartPagingFilePath C:\ClusterStorage\Volume1\pv02
Set-VMHardDiskDrive -VMName pv02 -ControllerType SCSI -Path C:\ClusterStorage\Volume1\pv02\pv02.vhdx
Inicie as VMs
Se eu logar em cada host individualmente o comando rodará bem, porém na minha produção tenho 7 hosts com cerca de 100 VM's.
Se você deseja endereçar todo o cluster do PowerShell, a melhor solução é provavelmente o módulo PowerShell no System Center Virtual Machine Manager. Foi construído para isso.
O módulo do PowerShell que você está usando destina-se a scripts de host único. Ele ainda pode ser feito para funcionar. Você pode reestruturar seu código acima. Como um exemplo: