Infrastructure as a Service Flashcards
IaaS Motivation
- Bereitstellung von Hardware-nahen Ressourcen in Form von virtuellen Maschinen (VMs) und Datenspeicher; entfernt zugreifbar über eine einfache Schnittstelle
- Pay-as-you-go – abgerechnet werden nur verbrauchte Ressourcen
- Elastische Nutzung und nahezu unbegrenzte Skalierbarkeit
generische Architektur
- Hardware und Betriebssystem
- Netzwerk und Netzwerkdienste (z. B. DHCP, DNS)
- Virtualisierung
- Datenspeicher und Image-Verwaltung
- Managementschnittstelle für Administratoren und Benutzer
- Cloud-Controller: Management der Ressourcen
Architektur - Netzwerk und Netzwerkdienste
- Verwaltung und Einbindung der realen und der virtuellen Infrastruktur
- Zuordnung einer eindeutigen (virtuellen) MAC pro virtueller Maschine
- Vermittlung des Datenverkehrs zwischen der realen Maschine und den virtuellen Maschinen (bridge)
- Automatische Einbindung mittels DHCP (Zuordnung einer IP-Adresse) und DNS (Zuordnung eines Host-Namens)
- Eventuell Etablierung privater Netzwerke etc.
Umsetzung
- Cloud Controller muss bei Erzeugung einer virtuellen Maschine die Virtualisierungsinfrastruktur konfigurieren und entsprechende Informationen an den DHCP- sowie den DNS-Server weitergeben
Architektur - virtualisierung
- Siehe letztes Kapitel: Xen, KVM, VServer etc.
- Im Open-Source-Bereich wird oft von der verwendeten Virtualisierungslösung mittels libvirt abstrahiert
Umsetzung: libvirt
- Stellt einheitliche Schnittstelle zum Verwalten von unterschiedlichen Virtualisierungslösungen zur Verfügung
- Einfache C-Schnittstelle und Kommandozeilenunterstützung z. B., Starten, Stoppen, Migrieren und Pausieren von VMs
- Kommandos werden über den libvirtd entgegengenommen: Ermöglicht lokales wie auch entferntes Management von VMs
Architektur - Datenspeicher und Imageverwaltung
- Schnelle Erzeugung und De-/Installation und VM-Images
- Images müssen konfiguriert und eventuell um spezifische Software ergänzt werden
Umsetzung
- Repository für VM-Images
- In der Regel Vorlagen, die erst noch in ein lauffähiges System umgewandelt werden - z. B. durch Hinzufügen einer Swap-Partition oder Anpassung der Partitionsgröße
Architektur - Managementschnittstelle für Benutzer
- In der Regel grafische Benutzeroberfläche für Anwender
- Anfordern neuer VMs
- Benutzerspezifische Konfiguration – z. B. Amazon EC2-Größenklassen für VMs oder Ort der Ausführung
- Verwaltung von Credentials für den sicheren Zugriff auf VMs
Architektur - Cloud Controller
- Zentrale Komponente einer IaaS-Infrastruktur
- Umsetzung der Benutzeranforderungen für die Erzeugung von VM-Images und ihre Installation
- Um-/Verteilen von VMs
Status Quo Open Source IaaS Infrastrukturen
- IaaS kann aktuell als wichtigste bzw. grundlegendste Form von Cloud Computing betrachtete werden
- Bedingt durch den Erfolg von Amazon EC2 haben sich eine Reihe von Initiativen zum Ziel gesetzt einen freie IaaS-Plattform zu entwickeln
- Beispiele:
- OpenStack (http://www.openstack.org/)
- Nimbus (http://www.nimbusproject.org/)
- OpenNebula (http://www.opennebula.org/)
- Aktuell ist unklar welche der Initiativen Bestand haben wird
- Wechsel zwischen Plattformen wird erschwert
- durch unterschiedliche Image-Formate und verwendete Form der Virtualisierung
- unterschiedliche erweiterte APIs, z.B. für dynamische Skalierung
- Es gibt aber auch Unterstützung für hybrides Cloud Computing, welches eine gewissen Kompartibiltät erzwingt
Eucalyptus Grundlagen
Motivation
- Bereitstellung einer offenen IaaS-Infrastruktur
- Basis für Forschung, die mit aktuell dominierenden kommerziellen Lösungen nicht möglich war
- Initial frei verfügbare als Basis für Private-Cloud-Installation z. B. für eine Zeit Bestandteil von Ubuntu Linux
Technische Merkmale
- Traditionelles hierarchisches Design vergleichbar zu anderen Infrastrukturen aus dem Bereich Grid-Computing
- Schnittstellen sind ähnlich bzw. identisch zu Amazon EC2
- Erleichtert Portierung von Anwendungen
- Existierende Werkzeuge für EC2 können verwendet werden
- Alle tragenden Komponenten besitzen eine Web-Service-Schnittelle
- Unter Verwendung von libvirt Integration von Xen und KVM
Eucalyptus Node Controller (NC)
- Verwaltet Ressourcen eines Rechners
- Verbindungsglied zum Cluster Controller
- Monitoring
- Installierte Software
- Verfügbare Ressourcen (z. B. Anzahl der CPUs und Arbeitsspeicher)
- Anzahl und Eigenschaften der laufenden VMs
- Information werden auf Anfrage des Cluster Controllers ermittelt – z. B. durch describeInstances-Aufruf
- Verwaltung von VMs
- Authentifizierter Besitzer einer VM oder der Administrator der Cloud kann eine virtuelle Maschine beenden
- Vor Start einer VM wird überprüft, ob die benötigen Ressourcen verfügbar sind, und es muss ein Image installiert werden
Eucalyptus Cluster Controller
- Kombiniert Informationen eines Clusters z. B. durch describeInstances abrufbar
- Vermittlung von Aufrufen an einzelne NCs
- Verteilung von VMs
- Anfrage bei NCs nach freien Ressourcen (describeResources)
- First-Fit-Strategie: Sobald ein NC über genügend freie Ressourcen verfügt wird die Instanziierung auf der betreffenden Maschine eingeleitet
- Wird heute so nicht mehr gemacht!
Eucalyptus Virtual Network Overlay
- Typischerweise haben Anwender mehr als eine VM
- Entsprechend müssen alle VMs eines Anwenders gemeinsam verwaltet werden
- Mindestens eine VM eines Benutzers muss extern zugreifbar sein
- Es werden verschiedene Konfigurationsoptionen unterstützt
- Zuweisung von MAC-IP-Tupel durch den NC (auch andere Optionen möglich)
- Feste Menge von IPs, die an laufende Instanzen gebunden ist
- VMs verschiedener Benutzer sollten/müssen voneinander isoliert werden
- Anwender haben root-Privilegien innerhalb ihrer VMs und damit auch vollen Zugriff auf die jeweils zugehörige Netzwerkschnittstelle
- Durch Eucalyptus verwaltetes Netzwerk
- Pro Anwender wird ein eigenes VLAN angelegt
- Durch entsprechende Firewall-Regeln wird Isolation erreicht
Eucalyptus - Walrus - Datenspeicher und Image Verwaltung
- Implementiert die Amazon-S3-Schnittstelle
- Einfache Key-Value-Schnittstelle für Dateien
- Bei konkurrierenden Schreibeoperationen wird nur der aktuellste Aufruf durchgeführt
- Values werden nur komplett geschrieben
- Kann von innerhalb und außerhalb der Cloud zugegriffen werden
- Bildet Repository für VM-Images
- Images werden als mehrere verschlüsselte Dateien abgelegt
- Bei Anforderung eines Images durch einen NC werden Dateien von Walrus entschlüsselt und auf ihre Integrität überprüft
- Abschließend erfolgt Transfer zum NC
Eucalyptus Cloud Controller
- Cloud Controller realisiert drei Gruppen von Diensten
- Resource Services – Allokation von Ressourcen und ihre Konfiguration
- Data Services – Verwaltung von Anwender- und Systemdaten – Ermöglicht die flexible Konfiguration von Allokationsstrategien
- Interface Services – Schnittstellen für Anwender
Amazon Simple Storage Service (S3) - Motivation
Motivation:
- Laut Amazon: ..storage for the Internet …designed to make web-scale computing easier …
- Bereitstellung von flexible skalierbarem Datenspeicher
- Zugreifbar über eine einfache und plattformunabhängige Schnittstelle
Amazon S3 Basiskonzepte
- Buckets – Konfigurierbarer Container für Datenobjekte
- Wurzel eines Namensraums in S3
- Assoziiert mit einem Benutzer
- Einheit für Abrechnung und Statistik
- Flexible Zugriffsrechtvergabe auf Teile des Namensraums möglich
- Beispiel: http://.s3.amazonaws.com
- Objects – Eindeutig identifizierbares (unteilbares) Datenobjekt
- Setzt sich aus Nutzdaten und Datenbeschreibung zusammen
- Datenbeschreibung enthält z.B. Standard HTTP Attribute
- Unterstütze Operationen: Erzeugen, Lesen, Schreiben und Löschen
- Eindeutig identifizierbar durch Key (Namen) und Version ID.
- Keys – Eindeutiger Name eines Objekts innerhalb eines Buckets
- Beispiel: http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl
- Kann durch Versionsinformation ergänzt werden, welche durch den Dienst vorgegeben sind
- Region
- Ermöglicht trotz globaler Erreichbarkeit der Daten eine Zuweisung des Lagerungsortes
- Ermöglicht Optimierung auf geographisches Nutzungsprofil sowie teilweise Einhaltung von rechtlichen Anforderungen
Schnittstellen
- SOAP und REST via HTTP(S)
Amazon S3 Konsistenzmodell
= eventual consistency
- Es gibt eine ganze Reihe von Konsistenzmodell, zwei Ausprägungen definieren jedoch den Rahmen:
- Starke Konsistenz – Nach einer Änderung wird garantiert, dass alle denselben Wert sehen bzw. lesen
- Schwach Konsistenz – Nach einer Änderung wird nicht garantiert, dass immer derselbe Wert zurückgegeben wird – Ob und wann die Änderung für alle sichtbar wird hängt in der Regel von Nebenbedingungen ab
- Eventual consistency stellt eine Form der schwachen Konsistenz dar, bei der Änderungen erst nach einer gewissen Zeit global sichtbar werden
- Vorteil: Schneller Lesezugriff
- Auch wenn Änderungen aktiv propagiert werden können (lokal) replizierte Daten gelesen werden
- Nachteil: Zugriff auf veraltete Daten möglich!
Amazon S3 Authentifizierung
- Anfragen sind entweder
- von einem authentifizieren Nutzer
- oder anonymous
- Jeder registrierte Nutzer hat
- einen mit Amazon gemeinsamen geheimen Schlüssel
- einen mit dem Benutzer assoziierten öffentlichen Schlüssel
- Authentifizierung und Überprüfung von Datenintegrität unter Verwendung der REST Schnittstelle geschieht mittels eines Hash-based Message Authentication Code (HMAC)
- URL der zugegriffen Ressource zusammen mit einem geheimen Schlüssel wird durch eine Hashfunktion auf eine Hashschlüssel abgebildet
- URL wird zusammen mit dem Hashschlüssel und dem öffentlichen Schlüssel übertragen
- Auf der Empfängerseite wird mittels des öffentlichen Schlüssels der gemeinsame geheimen Schlüssel ermittelt und der Hashschlüssel überprüft
Amazon S3 Zugriffsrechte und Fazit
Zugriffsrechte
- Können auf Ebene von Buckets oder Objects vergeben werden
- Access Control Lists (ACL) als Mechanismus
- Rechte z.B. READ, WRITE, READ_ACP, WRITE_ACP und
- FULL_CONTROL an authentifizierte Nutzer
Fazit
- Einfache Schnittstelle zur Speicherung von Daten
- Benötigt keinen spezifische zusätzliche Systemunterstützung
- Bildet aktuell Standard bzw. Vorbild für andere Systeme
- Kann auch auf Server-Seite auf Grund von eventual consistency leicht umgesetzt werden
- Erweiterte Konsistenzgarantien müssen durch die nutzende Anwendung implementiert werden