« Alle Blog Einträge

Technischer Aufbau von OpenStack

Was ist OpenStack

OpenStack ist eine von der NASA und der Firma Rackspace initiierte Sammlung von Software-Tools für die Erstellung und Verwaltung von Cloud-Computing-Plattformen für öffentliche und private Clouds. OpenStack wird als Infrastructure as a Service (IaaS) für Hybride Private Cloud Projekte genutzt. Unterstützt wird das Projekt von einigen der größten Unternehmen im Bereich Softwareentwicklung und -hosting. Zu den beteiligten Unternehmen gehören unter anderen AT&T, Hewlett-Packard Enterprise, Intel, Red Hat, Huawei, SUSE Linux GmbH und IBM. Zusätzlich sorgen Tausende Community-Mitglieder für eine kontinuierliche Weiterentwicklung und Verbesserung.

OpenStack ist derzeit das populärste Open-Source-Cloud-Framework und gilt für viele als die Zukunft des Cloud Computing. OpenStack wird von der gleichnamigen Foundation verwaltet, einem Non-Profit-Unternehmen, das sowohl die Entwicklung als auch den Aufbau von Communities rund um das Projekt überwacht. Mit dem Open Source Cloud-Framework können Benutzer virtuelle Maschinen und andere Instanzen bereitstellen, die verschiedene Aufgaben zur Verwaltung einer Cloud-Umgebung im laufenden Betrieb ausführen. OpenStack vereinfacht die horizontale Skalierung der Infrastruktur einer Cloud. Das bedeutet, dass Aufgaben, die von einer gleichzeitigen Ausführung profitieren, problemlos mehr oder weniger Benutzer im laufenden Betrieb bedienen können, indem sie einfach mehr Instanzen hochfahren.

Der technische Aufbau von OpenStack

OpenStack hat eine modulare Architektur, dessen Komponenten mit verschiedenen Codenamen bezeichnet werden.

Compute (Nova)

Nova ist ein Cloud-Computing-Controller, der den Hauptteil eines IaaS-Systems bildet. Es wurde entwickelt, um Pools von Computerressourcen zu verwalten und zu automatisieren. Es kann mit weitverbreiteten Virtualisierungstechnologien sowie Bare-Metal- und High-Performance Computing Konfigurationen arbeiten. KVM, VMware und Xen stehen für die Hypervisor-Technologie, den Virtual Machine Monitor zusammen mit Hyper-V- und Linux-Container-Technologie wie LXC zur Verfügung.

Aufgrund der breit angelegten Integration in Infrastrukturen auf Unternehmensebene ist die Überwachung der OpenStack Leistung im Allgemeinen und der Nova-Leistung im Besonderen in zunehmendem Maße ein wichtiges Thema. Die Überwachung der End-to-End-Leistung erfordert Tracking-Metriken von Nova, Keystone, Neutron, Cinder, Swift und anderen Diensten, zusätzlich zur Überwachung von RabbitMQ, das von OpenStack-Diensten zur Nachrichtenübermittlung verwendet wird. Alle diese Dienste generieren ihre eigenen Protokolldateien, die insbesondere in Infrastrukturen auf Unternehmensebene überwacht werden sollten.

Object Storage (Swift)

Swift ist ein skalierbares und redundantes Speichersystem, das von Nova genutzt wird. Objekte und Dateien werden bei OpenStack auf mehrere Festplatten verteilt auf Servern im Rechenzentrum gespeichert. Swift ist für die Datenreplikation und -integrität im gesamten Cluster verantwortlich ist. Speichercluster können horizontal skaliert werden, indem einfach neue Server hinzugefügt werden. Sollte ein Server oder eine Festplatte ausfallen, repliziert OpenStack seinen Inhalt von anderen aktiven Knoten an neue Speicherorte im Cluster. Da OpenStack Softwarelogik verwendet, um die Datenreplikation und -verteilung über verschiedene Geräte zu gewährleisten, können preisgünstige Massenfestplatten und Server verwendet werden.

Bereits im August 2009 begann Rackspace mit der Entwicklung des Vorgängers von Swift. Das anfängliche Entwicklerteam bestand aus neun Entwicklern. Heute ist SwiftStack, ein Unternehmen für Objektspeicher-Software, der führende Entwickler für Swift, der unter anderem mit HP, Red Hat, NTT, NEC und IBM kooperiert.

Networking (Neutron)

Das Networking – Neutron – ist ein System zur Verwaltung von Netzwerken und IP-Adressen. Neutron stellt sicher, dass das Netzwerk einer Cloud nicht zu einem Engpass oder begrenzenden Faktor wird. Nutzer können die Netzwerkkonfigurationen selbst vornehmen. Neutron bietet Netzwerkmodelle für verschiedene Anwendungen oder Benutzergruppen. Standardmodelle umfassen flache Netzwerke oder VLANs, die Server und Datenverkehr trennen. OpenStack Networking verwaltet IP-Adressen und ermöglicht dedizierte statische IP-Adressen oder das Dynamic Host Configuration Protocol (DHCP). Floating-IP-Adressen ermöglichen die dynamische Weiterleitung von Datenverkehr an beliebige Ressourcen in der IT-Infrastruktur, sodass Benutzer den Datenverkehr während der Wartung oder im Falle eines Fehlers umleiten können.

