Programmering

Windows Server 2016 Hyper-V: Mere sikker, men ikke hurtigere

Med Windows Server 2016 har Microsoft introduceret en lang liste over forbedringer af Hyper-V. Udover funktionelle tilføjelser som understøttelse af containere, indlejret virtualisering og øget hukommelse og vCPU-grænser finder du en række nye funktioner, herunder kontrolpunkter i produktionsklassen og muligheden for at tilføje hukommelse og netværkskort, der letter administrationen.

Men Microsofts primære mål i 2016-udgivelsen af ​​Hyper-V ser ud til at have været at forbedre sikkerheden. Faktisk vil jeg gå så langt som at sige, at Hyper-Vs nye dræberfunktion er afskærmede virtuelle computere, som fungerer med BitLocker-kryptering og en værge-service for at sikre, at virtuelle maskiner kun kører på autoriserede værter.

Hvis en Hyper-V 2016-funktion ville skubbe mig til at opgradere, ville det være den afskærmede VM-funktion. Men evnen til at allokere mere hukommelse til Generation 2 VM'er og muligheden for hot-add hukommelse og netværkskort til virtualiseringsværter er også store træk.

Ét område Hyper-V 2016 forbedrer muligvis ikke VM-ydelsen. Faktisk angiver mine Sandra-benchmarktest af en virtuel Windows Server 2012 R2-maskine på Hyper-V 2012 R2 versus Hyper-V 2016 et skridt tilbage. Jeg vil ikke kalde disse resultater endelige på nogen måde, men husk det, når du begynder at evaluere Windows Server 2016 Hyper-V for dine egne arbejdsbelastninger.

Hyper-V-installationsprocessen

Med henblik på denne gennemgang opgraderede jeg en eksisterende Windows Server 2012 R2-server til Windows Server 2016. For det meste var opgraderingsprocessen næsten identisk med installationen af ​​Windows Server 2012 R2. Forskellen var, at installationsguiden viser en advarselsmeddelelse, der fortæller dig, at Windows Server-opgraderinger ikke anbefales, og at du skal udføre en ren installation. Installationsguiden forhindrer dig ikke i at udføre en opgradering på stedet, men du skal klikke på en Bekræft-knap for at bekræfte advarselsmeddelelsen.

Jeg gik videre med opgraderingsprocessen (selvom jeg siden har udført flere rene installationer), fordi jeg ville se, hvad der ville ske. Desuden kørte den server, jeg opgraderede, en ren installation af Windows Server 2012 R2. Jeg havde installeret Hyper-V-rollen og oprettet nogle virtuelle maskiner, men jeg havde ikke installeret yderligere software (bortset fra Microsoft-patches) eller aktiveret unormale konfigurationsindstillinger.

Windows Server-opgraderingsprocessen gik meget glat. Alle mine eksisterende operativsystemindstillinger blev bevaret, og mine virtuelle maskiner forblev funktionelle efter opgraderingen. Desuden følte Hyper-V Manager sig stadig helt fortrolig. Selvom Microsoft har introduceret en række nye Hyper-V-funktioner i Windows Server 2016, har Hyper-V Manager ændret sig meget lidt. Administratorer med tidligere Hyper-V-erfaring er sikker på at føle sig hjemme, når de bruger den nye version.

Rulende Hyper-V-klyngeopgraderinger

Selvom jeg oprindeligt udførte en opgradering på stedet af en enkelt Hyper-V-vært, understøtter Microsoft også rullende opgraderinger af klyngede Hyper-V-implementeringer. Dette betyder, at servere, der kører Windows Server 2016 Hyper-V, kan føjes til eksisterende Windows Server 2012 R2 Hyper-V-klynger og i det væsentlige efterligne Windows Server 2012 R2 Hyper-V-værter, hvorved de fuldt ud kan deltage i klyngen. Windows Server 2012 R2 Hyper-V virtuelle maskiner kan migreres live til Windows Server 2016 Hyper-V-noder, hvilket muliggør en klyngeoperativsystemopgradering uden at tage nogen af ​​de virtuelle maskiner offline.

I processen med at skrive denne anmeldelse indsatte jeg en tre-node-klynge af Windows Server 2012 Hyper-V-servere og tilføjede derefter en Windows Server 2016 Hyper-V-node. Jeg var i stand til at slutte mig til noden til klyngen og live migrere VM'er frem og tilbage mellem de to forskellige Hyper-V-versioner. Kort sagt fungerede den rullende klyngeopgraderingsproces fejlfrit.

Jeg afsluttede min klyngeopgradering i løbet af en eftermiddag, men Microsoft tillader langvarig sameksistens mellem Hyper-V-versioner i en klynge. Langsigtet sameksistens vil helt sikkert være lettere nu, da Microsoft har moderniseret Hyper-V Manager, så den kan bruges samtidigt med flere Hyper-V-versioner. Fra Hyper-V Manager i Windows Server 2016 kan du også administrere Hyper-V på Windows Server 2012 og Windows Server 2012 R2.

