3.4 Configure Hyper-V networking


3.4.1 Add and remove virtual network interface cards (vNICs)

3.4.2 Configure Hyper-V virtual switches

3.4.3 Optimize network performance

3.4.4 Configure MAC addresses

3.4.5 Configure network isolation

3.4.6 Configure synthetic and legacy virtual network adapters

3.4.7 Configure NIC teaming in VMs

3.4.8 Configure virtual machine queue (VMQ)

3.4.9 Enable Remote Direct Memory Access (RDMA) on network adapters bound to a Hyper-V virtual switch using Switch Embedded Teaming (SET)

3.4.10 Configure Bandwidth Management


3.4.1 Add and remove virtual network interface cards (vNICs)

Når man oppretter en VM har den en nettverksadapter, men det er ikke noe i veien for at den kan ha flere. For å legge til nettverksadapter må en generasjon 1 VM slås av, mens en generasjon 2 fint kan kjøre. Man legger til en nettverksadapter ved å anvigere til Hyper-V Manager > VM > Settings > Add Hardware > Network Adapter

Man må så koble adapteren på en virtuell svitsj. Hvis man ønsker å assosiere nettverksadapteren med et VLAN må man huke av for Enable virtual LAN Identification. Man kan legge til inntil 8 nettverksadaptere på en VM.

For å fjerne en adapter trykker man på Remove.

Med PowerShell:

# Legger til en ny adapter, koblet til svitsj "Intranett"
Add-VMNetworkAdapter -VMName Hyper -SwitchName Intranett -Name Intern

# Fjerner en adapter
Remove-VMNetworkAdapter -VMName Hyper -VMNetworkAdapterName Intern

3.4.2 Configure Hyper-V virtual switches

En virtuell svitsj er en nettverksenhet på lag 2 i OSI modellen. En svitsj har flere porter som hver er koblet til maskiner på nettverket, og lar de kommunisere sammen. Man kan koble på flere svitsjer hvis man har for få porter. Virtuelle svitsjer derimot har et ubegrenset antall porter.

Opprette standard svitsjen

Når man installerer Hyper-V featuren får man mulighet til å konfigurere den første svitsjen ved å velge en/flere fysiske adaptere. Hyper-V oppretter så virtuelle nettverkskort på den fysiske hosten:

I tillegg endrer Hyper-V innstillingene på den opprinnelige fysiske adapteren, slik at den kun er bundet til den virtuelle svitsjen.

Det resulterer i at det fysiske og det virtuelle LANet kobles sammen til et LAN, akkurat som om du koblet to fysiske svitsjer sammen. Det betyr at alle VMer du kobler på den svitsjen vil bli en del av det fysiske nettverket. En slik virtuell svitsj kalles en external network switch, fordi den gir tilgang til hostens fysiske nettverk. Eksterne virtuelle svitsjer er som regel den preferrerte typen i produksjonsmiljøer.

Man har imidlertid to typer til virtuelle svitsjer:

  • Internal: Kan kommunisere med host, men ikke det fysiske nettverket. VMer koblet på denne svitsjen kan snakke med hverandre.
  • Private: Lar ikke VMer koblet på denne svitsjen snakke med hosten. VMene kan kun snakke med hverandre.

Man kan velge følgende innstillinger om ønskerlig:

  • Allow Management Operating System To Share This Network Adapter: Er som standard huket av for. Lar hosten få tilgang til det fysiske nettverket. Fjerner man avhukingen vil kun VMene få tilgang til det fysiske nettverket, ikke hosten.
  • Enable Single Root I/O Virtualization (SR-IOV): Lar den virtuelle adapteren bruke SR-IOV funkjsonalitet i den fysiske adapteren. Kan kun sette denne innstillingen når man oppretter en ny svitsj.
  • Enable Virtual LAN Identification For Management Operating System: Hvis man ønsker å bruke VLAN for den virtuelle svitsjen må man huke av her.

Med PowerShell:

# External
New-VMSwitch -NetAdapterName "ethernet2" -Name Ekstern

# Internal
New-VMSwitch -Name Intern -SwitchType Internal

# Private
New-VMSwitch -Name Privat -SwitchType Private

3.4.3 Optimize network performance

