Att virtualisera till och med en enda server
Jag finner det mycket vanligt i samtal som rör virtualisering att begreppet konsolidering, som i kontexten serververktualisering syftar på att placera flera tidigare fysiska arbetsbelastningar på en enda fysisk burk där åtskillnaden hanteras av de virtuella maskinernas barriärer, behandlas som om det vore virtualiseringens kärna och grundläggande funktion. Utan tvekan representerar konsolidering av arbetsbelastningar en fantastisk möjlighet med virtualisering, men det är ytterst viktigt att värdet av virtualisering och värdet av konsolidering inte förväxlas. Alltför ofta har jag funnit att konsolidering betraktas som det centrala värdet i virtualisering och den främsta motiveringen för den, men så är inte fallet. Konsolidering är en bonusfunktion, men bör aldrig behövas för att motivera virtualisering. Virtualisering bör vara en nästan självklar slutsats medan konsolidering måste utvärderas och i många fall inte skulle användas. Att arbetsbelastningar inte bör konsolideras bör aldrig leda till tron att dessa arbetsbelastningar inte bör vara virtuella. Jag skulle vilja utforska beslutsutrymmet kring virtualisering för att se hur vi bör betrakta denna fråga.
Virtualisering bör betraktas som hårdvaruabstraktion eftersom det är vad det i praktisk mening verkligen är. Virtualisering kapslar in hårdvaran och presenterar en förutsägbar, orörd hårdvaruuppsättning för gästoperativsystem. Detta kan låta som om det tillför komplikationer men i verkligheten förenklar det faktiskt en hel del saker både för dem som tillverkar operativsystem och drivrutiner och för IT-utövare som designar system. Det är just för att datorer, kringutrustning och operativsystem är så komplexa odjur som detta ytterligare lager faktiskt slutar med att avlägsna komplexitet från systemet genom att skapa standardiserade gränssnitt. Ur standardisering kommer enkelhet.
Detta exakt samma koncept att presentera en standardiserad, virtuell maskin för ett mjukvarulager existerar även inom andra områden av datavetenskapen, såsom i hur många programmeringsspråk är implementerade. Detta är en mycket mogen och tillförlitlig beräkningsmodell.
Hårdvaruabstraktion och den stabilitet den medför är i sig själva skäl nog att standardisera på virtualisering över hela linjen, men den praktiska naturen hos hårdvaruabstraktion såsom den är implementerad av alla de virtualiseringsprodukter för företag som finns tillgängliga för oss idag ger oss ännu viktigare funktioner. Visst, de flesta av virtualiseringens fördelar kan uppnås på något annat sätt, men sällan så fullständigt, tillförlitligt, enkelt eller kostnadsfritt som genom virtualisering.
Den största uppsättningen ytterligare funktioner kommer vanligtvis från abstraktionen av lagring och minne, vilken möjliggör förmågan att ta en ögonblicksbild av lagringen eller till och med av en virtuell maskins hela körningstillstånd, det vill säga att ta en avbildning av det körande systemet och lagra det i en fil. Denna förmåga leder till många mycket viktiga möjligheter, såsom förmågan att ta en ögonblicksbild av systemet innan man installerar ny programvara, ändrar konfigurationer eller patchar; vilket möjliggör extremt snabba återställningar skulle något gå fel. Denna till synes mindre funktion kan leda till stort lugn i sinnet och övergripande systemtillförlitlighet. Den gör det också mycket enkelt att testa funktioner och att återställa eller upprepade gånger testa i icke-produktionsmiljöer.
Förmågan att ta ögonblicksbilder från abstraktionslagret leder också till förmågan att ta “avbildningsbaserade säkerhetskopior”, det vill säga säkerhetskopior tagna via ögonblicksbildsmekanismen på en blockenhetsnivå snarare än inifrån operativsystemets filsystemslager. Detta möjliggör operativsystemsagnostiska säkerhetskopieringsmekanismer och säkerhetskopior som omfattar hela systemets lagringspool på en och samma gång. Avbildningssäkerhetskopior möjliggör vad som traditionellt var känt som “bare metal-återställningar” – hela systemet kan återställas till ett fullt körande tillstånd utan ytterligare interaktion – enkelt och mycket snabbt. Inte alla hypervisor-tillverkare inkluderar denna förmåga eller inkluderar den i likvärdig omfattning, så även om det konceptuellt är en stor funktion är det avgörande att i vilken utsträckning denna funktion existerar eller är licensierad måste beaktas från fall till fall (särskilt noterbart är att HyperV inkluderar detta fullt ut, XenServer inkluderar det delvis och VMware vSphere inkluderar det endast med licensnivåer som inte är kostnadsfria). När de är tillgängliga möjliggör avbildningsbaserade säkerhetskopior extremt snabb återhämtning med hastigheter som är otänkbara med andra metoder för säkerhetskopiering. Att återställa system på minuter är möjligt, från katastrof till återhämtning!
Förmågan att behandla virtuella maskiner som filer (åtminstone när de inte aktivt körs) ger ytterligare fördelar som är relaterade till de säkerhetskopieringsfördelar som listats ovan. Nämligen förmågan att snabbt och enkelt migrera mellan fysiska värdar och till och med att flytta mellan olikartad hårdvara. Traditionellt innebar hårdvaruuppgraderingar eller hårdvarubyten en komplicerad migreringsprocess fylld av faror. Med modern virtualisering kan flytten från befintlig hårdvara till ny hårdvara vara en tillförlitlig, icke-destruktiv process med säkra reservalternativ och liten eller möjligen till och med noll driftstopp! Uppgifter som är ovanliga men som tidigare var mycket riskfyllda kan ofta bli triviala idag.
Ofta är detta den verkliga fördelen med virtualisering och abstraktionsmekanismer. Det är inte nödvändigtvis att förbättra den dagliga driften av ett system utan att minska risk och tillhandahålla flexibilitet och valmöjligheter i framtiden. Att förbereda sig för okända faktorer som antingen är oförutsägbara eller helt enkelt ignoreras i de flesta vanliga situationer. Sällan görs sådan planering över huvud taget, till stor förtret för IT-avdelningar som lämnas med svåra och farliga uppgraderingar som med lätthet kunde ha mildrats.
Det finns många funktioner hos virtualisering som endast är tillämpliga i särskilda scenarier. Många virtualiseringsprodukter inkluderar verktyg för livemigrering för att flytta körande arbetsbelastningar mellan värdar, eller möjligen till och med mellan lagringsenheter, utan driftstopp. Alternativ för hög tillgänglighet och feltolerans är ofta tillgängliga vilket gör att vissa arbetsbelastningar snabbt eller till och med transparent kan återhämta sig från fel i systemhårdvaran, genom att flytta från fallerad hårdvara till redundant hårdvara utan användaringripande. Även om det är mer av en nischfördel och förvisso inte ska inkluderas i en lista över varför “nästan alla arbetsbelastningar” bör vara virtuella, är det värt att notera som ett främsta exempel på funktioner som ofta är tillgängliga och som kunde läggas till senare om ett behov av dem skulle uppstå, så länge virtualisering används från början. I annat fall skulle en migrering till virtualisering behövas innan man kan dra nytta av sådana funktioner.
Virtualiseringsprodukter kommer vanligtvis med omfattande ytterligare funktioner som endast spelar roll i vissa fall. En stor mängd av dem faller in i en stor pool av “ifall framtida behov uppstår.” Möjligen den största av dem alla är begreppet konsolidering, som jag nämnde i början av denna artikel. Liksom andra avancerade funktioner som hög tillgänglighet är konsolidering inte ett kärnvärde hos virtualisering men förväxlas ofta med det. Arbetsbelastningar som inte avser att dra nytta av hög tillgänglighet eller konsolidering bör ändå virtualiseras – utan tvekan. Men dessa funktioner är så potentiellt värdefulla som framtida valmöjligheter, även för scenarier där de inte kommer att användas idag, att de är värda att nämna oavsett.
Konsolidering kan vara extremt värdefull och det är lätt att förstå varför så många människor helt enkelt antar att den kommer att användas eftersom den så ofta är så värdefull. Tillgängligheten av detta när väl en infrastruktur är på plats är en nyckelpunkt av flexibilitet för att hantera de okända faktorerna kring framtida arbetsbelastningar. Även när konsolidering är helt onödig idag finns det en mycket god chans, även i de minsta av företag, att den kommer att vara användbar vid någon okänd tidpunkt i framtiden. Virtualisering ger oss en gardering mot det okända genom att förbereda våra system för maximal flexibilitet. En av de viktigaste aspekterna av vilket IT-beslut som helst är att hantera och minska risk. Virtualisering gör detta.
Virtualisering handlar om stabilitet, flexibilitet, standardisering, hanterbarhet och att följa bästa praxis. Ingen större virtualiseringsprodukt för företag är inte tillgänglig, åtminstone i någon form, kostnadsfritt idag. Varje inköp skulle naturligtvis kräva en noggrann analys av värde kontra utgift. Men med utmärkta företagsalternativ tillgängliga kostnadsfritt från alla fyra nyckelproduktlinjerna inom detta område för närvarande (Xen, KVM, HyperV och VMware vSphere) behöver vi inte göra någon sådan analys. Vi behöver endast visa att implementeringen inte är negativ.
Vad som gör beslutsfattandet enkelt är att när vi betraktar det nominella fallet – det absoluta minimum som all företagsvirtualisering tillhandahåller, nämligen de noll-kostnads-, abstraktions-, inkapslings- och lagringsbaserade fördelarna – finner vi att vi har en liten fördel i praktiskt taget alla fall, inga mätbara nackdelar och en mycket stor potentiell fördel från områdena flexibilitet och gardering mot framtida behov. Detta lämnar oss med en tydlig vinst och ett enkelt beslut att virtualisering, som är kostnadsfri och i sig själv i princip utan nackdelar, bör användas i varje fall där den kan användas (vilket, vid det här laget, i princip är alla arbetsbelastningar). Ytterligare, icke-centrala funktioner som konsolidering och hög tillgänglighet bör utvärderas separat och endast efter att beslutet att virtualisera redan har befästs. Ingen avsaknad av behov av dessa utökade funktioner antyder på något sätt att virtualisering inte bör väljas utifrån sina egna meriter.
Detta är helt enkelt en förklaring av befintlig bästa praxis i branschen, vilken under många år har varit att virtualisera alla tänkbara arbetsbelastningar. Detta är varken nytt eller en kursändring. Bara det faktum att genomgående virtualisering har varit en bästa praxis i branschen i nästan ett decennium visar vilken beprövad och accepterad metod detta är. Det kommer alltid att finnas arbetsbelastningar som, av ett eller annat skäl, helt enkelt inte kan virtualiseras, men dessa bör vara mycket få och långt emellan och bör föranleda en djupgående granskning för att ta reda på varför så är fallet.
När man beslutar om man ska virtualisera eller inte bör ansatsen alltid vara att anta att virtualisering är en självklar slutsats och endast avvika från detta om ett solitt, försvarbart tekniskt skäl gör det omöjligt. Nästan alla argument mot virtualisering kommer från en position av missförstånd med en tro att konsolidering, hög tillgänglighet, extern lagring, licenskostnad och andra löst relaterade eller orelaterade begrepp på något sätt är inneboende i virtualisering. Det är de inte och de bör inte inkluderas i ett beslut om virtualisering kontra fysisk driftsättning. De är separata och bör utvärderas som separata alternativ.
Det är värt att notera att eftersom konsolidering inte är en del av vår beslutsmatris när vi skapar grundvärdet för virtualisering, så gäller alla de skäl vi använder lika väl för både en-till-en-driftsättningar (det vill säga en enda virtuell maskin på en enda fysisk enhet) som för konsoliderade arbetsbelastningar (det vill säga flera virtuella maskiner på en enda fysisk enhet). Det finns ingen situation där en arbetsbelastning är “för liten” för att virtualiseras. Om något är det tvärtom; endast de allra största arbetsbelastningarna, vanligtvis med extrem latenskänslighet, där ett nischscenario av icke-virtualisering fortfarande existerar som ett kantfall, men även dessa fall försvinner snabbt i takt med att latensförbättringar inom virtualisering och total arbetsbelastningskapacitet förbättras. Dessa fall är så sällsynta och försvinner så snabbt att det troligen är oklokt att ens ta sig tid att nämna dem, eftersom det antyder att undantag, baserade på kapacitetsbehov, är tillräckligt vanliga för att utvärdera för, vilket de inte är, särskilt inte på SMB-marknaden. Ju mindre arbetsbelastningen är, desto mer idealisk för virtualisering, men detta är endast för att understryka att småföretag, med enskilda arbetsbelastningar, är det mest idealiska fallet för virtualisering över hela linjen snarare än ett undantag från bästa praxis – inte för att antyda att större företag själva bör leta efter undantag.

