Artikkel

Slik fungerer Intels virtualisering

Introduksjon

Intel introduserte virtualisering sent i fjor med et par Pentium 4-prosessorer rettet mot desktopmarkedet. Teknologien har gjennom flere år vært kjent under kodenavnet "Vanderpool", men også blitt referert til som "Silvervale". Bakgrunnen er at førstnevnte var skulle benyttes i desktopsegmentet, mens "Silvervale" skulle implementeres i serverprosessorer som Itanium og Xeon.

Begrepet virtualisering omfatter egentlig ganske mye forskjellig og for mange blir det egentlig et definisjonsspørsmål. I denne artikkelen referer vi til virtualisering som det å kjøre flere separate operativsystemer på samme jern samtidig. For operativsystemene ser det altså ut som om de alle har én eller flere dedikerte prosessorer, mens de bak kulissene i virkelighetens verden egentlig deler en (eller flere) fysisk CPU(er).

Den tradisjonelle oppfatningen av virtualisering henger gjerne sammen med ulike VMware-produkter som er et applikasjonslag der man emulerer og oversetter systemkall mellom "host-OS" og "guest-OS". Intels versjon skiller seg fra denne "tradisjonelle" måten å virtualisere på ved at man bygger inn virtualiseringsstøtte direkte på prosessoren. Senere i denne artikkelen skal vi se på hva man egentlig oppnår ved å implementere dette direkte på hardwarelaget.

"Intel Virtualization Technology" er en del av selskapets strategi for å ta oppmerksomheten vekk i fra GHz-løpet og istedet fokusere på funksjonalitet som tillater mer fleksibilitet og høyere produktivitet. Kjent teknologi som "Hyper-Threading og "Extended Memory 64 Technology" (EM64T) er også en del av dette initiativet. I tillegg utvides porteføljen snart med "Active Management" og "LaGrande" for enklere administrasjon og bedre sikkerhet.

Både Hyper-Threading og EM64T løftet bektraktelig attraktiviteten til Intels prosessorer. Vil virtualiseringsmulighetene gjøre det samme?

Hvorfor virtualisering?

Det finnes mange fordeler og noen få ulemper med virtualisering, men de fleste vil være enig at fleksibilitet og kostnadseffektivitet er blant de sterkeste argumentene for hvorfor man skal vurdere slik teknologi. Denne artikkelen vil imidlertid ikke gå dypt  inn på hvorfor man generelt skal kjøre virtualisering. 

Fordeler fra et teknisk ståsted: "Virtualisering lar deg enkelt konsolidere og administrere mange tidligere fysisk adskilte systemer på én og samme maskinvareplattform. Riktig konfigurasjon gir deg høyere sikkerhet, bedre ressursstyring og mer fleksibilitet ved at du raskt kan ta opp eller ned et system"

Fordeler fra et administrativt ståsted: "Virtualisering på riktig måte gir langt høyere kostnadseffektivitet og markedsføringsmessige fordeler gjennom økt funksjonalitet og fleksibilitet til svært konkurransedyktige priser"

Mer informasjon om dette og relaterte tema finner du i disse artiklene:

Dersom du ikke allerede har et greit innblikk i hva virtualisering egentlig betyr, anbefales det at du tar en titt på de nevnte artiklene.

Intel-virtualisering krever programvare

Intel-prosessorer med støtte for virtualisering inneholder et ekstra instruksjonssett. Selv om noen av dagens prosessorer allerede leveres med denne teknologien må det også støttes i BIOS.

Som tidligere nevnt er Intels virtualiseringsteknikk kjent under kodenavnet "Vanderpool". I dag refereres teknologien ganske enkelt som "Virtualization Technology" eller med forkortelsen VT. Instruksjonssettet som gir støtte for virtualisering heter Virtual Machine Extensions (VMX) og inneholder 10 nye instruksjoner:

  • VMCALL
  • VMCLEAR - setter VMCS til inaktiv sammen med en adressereferanse
  • VMLAUCH - gå inn i hver enkelt virtuelle maskin
  • VMREAD - leser VMCS 
  • VMRESUME -  gå ut av en virtuell maskin
  • VMPTRLD - skriver VMCS-pekeren (Virtual Machine Control Structure kontrollerer non-root operasjon)
  • VMPTRST -  leser VMCS-pekeren
  • VMWRITE - skriver VMCS
  • VMXOFF - gå ut av virtualiseringsmodus (shutdown)
  • VMXON - gå inn i virtualiseringsmodus (init)

Softwarelaget som kontrollerer og styrer kommunikasjonen mellom operativsystemene og prosessoren refereres til som Virtual Machine Monitor (VMM). 

Videre kjøres det to forskjellige modus:

  • root
  • non-root

VMM er vanligvis den eneste programvaren som kjører i root-modus, mens operativsystemene inne i hver enkelt virtuelle maskin kjører som non-root. Det settes ingen spesielle "bit" som indikerer hvorvidt man er i non-root-modus, noe som gjør at applikasjonene i utgangspunktet ikke vite hvorvidt de kjører i en virtuell maskin eller ikke.

