Virtualisering selv af en enkelt server
Jeg finder det meget almindeligt i samtaler om virtualisering, at konsolideringskonceptet – som i kontekst af servervirtualisering refererer til at placere flere tidligere fysiske arbejdsbelastninger på én enkelt fysisk maskine med adskillelse håndteret af virtuelle maskinbarrierer – behandles som den grundlæggende kerneværdi og fundamentale funktion ved virtualisering. Arbejdsbelastningskonsolidering repræsenterer uden tvivl en fantastisk mulighed med virtualisering, men det er yderst vigtigt, at virtualiseringens værdi og konsolideringens værdi ikke forveksles. Alt for ofte har jeg fundet, at konsolidering betragtes som nøgleværdien ved virtualisering og den primære begrundelse for den, men det er ikke tilfældet. Konsolidering er en bonusfunktion, men bør aldrig være nødvendig ved begrundelse af virtualisering. Virtualisering bør være en nærmest selvfølgelig konklusion, mens konsolidering skal evalueres, og mange gange ville den ikke blive brugt. At arbejdsbelastninger ikke bør konsolideres bør aldrig føre til den tro, at disse arbejdsbelastninger ikke bør være virtuelle. Jeg vil gerne udforske virtualiseringsbeslutningsrummet for at se, hvordan vi bør se på dette punkt.
Virtualisering bør tænkes som hardwareabstraktion, da det i praktisk forstand er, hvad det er. Virtualisering indkapsler hardwaren og præsenterer et forudsigeligt, uberørt hardwaresæt for gæsteoperativsystemer. Dette kan lyde som om det tilføjer komplikation, men det forenkler faktisk mange ting, både for producenterne af operativsystemer og drivere, og for IT-praktikere, der designer systemer. Det er fordi computere, computerperiferiudstyr og operativsystemer er sådanne komplekse størrelser, at dette ekstra lag faktisk ender med at fjerne kompleksitet fra systemet ved at skabe standardgrænseflader. Fra standardisering kommer enkelhed.
Dette præcise samme koncept om at præsentere en standard, virtuel maskine til et softwarelag eksisterer i andre områder af computing ligeledes, f.eks. i måden mange programmeringssprog implementeres på. Dette er en meget moden og pålidelig computing-model.
Hardwareabstraktion og den stabilitet, det medfører, er i sig selv grund nok til at standardisere på virtualisering på tværs af hele organisationen, men den praktiske natur af hardwareabstraktion som implementeret af alle enterprise-virtualiseringsprodukter, der er tilgængelige for os i dag, giver os endnu vigtigere funktioner. Det er sandt, at de fleste fordele ved virtualisering kan findes på en anden måde, men sjældent så komplet, pålideligt, enkelt eller gratis som fra virtualisering.
Det største sæt af yderligere funktioner kommer typisk fra abstraktion af lager og hukommelse, der muliggør evnen til at tage et lager-snapshot eller endda hele den kørende tilstand af en virtuel maskine – det vil sige at tage et billede af det kørende system og gemme det i en fil. Denne evne fører til mange meget vigtige kapaciteter, f.eks. evnen til at tage et system-snapshot, inden man installerer ny software, ændrer konfigurationer eller patcher, hvilket giver mulighed for ekstremt hurtig rollback, hvis noget går galt. Denne tilsyneladende lille funktion kan føre til stor ro i sindet og generel systempålidelighed. Den gør også testning af funktioner og rollback eller gentagen testning meget nem i ikke-produktionsmiljøer.
Evnen til at tage snapshot fra abstraktionslaget fører også til evnen til at tage “imagebaserede sikkerhedskopier” – det vil sige sikkerhedskopier taget via snapshot-mekanismen på et blokenhedslag snarere end fra inden for operativsystemets filsystemlag. Dette giver mulighed for operativsystemagnostiske sikkerhedskopieringsmekanismer og sikkerhedskopier, der inkluderer hele systemets lagerpool på én gang. Imagesikkerhedskopier muliggør det, der traditionelt var kendt som “bare metal restores” – hele systemet kan gendannes til en fuldt kørende tilstand uden yderligere interaktion – nemt og meget hurtigt. Ikke alle hypervisor-producenter inkluderer denne kapacitet eller inkluderer den i samme omfang, så mens det konceptuelt er en stor funktion, er det afgørende, at det omfang, hvori denne funktion eksisterer eller er licenseret, skal overvejes fra sag til sag (bemærk, at HyperV inkluderer dette fuldt ud, XenServer inkluderer det delvist, og VMware vSphere inkluderer det kun med ikke-gratis licensniveauer). Når det er tilgængeligt, giver imagebaserede sikkerhedskopier mulighed for ekstremt hurtig gendannelse med hastigheder, der er utænkelige med andre backup-metoder. Gendannelse af systemer på få minutter er muligt – fra katastrofe til gendannelse!
Evnen til at behandle virtuelle maskiner som filer (i hvert fald når de ikke kører aktivt) giver yderligere fordele, der er relateret til de sikkerhedskopifordele, der er nævnt ovenfor. Nemlig evnen til hurtigt og nemt at migrere mellem fysiske værter og endda at flytte mellem forskelligartet hardware. Traditionelt betød hardwareopgraderinger eller -udskiftninger en kompliceret migreringsproces fuld af farer. Med moderne virtualisering kan flytning fra eksisterende hardware til ny hardware være en pålidelig, ikke-destruktiv proces med sikre fallback-muligheder og lidt eller muligvis endda nul nedetid. Opgaver, der er ualmindelige men tidligere var meget risikable, kan ofte blive trivielle i dag.
Ofte er dette den sande fordel ved virtualisering og abstraktionsmekanismer. Det er ikke nødvendigvis for at forbedre den daglige drift af et system, men for at reducere risiko og give fleksibilitet og muligheder i fremtiden. Forberedelse på det ukendte, der enten er uforudsigeligt eller simpelthen ignoreres i de fleste almindelige situationer. Sjældent udføres sådan planlægning overhovedet, til stor frustration for IT-afdelinger, der er efterladt med vanskelige og farlige opgraderinger, der nemt kunne have været afbødet.
Der er mange funktioner ved virtualisering, der kun er anvendelige i særlige scenarier. Mange virtualiseringsprodukter inkluderer live migration-værktøjer til flytning af kørende arbejdsbelastninger mellem værter, eller muligvis endda mellem lagerenheder, uden nedetid. Muligheder for høj tilgængelighed og fejltolerance er ofte tilgængelige, der giver visse arbejdsbelastninger mulighed for hurtigt eller endda transparent at komme sig fra systemhardwarefejl og flytte fra defekt hardware til redundant hardware uden brugerindgreb. Selv om det er mere en nichefordel og bestemt ikke bør inkluderes på en liste over, hvorfor “næsten alle arbejdsbelastninger” bør være virtuelle, er det værd at nævne som et primært eksempel på funktioner, der ofte er tilgængelige og kan tilføjes senere, hvis der opstår et behov for dem, så længe virtualisering bruges fra begyndelsen. Ellers ville en migration til virtualisering være nødvendig, inden sådanne funktioner kan udnyttes.
Virtualiseringsprodukter leveres typisk med omfattende yderligere funktioner, der kun betyder noget i visse tilfælde. Mange af dem falder ind i en stor pulje af “i tilfælde af fremtidigt behov.” Muligvis den største af alle disse er konsolideringskonceptet, som jeg nævnte i begyndelsen af denne artikel. Som andre avancerede funktioner som høj tilgængelighed er konsolidering ikke en kerneværdi i virtualisering, men forveksles ofte med det. Arbejdsbelastninger, der ikke har til hensigt at udnytte høj tilgængelighed eller konsolidering, bør stadig virtualiseres – uden tvivl. Men disse funktioner er så potentielt værdifulde som fremtidige muligheder, selv i scenarier, hvor de ikke vil blive brugt i dag, at de er værd at nævne uanset.
Konsolidering kan være ekstremt værdifuld, og det er nemt at forstå, hvorfor så mange mennesker simpelthen antager, at det vil blive brugt, da det så ofte er så værdifuldt. Tilgængeligheden af dette, når en infrastruktur er på plads, er et nøglepunkt for fleksibilitet til håndtering af det ukendte i fremtidige arbejdsbelastninger. Selv når konsolidering er fuldstændig unødvendig i dag, er der en meget god chance, selv i de mindste virksomheder, for at det vil være nyttigt på et ukendt tidspunkt i fremtiden. Virtualisering giver os en sikring mod det ukendte ved at forberede vores systemer på maksimal fleksibilitet. Et af de vigtigste aspekter af enhver IT-beslutning er at styre og reducere risiko. Virtualisering gør dette.
Virtualisering handler om stabilitet, fleksibilitet, standardisering, håndterbarhed og at følge bedste praksisser. Ingen større enterprise-virtualiseringsprodukt er ikke tilgængeligt, i hvert fald i en form, gratis i dag. Ethvert køb ville selvfølgelig kræve en omhyggelig analyse af værdi versus udgifter. Men med fremragende enterprise-muligheder tilgængeligt gratis fra alle fire nøgleproduktlinjer i dette rum i øjeblikket (Xen, KVM, HyperV og VMware vSphere) behøver vi ikke foretage en sådan analyse. Vi behøver kun at vise, at implementeringen er ikke-negativ.
Det, der gør beslutningstagningen nem, er, at når vi overvejer det nominelle tilfælde – det absolutte minimum, som al enterprise-virtualisering leverer, og som er nulomkostnings-, abstraktion-, indkapslings- og lagerbaserede fordele – finder vi, at vi har en lille fordel i praktisk talt alle tilfælde, ingen målbare ulemper og en meget stor potentiel fordel fra områderne fleksibilitet og sikring mod fremtidige behov. Dette efterlader os med en klar gevinst og en enkel beslutning om, at virtualisering – da den er gratis og i det væsentlige uden ulemper på egen hånd – bør bruges i ethvert tilfælde, hvor det kan bruges (hvilket på nuværende tidspunkt er i det væsentlige alle arbejdsbelastninger). Yderligere, ikke-kerne-funktioner som konsolidering og høj tilgængelighed bør evalueres separat og kun efter beslutningen om at virtualisere allerede er befæstet. Ingen mangel på behov for disse udvidede funktioner antyder på nogen måde, at virtualisering ikke bør vælges baseret på sine egne fortjenester.
Dette er blot en forklaring på eksisterende branchens bedste praksisser, der har været at virtualisere alle potentielle arbejdsbelastninger i mange år. Dette er ikke nyt og heller ikke en retningsændring. Blot det faktum, at virtualisering af alle arbejdsbelastninger har været branchens bedste praksis i næsten et årti, viser, hvilken afprøvet og accepteret metodologi dette er. Der vil altid være arbejdsbelastninger, der af den ene eller den anden årsag simpelthen ikke kan virtualiseres, men disse bør være meget få og langt imellem og bør give anledning til en dybdegående gennemgang for at finde ud af, hvorfor dette er tilfældet.
Når man beslutter, om man skal virtualisere eller ej, bør tilgangen altid være at antage, at virtualisering er en selvfølgelig konklusion og kun afvige fra dette, hvis en solid, velforsvarlig teknisk grund gør dette umuligt. Næsten alle argumenter imod virtualisering kommer fra en position af misforståelse med en tro om, at konsolidering, høj tilgængelighed, ekstern lagring, licensomkostninger og andre løst relaterede eller ikke-relaterede koncepter på en måde er iboende for virtualisering. Det er de ikke og bør ikke inkluderes i en virtualiseringskontra-fysisk-deploymentbeslutning. De er separate og bør evalueres som separate muligheder.
Det er værd at bemærke, at fordi konsolidering ikke er en del af vores beslutningsmatrix ved skabelse af grundlæggende værdi for virtualisering, gælder alle de årsager, vi bruger, i lige høj grad for både én-til-én-deployments (det vil sige en enkelt virtuel maskine på en enkelt fysisk enhed) og for konsoliderede arbejdsbelastninger (det vil sige flere virtuelle maskiner på en enkelt fysisk enhed). Der er ingen situation, hvor en arbejdsbelastning er “for lille” til at blive virtualiseret. Hvis noget er det modsatte – kun de største arbejdsbelastninger, typisk med ekstrem latensempfindlighed, har et niche-scenarie for ikke-virtualisering, der stadig eksisterer som et edge case – men selv disse tilfælde forsvinder hurtigt, efterhånden som latensen forbedres i virtualisering og de samlede arbejdsbelastningskapaciteter forbedres. Disse tilfælde er så sjældne og forsvinder så hurtigt, at selv at tage tid til at nævne disse tilfælde sandsynligvis er uklogt, da det antyder, at undtagelser baseret på kapacitetsbehov er almindelige nok til at evaluere for, hvilket de ikke er – især ikke i SMB-markedet. Jo mindre arbejdsbelastningen er, jo mere ideel til virtualisering, men dette er kun for at understrege, at små virksomheder med enkeltarbejdsbelastninger er det mest ideelle tilfælde for virtualisering på tværs af hele organisationen snarere end en undtagelse fra bedste praksisser – ikke for at antyde, at større virksomheder bør søge undtagelser selv.