En ulempe ved den nye Hyper-V Manager: Da Microsoft nu leverer opdateringer til Hyper-V Integration Services gennem den normale patch management-proces, ser det ud til, at muligheden for at implementere integrationstjenesterne er blevet fjernet. Installation af integrationstjenester via Windows Update lyder som fremskridt, men det ville ikke skade at have den gamle metode tilgængelig som en reserve.

Bemærk, at når alle dine klyngenoder kører Windows Server 2016 Hyper-V, og du har opdateret klyngens funktionelle niveau (en bevidst administrativ handling, du udfører via PowerShell), mister du muligheden for at tilføje Windows Server 2012 R2-noder til klynge. Når du har opdateret klyngens funktionelle niveau, er der ingen vej tilbage.

Afskærmede virtuelle maskiner

Mens der er gjort masser af arbejde gennem årene for at beskytte virtuelle computere mod eksterne trusler, er virtuelle maskiner (inklusive dem på konkurrerende platforme som VMware, Xen og KVM) forblevet sårbare over for kompromiser fra en slyngel administrator. Intet forhindrer en administrator i at kopiere en hel VM til et USB-flashdrev og gå ud af døren med den. Sikker på, det var tidligere muligt at kryptere virtuelle harddiske, men en autoriseret administrator kan nemt fortryde enhver kryptering på VM-niveau.

I Windows Server 2016 Hyper-V krypterer den afskærmede VM-funktion en virtuel maskins diske og tilstand på en måde, der forhindrer andre end VM- eller lejeradministratorer i at starte VM'en eller få adgang til dens indhold. Funktionen fungerer ved at drage fordel af en ny Windows Server-funktion kaldet Host Guardian Service, som har nøglerne til kryptering og dekryptering af afskærmede virtuelle computere.

Host Guardian Service kontrollerer, om Hyper-V-værten er autoriseret eller “attesteret” til at køre den virtuelle maskine. Det er rigtigt - administratorer er i stand til at begrænse afskærmede virtuelle computere, så de kører kun på bestemte værter, der består attestationstesten. Dette betyder, at hvis en useriøs administrator skulle kopiere en afskærmet VM til et flashdrev, ville VM-kopien være ubrugelig for administratoren. VM ville ikke være i stand til at køre uden for organisationen, og dens indhold ville være utilgængeligt, fordi de nøgler, der er nødvendige for at dekryptere VM, er beskyttet af Host Guardian Service.

Host Guardian Service understøtter to forskellige attestationstilstande, kaldet admin-betroet attestation og TPM-betroet attestation. Admin-betroet attestation er den nemmeste af de to tilstande at implementere, men ikke nær så sikker som TPM-betroet attest. Admin-betroede værter er baseret på Active Directory-sikkerhedsgruppemedlemskab, mens TPM-pålidelige værter er baseret på TPM-identitet og endda boot- og kodeintegritetskontrol.

Ud over sin mere komplekse konfigurationsproces har TPM-betroet attestation nogle hardwarekrav. Beskyttede værter skal understøtte TPM 2.0 og UEFI 2.3.1 eller højere. I modsætning hertil har administrator-betroet attestation ikke nogen væsentlige hardwarekrav ud over dem, der er nødvendige for at køre Hyper-V.

Selvom det meste af mediedækningen vedrørende Hyper-V 2016-sikkerhed har fokuseret på afskærmede virtuelle computere, har Microsoft introduceret andre sikkerhedsforbedringer. For eksempel understøtter Hyper-V nu Secure Boot til nogle Linux-virtuelle computere. Ifølge Microsoft inkluderer de understøttede Linux-versioner Ubuntu 14.04 og nyere, Suse Linux Enterprise Server 12 og senere, Red Hat Enterprise Linux 7.0 og nyere og CentOS 7.0 og nyere.

En anden vigtig sikkerhedsforbedring er understøttelse af BitLocker-baseret OS-diskkryptering i Generation 1 virtuelle maskiner. Denne særlige sikkerhedsforbedring har ikke fået særlig opmærksomhed fra pressen, men den er vigtig på grund af antallet af Generation 1 VM'er, der kører i produktionsmiljøer. Når alt kommer til alt understøttes Generation 2 VM'er kun til brug med specifikke gæstoperativsystemer. Selvom listen over understøttede gæstoperativsystemer er vokset gennem årene, fungerer nogle Linux-implementeringer, der muligvis kan køre på Generation 2 VM'er, fortsat på Generation 1 VM'er, simpelthen på grund af manglende evne til at ændre VM's version.

Windows-containere

En af de primære funktioner, der blev introduceret i Windows Server 2016, er containere, hvoraf der er to typer. Windows Server-containere deler en OS-kerne med værten (og andre containere, der måtte køre på værten), mens Hyper-V-containere bruger hypervisor og et letvægts-gæst-OS (Windows Server Core eller Nano Server) til at give et højere niveau af isolation. Tænk på Hyper-V-containere som lette virtuelle maskiner.

Til dato har jeg brugt lidt tid på at eksperimentere med begge typer containere. Min vurdering: Selvom containere ser ud til at fungere som annonceret, er der en stejl indlæringskurve forbundet med at bruge dem. Containere skal oprettes og styres på kommandolinjen (i modsætning til at bruge Hyper-V Manager) via Docker-kommandosyntaks, som er meget forskellig fra andre kommandolinjemiljøer, såsom PowerShell.