VMCS (Virtual Machine Control Structure) administrerer overganger mellom de to modusene og kan påvirkes ved hjelp av VMCLEAR, VMREAD, VMWRITE og VMPTRLD. VMM kan benytte en VMCS pr. virtuelle maskin eller pr. logiske CPU i én virtuell maskin dersom nødvendig.

En VMCS skal ikke være aktiv på mer enn én logisk CPU og eventuelle modifikasjon må alltid skje gjennom de nevnte instruksjonene - ikke ved hjelp av tradisjonelle minneoperasjoner.

Full teknisk oversikt over Intel VM finner du i denne PDF-en: Intel Virtualization Technology Specification for the IA-32 Intel Architecture

Selv om Intel har innført støtte for virtualisering direkte på prosessoren er man fortsatt avhengig av et tredjeparts applikasjonslag for å bruke dette i praksis.

Hvor god er egentlig Intels virtualisering?

Virtualisering er ikke noe revolusjonerende nytt og har vært tilstede på både x86 og andre prosessorarkitekturer i mange år. Intel er fortsatt avhengig av tredjeparts leverandører for at virtualiseringen skal være aktuell, men det kan selvfølgelig komme et Intel-utviklet verktøy på banen etterhvert.

Tradisjonell virtualisering på x86-arkitektur har utelukkende blitt styrt på operativsystem- eller programvarenivå. Hovedsaklig har dette blitt gjort på to måter:

  1. Man modifiserer kjernen i operativsystemet for å erstatte prosessorinstruksjoner, eksempelvis slik som Virtual Iron og SW-soft
  2. Et eget softwarelag kjører på toppen av et standard OS for deretter å "oversette" alle kallene fra de virtuelle systemene (VMware GSX Server)

Begge har sine fordeler og ulemper - både med tanke på sikkerhet og fleksibilitet. Felles for begge er at man har en del ytelsesmessige utfordringer siden hardwarelaget strengt tatt kun er laget for å motta kommandoer fra ett system. Ifølge Intel skal man, ved å bygge inn 10 nye instruksjoner få en relativt stor ytelsesendring siden allokering og modusstyring skjer på hardwarenivå.

"Rosinen i pølsa" for å kjøre Intel VT er altså ytelsesforbedring, men hvor stor forskjell det vil bli fra tidligere er enda ikke kjent ettersom det ikke foreligger noen spesifikke benchmarks.

Software har dessverre en tendens til å kræsje. Stabilitet er en annen potensiell fordel med å støtte virtualisering i hardware ettersom man befinner seg på et dypere lag som i teorien skal være mer robust.

Bare å kjøre i vei?

I begynnelsen av februar bekreftet Diane Bryant, vise-president for Intel Server Platforms Group, at selskapets virtualiseringsteknologi kunne aktiveres øyeblikkelig ved å ta kontakt med serverleverandører som Dell, HP og IBM. Som tidligere nevnt i artikkelen må man altså oppgradere BIOS-en for å få utnyttet denne teknologien.

Bryant nevnte ikke noe spesifikt vedrørende hvorvidt virtualiseringsteknologien var klar for virksomhetskritske systemer, men bekreftet at man ihvertfall kunne kjøre dette på test- og utviklingsmaskiner. Både Novell og Red Hat har annonsert støtte gjennom Xen, mens VMware gjorde det samme med sitt gratis VMware Server produkt.

Dersom man skal lese gjennom linjene bør man kanskje vente litt med å kjøre Intel VT opp i full produksjon. Man er fortsatt på første versjon av denne teknologien og man vil høyst sannsynligvis finne en del "bugs". Samtidig er VMware Server et nytt konsept og Xen kan neppe karakteriseres som fullstendig "enterprise-ready" (selv om det er delte meninger).

Samtlige av prosessorseriene til Intel skal etterhvert støtte virtualisering. Pentium 4 var først ute, mens Xeon, Itanium og mobile prosessorer vil følge etter utover i 2006.

Intel har definitivt gjort riktig valg ved å integrere virtualiseringsstøtte på prosessoren. "Peak"-ytelsen er allerede god nok i de fleste tilfeller og virtualisering vil dekke stadig økende behov for fleksibilitet og høyere kapasitetsutnyttelse. 

VT vil etterhvert møte konkurranse fra AMDs virtualiseringsteknikk, "Pacifica".IBMs veletablerte Power-virtualisering ruver fortsatt noe over alle andre, men er absolutt en interessant sammenligning. 

HWB vil dekke flere virtualiseringsteknikker i kommende artikler.

Les også
Intel med programvareprosjekt
Les også
Store omstruktureringer i Intel
Les også
Vil kjøpe opp virtualiseringsaktør
Les også
Sun, virtualisering og fremtiden
Les også
Novell og Red Hat kniver om virtualisering
Les også
Microsoft delaktig i rootkit-utvikling
Les også
Beste x86-virtualisering: AMD "Pacifica"?
Les også
SMB-lagringsløsning fra Intel
Les også
Vil virtualisere Linux på UltraSparc
Les også
SLES9 støtter Virtual Iron
Les også
SWsoft klargjør Virtuozzo for Linux 3.0
Les også
VMware blir gratis?
annonse