Jäädvustage videot Hyper-V virtuaalmasinatest PowerShelli abil

  • PowerShell pakub põhjalikke cmdlette Hyper-V virtuaalmasinate loomiseks, haldamiseks, eksportimiseks ja importimiseks kaugjuhtimise teel.
  • Filtreerimise ja torujuhtmetega automatiseerimine võimaldab hulgitoiminguid ja detailseid mõõdikuid iga virtuaalmasina kohta.
  • Võrku, salvestusruumi ja ressursse saab reguleerida käskudega New-VMSwitch, Add-VMNetworkAdapter, Set-VMMemory ja Set-VMProcessor.
  • Aruandlusskriptid ja varunduslahendused täiendavad hetktõmmiseid ja eksporte, et kaitsta teie keskkonda.

Hyper-V haldamine PowerShelli abil

Kui töötate Windowsis virtualiseerimisega, siis varem või hiljem automatiseerite ülesandeid. PowerShell ja Hyper-V sobivad ideaalselt : alates virtuaalmasinate käivitamisest või sulgemisest kuni nende eksportimise, ressursside mõõtmise või virtuaalsete võrkude loomiseni – kõike saab juhtida ilma graafilist konsooli avamata.

Järgmistes ridades vaatame näidete ja parimate tavade abil üle, kuidas PowerShelli abil Hyper-V-d põhjalikult hallata . Näete olulisi käske, virtuaalmasinate loomist ja konfigureerimist, eksporti ja importi, hulgifiltreerimist, mõõdikuid, võrgustamist ja salvestust, samuti kasulikke skripte platvormi oleku ja varundusvõimaluste aruandluseks suurema meelerahu tagamiseks.

Mis on PowerShell ja miks seda Hyper-V-ga kasutada?

PowerShell on Microsofti .NET-põhine automatiseerimis- ja skriptimisraamistik. See ühendab käsuinterpretaatori võimsa skriptimiskeelega , mis sobib ideaalselt administreerimiseks Windowsis, macOS-is ja Linuxis.

Selle käsud (cmdlet-käsud) võimaldavad teil toiminguid aheldada ja luua korduvkasutatavaid skripte. Microsoft pakub sadu põhilisi cmdlet-käske ja Hyper-V mooduliga on teil kõik vajalik hostide, virtuaalmasinate, võrgu ja salvestusruumi haldamiseks konsoolist.

Mis on PowerShell

PowerShelli avamine ja kasutamine Hyper-V hostides

Kui hostil on graafiline kasutajaliides, avage menüü Start, otsige PowerShelli ja käivitage „Käivita administraatorina ”. Server Core'i või Hyper-V Serveri installide korral tippige PowerShelli seansi alustamiseks käsureale powershell .

Server Core'is kaugjuurdepääsu saamiseks Remote Desktopi abil kasutage käsku sconfig (valik 7) ja kui peate konsooli juurde naasma, siis valik 15 viib teid tagasi cmd.exe juurde . Ärge unustage lubada RDP-d hostil, millega ühendute.

Kaughaldus ilma RDP-ta on veelgi mugavam: installige tööriistad oma tööjaama käsuga Install-WindowsFeature RSAT-Hyper-V-Tools ja lisage cmdlet-käskudesse (Get-VM, Start-VM jne) käsk -ComputerName , et need sihtmasinal töötaksid. Saate hallata mitut hosti ilma kaugtöölaudade vahel vahetamata.

Olulised Hyper-V cmdlet-id näidetega

Kui te ei suuda käsku või selle süntaksit meenutada, vaadake kataloogi. Get-Command loetleb saadaolevad cmdlet-id, funktsioonid ja aliased ning saate filtreerida mustri järgi:

Get-Command -Module Hyper-V
Get-Command *-VM
Get-Command *-VHD*

Abi, näidete ja parameetrite saamiseks selgitab Get-Help süntaksit ja kuvab isegi praktilisi näiteid:

Get-Help Get-VM

VM-i inventuur ja elutsükkel

Kohaliku või kaugmasina virtuaalmasinate vaatamiseks on esimene samm käsk Get-VM :

Get-VM
Get-VM -ComputerName Server1

Käivitage konkreetsed virtuaalmasinad või partiid. Nimes saate kasutada metamärke :

Start-VM -Name 'Windows Server 2016'
Start-VM -Name 'Hyper-V*'

Lülitab arvuti korralikult välja (või sunnib lülituma, kui see ei reageeri). Stop-VM toetab äärmuslikel juhtudel käske -TurnOff ja -Force ning Save-VM lülitab oleku talveunne.

