Multicore Trends bei Virtualisierung und Hypervisortechniken

Autor / Redakteur: David Kleidermacher* / Martina Hafner

Immer mehr Embedded-Designs werden mit Multicore-Prozessoren ausgestattet, und auch die Virtualisierung findet zunehmend Anwendung. Diese zwei an sich getrennten Technologien werden sich künftig weiter ergänzen. Dieser Beitrag beschreibt die Anfänge, Hardwaretrends und die zukünftige Anwendung der Hypervisor-Technologie. Wie verbessern Multicore-Architekturen die Nutzbarkeit und Effizienz von Hypervisoren?

Anbieter zum Thema

Das Konzept eines Hypervisors, der mehrere Gast-Betriebssysteme auf einer einzigen Hardwareplattform hosten kann, wurde vor mehr als 30 Jahren mit IBMs Mainframes realisiert. IBM verwendete Hypervisoren, damit Legacy-Versionen seiner Betriebssysteme auch auf neuen Hardwareplattformen lauffähig waren. IBMs Softwareentwickler nutzten sie als hilfreiche Plattform um neue Betriebssystem-Leistungsmerkmale zu entwickeln und zu testen. Zu den ersten Anwendungsgebieten der Hypervisor-Technologie zählten:

  • Debuggen und Testen von privilegiertem Code / neuen Architekturen,
  • Debuggen und Testen der Software vor der Hardware,
  • Betrieb von modernen und Legacy-Betriebssystemen auf der gleichen Hardware,
  • Sandboxes für untrusted Software,
  • Konsolidierung: bessere Ausnutzung eines einzigen Rechners,
  • Aggregation: bessere Ausnutzung vieler Rechner,
  • Portabilität: unterschiedliche Hardware, aber gleiches Betriebssystem und gleiche Applikationen,
  • Server Bereitstellung: Migration, Backup, Recovery.

Volle Virtualisierung auch für Embedded in Sicht

Trotz ihres offensichtlichen Nutzens war die Hypervisor-Technologie im Mainstream-Rechnermarkt nicht anzutreffen. Erst zur Jahrtausendwende demonstrierte VMware, dass virtuelle Maschinen mit annehmbarer Leistungsfähigkeit auf herkömmlicher PC-Hardware laufen können. Seitdem kam eine Vielzahl von Hypervisor-Technologien auf den Markt, darunter auch Microsoft Virtual PC, Open Source XEN (dessen kommerzieller Spin-Off XENSource kürzlich von Citrix übernommen wurde), Linux KVM, Parallels und Green Hills’ Padded Cell.

Hypervisor-Technologie für herkömmliche Hardware wurde mithilfe einer Kombination aus intelligenter Software und Hardwarebeschleunigung möglich, wobei letztere seit kurzem in führenden Mainstream-Computer-Architekturen zu finden ist. Im Jahr 2005 stellte Intel seine Virtualization Technology (VT) vor, mit der sich die Hypervisor-Ausführungsgeschwindigkeit auf Intel-Architektur-Plattformen erheblich verbesserte. Intel fügte im Laufe der Zeit zusätzliche Leistungsfähigkeit und Sicherheitsmerkmale hinzu und unterstützt somit Hypervisoren.

AMD schlug einen ähnlichen Weg ein. In der PC-Welt können Hypervisoren eine „volle Virtualisierung“ implementieren, wobei die Gast-Betriebssysteme und ihre Applikationen unmodifiziert auf der virtuellen Maschine laufen. Im Embedded-Bereich wurden Versuche in Sachen Paravirtualisierung (modifizierte Gastlösungen) unternommen; die Leistungsfähigkeit der Embedded-Prozessoren reichte jedoch für eine volle Virtualisierung nicht aus. Dies kann sich aber noch ändern. Power.org kündigte Leistungsmerkmale für eine Virtualisierungsbeschleunigung im Embedded-Profile der Power Architecture an. Damit wird eine volle Virtualisierung zur Realität, sobald in den nächsten Jahren solche Implementierungen auf den Markt kommen. Als sicher scheint, dass ARM, MIPS und andere bekannte Embedded-Prozessoren folgen werden. Auch Intel kündigte eine Virtualisierungstechnologie für seine Embedded-Chipsatz-Implementierungen an.

Hardware-Trends für die Virtualisierung

Intels VT-d-Technologie (Directed I/O) kam vor kurzem in Desktop-Chipsätzen auf den Markt und leistet einen wesentlichen Beitrag zur Virtualisierungsbeschleunigung. AMD und Power Architecture verwenden den Begriff „IOMMU“ für das gleiche Grundmerkmal. Üblicherweise mussten Hypervisoren I/O-Einrichtungen emulieren, da einem Gast-Betriebssystem nicht einfach ein DMA und Zugriff auf andere physikalische Ressourcen gewährt werden konnte, da diese andere Gast-Betriebssysteme versehentlich oder mutwillig beeinträchtigen konnten. Der Hypervisor fängt alle Gast-I/O-Anfragen ab, emuliert diese und verursacht somit Leistungsengpässe. Mit IOMMU kann dem Gast direkter Zugriff auf die I/O-Einrichtungen gewährt werden (einschließlich DMA); die Virtualisierungshardware verhindert jeglichen I/O-Zugriff (selbst seitens der Peripherie) auf Speicher außerhalb der virtuellen Maschine.

Eine weitere wichtige Verbesserung bei der Virtualisierungshardware sind „Extended Page Tables“. Früher fing der Hypervisor jeden Versuch des Gastes ab, die System Page Tables zu modifizieren. Der Hypervisor hält für jeden Gast einen „Shadow Page Table“ bereit, jede Gastmodifizierung wird emuliert und somit die gewünschte physikalische Speicherpartitionierung vollzogen.

(ID:238903)