Noen fysiske nettverksadaptere har features som forbedrer ytelsen ved å avlaste (offloade) visse funksjoner fra prosessoren til adapteren selv. Hyper-V støtter noen slike features, gitt at den fysiske nettverksadapteren også støtter dem. For å konfigurere disse går man til Hyper-V Manager > VM > Settings > Network Adapter > Hardware Acceleration

  • Enable Virtual Machine Queue (VMQ): VMQ er en teknikk som algrer innkommende pakker, ment for VMer, i egne køer på fysisk adapter, og leverer de direkte til VMene ved å hopper over normal kontroll av pakkene som den virtuelle svitsjen utfører.
  • Enable IPsec Task Offloading: Bruker den fysiske adapterens kapabilitet innenfor kryptografiske funskjoner til å avlaste IPsec beregninger. Her kan man sette et tak for hvor mange Security Associations (SA) den skal få lov til å kalkulere.
  • Single Root I/O virtualization: Lar den virtuelle adapteren bruker SR-IOV kapabilitet i den fysiske adapteren til å dele hardware ressurser av PCI Express enheter, som f.eks. en nettverksadapter.

Lag flere virtuelle svitsjer

Hvis hosten har flere fysiske nettverkskort bør man opprette en virtuell svitsj for hver av de. Man bør så fordele VMene svitsjene for å jevne ut nettverksbelastningen.

Lage et privat nettverk

Når man har flere VMer som ofte kommuniserer med hverandre bør man lage en privat svitsj som VMene skal bruke når det er mulig. Nettverkskommunikasjonen er mer effektiv på et privat nettverk enn på et fysisk nettverk hvor man gjerne har andre maskiner også.

For å lage et pivat nettverk må man lage en privat svitsj: Hyper-V Manager > Virtual Switch Manager... > New Virtual Switch > Private > Create Virtual Switch

Så må man konfigurere de VMene man ønsker skal bruke den, ved å legge til en ny virtuell adapter og knytt den til den private svitsjen.

For hver virtuell adapter som bruker den private svitsjen; sett statisk ip.

For hver VM som bruker den private svitsjen modifiser HOSTS filen (C:\Windows\System32\drivers\etc\hosts) til å inkludere par med ip og vmnavn for alle VMer som skal kommunisere med hverandre over den private svitsjen. Eksempelvis:

10.0.10.11 vm1.norrz.com
10.0.10.12 vm2.norrz.com
10.0.10.13 vm3.norrz.com
10.0.10.14 vm4.norrz.com

HOSTS filen gjør at de kan finne hverandre, og adressene som er definert der vil bli prioritert; altså går trafikken over privat svitsj mellom VMene.

3.4.4 Configure MAC addresses

Alle nettverksadaptere har en Media Access Control (MAC) adresse som er unik. En MAC adresse består av 6 byte, hvor de 3 første er identifikator for produsenten, og de 3 siste er identifikator for produktet/adapteren. Hyper-V har satt av en pool med MAC adresser som blir automatisk tildelt når man oppretter virtuelle nettverksadaptere. Om ønskelig kan man sette statisk MAC under innstillingene for nettverksadapteren. For å se eller endre poolen, navigerer man til Hyper-V Manager > Virtual Switch Manager... > MAC Address Range

Hyper-V MAC Adresser er bygd opp på følgende måte:

  • Byte 1-3: Er alltid 00-15-5D som er en OUI adresse registrert av Microsoft.
  • Byte 4-5: Består av de siste to bytes i ip adressen til hostens fysiske nettverksadapter.
  • Byte 6: Består av en heksadesimale verdier fra 00 til FF (256 kombinasjoner).

Når en adapter får en MAC blir MACen reservert for den VMen, slik at ingen andre kan bruke den. Når en VM/adapter slettes vil MAC adressen bli frigjort og lagt tilbake i poolen. 256 adresser antas å være nok for de fleste scenarioer, men hvis det ikke er det kan man manuelt øke poolen ved å sette ny maximum adresse. For å unngå duplikater bør man kun modifisere den tredje siste byten: 00-15-5D-1F-E1-FF

NB. Pass på at du ikke endre opp med duplikate MAC adresser da det kan skape nettverksproblemer.

3.4.5 Configure network isolation

Microsoft anbefaler at man har minst to nettverkskort på Hyper-V hosten; et for hosten og et for VMer. Ekstra adaptere utover det bør tilegnes direkte til enkelte VMer.

For testing, utvikling og evalueringsformål kan man ønske å opprette et isolert nettverk. Dette oppnår man ved å opprette en internal eller private virtuell svitsj. Hvis man vil tilby tjenester som DHCP, DNS, WSUS eller WDS, må man konfigurere disse på det isolerte nettet. Man kan ikke tilby tjenester fra det fysiske nettet direkte til et isolert nett. Hvis man ønsker at VMene skal få oppdateringer må man sette opp en Windows Server Update Service (WSUS) server med to nettverkskort, et som er koblet på det isolerte nettet og et som er koblet på et nett med internett-tilgang. Alternativt kan man gi hver VM to nettverkskort, hvor det ene har tilgang til internett.

