Virtualisierung, Cloud, OPS und ein Openstack-Krimi

von Cathrin Ribbrockam in Software & Entwicklung

Der folgende Beitrag ist ein Auszug aus dem kostenlosen Fachmagazin „CloudWorks“, das Sie hier bestellen können.
Die Autoren: Dr. Lukas Pustina, Dr. Patrick Peschlow, Daniel Schneller

Die Digitalisierung erleichtert und beschleunigt Unternehmensprozesse. Die Zahl und der Umfang digitaler Dokumente und ihrer Versionen steigt stetig, da ihre Verarbeitung – im Unterschied zu Papier – viel bequemer möglich ist. Gleichzeitig entstehen neue Herausforderungen beim Speichern, Wiederauffinden und Teilen dieser Dokumente. Nur wenn diese Vorgänge durch leistungsfähige, aber zugleich einfach zu benutzende Werkzeuge unterstützt werden, ist eine erfolgreiche Zusammenarbeit möglich.

In CenterDevice kommen alle Ihre Dokumente zusammen. Die Anwendung bietet viele Funktionen zum Finden, Teilen und Verwalten: Laden Sie Dokumente in einer Vielzahl unterstützter Formate hoch und profitieren Sie unmittelbar von der integrierten OCR Texterkennung für Bilddateien und der blitzschnellen Volltextsuche. Darüber hinaus strukturieren Sie Ihre Dokumente nach eigenen Kriterien über Schlagworte oder fassen sie in thematischen Sammlungen zusammen. Vorhandene Dokumente aktualisieren Sie einfach und übersichtlich: Die Versionierungs- und Kommentarfunktionen ermöglichen Ihnen, den Überblick über die Historie zu behalten. Einzelne Dokumente oder ganze Sammlungen teilen Sie einfach per Mausklick mit Kollegen, externen Mitarbeitern oder Gästen, natürlich mit voller Kontrolle über die Zugriffsrechte. Die Zustimmung der Nutzer vorausgesetzt, steht außerdem wahlweise für jede Sammlung eine Protokollierung des Zugriffsverlaufs zur Verfügung. CenterDevice ist via Webbrowser von überall nutzbar und bietet außerdem Apps für iOS und Android sowie eine Desktop-Anwendung an. Darüber hinaus kann es über die öffentliche und dokumentierte REST API in eigene Anwendungen integriert werden.

Herausforderungen

Im Betrieb und der Entwicklung von CenterDevice lösen wir drei Herausforderungen.

Viele Dokumente und Versionen

Neben der reinen Datenmenge stellen die große Anzahl von Dokumenten und deren Versionen eine Herausforderung dar. Auch bei Millionen von Dokumenten muss der Zugriff auf jedes einzelne, unabhängig von Format und Größe, schnell und zuverlässig erfolgen und das für das jeweilige Endgerät geeignete Darstellungsformat gewählt werden.

Leistungsstarke Suche

Klassische Ordnerhierarchien, wie sie typische Dateisysteme seit vielen Jahren anbieten, skalieren nicht für die Organisation von vielen tausend Dokumenten, die noch dazu gemeinsam von verschiedenen Personengruppen verwendet werden sollen. Oft sind die gewählten Strukturen willkürlich und nicht allgemein für alle Beteiligten nachvollziehbar. In der Folge werden gleiche Dateien oft mehrfach unabsichtlich an verschiedenen Orten abgelegt und divergieren bei Änderungen unkontrolliert. CenterDevice setzt stattdessen auf flache Hierarchien, kombiniert mit einer leistungsstarken Suchfunktion, die Dokumentinhalte und Metadaten gleichermaßen durchsuchbar macht. Auch dies muss weitgehend unabhängig vom Ausgangsformat der Dokumente sein und in Sekundenschnelle relevante Suchtreffer liefern.

Horizontale Skalierbarkeit

Bei Millionen von Dokumenten mit schnellen Zuwachsraten ist eine der Kernanforderungen an CenterDevice, schnell und flexibel auf die wachsende Datenmenge reagieren zu können. Wir begegnen dieser Herausforderung durch konsequent auf horizontale Skalierung ausgelegte Software- und Infrastrukturdesigns, die bedarfsgerecht um weitere Kapazitäten erweitert werden können. Im Idealfall erfolgen diese Erweiterungen durch die konstante Überwachung von Performancedaten, noch bevor tatsächlich Engpässe entstehen.

Architektur

Die Architektur von CenterDevice lässt sich grob in drei Schichten einteilen:

• Hardware
• Virtualisierte Laufzeitumgebung
• Anwendungssoftware

CenterDevice Architekturdiagram

Abb. 1: CenterDevice-Gesamtübersicht

