Signup for GEOCEN Newsletter here...Print?Tell a friend about this page...

Virtualisering af Militærgeografisk Afdelings (MGA) servere

- på tredje år med virtualiserede serevere...


Militærgeografisk Afdeling har siden 2006 produceret på et produktionsmiljø bestående af virtuelle servere.

Det oprindelige mål for virtualiseringen var:
 - Større generel fleksibilitet,
 - Nemmere administration,
 - Mulighed for at opsætte en mobil kopi af store dele af produktionsmiljøet,
 - Bedre adskillelse af serverfunktioner,
 - Anvendelse af eksisterende hardware,
 - Hardware-uafhængighed.


Hvordan kunne vi nå så ambitiøse mål?


Kunne nøglen til succes ligge i et abstraktionslag mellem hardware og software (OS) - såkaldt virtualisering?

I al fald blev resultatet en omlægning af alle MGA servere til et virtuelt server-miljø på VM-ware ESX 3.0.1 platformen.


Efter mange timers overvejelser, megen sved, lidt blod og en del tårer under implementeringen stod MGA primo 2006 for at tage det nye miljø i brug!

MGA virtuelle serverpark - 1. node...

Skitsen her over viser principperne for én virtualiseret host
- i MGA har vi flere, men de virker på samme måde. 

 

Hvad vil det sige at virtualisere?
En computer består normalt af noget hardware, hvorpå man installerer sit operativsystem (OS).
For at OS kan få forbindelse med hardwaren, behøver man en række driv-programmer (drivers). Disse små stykker software er at sammenligne med et elektrisk interface mellem hardware og software (OS) og de er specifikke for den hardware og OS, som de er programmeret til. Det betyder, at driveren til f.eks. et SoundBlaster lydkort til Windows XP, er forskellig fra en SoundBlaster lydkort-driver til Windows Vista. Og tilsvarende at en SoundBlaster driver til Windows XP er forskellig fra en Crystal Sound chips driver til samme Windows XP. 

 

Når man virtualiserer en computer, indskyder man et hardware abstraktionslag (Hardware Abstraction Layer ~ HAL) mellem computerens hardware og det OS, som man efterfølgende installerer: HAL indeholder alle de nødvendige drivprogrammer, således at OS altid vil lægge sig på det samme "underlag". I praksis betyder det, at HAL´et narrer OS til at tro, at det ligger på en bestemt og hardwaremæssigt veldefineret (men "abstrakt") maskine. I VM-wares verden hedder HAL for en HyperVisor og det er i ESX-miljøet (VM-ware Enterprise løsning) et selvstændigt operativsystem med en Linux grænseflade, dvs. selve ESXens interface foregår på kommandolinien. Heldigvis for os visuelle mennesker, så er det yderst sjældent, at det er nødvendigt at have kontakt med HyperVisoren, så i praksis er dette stort set uden betydning. Og apropos Linux: På VM-ware kan der (i modsætning til Microsofts virtualiseringssoftware) lægges alle OS ind: Dvs. at der på en fysisk server kan ligge både en række MS Windows-servere (NT4 Server, Windows 2000 Advanced Server eller Windows 2003 Server og Windows 2008 - Long Horn servere) ved siden af f.eks. en Linux RedHat, Free BSD,. UBUNTU og en Trusted Solaris - det bestemmer du selv!

 

Hvis man så efterfølgende ønsker at flytte sit OS med tilhørende installerede programmer fra én maskine til en anden, er det faktisk fuldstændigt ligegyldigt hvordan den underliggende hardware ser ud, blot der er et HAL mellem OS og hardware. I praksis betyder det, at man kan opbygge en komplet server på sin bærbare computer (med begrænsede hardware ressourcer) og så efterfølgende flytte den virtuelle maskine over på en kraftigt bestykket produktionsserver - forudsat at begge maskiner er forsynet med et HAL.

