3.1 Install and configure Hyper-V
3.1.1 Determine hardware and compatibility requirements for installing Hyper-V
3.1.3 Install management tools
3.1.4 Upgrade from existing versions of Hyper-V
3.1.5 Delegate virtual machine management
3.1.6 Perform remote management of Hyper-V hosts
3.1.7 Using Windows PowerShell Direct
3.1.8 Implement nested virtualization
3.1.1 Determine hardware and compatibility requirements for installing Hyper-V
Windows Server 2016 inkluderer Hyper-V rollen, som lar en opprette virtuelle maskiner (VM). Hver VM har sin egen virtuelle hardware og kjører en separat kopi av et operativsystem, ofte kalt en guest. Den fysiske maskinen som har Hyper-V installer kalles en host. En host kan kjøre opptil hundrevis av VMer såframt den har nok fysiske ressurser (CPU, RAM, lagring, nettverk). Virtuelle maskiner er isolerte miljøer som enkelt kan flyttes fra en Hyper-V host til en annen. Virtualiseringen er basert på en modul kalt hypervisor, også kalt virtual machine monitor (VMM).
Virtualiseringsarkitektur
I tidligere virtualiseringsteknologier, som Microsoft Virtual Server, kjørte hypervisor som en applikasjon oppå host operativsystemet. Dette kalles Type II virtualisering; host OS og hypervisor deler på prosessortilgangen. Type II virtualisering kan duge til testformål, men ytelsen duger ikke i travle poduksjonsmiljøer.
Med Type I virtualisering kjører host OS oppå hypervisor på lik linje de virtuelle maskinene. Hypervisor kommuniserer direkte med hardware, uten et OS som mellomledd. Når Hyper-V blir installert host OS flyttet til en parent partition og hypervisor legger seg i bunn.
Hyper-V hardware begrensninger
- En Hyper-V host kan maksimalt ha
- 512 logiske prosessorer
- 2048 virtuelle prosessorer
- 24TB minne
- 1024 aktive virtuelle maskiner
- En virtuell maskin kan maksimalt ha
- Gen 1: 64 virtuelle prosessorer
- Gen 2: 240 virtuelle prosessorer
- Hyper-V cluster støtter inntil 64 noder og 8000 virtuelle maskiner
- Hyper-V krever
- 64-bit prosessor som inkluderer hardware-assisted virtualization og second-level address translation (SLAT). Dette er inkludert i prosessorer som støtter virtualisering, som Intel Virtualization Technology (Intel VT) eller AMD Virtualization (AMD-V) technology.
- Hardware-enforced Data Execution Prevention (DEP); som Intel kaller eXecutable Disable (XD), og AMD kaller No eXecute (NX).
- VM Monitor Mode extensions; finnes i Intel prosessorer som VT-c
- BIOS eller UEFI som støtter virtualisering; dette må aktiveres manuelt
- Minimum 4 GB minne, må ha nok RAM til alle guests som hosten skal kjøre
Man kan sjekke om en server har hardware som støtter virtualisering ved å kjøre følgende program og sjekke resultatet:
systeminfo.exe
NB. Hardware og BIOS/UEFI som støtter virtualisering er nødvendig for å kjøre Hyper-V, men trengs ikke for å administrere en annen server som kjører Hyper-V. Man kan installere Hyper-V Management Tools featuren på en hvilken som helst maskin.
3.1.2 Install Hyper-V
Installer Hyper-V mer Server Manager
Naviger til Server Manager > Add Roles and Features > Role: Hyper-V > Accept dependencies
Opprett virtuell svitsj ved å velge en nettverksadapter.
Trykk Install. Ta en omstart av server etter installasjon.
Installer Hyper-V med PowerShell
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Eller med DISM.exe
Dism.exe /online /enable-feature /featurename:microsoft-hyper-v
3.1.3 Install management tools
For å administrere Hyper-V bruker man Hyper-V Manager konsollet. Den gir en liste over alle VMer på hosten og lar deg konfigurere både hosten og hver enkelt VM. Hyper-V kommer også med en PowerShell modul for administrasjon og konfigurasjon. Administrasjonsverktøy kan installeres lokalt på hosten eller på en hvilken som helst annen maskin; de krever ikke noe spesiell hardware.
For å installere Hyper-V Management Tools gå til Server Manager > Add Roles and Features > Feature: Remote Server Administration Tools\Role Administration Tools\Hyper-V Management Tools
For å installere Hyper-V Management Tools med PowerShell:
Install-WindowsFeature -Name RSAT-Hyper-V-Tools
Man kan også velge å kun installere GUI med:
Install-WindowsFeature -Name Hyper-V-Tools
Eller kun installere PowerShell modulen med:
Install-WindowsFeature -Name Hyper-V-PowerShell
3.1.4 Upgrade from existing versions of Hyper-V
Hyper-V i Windows Server 2016 har mye ny funksjonalitet, men dersom man oppgraderer fra en tidligere versjon må man ta hensyn til konfigurasjonen på de virtuelle maskinene. Når man skal oppgradere Hyper-V bør man starte med å fjerne VMene; det kan gjøres på tre måter:
- Export: Lagre VM filene, inkludert diskene, til en egen mappe. Etter oppgraderingen kan man importere VMene igjen. Med mange VMer kan dette bli en tungvint prosess da hver VM må behandles individuelt. VMene er offline under denne prosessen.
- Hyper-V Replica: Lager kopier av kjørende VMer til replika på en annen Hyper-V host, inkluderet diskene. Minimal nedetid, kan replikere tilbake VMene etter oppgraderingen.
- Share Nothing Live Migration: Migrerer en VM til en annen Hyper-V host, nesten uten nedetid.
Når VMene er flyttet kan man trygt oppgradere Hyper-V på en ny/clean installasjon av Windows Server 2016 (anbefalt av Microsoft).
3.1.5 Delegate virtual machine management
For å installere Hyper-V må man være logget inn som lokal adminiostrator eller Domain Admin, men for videre administrasjon er ikke det særlig praktisk. For å adressere dette oppretter Hyper-V en egen administratorgruppe som kan opprette, administrere og koble til virtuelle maskiner. Gruppen heter Hyper-V Administrators.
NB. I tidligere versjoner av Windows Server var det et verktøy kalt Autorization Manager (Azman.msc) som ble brukt til å delegere spesifikke privileger til brukere; f.eks. gi rettighet til å starte eller stoppe virtuelle maskiner. Azman ble deprecated i Windows Server 2012 R2, men finnes fortsatt i Windows Server 2016. Det som har tatt over for Azman er System Center Virtual Machine Manager (VMM) som er et eget produkt som må kjøpes.
3.1.6 Perform remote management of Hyper-V hosts
Fjernadministrasjon med Hyper-V Manager
Tidligere versjoner av Hyper-V Manager er begrenset i kapabilitet til å administrere en Windows Server 2016 host server. Windows Server 2016 og WIndows 10 har full kapabilitet i Hyper-V Manager.
For å installere Hyper-V Manager på Windows 10 må man aktivere den som en Windows Feature under Programs and Features > Turn On or Off Windows Features > Hyper-V > Hyper-V-behandlingsverktøy > Hyper-V GUI-behandlingsverktøy
For å koble Hyper-V Manager til en Hyper-V host:
Hyper-V Manager > Action > Connect to server... > Skriv inn ip eller navn på hosten > OK
Hosten dukker da opp i vinduet til venstre, trykk på den for å administrere den. For å koble til en VM kan man dobbeltklikke på den, eller høyreklikke og velg Connect...
Hvis maskinene ikke er i samme domene må man konfigurere CredSSP på Hyper-V hosten:
# Oppretter branmurregler
Enable-PSRemoting
# Aktivere CredSSP for autentisering
Enable-WSManCredSSP
På klienten må man også sette:
# Legger Hyper-V host til i trusted hosts
Set-Item -Path WSMAN:\localhost\Client\TrustedHosts -Value hyper.ad.norrz.com
# Aktivere CredSSP for autentisering
Enable-WSManCredSSP -Role client -DelegateComputer hyper.ad.norrz.com
NB. Merk at det ikke er akseptabelt å konfigurere Trusted Hosts i et produksjonsmiljø, da det reduserer sikkerheten betraktelig. Da må man heller melde begge maskinene inn i samme domene. Er ikke det mulig kan man anskaffe SSL Server sertifikater som maskinene kan autentisere seg med.
Fjernadministrasjon med Windows PowerShell
Man kan bruke Hyper-V PowerShell modulen for å administrere Hyper-V. Det er to hovedmåter å fjernadministrere med PowerShell:
- PowerShell remoting (explicit remoting): Man oppretter en sesjon som man trer inn i, og da kan man kjøre kommandoer som om man er lokalt på målmaskinen. Her trenger ikke Hyper-V modulen være installert på klienten, kun på Hyper-V hosten.
- Implicit remoting: Man kjører kommandoene på en klient og angir Hyper-V host som målmaskin for kommandoene med parameteret -ComputerName. Her må Hyper-V PowerShell modulen være installert på klienten.
PowerShell remoting
# Raskeste metode, ikke vedvarende tilkobling
# Kan sløyfe -Credential om lokal konto har tilgang til å administrere Hyper-V på hosten
Enter-PSSession -ComputerName hyper.ad.norrz.com -Credential ad\a-martin
# Gå ut av en sesjon
Exit
# Kan opprette en ny sesjon som er vedvarende
$hyperSession = New-PSSession -ComputerName hyper.ad.norrz.com -Credential ad\a-martin
Enter-PSSession -Session $hyperSession
Implicit remoting
Get-VM -ComputerName hyper.ad.norrz.com
3.1.7 Using Windows PowerShell Direct
PowerShell Direct er en måte å koble til virtuelle maskiner fra hosten uten at de trenger å være koblet til nettverket.
# Tre inn i en sesjon med VMen
Enter-PSSession -VMName Hyper -Credential ad\a-martin
# Kjør en blokk med en eller flere kommando(er) mot VMen
Invoke-Command -VMName Hyper -Credential ad\a-martin -ScriptBlock { Write-Host $env:ComputerName }
Man kan også opprette en sesjon og gjenbruke den:
# Oppretter sesjonen
$hyperSession = New-PSSession -VMName Hyper -Credential ad\a-martin
# Kopierer en fil via sesjonen til VM
Copy-Item -ToSession $hyperSession -Path .\ISO\asg-9.503-4.1.iso -Destination C:\
# Kopierer filen tilbake
Copy-Item -FromSession $hyperSession -Path C:\asg-9.503-4.1.iso -Destination D:\
3.1.8 Implement nested virtualization
Nestet virtualisering er en funksjon som lar en Hyper-V guest VM fungere som en Hyper-V host med egne VM-er. Nestet virtualisering er kun tilgjengelig i Windows Server 2016. Nestet virtualisering muliggjør også å kjøre lage Hyper-V containers en virtuell maskin. Nestet virtualisering krever en Intel prosessor med VT-x og Extended Page Tables (EPT) støtte.
Før man starter VMen for første gang må man konfigurere den til å få tilgang til den fysiske virtualiseringsteknologien:
Set-VMProcessor -VMName Hyper -ExposeVirtualizationExtensions $true
# Maskinen må ha statisk minne
Set-VMMemory -VMName Hyper -DynamicMemoryEnabled $false
# Maskinen må ha minst to kjerner
Set-VMProcessor -VMName Hyper -Count 2
# Slå på MAC address spoofing
Set-VMNetworkAdapter -VMName Hyper -Name "Ekstern" -MacAddressSpoofing On