Benutzer können eigene Netzwerke erstellen, den Datenverkehr steuern und Server oder Geräte mit einem oder mehreren Netzwerken verbinden. Administratoren können Software Defined Networking-Technologien (SDN) wie zum Beispiel OpenFlow verwenden, um eine hohe Mandantenfähigkeit und massive Skalierung zu unterstützen. Neutron bietet ein Erweiterungs-Framework, das zusätzliche Netzwerkdienste wie VPN, Lastverteilung, Firewalls und virtuelle private Netzwerke (VPN) bereitstellen und verwalten kann.

Block Storage (Cinder)

Cinder stellt persistente Speichergeräte auf der Blockebene bereit. Das Blockspeichersystem verwaltet das Erstellen, Verbinden und Trennen der Blockgeräte mit den Servern. Die Block-Speicherkapazitäten sind vollständig in OpenStack Compute und das Dashboard integriert, sodass Cloud-Benutzer ihre eigenen Speicheranforderungen verwalten können.

Zusätzlich zum lokalen Linux-Serverspeicher können Speicherplattformen wie CloudByte, Hitachi Data Systems, IBM Storage, Linux LIO, NetApp und viele mehr genutzt werden. Der Blockspeicher eignet sich für leistungsabhängige Szenarien wie Datenbankspeicher oder erweiterbare Dateisysteme. Eine Snapshot-Verwaltung bietet leistungsstarke Funktionen zum Sichern von Daten, die auf Blockspeicherdatenträgern gespeichert sind. Snapshots können wiederhergestellt oder zum Erstellen eines neuen Blockspeichers verwendet werden.

Identity (Keystone)

Keystone stellt ein zentrales Verzeichnis von Benutzern bereit, die den OpenStack-Diensten zugeordnet sind, auf die sie zugreifen können. Es fungiert als gemeinsames Authentifizierungssystem für das gesamte Cloud-Betriebssystem und kann in bestehende Backend-Verzeichnisdienste wie Lightweight Directory Access Protocol (LDAP) integriert werden. Keystone unterstützt mehrere Formen der Authentifizierung, einschließlich der standardmäßigen Authentifizierung mit Benutzernamen und Kennwort, Token-basierte Systeme und Logins im Stil der Amazon Web Services. Darüber hinaus enthält Keystone eine Liste aller Dienste, die in einer Cloud für einzelne Registrierungen bereitgestellt werden. Benutzer und Tools von Drittanbietern können programmgesteuert ermitteln, auf welche Ressourcen sie zugreifen können.

Image (Glance)

Glance bietet Erkennungs-, Registrierungs- und Auslieferungsdienste für Disk- und Server-Images. Gespeicherte Bilder können als Vorlage und um eine unbegrenzte Anzahl von Backups zu speichern und zu katalogisieren verwendet werden. Der Image Service kann Disk- und Server-Images in verschiedenen Back-Ends speichern, einschließlich Swift. Die Image Service-API stellt eine Standard Representational State Transfer Schnittstelle (REST-Schnittstelle) für die Abfrage von Informationen zu Datenträgerabbildern bereit und ermöglicht es Clients, die Bilder auf neue Server zu streamen.

Wenn Glance in VMware integriert ist, führt es die vSphere-Produktfamilie um erweiterte Funktionen wie vMotion, Hochverfügbarkeit und dynamische Ressourcenplanung (DRS) ein. vMotion ist die Live-Migration einer laufenden VM (Virtual Machine) von einem physischen Server zu einem anderen, ohne Unterbrechung des Dienstes. Somit ermöglicht Glance ein dynamisches, automatisiertes und sich selbst optimierendes Datencenter, das Hardwarewartung ohne Ausfallzeiten ermöglicht.

Andere OpenStack-Module, die mit Images interagieren, müssen über Glance kommunizieren. Nova kann zwar Informationen über Images präsentieren und eine Variation eines Images konfigurieren, um eine Instanz zu erzeugen, Glance ist jedoch das einzige Modul, das Disk- und Server-Images hinzufügen, löschen, teilen oder duplizieren kann.

Dashboard (Horizon)

Das Horizon genannte OpenStack Dashboard bietet Administratoren und Benutzern eine grafische Benutzeroberfläche für den Zugriff auf die Bereitstellung von Cloud-basierten Ressourcen. Das Dashboard ermöglicht die Einbindung von Produkten und Dienstleistungen von Drittanbietern, wie Abrechnung, Überwachung und zusätzliche Verwaltungstools. Horizon ist eine von mehreren Möglichkeiten, wie Benutzer mit den OpenStack-Ressourcen interagieren können. Entwickler können den Zugriff bei Bedarf automatisieren oder Werkzeuge zum Verwalten von Ressourcen mithilfe einer systemeigenen API oder der EC2 kompatiblen API erstellen.

Orchestration (Heat)

Mit Heat können Composite-Cloud-Anwendungen auf der Basis von Text-Vorlagen über eine OpenStack-native REST-API und eine CloudFormation-kompatible Abfrage-API gestartet werden. Heat ermöglicht Nutzern die einfache, automatisierte Erstellung von Cloud-Komponenten wie Instanzen und Netzwerken.