Det virtuelle miljø vs. det traditionelle miljø
Fig. 1: Det virtulle server-miljø vs. det traditionelle servermiljø.

 

Flere instanser (virtuelle maskiner) på samme hardware.
Det er en kendsgerning, at en moderne computer lever det meste af sit liv i "tomgang": De fine 3Ghz processorkerner, som sidder rundt omkring i mange computere, belastes ofte kun i ganske kort tid, hvorefter de igen går i tomgang i en periode - indtil brugeren igen et kort øjeblik belaster maskinen. Populært sagt kunne man sige, at fordi maskinerne er dedikerede til specifikke funktioner, udnyttes der i praksis ofte mindre end en tiendedel af de til rådighed værende hardware-ressourcer - det er jo med al mulig tydelighed dårlig udnyttelse af kræfterne! (Husk på krigsførelsens grundpricip nr. 4: Udvis økonomi med kræfterne) :-) 
I det virtuelle miljø er hardware og OS isoleret fra hinanden, så den virtuelle maskine tildeles en del af de fysiske hardware-ressorcer. Det betyder, at alle hardware-ressourcer indgår i en fælles pulje, som den virtuelle maskine kan trække på. Men én virtuel maskine behøver ikke blive tildelt alle ressourcerne; flere virtuelle maskiner kan samtidig "suge" på hardware-ressourcerne. Og jo flere hardware-ressourcer tildeles, jo hurtigere arbejder den virtuelle maskine.

 

Med VM-ware Infrastructure bliver det endvidere muligt at prioritere ressourcerne: Det er muligt at "garantere" at en bestemt virtuel maskine som minimum tildeles en defineret andel af hukommelses- og CPU-ressourcer. Herved kan man f.eks. sikre at databasetransaktioner har preference i forhold til f.eks. en mailserver eller printserver.

 

Fordelene ved hardwareuafhængigheden.
Den opmærksomme læser vil allerede ved at læse ovenstående samt betragte animationen begynde at ane nogle fordele ved at virtualisere serverparken: Den virtualiserede maskine består populært sagt af to filer: En konfigurationsfil (*.vmx) og en datafil (*.vmdk). Konfigurationsfilen er en almindelig tekstfil, som indeholder information om den virtuelle maskiners ressourcetildeling (antal CPUer, RAM , netkort etc.) Datafilen indholder maskinens "harddisk": Dvs. det er her operativsystem, programmer og ledig diskplads er placeret.
Ved at gøre disse filer hardwareuafhængige, bliver der mulighed for at flytte den virtuelle maskine mellem forskelligt hardware: En prototype eller forsøgsserver kan opbygges på en maskine med få ressourcer (en alm. kontor-PC eller en bærbar) og når maskinen er trimmet, så den er klar til drift med mange brugere, kan den umiddelbart flyttes til en hardware platform (kraftig server) og tildeles flere ressourcer, så den kan virke i et driftmiljø med minimale svartider til brugerne. På samme måde kan man kopiere den virtuelle maskine, som skranter lidt, over på en anden fysisk hardware og her udføre den nødvendige fejlretning og vedligeholdelse, vel at mærke uden at brugerne generes af vedligeholdelsesarbejdet. For Militærgeografisk Afdeling har det desuden den fordel, at når Terrænanalysesektionen skal på øvelse og ønsker at medbringe en kopi af afdelingens produktionsapparat, så kan vi lave en komplet kopi af produktionsapparatet og lægge det over på een fysisk server og dermed medbringe hele afdelingens produktionsapperat i et mobilt miljø i felten - TERASEK arbejder videre, som om de sad på deres vanlige kontorer, men nu sidder de blot i en container et eller andet sted i ind- eller udlandet.
En generel fordel ved at anvende VMware er endvidere muligheden for at "klone" en maskine: Det tager tre klik at oprette en kopi af en eksisterende virtuel maskine - den virtuelle maskine kan endda laves om til en skabelon, så når der skal oprettes en ny server, er det ligeledes kun tre klik, så har man en fuldt konfigureret server (med OS, antivirus, diverse tools, utilities og programmer), som blot skal have et nyt navn, ny IP adresse og en ny SID for at kunne fungere på netværket - alt i alt en opreation på under 10 minutter. Og som tidligere nævnt; hvis man ønsker at kopien skal køre på et andet netværk (f.eks. i felten) lader man blot være med at ændre på NetBIOS-navn, IP-adresse og SID, så kan tilsluttede klienter slet ikke "se" at det er en anden server, de tilsluttes til.
Hertil kommer at den normale boot-procedure med tilsvarende ventetider på diverse BIOS og Storage Controller-funktioner, er reduceret til nogle få sekunder på den virtuelle maskine.
Den sikkerhed, der ligger i at kunne tænde for og slukke for (identiske) virtuelle maskiner, kan naturligvis ikke erstatte de almindelige backup-procedurer, men det sikrer, at afdelingen kan arbejde videre med et minimum af driftstop ("nede-tid"). Det sikrer også, at hvis det ikke længere er muligt pga. svigtende reservelesforsyning (eller rentabelt fordi hardwaren er forældet) at reparere den gamle fysiske hardware, så kan den "gamle" virtuelle maskine flyttes over på nyere og mere tidssvarende hardware.
Mon ikke mangen systemadministrator har haft svedeture over et senarie hvor den gamle NT4 databaseserver, som kører på en Dual Pentium Pro server fra Digital, bryder sammen? Han/hun har troligt hver dag/uge taget backup - men en backup, som  forudsætter at han råder over identisk (men nu uopdrivelig) hardware; han kan simpelthen ikke gendanne sit miljø, ligeså lidt som han kan skrue tiden tilbage til 1998! Dette rædselsscenarie er nu historie: Det er blot at løre VMware P2V tool (physical to virtual), så har han en virtuel instans af den gamle NT-maskine med alle dens indstillinger og al dens data. Og endda på "opgraderet" hardware: Den eksisterer blot som to filer, som han kan jonglere hen på den ønskede hardware - forudsat at denne hardware er forsynet med et virtualiseringslag.

 

