Як користуватися повноваженнями для адміністрування Hyper-v Cluser


12

У мене 2 хости, обидва з Центром обробки даних Server 2016

На кожному хості у мене є 2 VM-пристрої Dev, що використовують спільне сховище

Я можу робити всі кластерні речі, тобто., Мігрувати, переміщувати сховище,

Я шукав google по всьому скрипту, щоб одночасно зберегти всі vm-адреси в кластері.

Якщо я запускаю це:

$clusterNodes = Get-ClusterNode;
$Name = ForEach($item in $clusterNodes){Get-VM -ComputerName $item.Name; }
{save-VM -ComputerName $item.Name; }

Це збереже vm-ом, однак він запропонує мені двічі назви імен VM один раз для кожного хоста.

Моя загальна мета - мати можливість перенастроїти всі VM в кластері з одного ПК, також переміщення VM багато, щоб вони не завжди були на одному хості.

Приклад:

Збережіть усі vm-адреси

Відключіть спільне сховище:

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

Запустіть VM

Якщо я ввійду в кожен хост окремо, команда буде працювати нормально, проте в моєму виробництві у мене 7 хостів з приблизно 100 ВМ.

Відповіді:


8

Якщо ви хочете звернутися до всього кластеру з PowerShell, найкращим рішенням, мабуть, є модуль PowerShell в менеджері віртуальної машини System Center. Він був побудований для цього.

Модуль PowerShell, який ви використовуєте, призначений для сценаріїв одного хоста. Це ще можна змусити працювати. Ви можете реструктурувати код вище. Як приклад:

$clusterNodeNames = (Get-ClusterNode -Cluster ClusterName).Name
$AllVMsInCluster = Get-VM -ComputerName $clusterNodeNames
$AllVMsInCluster | Save-VM -Confirm:$false

Джейк, ти можеш пояснити мені, як '$ AllVMsInCluster | Save-VM -Confirm: $ false 'пробирається через кожну віртуальну машину, я намагаюся виконати другу частину мого завдання,' $ AllVMsInCluster | Set-VM -SnapshotFileLocation C: \ ClusterStorage \ Volume1 \ ', але я не можу зрозуміти, як встановити Каталог в кінці, тобто. 'C: \ ClusterStorage \ Volume1 \ VM1', 'C: \ ClusterStorage \ Volume1 \ VM2'
Ентоні Форніто

Вам потрібно прочитати книгу на PowerShell. Фундаментальне поняття - "трубопровід", і через нього протікають об'єкти. "Командлет" діє на кожен із об'єктів, що проходять до нього по трубопроводу. Якщо ви хочете змінити поведінку, коли все проходить, ви, ймовірно, хочете таку конструкцію, як: $ AllVMsInCluster | Foreach-Object {Set-VM -SnapshotFileLocation C: \ ClusterStorage \ Volume1 \ $ _. Ім'я}
Джейк Ошинс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.