Abbildung 1 zeigt diese drei Schichten und die Komponenten, aus denen sie im Wesentlichen bestehen. Die drei Schichten werden im Folgenden näher beschrieben.

Hardware

CenterDevice basiert auf handelsüblicher 64-Bit Serverhardware in Intel x86 Architektur. Dabei kommen verschiedene Servertypen zum Einsatz, deren Aufbau auf verschiedene Teilanforderungen ausgerichtet ist: Storage Nodes stellen Speicherkapazität für Dokumente, Datenbanken und Suchindizes bereit.

• Compute Nodes übernehmen rechenintensive Aufgaben, darunter Dokumentanalyse, -konvertierung und -indizierung, aber auch zahlreiche weitere Funktionen.
• Control Nodes leisten Verwaltungsarbeit, z. B. Betriebsüberwachung, Logging etc.
• Die Kommunikation der Server untereinander erfolgt über mehrere dedizierte und redundante Ethernet-Verbindungen.

Virtualisierte Laufzeitumgebung

Die CenterDevice-Anwendung sowie die von ihr verwendeten Datenspeicher werden in einer virtualisierten Umgebung betrieben. Dies hat zwei entscheidende Vorteile gegenüber dem direkten Betrieb auf der Baremetal-Hardware: die Eindämmung von Hardwareausfällen sowie Skalierbarkeit.

Eindämmung von Hardwareausfällen

Grundsätzlich ist bei einer komplexen Hardwareinstallation stets mit dem Ausfall einzelner Komponenten oder ganzer Ressourcen zu rechnen. Während der Ausfall einer einzelnen Festplatte nur geringe Auswirkungen auf einen Server hat, kann ein defektes Arbeitsspeichermodul zum Totalaufall der Maschine führen. Darüber hinaus können Infrastrukturkomponenten wie Netzwerkswitche, Firewalls und Stromanschlüsse bzw. deren Ausfall starke Auswirkungen auf die Verfügbarkeit des gesamten Systems haben. Die Virtualisierung fügt eine Abstraktionsschicht zwischen Anwendung und Hardware-Ressourcen ein, die die Eindämmung von Defekten und anderen Störungen erleichtert. Fällt zum Beispiel ein Server unerwartet aus, können die betroffenen virtuellen Maschinen in kurzer Zeit auf andere Server migriert werden. Die Wiederherstellung der virtuellen Maschinen und damit der Anwendung kann in wenigen Minuten erfolgen. Im Falle geplanter Wartungsarbeiten können virtuelle Maschinen sogar ohne Unterbrechung im laufenden Betrieb auf andere Server übertragen werden.

Skalierbarkeit

Genau wie ein Ausfall ändert auch das Hinzufügen zusätzlicher Ressourcen die Topologie der Infrastruktur. Für einen neuen Server müssen zum Beispiel Kabel verlegt, Konfigurationen von Switchen oder Firewalls angepasst und IP-Adressen vergeben werden. Gegebenenfalls müssen sogar Switche ersetzt oder hinzugefügt werden, wenn die vorhandenen Ports bereits vollständig belegt sind. Durch die Virtualisierung und die damit einhergehende Trennung von Hardware und Anwendung wirken sich diese Topologieänderungen nicht auf die Anwendung aus, sondern können losgelöst vorgenommen werden, um die Gesamtkapazität des Systems zu erhöhen. Auf Anwendungsebene können Softwarekomponenten flexibel auf virtuelle Maschinen (um-)verteilt oder anforderungsgerecht aufgeteilt werden, ohne dafür gleichzeitig und ggf. zeitaufwändig Änderungen an der unterliegenden Hardwareinstallation oder -konfiguration vornehmen zu müssen. Die Virtualisierung erlaubt also durch die zusätzliche Abstraktionsschicht flexible Änderungen auf Anwendungs- und Hardwareebene und umgeht damit sonst oft unvermeidliche komplizierte und lähmende Abhängigkeiten.

Bei CenterDevice wird Virtualisierung für die Storage- und Compute-Ressourcen getrennt umgesetzt. Um die gewünschte horizontale Skalierbarkeit – die Steigerung von Leistung durch einfaches Hinzufügen weiterer Komponenten, ohne grundlegende Veränderung der Gesamtarchitektur – zu erreichen, kommen Ceph für die Storage und OpenStack für die Compute-Virtualisierung zum Einsatz.

Storage