Stop-VM -Name 'Windows Server 2016'
Stop-VM -Name 'Hyper-V*' -TurnOff
Stop-VM -Name 'Windows Server 2016' -Force
Save-VM -Name 'Windows Server 2016'
Get-VM -Name 'Hyper-V*' | Save-VM

Külalisoperatsioonisüsteemi sujuvaks sulgemiseks on Invoke-VMSHutdown ideaalne, kui integratsioon võimaldab:

Invoke-VMShutdown -VMName 'testvps' -Force

Kontrollpunktid (hetktõmmised)

Kontrollpunktid on enne kriitiliste muudatuste tegemist hindamatud. Checkpoint-VM loob kontrollpunkti ja Get-VMSnapshot kontrollib seda.

Checkpoint-VM -Name 'Windows Server 2016' -SnapshotName 'Update1'
Get-VMSnapshot -VMName 'Windows Server 2016'

Hetktõmmiste mustri järgi puhastamiseks kasutage ahelmeetodit torujuhtme abil. `Remove-VMSnapshot` kustutab teie määratud väärtuse :

Get-VM 'Hyper-V Server 2012' | Remove-VMSnapshot -Name 'Testing*'

Virtuaalsed kettad (VHD/VHDX)

Kontrollib failide teid ja tervist. Test-VHD kinnitab VHD olemasolu ja kehtivust :

Test-VHD -Path 'C:\Testing.vhd'

VHD loomiseks või ühendamiseks kasutage New-VHD ja Add-VMHardDiskDrive käske , et automatiseerida loomine/ühendamine. Fikseeritud suurus on hea tava jõudlustundlike töökoormuste puhul.

New-VHD -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx' -SizeBytes 60GB -Fixed
Add-VMHardDiskDrive -VMName 'WSTEST' -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx'

Mõõdikud ja võrk

Luba ressursimõõtmine ja kontrolli virtuaalmasinate tarbimist. Enable-VMResourceMetering + Measure-VM annab sulle teavet protsessori, muutmälu, ketta ja võrgu kasutamise kohta.

Enable-VMResourceMetering -VMName 'Windows Server 2016'
Measure-VM -VMName 'Windows Server 2016'

Virtuaalsete adapterite loetlemiseks lisage haldus. Get-VMNetworkAdapter lisab virtuaalmasinad ja hosti enda valikuga -All:

Get-VMNetworkAdapter -All

Konfiguratsiooni versioon, protsessid ja filtreerimine

Pärast hosti värskendamist värskendab see vajadusel ka virtuaalmasina versiooni. Update-VMVersion teeb seda turvaliselt.

Update-VMVersion -Name 'TestVM'

Kitsaskohtade diagnoosimiseks kasutage protsesside cmdlett-käske. Get-Process, Stop-Process, Start-Process, Wait-Process ja Debug-Process annavad teile kontrolli.

Get-Process -Id 8892
Get-Process WINWORD | Format-List *
Start-Process -FilePath 'notepad.exe'
Start-Process -FilePath 'powershell' -Verb RunAs
Stop-Process -Name 'notepad'
Stop-Process -Id 5052

Where-Object filtreerib mis tahes kollektsiooni. Kasutage seda teenuste, cmdlettide või protsessidega, et säilitada ainult see, mis on oluline.

Get-Service | Where-Object {$_.Status -eq 'Stopped'}
Get-Command | Where-Object {$_.Name -like '*wait*'}
Get-Process | Where-Object {$_.ProcessName -Match '^sys.*'}

Jäädvusta video Hyper-V virtuaalmasinaid PowerShelliga

Virtuaalsete masinate loomine ja konfigureerimine PowerShelli abil

2. põlvkonna virtuaalmasina loomine uue VHDX-i ja määratud võrguga toimub ühe käsuga. `new-VM` võimaldab teil mälu, ketta, tee ja kommutaatori ühe sammuga defineerida :

New-VM -Name 'WSTEST' -MemoryStartupBytes 2GB -Generation 2 \
  -NewVHDPath 'D:\hyper-v\virtual hard disks\WSTEST.vhdx' \
  -NewVHDSizeBytes 60GB -SwitchName 'ExternalSwitch'

Kui vajate ISO-lt käivitamiseks virtuaalset DVD-d, lisage kontroller ja draiv. Pidage meeles, et kontrolleri number ja asukoht peaksid sobima teie paigutusega.

Add-VMSCSIController -VMName 'WSTEST'
Add-VMDvdDrive -VMName 'WSTEST' -ControllerNumber 1 -ControllerLocation 0 -Path 'D:\ISO\my.iso'

Samuti saate ette valmistada fikseeritud kettaid ja need ühendada. Fikseeritud VHDX-id vähendavad fragmentatsiooni ja latentsust nõudlikes I/O-keskkondades.

