Praxiserprobte, freie Cloud

© Shen En-Min, 123RF

Gut vernetzt

Apache CloudStack ist eine Open-Source-Plattform, die Rechenressourcen zusammenführt, um daraus Public-, Private- und Hybrid-IaaS-Clouds zu bilden (Infrastructure as a Service). Apache CloudStack managt dabei Netzwerk-, Storage- und Compute-Knoten, die zusammen die Infrastruktur einer Cloud ausmachen.
Der ADMIN 05/13 wirft einen Blick auf die frei verfügbaren Cloud-Frameworks von Eucalyptus über OpenNebula bis OpenStack. Gute Aussichten für skalierbare ... (mehr)

CloudStack begann sein Leben unter dem Namen VMOps in einer 2008 gegründeten Firma, die von Sheng Liang angeführt wurde, der zuvor bei Sun die virtuelle Maschine von Java entwickelt hatte. Die allerersten Versionen waren noch eng an Xen gebunden, aber schon bald erkannte das Team die Vorteile der Unterstützung verschiedener Hypervisor. Früh im Jahr 2010 gelang der Firma ein großer Schritt nach vorn, indem sie die Domain cloud.com erwerben konnte und die erste Version von CloudStack veröffentlichte, die bereits zu 98 Prozent freie Software war. Im Juli 2011 wurde CloudStack dann von Citrix Systems übernommen und auch der verbleibende Code unter die GPLv3 gestellt.

Die nächsten großen Neuigkeiten standen im April 2012 an, als Citrix CloudStack an die Apache Foundation abgab, wo es zunächst als Incubator-Projekt angenommen wurde. Im Gegenzug zog sich Citrix aus der CloudStack-Initiative zurück. Heute ist CloudStack ein Top-Level-Projekt der Apache Software Foundation, was auch von der Reife des Codes und der Qualität der Community zeugt.

CloudStack bedient verschiedene Unternehmensstrategien und unterstützt gleichzeitig verschiedene Cloud-Ansätze aus der Provider-Perspektive.

Von Private bis Public

Gehen Firmen den ersten Schritt über die klassische Server-Virtualisierung hinaus, erscheinen vielen von ihnen Private Clouds als Mittel der Wahl, um sowohl die Flexibilität zu erhöhen als auch die Kontrolle über die benutzten Services zu behalten. Diese Private Clouds können sowohl von der eigenen IT-Abteilung gehostet als auch von einem externen Provider bezogen werden: In jedem Fall bleibt das Ziel – umfassende Kontrolle und Sicherheit ohne Verletzung von SLAs – gewahrt.

Am anderen Ende des Spektrums finden sich die Public-Cloud-Anbieter mit elastischer Skalierung der Ressourcen und Abrechnung nach Verbrauch ( Abbildung 1 ). Während Public Clouds oft von Details wie der Netzwerktopologie abstrahieren, bieten schließlich Hybrid Clouds als weitere Variante die Möglichkeit, die Schlüsselaspekte unter Kontrolle zu behalten und gleichzeitig vom Angebot an freier, nach Bedarf skalierender Kapazität zu profitieren.

Abbildung 1: Die verschiedenen Ausprägungen privater und öffentlicher Clouds in der Übersicht.

Die wichtigsten CloudStack-Features

Unterstützung mehrerer Hypervisor: CloudStack arbeitet mit diversen Hypervisor zusammen und eine einzelne Cloud-Installation kann mehrere Hypervisor enthalten. Das gegenwärtige CloudStack-Release unterstützt Citrix XenServer und VMware vSphere sowie KVM und Xen unter Ubuntu und CentOS. Die Unterstützung für Hyper-V wird momentan entwickelt und in ein kommendes Release einfließen.

Massiv skalierbare Infrastruktur: CloudStack kann mit Zehntausenden Servern in geografisch verteilten Rechenzentren umgehen. Das zentralisierte Management skaliert linear und braucht daher keine extra Zwischenschicht auf Cluster-Ebene. Der Ausfall einer Komponente führt niemals zu einem Cluster-weiten Stillstand. Periodische Wartungsarbeiten können durchgeführt werden, ohne die laufenden virtuellen Maschinen zu beeinträchtigen.

Automatisches Konfigurationsmanagement: CloudStack konfiguriert die Netzwerk- und Storage-Settings seiner Clients automatisch. Es verwaltet einen internen Pool virtueller Appliances, die den Cluster als solchen unterstützen. Diese Appliances offerieren Dienste wie Firewalling, Routing, DHCP, VPN, Konsolenzugänge, Speicherplatz und Storage-Replikation. Die ausgedehnte Verwendung virtueller Appliances vereinfacht dabei Installation, Konfiguration und Verwaltung.

Grafisches Benutzer-Interface: CloudStack bietet sowohl dem Administrator wie auch dem Enduser ein grafisches Benutzer-Interface an ( Abbildung 2 ). Damit lässt sich die Cloud als Ganzes verwalten und es können auch einzelne virtuelle Maschinen gestartet und angehalten werden. Das GUI kann dem Look&Feel des Providers oder des Kundenunternehmens angepasst werden.

Abbildung 2: Rechnen, speichern, vernetzen – der schematische Aufbau von CloudStack.

API und Erweiterbarkeit: Alle Funktionen des Benutzer-Interfaces sind auch über ein API erreichbar. Auf dessen Basis lassen sich Command Line Tools oder grafische Werkzeuge für spezielle Bedürfnisse programmieren. Für die Zuteilung von Storage oder Hosts kann man neue Module entwerfen, die sich in die vorhandene Architektur einklinken können. CloudStack kann Amazon Web Services (AWS) EC2- und S3-API-Calls in native CloudStack-API-Aufrufe übersetzen. Daher können Benutzer auf Wunsch weiter mit ihren gewohnten AWS-Tools arbeiten. CloudMonkey ist dagegen ein spezielles, in Python geschriebenes Command Line Interface (CLI) für CloudStack. Mit seiner Hilfe lassen sich leicht Skripte programmieren, die komplexe Abläufe bei der CloudStack-Administration automatisieren. Mehr Informationen dazu finden sich bei [1] .

Der Zugriff auf die API – direkt oder via CloudMonkey – wird durch eine Reihe von geheimen Schlüsseln und einem Signature Hash geschützt.

Hochverfügbarkeit: CloudStack enthält eine Reihe von Features zur Verbesserung der Verfügbarkeit. Der Management-Server selbst lässt sich in einem Multinode-Cluster hinter einem Load Balancer installieren ( Abbildung 3 ). Der Ausfall eines Rechners des Clusters würde dann der Load Balancer auffangen. Der MySQL-Server kann im Interesse einer höheren Verfügbarkeit repliziert werden. Gegen den Ausfall des Ethernet-Interfaces schützt NIC-Bonding (auch bekannt als Trunking oder Teaming) oder iSCSI-Multipathing im Storage-Bereich.

Abbildung 3: Ein Load Balancer verteilt die Management-Aufgaben auf eine Gruppe von Servern und sorgt so gleichzeitig für Ausfallsicherheit.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023