PowerShell ofera adesea o mai mare flexibilitate si o mai buna eficienta atunci cand vine vorba de efectuarea de operatii pe care altfel le-ati rula prin instrumente GUI cum ar fi Hyper-V Manager si consola SCVMM.
In timp ce System Center Virtual Machine Manager este un produs util care va poate ajuta sa gestionati host-urile de virtualizare de la o masina centrala, pentru medii in care SCVMM nu este implementat si in situatii in care trebuie sa efectuati sarcini operationale legate de Hyper-V pe mai multe gazde Hyper-V , aveti doua optiuni.
Mai intai, puteti sa utilizati managerul Hyper-V si sa va conectati la un server de la distanta Hyper-V si apoi sa efectuati actiunile necesare. Dezavantajul in utilizarea managerului Hyper-V pentru a se conecta la fiecare gazda Hyper-V si apoi a efectua sarcinile necesare este ca ar putea dura o perioada considerabila de timp.
Daca sunteti familiarizat cu PowerShell, devine mai usor sa efectuati aceleasi sarcini pe mai multe gazde Hyper-V. Tot ce trebuie sa faceti este sa schimbati pur si simplu numele gazdei Hyper-V pe care doriti sa executati comenzile PowerShell. In tutorialul de astazi, vom explica utilizarea parametrului “-ComputerName” pentru a executa comenzile Hyper-V PowerShell pe host-uri Hyper-V de la distanta.
Daca doriti sa vedeti o lista a cmdlet-urilor Hyper-V PowerShell, puteti executa aceasta comanda: Get-Command -Module Hyper-V | Out-GridView. Odata ce aceasta comanda este executata, veti obtine o lista de date ce include cmdleturile Hyper-V.
Crearea unei noi masini virtuale pe un host Hyper-V
Daca aveti nevoie sa creati o noua masina virtuala pe o gazda Hyper-V, puteti folosi cmdletul New-VM PowerShell. Scriptul PowerShell pentru a crea o noua masina virtuala arata astfel:
$VMNameVariable = “SQLVM”
$VM = @{
Name = $VMNameVariable
MemoryStartupBytes = 4147483648
Generation = 1
NewVHDPath = “E:\VMs\$VMNameVariable\$VMNameVariable.vhdx”
NewVHDSizeBytes = 43687091200
BootDevice = “VHD”
Path = “E:\VMs\$VMNameVariable”
SwitchName = (Get-VMSwitch).Name[0]
}
New-VM @VM -ComputerName “Hyper-VHost1”
Dupa cum puteti vedea in scriptul PowerShell de mai sus, variabila $ VM detine informatiile necesare pentru o masina virtuala noua si cmdletul New-VM PowerShell creeaza o noua masina virtuala pe gazda Hyper-V specificata in parametrul “-ComputerName”. Daca doriti sa creati o alta masina virtuala pe o alta gazda Hyper-V la distanta, pur si simplu schimbati numele gazdei Hyper-V specificat in parametrul “-ComputerName”.
Activarea memoriei dinamice pe o masina virtuala
Sa presupunem ca trebuie sa configurati parametrul de memorie dinamica pe o masina virtuala care ruleaza pe o gazda Hyper-V la distanta. Deoarece modulele Hyper-V ofera cmdlet-ul Set-VMMemory PowerShell pentru a lucra cu parametrii de memorie ai unei masini virtuale, puteti executa urmatoarea comanda PowerShell pentru a modifica memoria dinamica:
Set-VMMemory SQLVM -ComputerName “Hyper-VHost1” -DynamicMemoryEnabled $True -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 4GB -Priority 80 -Buffer 25
Comanda de mai sus activeaza memoria dinamica pentru SQLVM care ruleaza pe o gazda Hyper-V la distanta numit “Hyper-VHost1” si configureaza parametrii de memorie dinamica necesari, cum ar fi memoria minima necesara, memoria de pornire si memoria maxima care poate fi utilizata de masina virtuala. Aceasta comanda ajuta de asemenea la configurarea prioritatii masinii virtuale si a valorilor de buffer.
Configurarea procesoarelor virtuale pe o masina virtuala
Pentru a configura procesoare virtuale pentru o masina virtuala, puteti folosi cmdletul Set-VMProcessor PowerShell ca in exemplul de mai jos:
Set-VMProcessor SQLVM -ComputerName “Hyper-VHost1” -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200
Set-VMProcessor SQLVM -ComputerName “Hyper-VHost1” -CompatibilityForMigrationEnabled $true
Set-VMProcessor SQLVM -ComputerName “Hyper-VHost1” -CompatibilityForOlderOperatingSystemsEnabled $true
Prima comanda PowerShell configureaza o masina virtuala cu doua procesoare virtuale, in timp ce a doua comanda permite migrarea live. Cea de-a treia comanda configureaza masina virtuala sa fie compatibila cu versiunile mai vechi de Hyper-V. Retineti ca toate cele trei comenzi utilizeaza parametrul “-ComputerName”, care specifica gazda Hyper-V pe care sunt executate comenzile.
Actualizarea versiunii masinii virtuale
PowerShell va poate economisi mult timp cand vine vorba de actualizarea versiunii Integration Services pe mai multe masini virtuale. Cmdlet-ul Update-VMVersion este capabil sa detecteze versiunea de Integration Services de pe o masina virtuala si sa efectueze o actualizare daca aceste lucru este necesar. De exemplu, comanda PowerShell de mai jos va actualiza SQLVM la cea mai recenta versiune a masinii virtuale:
Update-VMVersion -Name “SQLVM” -ComputerName “Hyper-VHost1” –Force
Daca aveti nevoie sa verificati si sa actualizati versiunea pe mai multe masini virtuale, puteti furniza o lista de masini virtuale separate prin virgule, dupa cum se vede in urmatoarea comanda:
Update-VMVersion -Name “SQLVM, ExchangeVM, AzureConnectVM, OracleVM” -ComputerName “Hyper-VHost1” –Force
Concluzie
Astazi am invatat cateva exemple de comenzi PowerShell care ilustreaza cat de usor este sa efectuati sarcinile operationale Hyper-V. Majoritatea acestor cmdleturi Hyper-V PowerShell folosesc parametrul “-ComputerName” care poate fi utilizat pentru a specifica numele gazdei Hyper-V pe care trebuie efectuata operatia.