Virtualisatie is een term die je op dit moment overal hoort. Biedt deze technologie daadwerkelijk voordelen of zijn er heel grote adders onder het gras die iedereen verzwijgt?
Hoewel virtualisatie al een behoorlijk bekend begrip is, is een goed startpunt toch de definitie. Wikipedia zegt over virtualisatie:
Met `virtualisatie` bij computers wordt over het algemeen bedoeld dat meerdere besturingssystemen tegelijkertijd op één computer kunnen draaien. Normaal is er op een computer slechts één besturingssysteem aanwezig, zoals Microsoft Windows, Linux of Mac OS.
Virtualisatie bestaat al jaren en wordt vanaf 2004 steeds meer gebruikt. Dat komt onder andere doordat er meer hardware (lees: meer betaalbare hardware) en meer besturingssystemen op de markt kwamen die er mee om kunnen gaan. De analisten van Computer Profile stelden in mei 2010 vast dat 36 procent van alle Nederlandse bedrijven met meer dan vijftig medewerkers gebruik maken van virtualisatie. Dat is in vergelijking met begin 2009 een toename van 76 procent. Onderzoeksbureau Gartner heeft zelfs voorspeld dat eind 2011 61 procent van alle servers virtueel is.
De sterke groei en de wereldwijde acceptatie van deze technologie doet vermoeden dat er veel voordelen te behalen zijn. Google maar eens ‘virtualisatie & voordelen'. Een flinke lijst van onderzoeken, uitgevoerd door onafhankelijke en minder onafhankelijke instituten, is het resultaat. De belangrijkste voordelen zijn het verbeteren van de beschikbaarheid van een server (downtime is minder kort bij calamiteiten door zogenaamde High Availability-technieken) en kostenreducties doordat computingcapaciteit beter wordt benut.
Wondermiddel
Hoewel de meeste onderzoeken virtualisatie bejubelen, is geen enkele techniek binnen de ict een wondermiddel voor alle vraagstukken. Virtualisatie kan inderdaad een kostenbesparing opleveren, zowel in de benodigde hardware als in stroomkosten, maar dat geldt niet in alle gevallen. Sommige functionaliteiten lenen zich namelijk niet of niet echt voor virtualisatie. Vaak ligt dit in het feit dat ze te veel schrijfbewegingen maken (bijvoorbeeld drukke databaseservers). De connectie met het opslagmedium (vaak een san) is dan ineens cruciaal en kan voor performanceproblemen zorgen.
Als er natuurlijk al een centraal opslagmedium is. Ook is het clusteren van databaseservers (om de druk te verdelen) met virtualisatie nog niet volledig doorontwikkeld. Als laatste zijn er ook applicaties op de markt die een licentiestructuur kennen die nog niet is aangepast aan het gebruik van virtualisatie. Daardoor kun je ineens geconfronteerd worden met een grote stijging aan kosten op licentievlak, terwijl virtualisatie vaak juist wordt toegepast om kosten te besparen.
Denk trouwens ook aan het backup-pakket. Kan dit omgaan met virtualisatie? Zijn de bedrijfsapplicaties die je gebruikt geschikt voor virtualisatie? Er zijn nog steeds een flink aantal applicaties in omloop die problemen hebben met deze nieuwe technieken. De meeste applicaties hebben in de afgelopen jaren natuurlijk een update gehad, maar er zwerft vaak door een organisatie nog wel een stukje erfenis uit het (verre) verleden, dat roet in het eten kan gooien.
Virtualisatiesoftware vraagt zelf ook rekenkracht van een server. Een goed voorbeeld is het virtualiseren van ‘terminal servers'. Dit werkt perfect. Functioneel en technisch zijn er geen bezwaren tegen het virtualiseren hiervan. Maar reken even mee. Stel, je hebt een server met flink wat geheugen en idem processoren. Je kunt op deze machine tachtig sessies tegelijkertijd draaien. Als je op deze machine een aantal terminal servers virtueel zou aanbieden, dan kan je ongeveer tien sessies minder draaien, omdat de virtualisatielaag ook computingcapaciteit nodig heeft. Je kunt dan dus maximaal zeventig sessies draaien op een fysieke server met daarop virtuele terminal servers. Zeker bij een groot aantal terminal servers levert het dus geen kostenbesparing op.
Niet virtualiseren
Moet je terminal servers dan maar niet virtualiseren? Nee, dat is het andere uiterste. Het gaat in elke situatie om een solide balans tussen fysiek en virtueel. Deze balans is voor iedere organisatie anders. En er zijn inderdaad organisaties waarin het volledig virtualiseren van een omgeving tot de mogelijkheden behoort. Afhankelijk van welke wensen prevaleren (de beschikbaarheid of de kostenbesparing) kun je keuzes maken in de inrichting.
Virtualiseren levert dus grote voordelen op in termen van beschikbaarheid. Daarnaast zijn hardwaremigraties vele malen minder complex. Waar bij fysieke servers bij hardwarevervangingen ook altijd een herinrichting van de besturingssystemen en andere applicaties moest plaatsvinden, hoeft dat nu niet meer. Je verhuist immers de virtuele server van de ene naar de andere host.
Uit het bovenstaande blijkt duidelijk dat virtualisatie een interessante technologie is, maar dat een beetje scepsis ten aanzien van de jubelverhalen geen kwaad kan. Het klakkeloos virtualiseren van een omgeving om een hogere beschikbaarheid te krijgen of kosten te besparen zal niet altijd leiden tot de gewenste resultaten. Kortom: bezint eer ge begint…
Hanneke Vogels, Account & Bid manager bij IS Enterprise
“downtime is minder kort bij calamiteiten”
korter is waarschijnlijk bedoeld.
Een van de gevaren van virtualisatie is dat de hardware volledig onbereikbaar kan worden voor de software. Dit is bijvoorbeeld gebleken in de release van PolarSSL welke wordt gebruikt voor de overheidsdienst OpenVPN-NL. Hierin wordt een random generator gebruikt welke de seed haalt uit echte randomness bronnen. Deze toegang tot deze bronnen wordt in vele gevallen geblokkeerd in een gevirtualiseerde omgeving. Het is daarom onverstandig om dit soort functionaliteit te virtualiseren. Je kunt Microsoft Windows bijvoorbeeld uitbreiden met Hardware en Software waardoor het echt veilig wordt. Een voorbeeld hiervan is te vinden op http://bit.ly/fqxch. Voorbeeld applicaties welke van true randomness gebruikt maken kunnen bijvoorbeeld gedownload worden van http://www.wuala.com/FreemoveQuantumExchange/Downloads/
“Met `virtualisatie` bij computers wordt over het algemeen bedoeld dat meerdere besturingssystemen tegelijkertijd op één computer kunnen draaien.”
In dit geval spreken we over server virtualisatie, het is immers ook mogelijk om netwerken, profielen en applicaties te virtualiseren.
“Vaak ligt dit in het feit dat ze te veel schrijfbewegingen maken (bijvoorbeeld drukke databaseservers). De connectie met het opslagmedium (vaak een san) is dan ineens cruciaal en kan voor performanceproblemen zorgen.”
De diskperformance zou niet veel mogen uitmaken, het is immers nog steeds mogelijk om de data op een SAN te laten staan. Het is wel van belang om van tevoren een goede calculatie te maken. Dit hoeft echter geen nadeel van virtualisatie te zijn.
“Ook is het clusteren van databaseservers (om de druk te verdelen) met virtualisatie nog niet volledig doorontwikkeld.”
Er zijn genoeg voorbeelden van situaties waarin dit wel goed werkt, het is van belang om de juiste keuzes in het ontwerp te maken.
Kortom, over het algemeen hoeven databases geen probleem te zijn om te virtualiseren. Het is wel belangrijk om van tevoren goed in beeld te hebben wat de eisen zijn en hoe de uiteindelijke oplossing eruit komt te zien.
In een aantal gevallen is het logischer om databases fysiek te laten draaien, in veel gevallen is virtualisatie juist een voordeel.
“De meeste applicaties hebben in de afgelopen jaren natuurlijk een update gehad, maar er zwerft vaak door een organisatie nog wel een stukje erfenis uit het (verre) verleden, dat roet in het eten kan gooien.”
Veel applicaties zijn geen probleem om te virtualiseren, omdat het besturingssysteem er tussen zit. Er zijn maar weinig applicaties die direct de hardware aansturen.
“Een goed voorbeeld is het virtualiseren van ‘terminal servers’. Dit werkt perfect.”
Perfect is denk ik niet het juiste woord, vooral niet omdat je aangeeft dat er minder sessies op dezelfde hardware kunnen werken. Het voordeel van terminal servers is juist dat je sessies kan consolideren.
“maar dat een beetje scepsis ten aanzien van de jubelverhalen geen kwaad kan”
Ik denk dat er betere voorbeelden zijn van nadelige situaties, maar dat we wel kunnen zeggen dat de technieken inmiddels volwassen zijn en dat er bij een gedegen voorbereiding weinig problemen hoeven te zijn.
“Vaak ligt dit in het feit dat ze te veel schrijfbewegingen maken (bijvoorbeeld drukke databaseservers). De connectie met het opslagmedium (vaak een san) is dan ineens cruciaal en kan voor performanceproblemen zorgen.”
Meten is weten. Dit geldt voor zowel voor de sizing van het storage als voor virtualisatieplatform. Pas na dat dit goed in kaart is gebracht kan er gekeken worden wat er wel en wat er beter niet gevirtualiseerd kan worden. Ook zijn dan de performance eisen ( lees iops ) dan duidelijk.
Natuurlijk is het geen overbodige luxe om de geldende best practices waar bij mogelijk in acht te nemen.
Doet men vooraf geen “research” dan is de kans groot dat er verkeerde keuzes gemaakt worden
Zo spannend is het allemaal in mijn ogen ook weer niet.
Stap wat laat in, maar wil nog wel wat kwijt.
Virtualisatie is voor een organisatie een leerproces waarin bepaalde stadia van volwassenheid worden bereikt. In de adoptie fase is het spelen en proberen. Later wordt het de feitelijke standaard en is het ingebed in de organisatie inclusief de nodige governance.
Virtualisatie wordt pas echt interessant als er een grote mate van zelfbediening ontstaat. Je automatiseert de complexiteit. Door gebruik van image factory’s en dergelijke wordt het “optuigen” van een server een werkje van minuten.
Sowieso ben ik een voorstander van het denken in non-persistant instances. Dat creeert schaalbaarheid en robuustheid. Oja, en dit maakt de toekomstige stap naar cloud computer een stuk eenvoudiger.
Een beetje het standaard verhaal. Echter wat men vaak al vergeet: Medium sized bedrijven die Citrix gebruiken, maken ook al gebruik van een vorm van virtualisatie. Terminal Servers, ook een vorm van virtualisatie. Er zijn echter zo vele.
Virtualiseren van high IO-systemen wordt niet aangeraden, terwijl het prima kan. Zeker met de vernieuwde versies van bijvoorbeeld Vsphere, waar je IO-control hebt, heb je een vergrote schrijfsnelheid naar je shared storage. Daarbij komt dat de meeste databases tegenwoordig virtualisatie ondersteunen. De oudere databases niet, maar misschien wordt het tijd om deze te upgraden of te hercompilen. We draaien immers ook niet meer op Windows 2000.
Een ander groot voordeel van servervirtualisatie is natuurlijk legancy support. Oudere systemen die niet geupgraded kunnen worden of brakke, zwaar verouderde hardware hebben, hebben nog een leven als gevirtualiseerd systeem.
Ja, virtualisatie is in grote mate afhankelijk van shared storage (hoeft niet trouwens) en ja, het maakt het soms (onnodig) complex. Het is echter een voorbereiding op de toekomst, waarvan meerdere studies aangeven, dat we naartoe gaan. Zoals Henri aangeeft: het is een adoptieproces naar volwassenheid.
Ik ken weinig bedrijven die nu nog geen shared storage hebben. De vraag is vaak: is dit goed gesized voor waar ik naartoe wil met mijn bedrijf. Alles valt en staat met het juiste ontwerp.