Unternehmen haben die Vorteile der Flexibilisierung der eigenen IT-Infrastruktur erkannt. Dennoch hat die jüngste Vergangenheit die Bedenken bestärkt, den Weg in die Public Cloud aus Gründen des Datenschutzes und der Informationssicherheit zu meiden. Es sind daher Alternativen gefragt. Mit der Private Cloud wäre eine gefunden. Wären dazu nicht hohe Vorabinvestitionen in eigene Hard- und Software notwendig. Ein Mittelweg besteht in der Nutzung einer Hosted Private Cloud. Diese Form der Cloud wird mittlerweile von einigen Providern angeboten. Es besteht aber ebenfalls die Möglichkeit, selbst den Aufbau und den Betrieb zu übernehmen. Dieser INSIGHTS Report zeigt, wie dieses mit der Open-Source Cloud Computing Infrastrukturlösung openQRM möglich ist.
Warum eine Hosted Private Cloud?
Unternehmen sind angehalten ihre IT-Infrastruktur zu flexibilisieren, um ihren Ressourcenbedarf je nach Situation zu skalieren. Der Idealfall stellt hierbei die Nutzung einer Public Cloud dar. Dabei sind keine Vorabinvestitionen in eigene Hard- und Software notwendig. Viele Unternehmen scheuen, aus Gründen des Datenschutzes und der Informationssicherheit, jedoch den Weg in die Public Cloud und schauen sich nach einer Alternative um. Diese nennt sich Private Cloud. Der Hauptvorteil einer Private Cloud besteht dabei in der flexiblen Self-Service Bereitstellung von Ressourcen für Mitarbeiter und Projekte wie in einer Public Cloud, die durch eine reine Virtualisierung der Rechenzentrumsinfrastruktur nicht möglich ist. Jedoch ist für den Aufbau einer Private Cloud zu beachten, dass Investitionen in die eigene IT-Infrastruktur geleistet werden müssen, um den virtuellen Ressourcenbedarf durch einen physikalischen Unterbau zu gewährleisten.
Daher muss ein geeigneter Mittelweg gefunden werden, der einen flexiblen Ressourcenbezug über einen Self-Service ermöglicht, aber zugleich keine hohe Investitionskosten in eigene Infrastrukturkomponenten erwartet und ohne auf ein selbst festgelegtes Datenschutz und -sicherheitsniveau verzichten zu müssen. Dieser Mittelweg besteht im Hosting einer Private Cloud bei einem externen (Web)-Hoster. Die notwendigen physikalischen Server werden über einen Hoster angemietet, der für deren Wartung zuständig ist. Um auch den etwaigen physikalischen Ressourcenbedarf zu sichern, sollten mit dem Hoster entsprechende Absprachen getroffen werden, um die Hardware sehr zeitnah nutzen zu können. Mögliche Alternativen wären Standby-Server oder ähnliche Ansätze.
Auf dieser externen Server-/Storage-Infrastruktur wird anschließend die Cloud-Infrastruktursoftware installiert und zu einer virtuellen gehosteten Private Cloud konfiguriert. Diese erlaubt es Mitarbeitern zum Beispiel je nach Bedarf eigene Server für die Softwareentwicklung zu starten, einzufrieren und nach Beendigung des Projekts wieder zu entfernen. Für die Abrechnung der jeweilig genutzten Ressourcen sorgt die Cloud-Infrastruktursoftware, die über solche Funktionen entsprechend verfügen muss.
openQRM Cloud
Grundsätzlich kann eine openQRM Cloud für den Aufbau einer Public als auch Private Cloud genutzt werden. Diese basiert komplett auf openQRMs Appliance Modell und bietet vollständig automatisierte Deployments die von Cloud Nutzern angefragt werden können. Dazu unterstützt eine openQRM Cloud alle Virtualisierungs- und Speichertechnologien, die auch von openQRM selbst unterstützt werden. Es besteht darüber hinaus die Möglichkeit, physikalische Systeme über die openQRM Cloud bereitzustellen.
Auf Basis der openQRM Enterprise Cloud-Zones lässt sich darüber hinaus eine vollständig verteilte openQRM Cloud Infrastruktur aufbauen. Damit können mehrere voneinander getrennte Rechenzentren in logische Bereiche aufgeteilt oder zum Beispiel die Unternehmenstopologie hierarchisch und logisch sicher voneinander getrennt aufgebaut werden. Zudem integriert openQRM Enterprise Cloud-Zones ein zentrales und mehrsprachiges Cloud-Portal inkl. einer Google Maps Integration, wodurch ein interaktiver Überblick über sämtliche Standorte und Systeme entsteht.
Aufbau der Referenzumgebung
Für den Aufbau unseres Referenz-Setups werden ein physikalischer Server und mehrere öffentliche IP-Adressen benötigt. Für die Installation von openQRM bestehen zwei Möglichkeiten:
- Empfohlen: Ein privates Class C Subnetz (192.168.x.x/255.255.255.0) konfigurieren in welchem openQRM betrieben wird. openQRM benötigt dann zusätzlich eine öffentliche IP-Adresse für den Zugang von außen.
- Option: openQRM in einer virtuellen Maschine installieren. Bei dieser Variante steuert openQRM den physikalischen Server und bezieht die virtuellen Maschinen für den späteren Betrieb der Cloud von dem physikalischen Host.
Für die Zuordnung der öffentlichen IP Adressen kann in beiden Szenarien Cloud-NAT eingesetzt werden. Diese openQRM Cloud Funktion übersetzt die IP Adressen des privaten openQRM Class C Netzwerk in öffentliche Adressen. Dies erfordert Post- und Pre-Routing Regeln, die auf dem Gateway/Router mittels IPTables wie folgt konfiguriert werden:
Für die Konfiguration komplexer Netzwerkumgebungen ist das IP-Management Plugin zu empfehlen. Dieses Enterprise Plugin erlaubt es beliebige Netzwerk- und IP-Adress-Konfigurationen für die verwalteten Server vorzunehmen. In der openQRM Cloud bietet es zudem eine Zuordnung von Netzwerken zu Cloud Benutzergruppen und unterstützt darüber hinaus das automatisierte VLAN Management.
Weiterhin werden zwei Bridges benötigt:
- Eine für die öffentliche Schnittstelle mit einer öffentlichen IP-Adresse.
- Eine für die private Schnittstelle dpe für die DHCP konfiguriert ist.
Die Daten der Cloud werden später auf dem lokalen Speicher des physikalischen Servers gespeichert. Hierfür bieten sich zwei Varianten:
Empfohlen:
- KVM-Storage LVM Deployment (LVM Logical Volume Deployment)
- Benötigt eine oder mehrere dedizierte LVM Volume Group(s) für die virtuellen Maschinen. Für komplexere Setups empfiehlt sich ein zentrales iSCSI Target oder ein SAN zu verwenden.
Option:
Am Ende muss IPTables entsprechend der oben genannten Regeln und der gewünschten eigenen Sicherheit konfiguriert werden. Im Anschluss erfolgt die Installation von openQRM. Pakete für die gängigen Linux Distributionen liegen unter http://packages.openqrm.com. Nachdem openQRM installiert und initialisiert wurde folgt dessen Konfiguration.
Basis-Konfiguration von openQRM
Der erste Schritt nach der Initialisierung ist das Editieren der „/usr/share/openqrm/plugins/dns/etc/openqrm-plugin-dns.conf“, indem der Standardwert auf die eigene Domain geändert wird.
Domain für das private Netzwerk konfigurieren:
# please configure your domain name for the openQRM network here!
OPENQRM_SERVER_DOMAIN=“oqnet.org“
Es folgt das Aktivieren und Starten der Plugins über die Weboberfläche des openQRM-Servers. Die folgenden Plugins sind dazu zwingend erforderlich:
DNS Plugin
- Dient der automatisierten Verwaltung des DNS Service für das openQRM Management-Netzwerk.
DHCPD
- Verwaltet automatisch die IP-Adressen für das openQRM Management-Netzwerk.
KVM Storage
- Integriert die KVM Virtualisierungstechnologie für das lokale Deployment.
Cloud-Plugin
- Ermöglicht den Aufbau einer Private und Public Cloud Computing Umgebung mit openQRM.
Zu den weiteren empfohlenen Plugins gehören:
Collectd
- Ein Monitoring-System inkl. Langzeitstatistiken und Graphiken.
LCMC
- Integriert die Linux Cluster Management Console zur Verwaltung der Hochverfügbarkeit einzelner Services.
High-Availability
- Ermöglicht eine automatische Hochverfügbarkeit der Appliances.
I-do-it (Enterprise Plugin)
- Bietet eine automatische Systemdokumentation (CMDB).
Local server
- Integriert bestehende und lokal installierte Server mit openQRM.
Nagios 3
- Überwacht automatisch Systeme und Services.
NoVNC
- Bietet eine remote Web-Konsole für den Zugriff auf virtuelle Maschinen und physikalische Systeme.
Puppet
- Integriert Puppet für ein vollständig automatisiertes Konfigurationsmanagement und Applikationsdeployment in openQRM.
SSHterm
- Ermöglicht die sichere Anmeldung über eine Web-Shell an den openQRM-Server und integrierte Ressourcen.
Zu den Plugins die mehr Komfort bei der automatischen Installation von virtuellen Maschinen als Cloud Templates bieten gehören:
Cobbler
- Integriert Cobbler für das automatisierte Bereitstellen von Linux System in openQRM.
FAI
- Integriert FAI für das automatisierte Bereitstellen von Linux System in openQRM.
LinuxCOE
- Integriert LinuxCOE für das automatisierte Bereitstellen von Linux System in openQRM.
Opsi
- Integriert Opsi für das automatisierte Bereitstellen von Windows System in openQRM.
Clonezilla/local-storage
- Integriert Clonezilla für das automatisierte Bereitstellen von Linux und Windows System in openQRM.
Basis-Konfiguration der Host-Funktion für die virtuellen Maschinen
Fall 1: openQRM ist direkt auf dem physikalischen System installiert
Als Nächstes muss der Host konfiguriert werden, um darüber später die virtuellen Maschinen bereitzustellen. Dazu wird eine Appliance vom Typ KVM Storage Host erstellt. Man geht dazu wie folgt vor:
- Appliance erstellen
- Base > Appliance > Create
- Name: z.B. openQRM
- Als Ressource den openQRM Server selbst auswählen
- Typ: KVM Storage Host
Dadurch erhält openQRM die Information, dass auf dieser Maschine ein KVM Storage angelegt werden soll.
Fall 2: openQRM ist in einer VM installiert, die auf dem physikalischen System läuft
Mittels des „local-server“ Plugins wird das physikalische System in openQRM integriert. Dazu wird das „openqrm-local-server“ Integrations-Tool vom openQRM Server auf das zu integrierende System kopiert z.B.
scp /usr/share/openqrm/plugins/local-server/bin/openqrm-local-server [IP-Adresse des physikalischen Systems]:/tmp/
Danach wird es auf dem zu integrierenden System ausgeführt:
ssh [IP-Adresse des physikalischen Systems]: /tmp/openqrm-local-server integrate -u openqrm -p openqrm -q [IP-Adresse des openQRM Server] -i br0 [-s http/https]
(in diesem Beispiel ist „br0“ die Bridge zum openQRM Management Netzwerk)
Die Integration mittels „local-server“ erstellt in openQRM automatisch:
- eine neue Ressource
- ein neues Image
- einen neuen Kernel
- eine neue Appliance aus den obigen Subkomponenten
Als Nächstes muss die Appliance des gerade integrierten physikalischen Systems konfiguriert werden, um darüber später die virtuellen Maschinen bereitzustellen. Dazu wird die Appliance als Typ KVM Storage Host eingestellt. Man geht dazu wie folgt vor:
- Appliance editieren
- Typ: KVM Storage Host einstellen
Dadurch erhält openQRM die Information, dass auf dieser Maschine ein KVM Storage angelegt werden soll.
Basis-Konfiguration der Storage-Funktion
Nun folgt die grundsätzliche Konfiguration des Storage. Hierzu wird ein Storage Objekt von einem selbst gewünschten Typ erstellt. Dazu geht man wie folgt vor:
- Storage erstellen
- Base > Components > Storage > Create
Im Fall 1, die Ressource des openQRM Servers auswählen
- Im Fall 2, die Ressource des integrierten physikalischen Systems auswählen
- Name: z.B. KVMStorage001
- Deployment-Typ wählen
- hängt vom zu Beginn gewählten Typ ab: KVM-Storage LVM Deployment oder Verzeichnis (KVM-Storage BF Deployment)
Vorbereitung eines Images für virtuelle Maschinen
Um später über das Cloud-Portal virtuelle Maschinen (VM) als Teil fertiger Produkte bereitzustellen, muss zunächst ein Image für eine VM vorbereitet werden. Das funktioniert wie folgt:
- Erstellen einer neuen virtuellen Maschine mit einer neuen virtuellen Festplatte und auf dieser ein ISO installieren.
- Plugins > Deployment > LinuxCOE > Create Templates
- Die hier erstellten Images werden automatisch in einem ISO-Pool, der für alle virtuellen Maschinen innerhalb von openQRM verfügbar ist, abgelegt.
Anschließend folgt das Erstellen einer Basis für ein Mastertemplate. Dieses dient als Grundlage, um später den Anwendern ein Produkt über die Cloud anhand eines Bestellvorgangs bereitzustellen.
- Erstellen einer neuen Appliance
- Base > Appliance > Create
- Erstellen einer neuen Ressource
- KVM-Storage Virtual Machine
- Erstellte Ressource auswählen
- Neues Image erstellen
- Image als KVM-Storage Volume hinzufügen
- Volume Group auf KVM-Storage auswählen
- Neues Logical Volume hinzufügen
- Image für die Appliance auswählen
- Editieren, um damit ein Passwort zu setzen. (Damit wird das zuvor gewählte Passwort des ISO Image überschrieben.)
- Kernel auswählen
- von der lokalen Festplatte
- (LAN Boot wäre ebenfalls möglich)
- Appliance starten
- die automatische Installation kann nun über VNC verfolgt werden.
- Weitere Anpassungen können nun selbst vorgenommen werden.
- Misc > Local-Server > Help >Local VMs („Local-Server für Lokale Virtuelle Maschinen“)
Aufräumen
Die erstellte Appliance kann nun gestoppt und anschließend gelöscht werden. Entscheidend hier war, dass wir uns ein Image erstellt haben, das für die Cloud als Mastertemplate genutzt werden kann.
Das über die Appliance erstellte Image enthält das Basis Betriebssystem welches aus dem ISO-Image installiert wurde.
Konfiguration der openQRM Cloud
Wir haben nun alle Vorbereitungen abgeschlossen, um mit der Konfiguration der openQRM Cloud zu beginnen. Die Einstellungen dafür finden wir unter „Plugin > Cloud > Configuration > Main Config“. Sämtliche Parameter, die hier angepasst werden, haben einen direkten Einfluss auf das Verhalten der gesamten Cloud.
Grundsätzlich lässt sich eine openQRM Cloud mit den Standardparametern betreiben. Je nach Bedarf und der eigenen speziellen Situation müssen Anpassungen erfolgen. Hilfreich dazu ist der Bereich „Beschreibungen“ in der rechten Spalte der Tabelle.
Es existieren jedoch einzelne Parameter, die unabhängig von dem eigenen Anwendungsfall in Betracht gezogen werden sollten. Dazu gehören:
Automatische Provisionierung (auto_provision)
- Legt fest, ob Systeme automatisch durch die Cloud bereitgestellt werden oder ob zunächst eine Freigabe durch den Administrator notwendig ist.
Provisionierung physikalischer Systeme (request_physical_systems)
- Mit diesem Parameter lässt sich definieren, ob neben virtuellen Maschinen auch physikalische Host über die Cloud bereitgestellt werden sollen.
Klonen der Images (default_clone_on_deploy)
- Die Cloud rollt standardmäßig Kopien (Klone) eines Images aus.
Hochverfügbarkeit (show_ha_checkbox)
- Ermöglicht den Betrieb der openQRM Cloud inklusive Hochverfügbarkeit der bereitgestellten Ressourcen.
Abrechnung der genutzten Ressourcen (cloud_billing_enabled)
- openQRM verfügt über ein umfangreiches Abrechnungssystem, mit dem für sämtliche Ressourcen eigene Preise festgelegt werden können, um einen transparenten Überblick zu den laufenden Kosten zu erhalten.
Cloud Produkt Manager (cloud_selector)
- Aktiviert den Produkt-Manager, mit dem den Nutzern verschiedene Ressourcen über das Cloud-Portal bereitgestellt werden können.
Währung zur Abrechnung der Ressourcen (cloud_currency)
- Legt die Landeswährung fest, mit der die Ressourcen abgerechnet werden sollen.
Umrechnungsfaktor für Ressourcen in reale Währung (cloud_1000_ccus)
- Legt fest, wie viel 1000 CCUS (Cloud Computing Units) in einer zuvor festgelegten realen Währung entsprechen sollen.
Ressourcenzuordnung für Gruppen (resource_pooling)
- Legt fest, von welchem Host eine bestimmte Benutzergruppe ihre virtuellen Maschinen erhalten darf.
Produkte für openQRM Cloud anlegen
Um unseren Nutzern Cloud Ressourcen über das Cloud-Portal bereitzustellen, müssen vorab Produkte ausgewählt werden, welche über die Konfiguration einer virtuellen Maschine bestimmen. Die Einstellungen dafür nehmen wir unter „Plugin > Cloud > Configuration > Products“ vor.
Unter der „Cloud Produkt Verwaltung“ lassen sich verschiedene Produkte erstellen, die später unter dem Cloud-Portal von dem Nutzer eigenständig zu vollständigen virtuellen Maschinen zusammengebaut werden können. Zu den Produkten die uns dabei zur Verfügung stehen gehören:
- Anzahl der CPUs
- Größe der lokalen Festplatte
- Größe des Arbeitsspeichers
- Der Typ des Kernel
- Die Anzahl der der Netzwerkkarten
- Vorinstallierte Applikationen
- Typ der Virtualisierung
- Ob eine virtuelle Maschine hochverfügbar sein soll
Über die Statuszeile können mit +/- die jeweiligen Produkte aktiviert bzw. deaktiviert werden und damit dem Nutzer im Cloud-Portal angezeigt oder vor ihm versteckt werden.
Bitte beachten: Produkte die deaktiviert werden, aber noch innerhalb von virtuellen Maschinen aktiv sind, werden weiterhin abgerechnet.
Um nun ein neues CPU Produkt zu erstellen wählen wir den Reiter „CPU“ und bestimmen in dem Bereich „Hinzufügen eines CPU Produkts“ unsere gewünschten Parameter.
Der erste Parameter bestimmt, wie viele CPUs (Kerne), hier 64, unser Produkt haben soll. Über den zweiten Parameter legen wir fest, welchen Wert dieses Produkt hat und wie viele Kosten entsprechend während seiner Nutzung pro Stunde entstehen. In diesem Beispiel entstehen Kosten von 10 CCUs pro Stunde für 64 CPUs.
Anhand der Pfeiltasten lässt sich die Reihenfolge bestimmen, wie die einzelnen Produkte im Cloud-Portal angezeigt werden. Der Default-Wert ist der an obiger Stelle.
Bitte beachten: Im Cloud-Portal existieren Standard-Profile in den Größen „Small“, „Medium“ und „Big“. Die Profile werden automatisch entsprechend der Reihenfolge unter den jeweiligen Produkten bestimmt. Das bedeutet Small nimmt immer den ersten Wert, Medium den Zweiten und Big den Dritten.
openQRM erlaubt es ebenfalls, die virtuellen Maschinen mit vorkonfigurierten Softwarestacks zu bestellen. Dazu greift openQRM auf Puppet (Plugins > Deployment > Puppet) zurück. Damit ist es möglich zum Beispiel den bekannten LAMP-Stack zu bestellen.
Haben wir unsere Produktpalette fertig konfiguriert, ist der Nutzer an der Reihe, sich seine virtuellen Maschinen zu bestellen. Das erfolgt über das Cloud-Portal.
openQRM Cloud-Portal
Für das Erstellen einer neuen virtuellen Maschine (VM) klicken wir im Reiter auf „Neu“. Es
erscheint die Eingabemaske, in der wir unsere VM anhand der Produkte, die der
Administrator im Admin-Backend festgelegt und freigegeben hat, erstellen können.
Wir entscheiden uns für das Profil „Gross“ und einem LAMP-Server. Unsere virtuelle Maschine besteht damit aus den folgenden Produkten:
- TYP: KVM-Storage VM
- RAM: 1 GB
- CPU: 64 Kerne
- Festplatte: 8 GB
- Netzwerkkarte: 1
Darüber hinaus soll diese virtuelle Maschine „Hochverfügbar“ sein. Das bedeutet, wenn diese ausfallen sollte, wird automatisch eine Ersatzmaschine mit exakt derselben Konfiguration hochgefahren, mit der man weiterarbeiten kann.
Für diese Konfiguration werden uns Kosten in Höhe von 35 CCUs pro Stunde entstehen. Das entspricht 0,04Euro pro Stunde bzw. 0,84Euro pro Tag oder 26,04Euro pro Monat.
Wollen wir die virtuelle Maschine bestellen, wählen wir „absenden“.
Unter dem Reiter „Aufträge“ sehen wir alle aktuellen und vergangenen Bestellungen, die wir mit unserem Benutzer getätigt haben. Der Status „active“ in der ersten Spalte zeigt, dass die Maschine bereits hochgefahren ist.
Parallel dazu erhalten wir eine E-Mail mit der IP-Adresse, einem Benutzernamen und Passwort, über die wir uns an der virtuellen Maschine anmelden können.
Der Reiter „Systeme“ bestätigt uns beide Informationen noch einmal und zeigt weitere Informationen zu der virtuellen Maschine. Darüber hinaus haben wir die Möglichkeit, Änderungen an der Systemkonfiguration vorzunehmen, die virtuelle Maschine in den Ruhezustand zu setzen oder neu zu starten. Weiterhin ist der Login über eine Web-Shell möglich.
Die virtuelle Maschine kann, wenn sie nicht mehr benötigt wird pausiert werden. Alternativ besteht die Möglichkeit, dass der Administrator dieses zum Beispiel anhand einer Inaktivität des Systems oder zu einer bestimmten Uhrzeit veranlasst.
Virtuelle Maschine mit dem „Visual Cloud Designer“ erstellen
Neben dem „gewöhnlichen“ zusammenbauen einer virtuellen Maschine, ermöglicht das openQRM Cloud-Portal es dem Benutzer, dieses bequem per Drag-and-Drop zu erledigen. Dabei hilft der „Visual Cloud Designer“, der unter dem Reiter „VCD“ zu finden ist.
Mit dem Schieberegler unter „Cloud Components“ lässt sich zwischen den Produkten auf der linken Seite hin und her scrollen. Mit der Maus lässt sich die „Cloud Appliance“ (virtuelle Maschine) in der Mitte mit den entsprechenden Produkten bestücken.
Unsere virtuelle Maschine „Testosteron“ haben wir in diesem Fall also mit einem KVM-Storage, Ubuntu 12.04, 64 CPUs, 1024 MB Ram, 8 GB Festplatte, einer Netzwerkkarte, Software für einen Webserver und mit der Eigenschaft Hochverfügbarkeit ausgestattet.
Mit einen Klick auf „Check Costs“, sagt uns openQRM, dass wir für diese Konfiguration 0,03 EUR pro Stunde bezahlen würden.
Um den Bestellvorgang für die virtuelle Maschine zu starten klicken wir auf „Request“. Wir erhalten die Meldung, dass openQRM mit dem Ausrollen der Ressource beginnt und wir weitere Informationen im Postfach haben.
Die E-Mail enthält wie bereits oben beschrieben, sämtliche Zugangsdaten, um mit der virtuellen Maschine zu arbeiten.
Im Cloud-Portal unter „Systeme“, sehen wir dann auch bereits die gestartete virtuelle Maschine.
Virtuelle Maschine mit dem „Visual Infrastructure Designer“ erstellen
Neben der Bereitstellung einzelner virtueller Maschinen bietet das openQRM Cloud-Portal zudem die Möglichkeit, vollständige Infrastrukturen, bestehend aus mehreren virtuellen Maschinen und weiteren Komponenten, mit einem Klick bereitzustellen.
Dafür greifen wir auf den „Visual Infrastructure Designer“ zurück. Dieser ist im Cloud-Portal unter dem Reiter „VID“ zu finden.
Über den „VID“ lässt sich per Drag and Drop eine vollständige WYSIWYG Infrastruktur zusammenbauen und direkt ausrollen. Hierzu müssen anhand des „VCD“ oder auf normalem Weg jedoch zunächst fertige Profile mit vorkonfigurierten virtuellen Maschinen z.B. Webserver, Router, oder Gateways erstellt werden, die anschließend provisioniert werden können.