En annen måte å lage isolerte nettverk er ved å bruke virtuelle LAN (VLAN). Dette er spesielt nyttig hvis man har VMer på forskjellige Hyper-V hoster som man vil isolere på samme nett. Ved å gi de eksterne adaptere og konfigurere VLAN opprettet man et nettverk i et nettverk, hvor VLANet er isolert fra det fysiske nettverket.

3.4.6 Configure synthetic and legacy virtual network adapters

Når man oppretter en virtuell nettverksadapter i VM > Add Hardware, oppretter man det som kalles en syntetisk nettverksadapter. Generasjon 1 VMer støtter to typer nettverks- og lagringsadaptere; syntetisk og legacy (emulated).

En syntetisk adapter er en virtuell adapter som ikke emulerer en spesifikk fysisk adapter. Syntetiske adaptere kommuniserer med host operativsystemet med en høy-hastighets krets som kalles en VMBus.

Hyper-V virtuelle svitsjer eksisterer i hostens OS og er en del av en komponent kalt Virtualization Service Provider (VSP). Den syntetiske adapteren i VMen er en Virtualization Service Client (VSC). Både VSP og VSC er koblet til VMBus, som lar de kommunisere med hverandre.VSP er den komponenten som gir VSC tilgang til den fysiske nettverksadapteren. Siden syntetiske adaptere har tilgang til hardware gjennom VMBus, tilbyr de mye bedre ytelse en alternativet; legacy adaptere. Syntetiske adaptere implementeres som en del av Integration Services, som lastes inn med operativsystemet. Det gir den ulempen at syntetiske adaptere ikke er funksjonelle før Integration Services er lastet inn med OS.

En legacy adapter, også kalt emulert adapter, er en standard nettverksadapter-driver som kommuniserer med operativsystemet ved å kommunisere direkte til hypervisoren. Denne formen for kommunikasjon er langt tregere en kommunikasjon over VMBus. En fordel med legacy adapter er imidlertid at den lar VMer boote fra nettverke med å bruke PXE. PXE er en mekanisme som lar programmer som Windows Deployment Service (WDS) eller System Center Configuration Manager (SCCM) installere OS på nye maskiner over nettverket. Syntetiske adaptere i generasjon 1 VM støtter ikke PXE, men i generasjon 2 støtter syntetiske adaptere PXE.

For å installere en legacy adapter velger man Legacy Adapter under VM > Settings > Add Hardware.

I motsetning til syntetiske adaptere laster legacy adaptere inn drivere før OS, slik at de fungerer med PXE. Det eneste andre scenarioet hvor legacy adapter er preferert er når man har en VM med OS som ikke har en Integration Services pakke tilgjengelig.

I generasjon 2 har man ikke lengre legacy adaptere, og syntetiske adaptere kan utføre PXE boot.

3.4.7 Configure NIC teaming in VMs

NIC teaming er en Windows feature som som tillater å slå sammen flere nettverksadaptere til én enhet, for å øke ytelsen eller for feiltoleranse. Hyper-V VMer er begrenset til å lage teams av maks to adaptere, mens den fysiske hosten er begrenset til teams på 32 nettverksadaptere. For å ta i bruk NIC teaming må man utføre tre oppgaver:

  1. Lag NIC team i Windows Server 2016 host OS
  2. Lag en ekstern svitsj som bruker NIC teamet
  3. Konfigurer nettverksadaptere i VMer til å bruke den eksterne svitsjen

Lag et NIC team

NIC team må bestå av fysiske nettverksadaptere og opprettes i Server Manager > Local Server > NIC Teaming med følgende innstillinger:

  • Teaming Mode: Switch Independent
  • Load Balancing Mode: Hyper-V Port
  • Standby Adapter: None

Når man oppretter et team blir Microsoft Network Adapter Multiplexor Driver installert.

Når man oppretter den eksterne svitsjen velger man Microsoft Network Adapter Multiplexor Driver som External network.

Man setter så de virtuelle nettverksadapterene til å bruke denne svitsjen. I tillegg må man åpne Network Adapter > Advanced Features og huke av for Enable This Network Adapter TO Be Part Of A Team.

Man kan teste at det fungerer ved å koble fra en av nettverksadapterene og verifisere at VMene fortsatt har forbindelse.

3.4.8 Configure virtual machine queue (VMQ)

VMQ er en feature som Windows Server 2016 aktiverer automatisk når den detekterer en fysisk nettverksadapter med 10 Gbps kapasitet eller raskere. For at Hyper-V skal støtte VMQ må følgende være på plass:

  • Både host og guest må kjøre Windows Server 2012 R2 eller senere
  • Den fysiske nettverksadapteren må støtte VMQ
  • Hosten må ha nyeste driver og firmware for adapteren
  • Adaptere i VMer må ha aktivert Enable Virtual Machine Queue

Man kan aktivere VMQ for virtuelle adaptere med PowerShell:

