Nog niet zo lang geleden was het gebruik van hypervisor-technologie strikt beperkt tot bedrijfsservers. Maar van de een op de andere dag hebben hypervisors hun weg gevonden naar een brede reeks embedded toepassingen, waaronder mobiele telefoons, netwerk- en telecominfrastructuur, betaalterminals, settopboxen, automotive infotainmentsystemen en telematica. De impact van een hypervisor op de prestaties van het systeem kunnen sterk verschillen, ongeacht de prestaties van de onderliggende hardware. Naar mijn mening zijn industriestandaarden de enige betrouwbare methode om tot een eerlijke en betrouwbare prestatieanalyse van hypervisors te komen.
Systeemontwikkelaars worstelen met de uitdaging om niet ’vastgeketend‘ te komen zitten aan één hypervisor-leverancier. Op het moment is de paravirtualisatielaag nauw verweven met het raamwerk van de specifieke hardware en het besturingssysteem. Overstappen naar een andere hypervisor is een langdradig proces. Opnieuw: industriestandaarden helpen met flexibiliteit en portabiliteit tussen hypervisors.
In de embedded-wereld treden steeds meer hypervisor-leveranciers naar voren, waaronder Green Hills, Lynuxworks, Open Kernel Labs, Sysgo, Virtuallogix, VMWare en Wind River. Daarnaast is virtualisatietechnologie beschikbaar van alle belangrijke halfgeleidermakers. De invasie van embedded hypervisors heeft verschillende redenen. Denk aan de noodzaak om meerdere softwaredelen dezelfde hardware te laten bewonen; de mogelijkheid om de bronnen van verschillende CPU-kernen te delen; bronbeheer en -verdeling; het opdelen van CPU-ruimte voor achtergrondtaken zoals firmware-updates, gezondheidsmonitoring en beheer van stroomverbruik; fouttolerantie (het draaien van een enkele instantie van een SMP-besturingssysteem kan een enkel punt van falen worden); migratie van legacy toepassingen; en terugwaartse compatibiliteit via de mogelijkheid om verschillende softwareversies te draaien.
Ontwerpers van embedded systemen zien zich geconfronteerd met de uitdaging om de prestatieverschillen van de verschillende hypervisors te vergelijken en de overhead te bepalen. Uiteenlopende aanpakken voor I/O-afhandeling en VM-isolatie, verschillende applicatie-interfaces, en verschillende aanpakken voor het paravirtualisatieproces zelf scheppen de noodzaak voor een set maatstaven waarmee eindgebruikers het kaf van het koren kunnen scheiden en bepalen welke methode het best past bij hun specifieke toepassing. Daarvoor komt benchmarking volgens industriestandaarden in het vizier.
Als benchmarks de overhead van een specifieke hypervisorimplementatie moeten isoleren, is het essentieel om de test steeds op hetzelfde systeem te draaien met dezelfde processor en dezelfde softwareomgeving. Om verder een gelijkmatig speelveld te garanderen, moeten alle benchmarksuites uitgevoerd worden in de unprivileged uitvoeromgeving van de CPU. Dit garandeert dat systeemaanroepen via de Api van de hypervisor lopen, een vereiste voor de basale veiligheidsdefinitie van een hypervisor.
De eerste evaluaties hebben al verrassende resultaten opgeleverd. De implementatie van een hypervisor maakt een belangrijk verschil voor het uitvoeren van de workload en de efficiëntie van het systeem, vooral met meerdere rekenkernen. Soms bereikt het aantal workloads dat een hypervisor ondersteunt snel een plafond, wat aangeeft dat het toekennen van meer processen aan een enkele rekenkern niet het meest kosteneffectief is.
Aangenomen dat een specifieke hypervisor niet aan uw prestatie-eisen voldoet, wilt u de mogelijkheid hebben om relatief eenvoudig over te stappen naar een andere leverancier. Daarom streven we naar gestandaardiseerde interfaces tussen een gastbesturingssysteem en de onderliggende hypervisor. Het is ook essentieel om onderzoek te doen naar een raamwerk-Api voor virtueel management, Api‘s voor efficiënte communicatie tussen virtuele machines, paravirtuele operaties die de kernel op laag niveau aanspreken, en mechanismen voor dynamische load balancing en het upgraden van werkende virtuele machines.
Door de alsmaar toenemende populariteit van embedded virtualisatietechnologie zullen standaardisatieinspanningen voordeel bieden voor vele toepassingsgebieden. Hypervisors creëren meerdere uitvoeromgevingen en maken een flexibeler ontwerp mogelijk, maar er is een toenemende noodzaak voor benchmarken en een hogere porteringsgraad naarmate deze software in meerdere platforms wordt toegepast. Inzicht in de impact van hypervisortechnologieen op verschillende toepassingen en verschillende processorarchitecturen is de eerste stap. Dit zal worden uitgebreid naar de interacties tussen meerdere kernen op een enkele chip en andere ’cost of ownership‘-aspecten, zoals het gemak van implementatie.