Как перенастроить виртуальные машины Hyper-V
Я хочу иметь возможность изменять файл конфигурации виртуальной машины, контрольные точки и расположение виртуальных жестких дисков с помощью Powershell.
Мой Google-FU указывает мне только на перемещение, у меня есть около 100 виртуальных машин, которые нужно изменить, я могу перемещать файлы, я не против небольшого простоя, при прохождении через мастер для каждой виртуальной машины требуется от 5 до 15 минут на каждую. ВМ и те самые маленькие, мне нужно сделать все 100 за 2 часа.
Если мне нужно уточнить, дайте мне знать.
== Где я застрял ==
Да, я видел эту ссылку и просмотрел большинство команд, но ни одна из них не выполняет то, что я ищу.
Все файлы имеют размер около 14 ТБ.
~ 100 виртуальных машин сгруппированы между 7 хостами. Общее хранилище - это вращающийся диск EMC, и я хочу переместить их на 3Par ssd.
Теперь то, что мне удалось успешно сделать, - это выключить виртуальную машину, переместить файлы, удалить все виртуальные машины и воссоздать их с помощью PowerShell, что, когда я сказал своему техническому директору, может быть единственным его подходом в отношении дерьмовых котят.
Я хочу иметь возможность не ПЕРЕМЕСТИТЬ виртуальные машины, а просто ПЕРЕКОНФИГУРИРОВАТЬ их,
В других работах уметь менять:
Кому:
Я хочу иметь возможность делать это с помощью PowerShell. Также мне нужно иметь возможность делать то же самое для контрольных точек, файлов конфигурации и всех других компонентов виртуальной машины Hyper-V.
Я могу выдержать около 2 часов простоя, чтобы выполнить MOVE с помощью мастера для всех виртуальных машин, это не только изнашивает мою мышь, но и занимает около 6 часов.
Я также изучаю это и тестирую различные стратегии уже пару недель.
==== Еще один выстрел ====
Я не ищу «Перемещение», все, что я хочу сделать, это изменить настройки изнутри Hyper-V, перемещение займет много времени, мне гораздо быстрее скопировать файлы по сети и просто обновить пути в Hyper-V я могу выключить машины.
Я думаю, это невозможно?
Не совсем уверен, что это делает то, что вам нужно, но есть пример фрагмента PowerShell, который я использовал в прошлом для миграции виртуальных машин, включая все хранилище, в новое место назначения.
Get-VM -Name ('ansible-test-acs',
'ansible-test-web',
'ansible-test-db') |
ForEach-Object {
# move everything to d:\hyper-v\vm_name on hv-srv-01
$MoveOptions = @{
'Name' = $_.Name
'DestinationHost' = 'hv-srv-01'
'IncludeStorage' = $true
'DestinationStoragePath' = 'D:\Hyper-V\{0}' -f $_.Name
}
$MoveOptions
Move-VM @MoveOptions -WhatIf
# Move-VM @MoveOptions
}
Переместите хранилище ВМ на новый путь
('ansible-test-web', 'ansible-test-db') |
ForEach-Object {
Move-VMStorage $_ `
–DestinationStoragePath "E:\Hyper-V\$_"
}
Если вы скопировали виртуальную машину и все ее файлы в новое место и хотите, чтобы Hyper-V начал использовать новое расположение, тогда вы сможете сделать что-то вроде.
Remove-VM oldvmname
Import-VM -Register -Path 'path to VM config file'