Enable-NetAdapterVmq -Name nic1

Konfigurasjon av VMQ krever grundig forståelse av hostens hardware kapabiliteter.

For å sjekke om fysisk adapter støtter VMQ:

# Kommer ikke noe ut av kommandoen støttes ikke VMQ
Get-NetAdapterVmq -Name Ethernet

Den gir et svar med følgende attributter:

  • Enabled: Angir om adapteren støtter VMQ
  • BaseVmqProcessor: Identifiserer den første logiske prosessoren VMQ bruker for å tildele kø fra adapteren
  • MaxProcessors: Maks antall logiske prosessorer som VMQ bruker til å tildele kø fra adapteren
  • NumberOfReceiveQueues: Antall køer som støttes av adapteren

Så kan man sjekke hvilke kø som tildeles hvilken prosessor:

Get-NetAdapterVmqQueue

Den gir et svar med følgende attributter:

  • QueueID: Nummeret på køen som blir tildelt
  • MacAddress: MAC som er tiledelt køen
  • VlanID: Hvilket VLAN køen er tildelt, hvis VLAN er i bruk
  • Processor: Nummeret på prosessoren som køen er tildelt
  • VmFriendlyName: Navnet på VMen som er destinasjon for for køens trafikk

For å endre på standard VMQ innstillinger:

Set-NetAdapterVmq -BaseProcessorNumber 3 -MaxProcessorNumber 8 -MaxProcessors 2
  • BaseProcessorNumber: Nummeret på den laveste prosessoren som skal benyttes til å tildele køer. Anbefalt er å la den første/de første to være forbeholdt host OS.
  • MaxProcessorNumber: Nummeret på den høyeste prosessoren som kan brukes til å tildele køer
  • MaxProcessors: Maks antall logiske prosessorer på hosten som skal brukes til å administrere køer

3.4.9 Enable Remote Direct Memory Access (RDMA) on network adapters bound to a Hyper-V virtual switch using Switch Embedded Teaming (SET)

Switch Embedded Teaming (SET) er en variant av NIC Teaming konseptet som er fult ut implementert i Hyper-V virtuelle svitsjer. Remote Direct Memory Address (RDMA) er en høy-hastighets nettverksforbindelse som kan sende store mengder data med lav ventetid og uten innblanding av prosessoren. Nettverksadaptere, som støtter RDMA, overfører data direkte til og fra apllikasjonsminne, uten å måtte buffre det. Nettverksteknologier som SMB Direct bruker RDMA for å oppnå høye ytelsesnivåer.

For å opprette en Hyper-V virtuell svitsj som bruker SET med RDMA må følgende være på plass:

  • Hosten kan ha opp til 8 nettverksadaptere
  • Alle fysiske nettverksadaptere som har bestått Windows Hardware Qualification and Logo (WHQL) testen er støttet
  • Alle fysiske nettverksadaptere må være identiske, med samme modell, driver og firmware
  • Fysiske nettverksadaptere må være konfigurert til å oprerere på samme hastighet
  • Bruken av Data Center Bridging (DCB) er sterkt anbefalt, for å separere RDMA fra standard trafikk

For å opprette en svitsj hvor SET er aktivert:

# Opprett SET svitsj
New-VMSwitch -Name SETswitch -NetAdapterName Ethernet, Ethernet2 -EnableEmbeddedTeaming $true

# Opprett nettverksadapter med SET svitsj
Add-VMNetworkAdapter -VMName Hyper -SwitchName SETswitch -Name SETnic1

# Aktivere RDMA på de fysiske adapterene i SET teamet
Enable-NetAdapterRdma -Name Ethernet, Ethernet2

# Sjekk status for RDMA
Get-NetAdapterRdma

3.4.10 Configure Bandwidth Management

For å forhindre at en virtuell nettverksadapter tar all båndbredden i en svitsj, kan man konfigurere minimum og maksimum mengde båndbredde som er lov å bruke.

Minimum bandwidth sørger for at VMen får reservert en del av båndbredden, selv om det ellers er helt fult, slik at den får sendt trafikken sin og ikke fryser helt.

Pass på at Maximum Bandwidth for alle VMer ikke samlet overstiger den faktiske båndbredden i den fysiske nettverksadapteren. En overstigning vil føre til stor metning i nettverket og alle parter vil få store kommunikasjonsproblemer.

Med PowerShell:

Set-VMNetworkAdapter -VMName Hyper -Name Ethernet -MinimumBandwidthWeight 75
  • MinimumBandwidthAbsolute: Samme som i GUI
  • MinimumBandwidthWeight: Antall prosent av tilgjengelig båndbredden
  • MaximumBandwidth: Samme som i GUI

results matching ""

    No results matching ""