New-VHD -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx' -SizeBytes 60GB -Fixed
Add-VMHardDiskDrive -VMName 'WSTEST' -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx'

Olemasoleva VHD-ga stsenaariumide korral määrake -VHDPath ja kaughalduse kasutamisel lisage -ComputerName . Atribuut -BootDevice võimaldab teil valida VHD, ISO või võrgukäivituse vahel.

New-VM -ComputerName 'Server1' -Name 'VM1' -MemoryStartupBytes 4GB \
  -BootDevice VHD -VHDPath '.\VMs\Win10.vhdx' -Path '.\VMData' \
  -Generation 2 -SwitchName 'ExternalSwitch'

Näide PowerShelli ISE-s funktsiooni "splatting" kasutamisest, et muuta see puhtaks ja korratavaks. See sobib ideaalselt mallide loomiseks:

$VMName = 'VMNAME'
$VM = @{
  Name = $VMName
  MemoryStartupBytes = 2147483648
  Generation = 2
  NewVHDPath = "C:\\Virtual Machines\\$VMName\\$VMName.vhdx"
  NewVHDSizeBytes = 53687091200
  BootDevice = 'VHD'
  Path = "C:\\Virtual Machines\\$VMName"
  SwitchName = (Get-VMSwitch).Name
}
New-VM @VM

Täiustatud haldus: liikumised, import ja eksport

Virtuaalmasina teisaldamiseks hostide vahel toetab Move-VM teisaldamist salvestusruumiga või ilma ning töötab suurepäraselt, kui allikas on SMB-l:

Move-VM -ComputerName 'Server1' -Name 'VM1' -DestinationHost 'Server2'
Move-VM -ComputerName 'Server1' -Name 'VM1' -DestinationHost 'Server2' \
  -IncludeStorage -DestinationStoragePath 'D:\VM_name'

Eksportimine loob täieliku koopia (konfiguratsioon, VHD-d ja hetktõmmised). Export-VM on kasulik arhiveerimiseks, testimiseks või ad-hoc migreerimiseks.

Export-VM -ComputerName 'Server1' -Name 'VM1' -Path 'D:\'
Get-VM | Export-VM -Path 'C:\'

Importimisel on kolm režiimi: registreeri kohapeal (samad failid ja ID), taasta (kopeeri uuele teele, säilitades ID) ja kopeeri (kopeeri uue ID-ga). Valige ID-konfliktide ja sihtkoha põhjal:

# Registrar in situ (elimina antes la VM original con el mismo ID)
Get-VM 'DemoVM' | Remove-VM
Import-VM -Path 'C:\\Virtual Hard Disks\\Exported VMs\\DemoVM\\Virtual Machines\\{GUID}.vmcx'

# Restaurar a nuevas rutas, conservando ID
Import-VM -Path 'C:\\Virtual Hard Disks\\Exported VMs\\Hyper-V Server 2012\\Virtual Machines\\{GUID}.vmcx' \
  -Copy -VhdDestinationPath 'C:\\Program Files\\Imported VMs\\VHD Files' \
  -VirtualMachinePath 'C:\\Program Files\\Imported VMs\\VM Files'

# Copiar con nuevo ID (importable varias veces en el mismo host)
Import-VM -Path 'C:\\Virtual Hard Disks\\Exported VMs\\DemoVM\\Virtual Machines\\{GUID}.vmcx' \
  -Copy -GenerateNewId

Kui töötate Azure Localiga (Windows Server 2019/2022 ja versioonid nagu 2311.2 ja hilisemad), on kaughaldus valikuga -ComputerName normiks: inventuur, käivitamine/peatamine, kontrollpunktid, import/eksport ja teisaldamine teostatakse kõik teie administreerimisarvutist.

CMD ja PowerShell: olulised käsud igale Windowsi kasutajale

Võrk, salvestusruum ja ressursid: mälu ja protsessor

Loo lülitid virtuaalmasinate isoleerimiseks või ühendamiseks kohtvõrguga. New-VMSwitch toetab ribalaiuse režiime ja QoS-i:

New-VMSwitch 'QoS Switch' -NetAdapterName 'Wired Ethernet Connection 3' -MinimumBandwidthMode Weight

Lisage virtuaalsetele masinatele virtuaalsed võrgukaardid ja ühendage need vastava kommutaatoriga. Add-VMNetworkAdapter on teie liitlane virtuaalmasinate võrgus.

Add-VMNetworkAdapter -ComputerName 'Server1' -VMName 'VM1' -Name 'Redmond NIC1'
Add-VMNetworkAdapter -ComputerName 'Server1' -VMName 'VM1' -SwitchName 'Network'