Im Storage-Bereich sind zwei wesentliche Entwicklungen zu beobachten. Zum einen wächst das Fassungsvermögen von Festplatten ständig. Doch während die Kapazität stetig größer wird, bleibt die Zugriffsgeschwindigkeit prinzipbedingt quasi konstant. Zum anderen ist mit Solid State Drives (SSDs) eine neue Klasse sehr schneller Speichermedien auf Basis von Flashspeicher entstanden, die ohne bewegliche Bauteile auskommt. SSDs ermöglichen dadurch tausendfach höhere Zugriffsraten als klassische, magnetplattenbasierte Festplatten. Während eine Festplatte je nach Bauart zwischen 50 und 150 Random-Input-/Output-Operationen pro Sekunde (IOPS) verarbeiten kann, sind bei SSDs 1.000- bis 10.000-fach höhere IOPS-Werte möglich.

SSDs weisen allerdings derzeit meist noch kleinere Kapazitäten bei gleichzeitig verhältnismäßig höherem Preis pro Gigabyte im Vergleich zu magnetischen Festplatten auf. Für das Speichern, Verarbeiten und Wiederauffinden von Dokumenten stellt dies eine immense Herausforderung dar. Betriebssystem, Anwendung, Datenbanken und Dokumentenablage müssen sich die zur Verfügung stehenden IOPS aufteilen, gleichzeitig werden aber große Kapazitäten benötigt. Aus diesem Grund ist es notwendig, die Leistungsfähigkeit von vielen Festplatten zu kombinieren.

In der klassischen EDV werden dafür in kleinem Rahmen RAID und in größeren Umgebungen Storage Area Networks (SANs) eingesetzt. SANs bieten virtuelle Block Devices an und sorgen im Hintergrund für eine automatische Verteilung der Daten auf eine Anzahl individueller Festplatten. SANs sind weit verbreitet, haben aber einige Nachteile. Neben dem hohen Anschaffungspreis für die benötigten Komponenten begibt man sich in ein Abhängigkeitsverhältnis vom jeweiligen Hersteller. Soll ein SAN hochverfügbar ausgelegt werden, bedeutet dies normalerweise eine Verdopplung der – oft proprietären – Hardware, einhergehend mit den entsprechenden Kosten. Eine nachträgliche Aufrüstung ist nur im Rahmen dessen möglich, was der Hersteller des Systems dafür an kompatiblen Optionen vorsieht. Bei CenterDevice kommt deswegen das Ceph Storage Cluster als SDS (Software Defined Storage) zum Einsatz, das auf herkömmliche Serverhardware und horizontale Skalierbarkeit setzt.

Compute

Die Abstraktion von einzelnen Servern, Festplatten und Netzwerkverbindungen zu allgemein verfügbaren Rechen- und Speicherressourcen ist die Grundidee des Cloud Computing. Cloud Computing entkoppelt Rechen- und Speicherressourcen von konkreter Hardware. Auf diese Weise entsteht eine Abstraktionsschicht zwischen der Baremetal-Hardware und darauf laufenden Softwarediensten. Durch die konsequente Virtualisierung aller Hardwarekomponenten wie CPU, Speicher und Netzwerk wird es möglich, beliebige virtuelle Infrastrukturen aufzubauen, ohne tatsächliche Änderungen am Cluster im Rechenzentrum durchführen zu müssen. Infrastruktur wird damit zu einem Dienst – Infrastructure as a Service (IaaS).

Ein besonderer Vorteil von IaaS ist, dass Hardwareausfälle nicht sofort den Ausfall der Softwaredienste bedeuten müssen. Durch Verlagerung der virtuellen Infrastruktur auf noch funktionierende Baremetal-Hardware werden Ausfallzeiten minimiert. CenterDevice nutzt als Virtualisierungstechnologie OpenStack. Alle im Folgenden beschriebenen Software- komponenten von CenterDevice sowie sie umgebende Infrastrukturdienste wie z. B. Mailserver oder Loadbalancer werden in dedizierten virtuellen Maschinen (VM) betrieben. Dadurch besteht jederzeit die Möglichkeit, zielgerichtet Kapazitäten zu erweitern. Darüber hinaus bietet die klare Trennung in einzelne virtuelle Maschinen auch Vorteile im Hinblick auf Stabilität und Sicherheit, da Fehler in einer einzelnen VM keine unmittelbaren Auswirkungen auf andere Dienste haben können.

Dies ist ein Auszug aus unserem kostenlosen Fach-Magazin „CloudWorks“.
Wir möchten wir Ihnen vorstellen, welche Technologien hinter CenterDevice stecken.

Zu Anfang beschreiben wir die Herausforderungen, die Architektur und eine beispielhafte Hardwarekonfiguration von CenterDevice in einem Whitepaper. Anschließend erläutern wir die Basistechnologien von CenterDevice im Detail. Zum Schluss zeigen wir Ihnen, wie diese Technologien in der Praxis zum Einsatz kommen. Bestellen Sie hier Ihr kostenloses Exemplar unseres Magazins.