Configurare PowerShell VM Hyper-V


13

Come posso riconfigurare le VM Hyper-V

Voglio essere in grado di modificare il file di configurazione della VM, i punti di controllo e le posizioni del disco rigido virtuale con Powershell.

Il mio Google-FU mi sta solo indicando lo spostamento, ho circa ~ 100 VM da cambiare, posso spostare i file, non mi dispiace un po 'di tempo morto, quando passo attraverso la procedura guidata per ogni VM ci vogliono circa 5-15 minuti per VM e quelli sono i più piccoli, devo essere in grado di fare tutti e 100 in 2 ore.

Se ho bisogno di chiarire, per favore fatemelo sapere.

== Dove mi sto bloccando ==

Sì, ho visto quel link e ho guardato la maggior parte dei comandi, ma nessuno fa quello che sto cercando.

I file tutti insieme sono circa 14 TB

Le ~ 100 VM sono raggruppate tra 7 host. L'archiviazione condivisa è un disco rotante EMC e voglio spostarli su 3Par ssd.

Ora, ciò che sono stato in grado di fare con successo è stato arrestare la VM, spostare i file, eliminare tutte le VM e ricrearle tramite il PowerShell, che quando ho detto al mio CTO che poteva essere l'unico modo in cui parlava di gattini di merda.

Quello che voglio essere in grado non è di SPOSTARE le VM, solo riconfigurarle,

In altre opere essere in grado di cambiare:

inserisci qui la descrizione dell'immagine

PER:

inserisci qui la descrizione dell'immagine

Voglio essere in grado di farlo utilizzando PowerShell, inoltre devo essere in grado di fare la stessa cosa per i punti di controllo, i file di configurazione e tutti gli altri componenti di Hyper-V VM.

Posso tollerare circa 2 ore di inattività, eseguire MOVE tramite la procedura guidata perché tutte le VM non solo consumeranno il mouse ma impiegheranno circa 6 ore.

Ho anche fatto ricerche su questo e testando diverse strategie per un paio di settimane.

==== Ancora uno scatto ====

Non sto cercando "Sposta", tutto ciò che voglio poter fare è cambiare le impostazioni dall'interno di Hyper-V Lo spostamento richiederà molto tempo, è molto più veloce per me copiare i file sulla rete e aggiornare semplicemente i percorsi in Hyper-V, posso spegnere le macchine.

Sto pensando che non si possa fare?


Che tipo di ricerca hai fatto finora? La documentazione nel modulo hyper-v mi sembra abbastanza buona. Dove ti blocchi?
Zoredache,

@Zoredache guarda l'aggiornamento.
Anthony Fornito,

1
Se sono raggruppati, è sufficiente spostare lo spazio di archiviazione, utilizzando l'opzione di spostamento dello spazio di archiviazione. È nella GUI e non dovrebbe comportare tempi di inattività. blogs.msdn.microsoft.com/clustering/2012/04/26/...
Drifter104

Im thinking it cannot be done?Penso che si possa fare, ma sarebbe una sceneggiatura lunga e complicata. Praticamente tutto ciò che riguarda una VM può essere completamente manipolato tramite PowerShell. Ho il sospetto che ti stia rendendo la vita molto più difficile non lasciando che gli strumenti gestiscano lo spostamento dei file per te.
Zoredache,

@Zoredache in un mondo perfetto in cui avevo 6 ore sì, sarebbe bene usare gli strumenti, tuttavia ne ho 2
Anthony Fornito,

Risposte:


8

Non sono sicuro che questo faccia ciò di cui hai bisogno, ma c'è un esempio di frammento di PowerShell che ho usato in passato per migrare le macchine virtuali, incluso tutto lo spazio di archiviazione in una nuova destinazione

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
}

Spostare l'archiviazione VM in un nuovo percorso

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

Se hai copiato una VM e tutti i suoi file in una nuova posizione e desideri che Hyper-V inizi a utilizzare la nuova posizione, dovresti riuscire a fare qualcosa del genere.

Remove-VM oldvmname
Import-VM -Register -Path 'path to VM config file'

Grazie per il codice, ma sposta comunque l'aggiornamento di visualizzazione della VM
Anthony Fornito,

Hai visto l'opzione per spostare solo lo spazio di archiviazione giusto?
Zoredache,

Sì, ma non sto cercando di "SPOSTARE" l'archiviazione, ho copiato il file vhdx nella nuova posizione, inoltre posso utilizzare il comando Set-VMHardDiskDrive che funziona per modificare la directory di archiviazione quando la VM è spenta, che va bene, ma non riesco a scoprire come 'CAMBIARE' il puntatore per il file di configurazione della VM.
Anthony Fornito,

Se hai effettivamente copiato tutti i file e sei sicuro, quindi rimuovi la rimozione e reimporta la VM. Risposta aggiornata con un esempio.
Zoredache,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.