Wozu Virtualisierung?

mojodoll

Registered User
Ich selber beschäftige mich jetzt auch nach einer mehrjährigen Pause wieder mehr und recht ausführlich mit der Administration von *nix Boxes und will in absehbarer Zeit auch in dem Bereich mein Geld verdienen.

Wohin man schaut, zb. in Stellenausschreibungen werden häufig Virtualisierungskenntnisse verlangt, und im Allgemeinen begegnen einem VMWare ESXi, KVM, etc. wo man hinschaut.
Mir erschliesst sich aber der Vorteil in Enterprise-Environments nicht direkt, natürlich abgesehen von vServer Anbietern.
Ich kanns nicht nachvollziehen wozu man VMs braucht wenn man zb. ein simples LAMP aufsetzen möchte? Die Dienste können doch auch so wunderbar coexistieren, und wenn man an die Grenzen der Hardware stösst, kommt man nun mit oder ohne VM nicht um ein Hardwareupgrade rum - selbst wenn man nur einen Dienst zb. in der RAM-Auslastung limitieren möchte ist irgendwann Schluss (und da gibts auch andere Möglichkeiten). Für HA-Umgebungen sind die Virtualisierungen ja sowieso nicht zu gebrauchen (oder?).
Genauso der Sicherheitsaspekt - benötige/wünsche ich die Sicherheit die Software relativ abgeschottet zu betreiben, arbeite ich mit chroot und dementsprechend gepatchten Kernels oder verwende direkt FreeBSD-jails für die jeweiligen Applikationen.

Daher meine Frage: - um nicht wie "old grumpy" nur daherzubrummeln "Überflüssig! Braucht kein Mensch! Da halt ich nix von!" - wie und in welchem Zusammenhang nutzt ihr Virtualisierung und wieso haltet es für Sinnvoll, welche klaren Vorteile (gerne auch genauso begründete Nachteile!) seht ihr?

Anmerkung: wie gesagt, die Existenz von vServern ist klar absolut berechtigt, das füllt im Hostingsegment gut die Lücke zwischen Webhosting und Dedicated-Server, genauso wie der Umstand dass man zu Clustern nun vermehrt Cloud sagt. ;>
 
Naja ich denke mal ein großer Vorteil ist, dass je nach virtualisierungstechnik die Hardware komplett abstrahiert wird, sodass du eine virtuelle Maschine (live) auf eine andere, evtl. leistungsfähigere Hardware migrieren kannst, ohne Treiber etc. anpassen zu müssen.

Auch die Konsolidierung mehrerer Server, die ggf. unterschiedliche Betriebssysteme benötigen, auf eine gemeinsame Hardware ist durch Virtualisierung. Das spart Strom und schont den Geldbeutel :)
 
Unter anderem gibt es auch Software, die auf neuer Hardware einfach nicht läuft.

Um mal ein Beispiel zu nennen: Ich habe mal in einem Warmwalzwerk gearbeitet. Dort wurde z.B. die Schlingenreglung durch ein uraltes Programm verwirklicht. Ich glaub die haben Assembler verwendet. Es war zwar uralt, aber es funktionierte perfekt. Auf neuer Hardware wird das Programm nicht laufen und die Hardware wird man so auch nicht mehr bekommen. Also was machen, wenn die alte Hardware kaputt geht. Es bleiben einem nur zwei Möglichkeiten. Neu schreiben oder in einer VM laufen lassen. Die Software in einer VM laufen lassen ist auf kurzer Sicht wirtschaftlicher. Gerade wenn so ein System ausfällt, ist Not in Holland, wenn nicht vorgesorgt worden ist. In dem Fall ist der Betrieb in einer VM sicherlich eine schnellere Lösung, als die alte Hardware zu beschaffen (eigentlich ausgeschlossen) oder das Programm komplett neu schreiben zu lassen.

Die anderen Ansätze wurden ja schon genannt. Unter anderem ist es auch toll eine VM im Betrieb mal eben auf eine andere Hardware zu schieben, wenn es erforderlich ist.
 
Zwei Einsatzzwecke:

1. Sind Server heute so leistungsfähig, dass man sie kaum sinnvoll ausgelastet bekommt. Du lässt also nicht einen LAMP-Stack auf einem Server laufen, sondern einen LAMP-Stack virtualisiert, und dann noch nen Mail-Server, und nen LDAP-Server, und ... alles schön sauber isoliert. Aber nicht nur softwareseitig gekapselt wie in Jails, sondern mit kompletten Ressourcen-Management und Hardware-Abstraktion. Sogar verschiedene OS sind möglich.

2. HA-Umgebungen. Gerade da ist Virtualisierung geil. Du hast 4 Server und verteilst deine VEs. Jetzt können die VEs je nach Auslastung und Verfügbarkeit online zwischen den Hardware-Nodes migriert werden. Fällt ein Node aus, kein Problem, läuft die VE eben auf nem anderen weiter als wäre nix geschehen.
 
Du sparst:
- Strom (der Server und die Klimaanlagen und die USVs...)
- Kosten - ein dicker Server ist billiger als 5 kleinere
- Wartungsaufwand für die Hardware

