Назад | Перейти на главную страницу

Настройка PowerShell для виртуальной машины Hyper-V

Как перенастроить виртуальные машины 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'