I praksis har omlægningen i MGA medført, at der kan gå ugen mellem at afdelingens administratorer går i serverrummet i stedet for dage. Og hertil kommer at ved at skifte fra seks fysiske maskiner til to fysiske maskiner (men med flere virtuelle maskiner) er strømforbruget reduceret til en trediedel af hvad det var før omlægningen - og når vi laver en server mere, så behøver vi ikke længere at bekymre os om køleproblemer - det er blot et spørgsmål om et sætte et hukommelsesmodul mere i en af de eksistrende fysiske maskiner - hvis det da er nødvendigt overhovedet!


    
Ulemperne ved virtuelle maskiner.
Vokser træerne så helt ind i himlen? Er der da slet ingen ulemper ved de virtuelle maskiner? Nej, træerne vokser bestemt ikke ind i himlem og selvfølgelig er der ulemper ved det virtuelle miljø, skønt disse ikke er betydelige (for Militærgeografisk Afdeling)
Den største ulempe er at den virtuelle maskine i store træk opfører sig lige så "dumt" som en traditionel server: Hvis administratoren laver en fejl, eller der er fejl i OS (hvilket der jo nok er: Vi arbejder jo med MS Windows)  så maifesterer disse fejl sig på det virtuelle miljø såvel som på et tilsvarende fysisk miljø. Dvs. ingenting "sparet" her. Og det virtuelle lag skal selvfølgelig også have nogle ressourcer, især på I/O-siden: I praksis er der et performancetab på ca. 5 - 20%, hvilket kan være tilstrækkeligt til at afholde en potentiel bruger af VM-ware fra at migrere sine systemer - f.eks. en I/O-intensiv databaseserver. Og der er mere: Fordi der er tale om et mellemlag mellem hardwaren og det installerede OS, så er der en fejlkilde mere: Hvis der er fejl i VM-ware vil det pludselig få konsekvenser for alle de virtuelle maskiner på den pågældende harwareplatform. Heldigvis for MGA så har vi endnu være forskånet for disse fejl, men VM-ware delen er også hyppigt patchet, hvilket jo er endnu en opgave for administratoren. Min personlige fornemmelse er, at VMware gør meget (ALT!) for at de indbyggede drivere i VM-waren er 100% stabile. Og der er enheder/teknologier som slet ikke er understøttet: Hvis man vil virtualisere med ESX (VMwares Enterprise løsning) så er man afskåret fra Consumer-teknologier som IDE/ATA/SATA-disksystemer, lydkort- og USB-understøttelse. Det sidste var MGA ret kede af, idet vi bruger USB en del - også lidt på serversiden. Hertil fandt vi dog en løsning, som giver mulighed for USB 1.1 - understøttelse via netværk; en udgift på et par tusinde kr.
I praksis betyder det meget lidt at lydkort 3d-grafik og USB ikke er understøttet, da vi alligevel ikke har tid til at sidde i serverrummet og se på 3d - grafik eller lytte til musik på serverne, så tabet er overskueligt.
For at skabe et stabilt skal serverhardwaren også være VM-ware certificeret, hvilket jo (for visse virksomheder) kan betyde at det ikke er muligt at lægge VMware ESX (Enterprise servermiljøet) på eksisterende hardware - hvilket igen betyder en omkostning til ny hardware.

 