Der Vorteil ist:
- Die Maschine ist Hardware-Unabhängig. Wenn du schnellere Hardware unter der VM brauchst, ziehst du sie innerhalb von Sekunden darauf um...
- Wenn eine virtuelle Maschine zickt, kannst du sie per VNC oder proprietäre Remoteverwaltungstools der jeweiligen Virtualisierer schneller reparieren und brauchst nicht in jedem Server teure IPMI-Karten und noch teurere IP-KVMs. Wenn da eine Maschine mit Kernel-Panic hängt, kannste einfach in deiner Hängematte liegend auf "Reset" klicken und dich freuen.
- Wird eine Maschine gehackt, ist erstmal nur diese eine Maschine betroffen und kann abgeschaltet / vom Netz genommen werden. Hackt dir einer den Webserver hat er immerhin nicht deine ganzen Datenbanken und Mails gesehen...
- Einfacheres Backup - einfach die virtuelle Festplatte bzw. das logische Volume der VM wegsichern und fertig ist dein Vollbackup.
- Du kannst "mal eben was ausprobieren", indem du dir "mal eben" eine virtuelle Maschine erstellst. Wenn du dann noch einen Snapshot des Datenträgers machst, kannst du spielen wie du willst - wenn alles kaputt ist, spielst du den Snapshot wieder zurück und kannst von vorne anfangen.
- Wenn du Windows- und Linux-Server nebeneinander betreibst, hättest du dafür auch mindestens zwei Server benötigt. So brauchst du jetzt nur einen und hast darauf 9 Windows- und 11 Linux-Maschinen (oder so...)

Der Nachteil ist:
- Du hast etwas höheren Aufwand bei der Pflege der VMs
- Du benötigst mehr öffentliche IPs (oder du machts Schweinerouting mit NAT und PAT)
- Nicht alles lässt sich virtualisieren. VoIP-Server mit direktem Zugriff auf die ISDN-Karte ist etwas frickelig und derzeit leider auch nicht so ganz brauchbar - ISDN-Timing und Virtualisierung veträgt sich eher so mittel.
- Fällt der Host aus, sind direkt alle darauf laufenden Maschinen weg.

Und nicht zu vergessen:
Man kann damit etwas einfacher Hochverfügbarkeitssysteme bauen - auch über mehrere Standorte hinweg.
Fällt in RZ 1 der Strom aus, transferierst du mit der knappen USV-Power die dort laufenden VMs auf andere Hostsysteme in RZ 2, änderst die Routen für die IPs und hast damit eine Downtime von nur wenigen Sekunden.
Der Vorteil der Virtualisierung hierbei ist, dass du die VM einfach "einfrieren" kannst und damit wirklich alle Dienste eines Servers live verschieben kannst.
OK, ein bisschen aufwändiger ist das schon, aber prinzipiell so funktionsfähig ;)
 
Last edited by a moderator:
Vielen Dank für die ausführlichen und zahlreichen Antworten, wirklich überzeugend, hät ich mir so garnicht vorstellen können.
Das sind alles wirklich interessante Anwendungsgebiete, wird wohl Zeit dass ich mich da mal ausführlich mit beschäftige :>
 
Noch ein paar Beispiele außerhalb von Rechenzentren:

Sichere Updates:
(System-)Updates von Produktiv-Servern kann im Vorfeld getestet werden.

Testing-Stage für Software-Entwickler:
Treiber-Programmierung, System-Eingriffe, etc kann man bequem auf einer kopierten VM testen. Denn wenn es in die Hose geht, erstellt man einfach eine neue VM.
Mit der richtigen Vitualisierungssoftware lässt sich sogar ein "abgestürztes OS" von außen debuggen.

Skalierung im Betrieb:
Statt viele Klein-Server wird ein Großer genommen. Damit ein Absturz nicht gleich alle Dienste in die Knie zwingt, wird mit VMs gearbeitet.
Auch eine Staging-Maschine (z.B. zum Kompilieren eines Embeded-Linux-System) kann die CPU voll Auslasten ohne dass die anderen VMs aus gebremst werden.

Die Anwendung von Virtualisierung in Büros und Betrieben ist sehr vielseitig.
Allerdings muss auch hier immer mit Bedacht gearbeitet werden. Mir sind auch schon echt Hirnrissige Dinger unter gekommen. Oder ernsthafte Probleme beim Verschieben von VMs mit denen vorher keiner rechnen konnte.

huschi.
 
wobei man auch anmerken sollte, daß VMs nicht für alles das Gelbe vom Ei sind - man sollte also wirklich genau analysieren, welchen Bedarf an HW die laufende Software hat, wie man evtl. Ausfallsicherheiten hinbekommt, ...

je nach Umgebung hat sich dann das Thema Virtualisierung recht schnell erledigt und man bleibt bei ded. Servern im RR-Betrieb...
 
Wir haben unsere HA Webfarm auch virtualiersiert. Ich persönlich sehe nur Vorteile darin.

Vor allem gewinnst du Skalierbarkeit, wenn du aus einem 5-Node Cluster aus Performancegründen einen 7-Node Cluster machen musst, klonst du die Büchsen einfach. Klar musst du dabei ein paar Dinge beachten, aber es ist wesentlich komfortabler, als zwei neue Bleche zu kaufen, die ins Rack zu schrauben und die aufzusetzen etc.

Wie meine Vorredner schon sagen, bieten Hostsysteme vor allem im Cluster-Verbund auch diverse Vorteile. Wir lassen z.B. alle geraden VMs (web2, web4...) auf den geraden ESX-Hosts laufen und alle Ungeraden (web1, web3...) eben auf den Ungeraden.
Sollte dort dennoch irgendwas schief gehen, gibts eine Live-Migration.

Außerdem bieten solche Lösungen nicht nur die Virtualisierung von Maschinen, sondern auch von z.B. Switches, d.h. du kannst total simpel diverse Szenarios durchtesten ohne direkt 10 Switche kaufen zu müssen.

Also ich persönlich finde diese Technologie ziemlich knorke und kann dir nur empfehlen, damit ein wenig zu rumzuspielen.

Gruß
dante
 
Back
Top