Die interne OpenNebula Architektur ist in drei Schichten aufgeteilt.
Tools
- Dabei handelt es sich um Management Tools, die auf Basis der Schnittstelle entwickelt wurden, welche vom OpenNebula Core bereitgestellt wird.
Core
- Bei dem Core handelt es sich um die Hauptverwaltungskomponenten für die virtuellen Maschinen, dem persistenten Speicher, dem virtuellen Netzwerk und die Hosts.
Drivers
- Die Driver-Schicht wird verwendet, um unterschiedliche Virtualisierungs-, Speicher- und Monitoring-Technologien, sowie weitere Cloud Services mit dem Core zu verbinden.
Tools
Diese Schicht beinhaltet Tools, die von OpenNebula zur Verfügung gestellt werden. Dazu gehören z.B. das Command Line Interface, der Scheduler, die libvirt API und die RESTful Cloud Schnittstellen, sowie Tools von Drittanbietern, welche auf Basis der XML-RPC Schnittstelle und der OpenNebula Cloud API erstellt werden können.
Command Line Interface
Mit dem Command Line Interface können Infrastruktur Administratoren die virtuelle Infrastruktur kontrollieren.
Scheduler
Bei dem Scheduler handelt es sich um eine unabhängige Einheit innerhalb der OpenNebula Architektur. Dadurch kann dieser ohne weiteres auf die eigenen Bedürfnisse angepasst oder verändert werden, da er von den restlichen Komponenten vollständig entkoppelt ist. Er nutzt die OpenNebula XML-RPC Schnittstelle, um Aktionen für die virtuellen Maschinen aufzurufen. Der von OpenNebula eigene Scheduler erlaubt die Definition und Nutzung mehrere Ressourcen und kann die Lastverteilung über Regeln steuern.
Als weitere Scheduler kann der Haizea Lease Manager verwendet werden. Dieser erlaubt OpenNebula erweiterte “Reservierungsmöglichkeiten” von Ressourcen und bietet darüber hinaus eine definierte Dienstgüte für Anfragen.
OpenNebula Core
Der Core besteht aus einer Reihe von Komponenten für die Steuerung und Überwachung der virtuellen Maschinen, der virtuellen Netzwerke, des persistenten Speichers und der Hosts. Dazu wird ein passender Treiber verwendet, um die Aktionen wie z.B. das Überwachen eines Hosts oder das Beenden einer virtuellen Maschine, vorzunhemen.
Zu den Hauptkomponenten von OpenNebula Core gehören:
- Request Manager: Bearbeitung von Client Anfragen.
- Virtual Machine Manager: Verwaltung und Monitoring von virtuellen Maschinen.
- Transfer Manager: Verwaltung virtueller Maschinen Images.
- Virtual Network Manager: Verwaltung virtueller Netzwerke.
- Host Manager: Verwaltung und Monitoring physikalischer Ressourcen.
- Database: Persistenter Speicher für die OpenNebula Datenstrukturen.
Request Manager
Der Request Manager stellt eine XML-RPC Schnittstelle bereit. Abhängig von der aufgerufenen Methode wird dann intern die entsprechende Komponente aufgerufen. Die XML-RPC Schnittstelle entkoppelt die meisten Funktionen des OpenNebula Core von externen Komponenten, wie z.B. dem Scheduler.
Virtual Machine Manager
Der Virtual Machine Manager (VM Manager) ist für die Verwaltung und das Monitoring der virtuellen Maschinen zuständig. Durch den Einsatz von “ansteckbaren” Treibern sind die Operationen des VM Manager von dem darunter liegenden Hypervisor abstrahiert.
Transfer Manager
Der Transfer Manager (TM) ist für den Transfer aller Dateien, die für die korrekte Bereitstellung und den Einsatz von virtuellen Maschinen benötigt werden, verantwortlich. Dazu gehört der Transfer der Images zu dem Cluster Node, welcher die virtuellen Maschinen ausführt. Der Transfer der Images von dem Cluster Node in das Image Repository. Sowie der Transfer von Checkpoint Dateien zwischen mehreren Cluster Nodes für Cold Migrations bzw. zum Cluster Front-End, wenn die virtuelle Maschine gestoppt wurde.
Virtual Network Manager
Der Virtual Network Manager (VNM) ist für die Verwaltung der IP- und MAC-Adressen zuständig. Er ermöglicht das Erstellen von virtuellen Netzwerken, indem er für die korrekte Vergabe von IP-Adressen (es gilt nur eine gültige Zuordnung von einer IP- zu einer MAC-Adresse in einem bestimmten Netzwerk) und deren Verknüpfung mit den virtuellen Maschinen (VM) sowie den physikalischen Brigdes der VMs sorgt.
Host Manager
Der Host Manager verwaltet und überwacht die physikalischen Hosts. Dazu werden die Monitor-und Management Aufgaben mittels eines geeigneten Treibers durchgeführt. Die gesamte Infrastruktur zur Überwachung der Hosts ist flexibel ausgerichtet und kann so erweitert werden, dass jedes Host-Attribut eingebunden werden kann.
Database
Eine auf SQLite3 basierende generische Datenbank ist die Kern Komponente der internen OpenNebula Datenstrukturen. Diese Komponente unterstützt OpenNebula mit der Skalierbarkeit und Zuverlässigkeit, die für die Verwaltung von virtuellen Maschinen benötigt wird.
Drivers
OpenNebula verfügt über eine Reihe von ansteckbaren Modulen, um mit speziellen Middlewares wie z.B. Hypervisor, Cloud Services, Dateiübertragungs-Mechanismen und weiteren Informationsdiensten zu kommunizieren. Diese Adapter werden als Driver bezeichnet.
Quelle
- OpenNebula 1.4 Architecture