Jeg tror, ​​containere vil vise sig at være relevante for Windows-administratorer, men jeg anbefaler på det kraftigste at bruge tid i et laboratoriemiljø på at vænne sig til Docker og dets mange nuancer, inden de distribuerer containere i produktion.

Spørgsmål om ydeevne

I et forsøg på at teste ydelsen til Windows Server 2016 bragte jeg en ny server online, der kørte en ren installation af Windows Server 2012 R2 Hyper-V. Denne server var udstyret med low-end, aldrende hardware, men da målet var at kontrollere relativ ydeevne, var avanceret hardware ikke rigtig nødvendig.

Med den nye Windows Server 2012 R2 Hyper-V-server online oprettede jeg en Generation 2 virtuel maskine, der kører Windows Server 2012 R2. Både værten og gæsteoperativsystemerne var fuldt patchede, og min test-VM var den eneste virtuelle maskine, der var til stede på værten.

Når det nye gæst OS var i gang, installerede jeg Sandra 2016 i den virtuelle maskine for at sammenligne den virtuelle maskines ydeevne. Jeg var primært interesseret i CPU, lager, hukommelse og netværksydelse.

Med et baseline-sæt af metrics i hånden opgraderede jeg Hyper-V-værten til Windows Server 2016. Microsoft fraråder opgraderinger på stedet, men jeg valgte at udføre en i stedet for en ren installation for at holde mit testmiljø så konsistent som muligt på tværs af alle testene.

Da opgraderingen var afsluttet, startede jeg VM, som stadig kørte Windows Server 2012 R2. Dernæst forsøgte jeg at opgradere Hyper-V Integration Services på VM, men Microsoft har fjernet muligheden for at gøre dette manuelt. Integrationstjenesterne leveres nu via Windows Update.

Efter fuldstændig patch af Windows Server 2016 Hyper-V Host gentog jeg benchmarktestene i et forsøg på at se, om den nye version af Hyper-V ville give nogen præstationsgevinster. Faktisk viste det modsatte sig at være sandt. Min VM så et markant fald i ydeevne.

Til min sidste test udførte jeg en opgradering på stedet af gæstoperativsystemet til Windows Server 2016. Jeg lappede det nye gæstesystem OS fuldt ud og gentog min benchmarktest en sidste gang. Denne gang forbedrede min VM-ydeevne sig stort set, men ikke helt til niveauet for den oprindelige Windows Server 2012 R2 VM, der kører på en Windows Server 2012 R2-vært, og nogle få tests så ydeevnen yderligere svækket.

Jeg har angivet de metrics, som jeg benchmarkede, og resultaterne nedenfor.

Sandra 2016-testWindows Server 2012 R2 Host og Windows Server 2012 R2 VMWindows Server 2016 Host og Windows Server 2012 R2 VMWindows Server 2016 Host og Windows Server 2016 VM

Processor-aritmetik (samlet indbygget ydeevne)

27,73 GOPS

20.82 GOPS

26.31 GOPS

Kryptografibåndbredde

435 MBps

390 MBps

400 MBps

Processorintercore båndbredde

2,12 GBps

2,08 GBps

2 GBps

Fysiske diske (drevscore)

975,76 MBps

831.9 MBps

897 MBps

Filsystem I / O (enhedsscore)

242 IOPS

238 IOPS

195 IOPS

Hukommelsesbåndbredde (samlet hukommelsesydelse)

10,58 GBps

10 GBps

10 GBps

Hukommelsestransaktion gennemstrømning

3 MTPS

3 MTPS

2.92 MTPS

Netværks LAN (data båndbredde)

7,56 MBps

7,21 MBps

7,16 MBps

Som du kan se, udførte Windows Server 2012 R2 VM ifølge mine Sandra-tests ikke så godt på Windows Server 2016 Hyper-V som det gjorde på den tidligere Hyper-V-version. Jeg kørte hvert benchmark flere gange (mens værten var inaktiv) i et forsøg på at sikre, at mine målinger var nøjagtige. Den virtuelle maskines ydeevne blev forbedret, da gæstens operativsystem blev opgraderet til Windows Server 2016, men ikke til niveauet for Windows Server 2012 R2-gæst, der kører på Windows Server 2012 R2 Hyper-V.

Naturligvis skal du tage disse (og andre) benchmarkresultater med et saltkorn. Benchmarks afspejler ikke altid virkeligheden, og disse fund repræsenterer kun et sæt tests på en hardwarekonfiguration. Desuden er jeg villig til at give Microsoft fordelen ved tvivl, fordi metrics blev fanget på en vært, der var blevet opgraderet fra en tidligere Windows Server-version, snarere end en vært, der kører en ren installation.

Din eneste meningsfulde test af Windows Server 2016 Hyper-V-ydeevne vil være dine faktiske arbejdsbelastninger på din faktiske hardware. I betragtning af resultaterne af Sandra-testene vil du gerne se udførelsen af ​​Hyper-V 2016 nøje.