Dünaamiline mälu optimeerib tihedust kontrolli kaotamata. Set-VMMemory reguleerib miinimume, algust, maksimume, prioriteeti ja puhvrit:

Set-VMMemory -ComputerName 'Server1' -Name 'VM1' -DynamicMemoryEnabled $true \
  -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB -Priority 80 -Buffer 25

Määrake vCPU-dele piirangud ja reserveeringud. Set-VMProcessor määratleb iga virtuaalmasina arvu, reserveeringu, maksimumi ja suhtelise kaalu:

Set-VMProcessor -ComputerName 'Server1' -Name 'VM1' -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200

Uute ketaste loomiseks sobib New-VHD nii dünaamiliste kui ka staatiliste VHD/VHDX stsenaariumide jaoks. Soovitud virtuaalmasinaga ühendamiseks kombineeri see Add-VMHardDiskDrive'iga .

Masstoimingud ja filtreerimine

Hyper-V mooduli käskude vaatamine interaktiivsel ruudustikus on väga kasulik. Out-GridView aitab teil kontrollida saadaolevaid käske ja parameetreid:

Get-Command -Module Hyper-V | Out-GridView

Laoseisude filtreerimiseks kasutage oleku järgi filtrit. Where-Object võimaldab teil töötavaid või suletud virtuaalmasinaid lühidalt näha:

Get-VM | Where-Object {$_.State -eq 'Running'}
Get-VM | Where-Object {$_.State -eq 'Off'}

Käivitage kõik väljalülitatud virtuaalmasinad või peatage töötavad virtuaalmasinad konveierite abil. Ideaalne ajastatud ülesannete jaoks.

Get-VM | Where-Object {$_.State -eq 'Off'} | Start-VM
Get-VM | Where-Object {$_.State -eq 'Running'} | Stop-VM

Ümbernimetamine ja puhastamine on samuti lihtsad. Rename-VM ja Remove-VM aitavad teil ümbermärgistada ja eemaldada (pidage meeles, et Remove-VM ei kustuta VHD-sid):

Rename-VM -ComputerName 'Server1' -Name 'VM1' -NewName 'VM2'
Get-VM -Name 'VM2'
Remove-VM -Name 'VM2'

Klastris eemaldage vajadusel terveid gruppe. `Remove-ClusterGroup -RemoveResources` puhastab virtuaalmasina ja selle klastri ressursid.

Get-ClusterGroup
Remove-ClusterGroup -RemoveResources -Name 'VM1'

Jälgimine ja varundamine: skriptid ja tööriistad

Hyper-V tervise auditeerimiseks HTML-aruannete abil genereerib Serhat Akinci skript põhjaliku keskkonnaaruande , mille saab e-postiga saata. Laadige see alla ja vaadake näidisväljundit:

Allalaadimislink · Näidisaruanne

Kui kasutate Hyper-V replikat, jälgib Sangeethi skript replikatsiooni olekut üksikutel sõlmedel või klastritel ja edastab levitamiseks valmis HTML-aruande:

Laadige alla replikatsiooni terviseteabe saatja

Andmekaitse osas on olemas virtuaalmasinatele mõeldud lahendused, näiteks NAKIVO Backup & Replication (VMware, Hyper-V, Nutanix, AWS EC2, Linux, Windows ja Microsoft 365) ja Vinchin Backup & Recovery (Proxmox, VMware, Hyper-V, XenServer, XCP-ng, oVirt, RHV jne). Need pakuvad agendita varundamist, kohest taastamist ja V2V migratsiooni ning hõlbustavad tsentraliseeritud poliitikaid ja ajastamist riskide minimeerimiseks.

Pidage meeles, et Export-VM ja Import-VM on ajutised alternatiivid arhiveerimiseks, testimiseks ja lihtsaks taastamiseks, kuid need ei asenda põhjalikku varundamist koos deduplikatsiooni, krüptimise ja tihendamisega . Eksportimine nõuab rohkem käsitsi sekkumist ja skaleerub suurtes keskkondades vähem tõhusalt.

Nüüd on teil praktiline juhend Hyper-V konsoolile toomiseks: cmdlettide avastamine, virtuaalmasinate loomine ja teisaldamine, ressursside mõõtmine, võrgu ja salvestusruumi peenhäälestamine, hulgifiltreerimine ja tervisearuannete koostamine . PowerShelli ökosüsteem pakub teile kiirust ja täpsust; kombineerige see heade kopeerimispoliitikate ja jälgimisskriptidega ning teil on tugev ja skaleeritav platvorm.


Lisa eelistatud allikana Google'is