Ihr Spezialist für Linux und Open Source in Norddeutschland
Lübecker Str. 1 - 22087 Hamburg
fon: ++49 (0)40 450 17 123 - fax: ++49 (0)40 410 68 13
email: info (at) udslinux.de
zur LIVE-Homepage
zur debian-Homepage

Schulung

Support

Infos

UDS Linux Virtualisierungs-Lösungen

Virtualisierung / Clouds - Linux-Storage-Technologien - Hochverfügbarkeit und Load-Balancing


Virtualisierung / Cloud-Computing

Vmware, XEN, UML, Qemu, Virtuozzo/OpenVZ, VirtualBox

Es gibt 2 wesentliche Gründe, die für die Virtualisierung von Linux-Servern sprechen. Virtualisierung bedeutet das parallele Betreiben verschiedener Betriebssystem-Instanzen auf einer Hardware. Gründe:

1. Ressourcen-Auslastung

Viele Server sind heutzutage nicht ausgelastet. Besonders dann nicht, wenn schlanke, angepasste Linux-Dienste auf Ihnen laufen. Durch Virtualisierung erreichen Sie eine bessere Auslastung Ihrer Hardware - die Hosting-Dienstleister haben dies zuerst erkannt.

2. Sicherheit

Dienste, die in verschiedenen Betriebssystem-Instanzen laufen, sind voneinander abgekoppelt. D.h. Sicherheits-kritische Dienste können separiert werden, ein Einbruch führt nicht zur Übernahme des gesamten Servers.

Es gibt verschiedene Ansätze, die für verschiene Zwecke der Virtualisierung geeignet sind:

UML (User Mode Linux)

Eine erweiterte Form des Chroot-Jails. Hier befindet sich eine 2. Betriebssytem-Instanz in einem separaten Dateibaum des Ursprung-Systems. Das macht den Betrieb flexibler, die Performance ist aber vom Standard-Linux-System abhängig.

Virtualisierung auf einem Kernel (OpenVZ / Virtuozzo)

Wenn man viele Instanzen des gleichen Betriebssystems auf einem Server vitualisieren möchte, dann bietet sich OpenVZ (GPL) oder dessen kommerzielle Variante Virtuozzo an. Hierbei können bis 120 OS-Instanzen auf einem einzigen Linux-Kernel laufen. Die Virtuellen Maschinen tauchen dann als normale Prozesse in der Prozessliste auf. Ideal für Hoster.

Desktop-Virtualisierung (VMware Server, VirtualBox)

VMware ist der Platzhirsch unter den Virtualisierungs-Lösungen. Das bekannteste Produkt ist der VMware-Server. Hier wird in einem Separaten Fenster auf einem Linux- oder Windows-System ein weiteres OS gefahren. Der Overhead beträgt 20-25%, sodass hier einige Ressourcen verloren gehen. VMware ist Closed-Source-Software. Der Vmware-Player zum abspielen fertiger Images und der Vmware-Server sind kostenlos zu haben.

Die 2er-Version des Vmware-Server macht uns nicht mehr so viel Freude, er installiert eine Management-Oberfläche auf Basis von Tomcat. Das ist umständlich und nicht sehr performant.

Neuerdings macht SUN mit seinem OSS-Produkt "Virtualbox" auf sich aufmerksam. Vorteile gegenüber dem Vmware-Server liegen in der vollständigen Unterstützung von 64Bit-Gastsystemen, sowie der Nutzung des VT-Kerns von neuen Intel- und AMD-CPUs.

Server-Virtualisierung (Xen, KVM, Vmware ESX-Server)

Der Vmware-ESX-Server war die erste echte Server-Virtualisierungs-Lösung mit ansprechender Performance. Vmware-ESX-Server sind kostenpflichtig und haben eine eingeschränkte Hardware-Unterstützung. Die kostenlose ESX-i-Version unterstützt noch weniger Geräte, sodaß die Einsatz-Szenarien begrenzt sind.

Vmware ESX bietet mit Vmotion echte Datecenter-Technologie für die optimale Ressourcen-Auslastung in großen Umgebungen. Für kleinere Virtualisierungsprojekte (1 Virtualisierungscluster mit 5-10 virtuellen Maschinen) empfehlen wir die u.g. Open-Source Produkte.

Mit XEN gibt es echten parallelen Betrieb von Betriebssystemen. Der Overhead beträgt maximal 2-5%. Es gibt gut funktionierende XEN-Distributionen (Suse 10/11, Debian). Windows greift dabei direkt auf den VT-Kern der CPU zu.

Leider sind die Management-Guis für die freien Xen-Versionen ziemlich einfach gehalten. Citrix und Oracle bieten allerdings auch modifizierte Xen-Server mit umfangreicher Oberfläche an. Die Basis-Versionen, ohne Clustering und Live-Migration gibt es kostenlos. Allerdings weiss man bei diesen Herstellern nie, wie lange noch.

Egal of Citrix Xen-Server, Oracle-VM oder ein Debian/Suse/Redhat-Xen, die Basis aller Produkte ist immer der Linux-Kernel. Dieser muss für den Betrieb von Xen gepatcht werden. Es stehen nur wenige gepatchte Xen-Kernel zur Verfügung, sodaß man evtl. auf neueste Kernel-Features verzichten muss.