Økonomi.
Virtualiserngssoftwaren er jo heller ikke gratis: En 2 CPU licens til ESX (Enterprise versionen) koster ca. kr. 30.00 - 40.000 og det virtuelle center, som ikke er nødvendig, men absolut en fordel hvis man skal have det fulde udbytte er flere virtualiserede servere, koster ca. det samme - men her behøver man kun en licens for at styre mange servere på mange hardwareplatforme.
[Flere forhandlere tilbyder at bundle hardware med virtualiseringssoftwaren, så i praksis kan man ofte få mere end ½ server med i købet gratis, hvis man f.eks. vælger et købe f.eks. en ny Dell PowerEdge med VM-ware]
En anden betragtning er uddannelse af administratoren til at bruge / forstå virtualiseringssoftwaren: Det er absolut ikke svært, men det kræver lidt tid at sætte sig ind i, hvordan man bruger softwaren - vel at mærke tid, som de færreste administratorer har. Men betragt det som en investering: Den kommer rigtig godt tilbage! Og med hensyn til initialomkostningerne, så er "genvindingstiden" (eller "RoI")  faktisk ret lav: Ud over et stabilere og mere fleksibelt miljø med færre driftafbrydelser, så er der jo ofte en betragtelig sum investeret i servernes hardware. Forestil dig bare hvad seks velbestykkede HP Proliant servere koster med tilhørende Storage - et betragteligt (syvcifret?!) beløb. Næste gang skal der i Militærgeografisk Afdeling kun udskiftes to servere og det er muligt at genanvende store dele af det tilknyttede storage. Hertil kommer et væsentligt reduceret strømforbrug til hardware og køling; en besparelse som starter 1. dag, når det virtualiserede miljø er i drift og de "gamle" servere lukket ned.
Med et forsigtigt gæt på regnestykket ved Militærgeografisk Afdeling, tror jeg at softwaren er indtjent på minde end  tre år alene på sparet strøm, hertil kommer så at næste generation af servere kun vil komme til at koste ca. 50% af hvad den oprindelige serverpark kostede.

 

