Skonfiguruj PowerShell VM Hyper-V

13

Jak mogę ponownie skonfigurować maszyny wirtualne Hyper-V

Chcę mieć możliwość zmiany pliku konfiguracyjnego maszyny wirtualnej, punktów kontrolnych i lokalizacji wirtualnego dysku twardego za pomocą Powershell.

Moja Google-FU wskazuje mi tylko na przenoszenie, mam około 100 maszyn wirtualnych do zmiany, mogę przenosić pliki, nie przeszkadza mi trochę przestoju, Podczas przejścia przez kreatora dla każdej maszyny wirtualnej zajmuje to około 5 do 15 minut na VM i te są mniejsze, muszę być w stanie zrobić wszystkie 100 w ciągu 2 godzin.

Jeśli muszę to wyjaśnić, daj mi znać.

== Gdzie utknąłem ==

Tak, widziałem ten link i przeglądałem większość poleceń, jednak żadne nie robi tego, czego szukam.

Pliki razem mają około 14 TB

~ 100 maszyn wirtualnych jest zgrupowanych między 7 hostami. Udostępniane miejsce to wirujący dysk EMC i chcę je przenieść na 3Par ssd.

Teraz udało mi się zamknąć maszynę wirtualną, przenieść pliki, usunąć wszystkie maszyny wirtualne i odtworzyć je za pomocą PowerShell VIA, co kiedy powiedziałem mojemu CTO, to może być jedyny sposób, w jaki gówniane kocięta.

To, co chcę być w stanie, to NIE PRZESUWAĆ maszyny wirtualnej, po prostu ją REONFIGUROWA,

W innych pracach można zmienić:

wprowadź opis zdjęcia tutaj

DO:

wprowadź opis zdjęcia tutaj

Chcę być w stanie to zrobić za pomocą programu PowerShell, a także muszę być w stanie zrobić to samo dla punktów kontrolnych, plików konfiguracyjnych i wszystkich innych składników maszyny wirtualnej Hyper-V.

Mogę tolerować około 2 godzin przestoju, aby wykonać MOVE za pomocą kreatora, ponieważ wszystkie maszyny wirtualne nie tylko zużywają moją mysz, ale zajmują około 6 godzin.

Od kilku tygodni badam to i testuję różne strategie.

==== Jeszcze jeden strzał ====

Nie chcę „Przenieś”, wszystko, co chcę zrobić, to zmienić ustawienia w obrębie funkcji Hyper-V, przenoszenie zajmie dużo czasu, znacznie szybciej kopiuję pliki przez sieć i po prostu aktualizuję ścieżki w Hyper-V mogę wyłączyć maszyny.

Myślę, że nie da się tego zrobić?

Anthony Fornito
źródło
Jakie badania przeprowadziłeś do tej pory? Dokumentacja w module hyper-v wydaje mi się całkiem dobra. Gdzie utkniesz?
Zoredache,
@Zoredache proszę spojrzeć na aktualizację.
Anthony Fornito,
1
Jeśli są zgrupowane, wystarczy przenieść pamięć, korzystając z opcji przenoszenia pamięci. Jest w graficznym interfejsie użytkownika i nie powinien powodować przestojów. blogs.msdn.microsoft.com/clustering/2012/04/26/…
Drifter104
Im thinking it cannot be done?Myślę, że da się to zrobić, ale byłby to długi i skomplikowany skrypt. Prawie wszystko na temat maszyny wirtualnej można w pełni manipulować za pomocą programu PowerShell. Podejrzewam, że znacznie utrudniasz sobie życie, nie pozwalając narzędziom zarządzać przenoszeniem plików.
Zoredache,
@Zoredache w idealnym świecie, w którym miałem 6 godzin tak, dobrze byłoby użyć narzędzi, jednak mam 2
Anthony Fornito

Odpowiedzi:

8

Nie jestem pewien, czy to robi, czego potrzebujesz, ale istnieje przykładowy fragment PowerShell, którego użyłem w przeszłości do migracji maszyn wirtualnych, w tym całego magazynu do nowego miejsca docelowego

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
}

Przenieś pamięć maszyny wirtualnej do nowej ścieżki

('ansible-test-web', 'ansible-test-db') |
ForEach-Object {
    Move-VMStorage $_ `
            –DestinationStoragePath "E:\Hyper-V\$_"
}

Jeśli skopiowałeś maszynę wirtualną i wszystkie jej pliki do nowej lokalizacji i chcesz, aby Hyper-V zaczął używać nowej lokalizacji, powinieneś być w stanie zrobić coś takiego.

Remove-VM oldvmname
Import-VM -Register -Path 'path to VM config file'
Zoredache
źródło
Dzięki za kod, ale wciąż przenosi aktualizację maszyny wirtualnej
Anthony Fornito,
Widziałeś opcję przeniesienia tylko magazynu, prawda?
Zoredache,
Tak, ale nie chcę przesuwać magazynu, skopiowałem plik vhdx do nowej lokalizacji, mogę także użyć polecenia Set-VMHardDiskDrive, które działa w celu zmiany katalogu pamięci, gdy maszyna wirtualna jest wyłączona, co również jest w porządku, ale nie mogę dowiedzieć się, jak „ZMIENIĆ” wskaźnik pliku konfiguracyjnego maszyny wirtualnej.
Anthony Fornito,
Jeśli faktycznie skopiowałeś wszystkie pliki i jesteś pewien, następnie usuń usunięcie i ponownie zaimportuj maszynę wirtualną. Odpowiedź zaktualizowana o przykład.
Zoredache,