Im ersten Artikel dieser Serie haben wir erklärt, dass virtuelle Instanzen wie z.B. VPS nur dank der Technologie der Virtualisierung möglich sind. Aber wie funktioniert die Virtualisierung genau?
Im zweiten Teil der Cloud Explained Serie reden wir darüber, wie eine virtuelle Maschine mit der Hardware verbunden wird und welche Software für so eine Virtualisierung nötig ist. Außerdem nennen wir die populärsten Tools, welche für eine Virtualisierung genutzt werden.
Was ist Virtualisierung?
Um es einfach zu erklären: Virtualisierung ist ein Prozess, bei dem ein physischer Computer einen virtuellen Computer erstellt. Diesen virtuellen Computer nennen wir häufig VPS, virtuelle Maschine oder Cloud Instanz.
Diesem wurde eine gewisse Kapazität des originalen, physischen Computers zugewiesen. Wie ein normaler Computer verfügt auch jede virtuelle Instanz über eine gewisse Anzahl an RAM (Arbeitsspeicher), CPU-Kernen, Speicherplatz und anderen Ressourcen. Obwohl es sich um eine virtuelle Umgebung handelt, kann diese dieselben Aufgaben wie ein nicht-virtueller Computer übernehmen.
In diesem Screenshot zeigen wir euch ein Beispiel:
Wie ihr sehen könnt gehört der Desktop zu einem Microsoft Windows Betriebssystem. Im linken Fenster läuft allerdings Linux Ubuntu. In diesem Fall ist das Host Betriebssystem also Microsoft Windows. Darauf läuft eine virtuelle Maschine, welche mit Ubuntu Linux ausgestattet ist. Die virtuelle Maschine läuft also auf Windows. Sowohl das virtuelle als auch das Host Betriebssystem sind unabhängig voneinander, allerdings können beide gleichzeitig laufen.
Demselben Prinzip folgen kommerzielle Szenarien. Der Unterschied ist allerdings, dass das Host System auf einem physischen Server irgendwo in einem Rechenzentrum läuft. Du als Kunde hast nun die Möglichkeit, ein Stück der Leistung dieses physischen Servers in Form eines VPS zu kaufen. Wie groß genau das Stück seien soll und welches du kaufst, hängt u.a. davon ab, wie viel Geld du ausgeben möchtest und wie viel Leistung du brauchst. Die meisten modernen Server haben sehr viel Leistung, weshalb du höchstwahrscheinlich nur einen Bruchteil der vorhandenen Leistung in Anspruch nimmst. So verfügt unser größter VPS, nämlich der VPS XL über 10 CPU-Kerne und 60GB RAM, während das Host System mit 32 CPU Kernen und 512GB RAM ausgestattet ist.
Virtuelle Instanzen sind also voll funktionsfähige virtuelle Computer mit einem eigenen Betriebssystem. Hier bei Contabo können Kunden aus den verschiedensten Betriebssystem auswählen oder sogar ihr eigenes .iso Image hochladen:
All dies ist nur dank der Virtualisierung möglich.
Die Idee, einen großen physischen Server in mehrere, unabhängige Server zu unterteilen geht bis in die 1960er und 1970er Jahre zurück, als IBM mit dem sogenannten time-sharing experimentierte. Der Grund ist aber nach wie vor der selbe: Mehrere Personen können den selben Computer nutzen und die Ressourcen teilen.
Virtuelle Maschinen, Virtuelle Instanzen und VPS
Auch wenn es sehr verwirrend seien kann, so nutzt die IT-Community verschiedene Ausdrücke für virtuelle Computer. So werden diese von einigen als virtuelle Maschinen (VMs) bezeichnet, während andere virtuelle Instanz oder Cloud Instanz bevorzugen.
Einige Ausdrücke werden speziell für Verkäufe genutzt. So nutzen andere Anbieter wie Amazon „EC2“ oder Digital Ocean „Droplet“ als Produktname für VPS. Auch hier beziehen sich alle Ausdrücke wieder auf dasselbe Konzept.
Virtuelle Maschinen und Container
Sowohl virtuelle Maschinen als auch Container lenken aktuell den Fokus der IT Industrie auf sich. Beide nutzen Virtualisierung. Allerdings bestehen virtuelle Maschinen aus einem ganzen, unabhängigen Betriebssystem, während Container kleiner und portabler sind, welche sich die Leistung des Host Systems teilen.
Im nächsten Artikel der Cloud Explained Serie wird es genauer um Container gehen. In diesem Artikel soll der Fokus aber auf virtuellen Maschinen liegen.
So funktioniert es
Moderne Virtualisierung durch Hypervisoren
Zu Beginn wurde Softwarevirtualisierung auf dem Hauptbetriebssystem betrieben. Diese Methode stellte sich allerdings als weniger effektiv als die heutige Virtualisierung heraus, welche hauptsächlich Hardwarebasiert ist.
Hardwareressourcen, wie CPU Kerne, RAM und andere Ressourcen werden dynamisch an die verschiedenen virtuellen Instanzen verteilt. Die Software, die diesen Verteilungsprozess übernimmt, heißt Hypervisor.
Der Hypervisor wird direkt auf dem Server installiert. Er fungiert als eine Art Hardwaretreiber im Kernel des Betriebssystems, welcher sehr schnell mit den Komponenten des Servers kommunizieren kann. Vereinfacht erklärt funktioniert der Hypervisor also wie ein Treiber, der es deinem Computer ermöglicht, z.B. mit deinem Drucker oder deiner Netzwerkkarte zu kommunizieren.
Es gibt allerdings zwei verschiedene Arten von Hypervisoren – Typ1-Hypervisor (auch „Hosted Hypervisor“) und Typ2-Hypervisor. Während der Typ1-Hypervisor direkt mit der Hardware des Systems kommuniziert, benötigt der Typ2-Hypervisor ein Betriebssystem als Zwischenschritt.
Beide Arten von Hypervisoren finden im Alltag Anwendung, allerdings kommt der Typ1-Hypervisor meist bei kommerziellen Projekten zum Einsatz, da dieser einfach schneller ist.
Vielleicht hast du schonmal Namen wie „Hyper-V“, „XEN“ oder „Citrix“ gehört, welche alle zu den kommerziell genutzten Typ1-Hypervisoren gehören.
Typ2-Hypervisor sind für Nutzer gedacht, welche ein separates Betriebssystem auf ihrem Standard-Betriebssystem nutzen wollen. Da Typ2-Hypervisoren vielseitig genutzt werden können, stellen sie das ideale Tool für die Softwareentwicklung dar. Ist dir das Programm, auf welchem die virtuelle Ubuntu Umgebung im ersten Bild läuft, aufgefallen? Dieses Programm heißt Oracle VM Virtual Box – ein Typ2-Hypervisor.
Wie verwalten Hypervisoren Hardware Ressourcen?
Aus Anwendersicht verhalten sich virtuelle Maschinen so, als würdest du auf einer nicht-virtuellen Maschine, also auf deinem normalen PC, arbeiten. Obwohl weitere virtuelle Instanzen auf demselben physischen Server laufen, bekommst du davon nicht mit.
Die zugewiesenen Ressourcen verändern sich konstant, da sie immer an die aktuellen Bedürfnisse des Nutzers einer Instanz angepasst werden. Hypervisoren weisen jeder Instanz genau die Anzahl an Ressourcen zu, die sie braucht. Manchmal brauchst du mehr Ressourcen als die andere Instanz, manchmal braucht die andere Instanz mehr Ressourcen, während deine Instanz nur minimal CPU und RAM Leistung benötigt. Eben dieses Prinzip der Ressourcenverteilung macht virtuelle Instanzen so ressourcenschonend und bezahlbar.
Erwähnenswerte Virtualisierungssoftware
In den vorherigen Kapiteln haben wir dir erklärt, dass man spezielle Software zum Erstellen einer virtuellen Instanz benötigt – nämlich Hypervisoren. Lasst uns einen Blick auf die aktuell bekanntesten Hypervisoren werden. Da sich die Cloud Explained Series hauptsächlich – wie der Name bereits verrät – mit Cloud-System beschäftigt, befassen wir uns mit Hypervisoren, welche kommerziell eingesetzt werden.
Bei allen nachfolgend genannten Hypervisoren handelt es sich um Typ1-Hypervisoren, welche direkt auf der Hardware installiert werden, ohne ein Betriebssystem dazwischen zu schalten.
Xen (historisch)
Xen war ein Vorreiter in Sachen kommerzieller Virtualisierung und wurden 2007 von Citrix gekauft. Das Xen Projekt wurde in den späten 1990er Jahren in der Cambridge Universität entwickelt und stellt einen Meilenstein im kommerziellen Hypervisor Deployment dar, denn das Ziel des Projektes war:
"Unser Programm ist so entwickelt, dass bis zu 100 virtuelle Maschinen gleichzeitig auf einem modernen Server laufen können." Computer Laboratory, University of Cambridge
VMware vSphere
VMware vSphere dominiert aktuell den kommerziellen Sektor.
Features:
- Beliebtester Hypervisor auf dem Markt
- Ausführliche Möglichkeiten der Optimierung für Experten
- Testversion kostenlos – teure Vollversion
Hyper-V
Hyper-V ist Microsoft eigener Hypervisor, welcher für Kunden gedacht ist, die ohnehin schon Microsoft-Produkte und keine Open-Source-Software verwenden.
Features:
- Einfache Implementierung für Firmen, welche ihre Infrastruktur auf Microsoft-Produkten aufgebaut haben.
- Günstiger als vSphere, allerdings auch weniger Features.
Citrix
Citrix ist eine günstige Alternative für kommerzielle Einsatzzwecke und Projekte. Die Firma hinter Citrix ist führend in der 3D Grafikvirtualisierung
Features:
- Günstiger als Hyper-V und vSphere
- Perfekt für Unternehmen, welche sowohl Linux, als auch Windows nutzen
- Optimiert für 3D Grafiken
KVM
KVM ist eine Open-Source-Software, welche direkt in Linux integriert ist und somit den Linux Kernel selbst in einen Hypervisor verwandelt. Obwohl KVM Open-Source ist, wird es auch in kommerziellen Paketen, wie in der Red Hat Virtualization Suite angeboten.
Features:
- Funktioniert nativ auf Linux – einfache Einbindung in jedes Linux Betriebssystem.
- Kostengünstig, da Open-Source
KVM ist aktuell der bevorzugte Hypervisor von Contabo. Mehr Informationen
diesbezüglich findest du in Kapitel 5.
Vorteile von Virtualisierung
Einfache Skalierbarkeit von virtuellen Maschinen
Da VPS Instanzen virtuell sind, ist es sehr einfach, die Hardwareressourcen, wie z.B. den Arbeitsspeicher (RAM), die Anzahl der CPU-Kerne oder den Festplattenspeicher zu erhöhen. Einzelne Nutzer nutzen nämlich nur einen Bruchteil der gesamten Serverkapazitäten des Providers. Somit kann dein Provider deiner Instanz ganz einfach mehr Ressourcen zuweisen.
Contabo bietet das ändern von Systemressourcen durch eine API direkt im Customer Control Panel an:
Das Hochskalieren eurer VPS Instanz unterbricht hierbei weder die Arbeit eures Servers hat hat es Auswirkung auf eure Daten. Ein Hardwareupgrade ist nahtlos und sofort.
Hierbei sprechen wir übrigens nicht nur über das Ändern von Parametern auf dem physischen Server, sondern auch über die Möglichkeit, eure Instanz auf einen anderen Server zu verschieben. Der Provider kann eure Instanz ohne Unterbrechungen auf einen anderen Server verschieben.
Virtuelle Maschinen sind bezahlbar
Die Preise für einen VPS ist um ein vielfaches geringer als für einen dedicated Server. So kostet der kleinste VPS 3,99€, während ein Bare Metal Server in Standardausstattung mindestens 139€ kostet.
Durch den Aufstieg von VPS ist es auch kleineren Unternehmen möglich sich unabhängig zu machen. So bietet ein VPS einen eigenen virtuellen Server, eine eigene IP-Adresse und ein eigenes Betriebssystem.
Allerdings stellt ein VPS keinesfalls eine low-end Lösung dar. So kaufen große Firmen zum Beispiel sehr viele VPS um ein komplexes Cloud-System zu erstellen. Hierbei wird jedem Server eine spezielle Aufgabe zugewiesen, dessen Ergebnis durch eine API an die nächste Instanz übergeben wird. Somit ist es einfach Aufgaben zu skalieren, welche sonst die Kapazität eines einzelnen Servers überfordern würden. Auch aus Sicherheits- und Debugging-Perspektive lohnen sich VPS. Solche Cluster können extreme Größen annehmen. Unser größter Kunde nutzt tausende VPS gleichzeitig.
Virtuelle Maschinen sind Sicher
Jede virtuelle Maschine läuft in ihrer eigenen Umgebung – Unabhängig von den anderen Instanzen. Genau deshalb verwenden viele Entwickler virtuelle Maschinen als sichere „Sandbox“ (Testumgebung). Sollte etwas schief laufen, sind alle anderen Instanzen noch intakt.
Diese Unabhängigkeit ist nicht nur für Entwickler interessant. Sollte eine Instanz einmal abstürzen, anderweitige Fehler aufweisen oder von einem Hacker angegriffen werden, bleibt der Rest des Netzwerks unbeschadet und die Geschäfte können wie gewohnt weiter gehen.
Virtualisierung bei Contabo
Wie bereits erwähnt, nutzen wir die Hypervisor Software KVM (Kernel-based Virtual Machine) als unseren Standard-Hypervisor. KVM bietet hier die maximale Leistung und unterstützt die sogenannte „para-Virtualisierung“. Diese Treiber verbessern die Leistung der Nutzer, welche aufwendige Aufgaben auf ihrem Server ausführen.
Hauseigener Expterte Tino Lehnig, Cloud Architekt
„Wir schätzen KVM nicht nur wegen seiner Leistung, sondern auch wegen seiner Flexibilität. Unser Linux-basiertes KVM-Hostsystem ermöglicht es uns, unsere eigenen maßgeschneiderten Orchestrierungs-Tools zu entwickeln, um die Softwarebereitstellung, die Leistungsüberwachung und den automatisierten Lastausgleich zu erleichtern.“ – sagt Tino Lehnig. „Im Laufe der Jahre haben wir mehrere maßgeschneiderte Tools entwickelt, um den Contabo-Kunden einen möglichst reibungslosen Betrieb zu ermöglichen.„
Contabo hat die Hypervisoren so konfiguriert, dass die Last auf dem physischen Server so verteilt wird, dass die Performance jedes VPS stabil bleibt. Wir beobachten die Leistung unseres Host-Servers in Echtzeit, um überforderte Server zu identifizieren. Sollte dies der Fall sein, migrieren wir einige virtuelle Maschinen von dem einen auf den anderen Server, welcher mehr Ressourcen zur Verfügung hat – ohne das der Kunde etwas davon merkt.