Anders bei KVM, dies ist im Linux-Standard-Kernel integriert und wird mit jeder Version mit angeboten. KVM wird Redhats offizielle Virtualisierungslösung der kommenden Jahre sein. Zwar unterstützt Redhat auch XEN, wird diesen Support aber auslaufen lassen, ähnliches hört man auch von Suse. Da Xen auch in den nächsten Jahren nicht in den Kernel integriert werden wird, darf man gespannt sein, wie bspw. Citrix und Oracle hier verfahren werden.

Wir empfehlen unseren Kunden aufgrund der gesicherten Zukunft inzwischen die virtualisierung mit KVM.

Cloud-Computing

Beim Cloud-Computing werden die Ressourcen aller virtualisierten Server im Form einer intransparenten Wolke zusammengefasst. Sie können nun virtuelle Maschinen aus dieser Cloud erzeugen, die Cloud-Software kümmert sich um die Zuteilung der Ressourcen. Wenn Sie Ihre Ressourcen vermieten möchten, berechnet Ihnen die Cloud-Software die Vermietungsgebühr. Optimal für Firmen mit Saisongeschäft (z.B. zu Weihnachten).


Hochverfügbarkeit (High Availability - HA) und Load Balancing

Die Kombination von Heartbeat und DRBD macht Linux-Server zum perfekten Failover-Cluster. Sie verbinden 2 Server mit Crossover- und/oder Nullmodem-Kabel. Die Hearbeat-Komponente kontrolliert die Verfügbarkeit des Servers, die Daten werden ständig zwischen beiden Rechner synchronisiert. Bei Ausfall eines Knotens übernimmt der andere innerhalb von Sekunden. Hochverfügbarkeit zum kleinen Preis! Sie benötigen kein Fiber-Channel oder andere Storage-Lösungen. Es genügen Standard-Hardware-Komponenten.

Seit Heartbeat Version 2.0 können nun bis zu 16 Nodes in einen Failover-Cluster integriert werden. Neu ist auch die integrierte Dienste-Überwachung, d.h. Sie kompensieren nicht nur den Total-Ausfall eines Servers, sondern auch den Ausfall eines Dienstes. Entscheidend ist hierbei die Erreichbarkeit des TCP-Ports.

Hier nun die verschiedenen Varianten der Hochverfügbarkeit:

Failover-Cluster mit Heartbeat und rsync

Bei dieser Lösung handelt es sich um einen klassischen Ausfall-Cluster. Der Email-Server wird mittels eines Images auf einen 2. Rechner gespiegelt. Beide Rechner sind mit unterschiedlichen IP-Adressen an das Netzwerk angeschlossen. Zusätzlich sind beide Rechner per Crossover-Kabel zusammengeschlossen. Ein Rechner ist der Master, einer der Slave. Der Master-Rechner ist über eine Virtuelle IP-Adresse erreichbar.

Der Slave überprüft im Minutentakt den „Herzschlag“ des Master-Servers. Fällt der Master-Server aus, wird der Slave zum Master und übernimmt die virtuelle IP-Adresse.

Damit nun auch die Nutzdaten zur Verfügung stehen, werden diese über das Tool rsync im Abstand von wenigen Minuten gespiegelt.

Diese Konfiguration hilft gegen den Total-Ausfall eines Rechners. Aufgrund der Abstände zwischen den Synchronisationen kann es sein, dass einige Nutzdaten nicht synchronsiert wurden.

Netzwerk-Raid-System DRBD

Zusätzlich kann man die Partitionen der beiden Rechner über das Netz spiegeln. DRBD (Data Redundant Block Device) erzeugt dabei ein virtuelles Festplatten-Interface, auf das die Nutzdaten gespiegelt werden. Vorteil: Die Daten sind immer synchron, bei einem Ausfall geht nichts verloren.

Dienst-Überwachung

Das o.g. System springt an, wenn der ganze Rechner ausfällt. Was aber, wenn nur der Mail-Dienst versagt? Heartbeat bietet in der Version 2 die Möglichkeit, einzelne Dienste zu überwachen. Das beginnt mit der simplen und unzuverlässigen status-Abfrage der PID-Files, kann aber auch so definiert werden, das ständig echte Anfragen an den Dienst abgeschickt werden. Bei einem Webserver z.B. eine HTTP-GET-Anfrage. Sobald einer dieser Dienst-Ports nicht mehr erreichbar ist, springt der o.g. Heartbeat-Übernahme-Mechanismus an.

Linux-Storage-Technologien

Linux bietet seit langem die Möglicheit, per LVM (Logical Volume Manager) und EVMS (Enterprise Volume Manager System), dynamische Speicher-Volumes zu verwalten, die im laufenden Betrieb mit neuen Platten oder Partitionen vergrößert werden können. Das Dateisystem wird dabei im gemounteten Zustand mitvergrößert. Diese Technologie ist sehr stabil und wird in großen Rechenzentren aber auch bei mittleren Betrieben mit hohem Nutzdaten-Aufkommen eingesetzt.

Die ISCSI-Technologie bietet die Möglichkeit, Storages mit Entfernung zu den Servern zu betreiben. Durch ISCSI ist es möglich die Anbindung eines Storages über Ethernet einzurichten, das funktioniert auch mit NFS, ISCSI ist dabei aber wesentlich vielseitiger. Mit Durchsätzen bis zu 80 Mbyte/s und ähnlicher Stabilität wie die SAN-Anbindungen, bieten sich ISCSI-Storages als günstige Alternative an. Noch höhere Übertragungsraten lassen sich durch zusammenführen mehrerer Gigabit-Ethernet-Leitungen erzielen (bonding).

Mail an Webmaster - AGBs - Impressum - Kontakt - © UDS-Linux 2003