Konklusion.
I Militærgeografisk Afdeling overvejede vi længe om - og i bekræftende fald hvordan - vi skulle virtualisere: Var det overhovedet umagen værd at gå ind på et virtualiseringsspor? Var vi villige til at acceptere en (ganske vist minimal) nedgang i performance på vort storage? Hvilke andre forbedringer kunne vi få for kr. 100.000+ og ville det vise sig, at vor eksisterende software ville opføre sig mærkeligt på den "nye" hardware? Spørgsmålene var mange og vi rådspurgte flittigt erfarne VM-ware brugere (en særligt tak til Jacob N. fra Vola A/S, som har været en uvurderlig sparringspartner i forløbet) og vi googlede løs for at finde information om emnet. Rådgivning fra leverandører er simpelthen for farvet til, at det er en realistisk kilde til beslutningsgrundlag. Beslutningen blev truffet - vi virtualiserede serverparken og fik præcis hvad vi ønskede os:  Større generel fleksibilitet, nemmere administration, mulighed for at opsætte en mobil kopi af store dele produktionsmiljøet på rekordtid, bedre adskillelse af serverfunktionerne, genanvendelse af eksistrende hardware og uafhængighed af hardware. Så set fra et administratorsysnpunkt var målet nået. Om brugerne oplever det på samme måde, altså som en succes? Det er svært at sige; brugerne er jo ret ligeglade med hvordan serverne stiller deres services tilrådighed - de vil have stabilitet og kortere svartider. Og det har de fået, men hvor vidt det er VM-ware skyld, er spørgsmålet. Men den forventede performancenedgang  på Storage I/O-siden blev mange gange opvejet af de andre tiltag vi gjorde på hardware-siden: Vi opgraderede vore "gamle" HP proliant-servere med endnu en Intel Xeon 3,4 GHz CPU og øgede hukommelsen fra 2 til 8 Gb før vi samlede de tre mest belastede servere på dette hardware. Samtidig opgraderede vi vort LAN fra 100 Mbit til 1 Gbit netværk. Det faktum at serverne ikke længere skal kommunikere over netværket, men ligger på den samme hardware og brugerne har fået Gbit net helt ud på arbejdsstationerne har i praksis medført at indlæsningstiderne på et standard vektordatasæt er reduceret fra minutter til sekunder - ofte til mellem en tredjedel og en tienddel af de hidtidige svartider. Noget af performance-gevinsten kan givetvis også skyldes en databaseopgradering fra ESRI ArcSDE ver. 9.1 til ArcSDE ver. 9.2 og en bedre balancering af hardwareressourcerne, men det ændrer ved det faktum, at brugerne idag oplever at det hele kører tre gange så hurtigt! Men det glemmer brugerne jo hurtigt igen - nu skal det hele bare køre endnu hurtigere...
Med hensyn til programmernes opførsel, så opfører de sig præcist ligesom på den fysiske hardware: Der er irriterende bugs, som volder enhver administrator kvaler, men alt i alt har vi ikke oplevet nogen programmer, som har afvist at køre på den virtuelle platform.
Så hvis nogen spørger, om jeg ville gøre det igen - vejet fordele mod ulemper/omkostninger, så ville jeg uden tøven svare:
"Ja, bare se at komme i gang..."  :-D 



Vil du vide mere, eller vil du bare selv i gang med virtualisering?
Hvis du selv vil arbejde med virtualisering af dit servermiljø, så kan du frit downloade VM-ware server. VM-ware server kræver et  server - OS som host, dvs. at du skal enten have et  MS Windows server OS som host eller en gratis (Open Source) linux distribution kørende, før du kan lægge en virtuel server på. Alternativt kan du købe en VM-ware Workstation licens til ca. kr. 1.000,- som du kan lægge direkte oven på dit desktop OS, f.eks. Windows XP. På VM-ware Workstation kan du efterfølgende installere en lang række forskellige server- eller desktop-OS. Inden du beslutter dig for det ene eller andet, så anbefaler jeg dig at prøve en 30 dagen evalueringslicens af VM-ware Workstation. Det hele finder du på VM-wares hjemmeside på adressen:
http://www.vm-ware.com
 

Sidst opdateret 2. december 2009, kl. 22:56
af Anders T. Nielsen