Zum Inhalt springen

Virtueller Server

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 22. September 2006 um 06:21 Uhr durch Dns (Diskussion | Beiträge) (Virtuelle Server auf Basis von Diensten). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein Virtueller Server (kurz vServer) ist ein Server, der sich aus Anwendersicht wie ein echter Server verhält, jedoch keinen physischen Host repräsentiert. Häufig residieren mehrere Virtuelle Server (Gast-Systeme) auf einem physischen Host (Gastgeber-System).

Die Geschichte

Das Konzept Virtueller Server ist im Großrechnerbereich schon länger im Einsatz, Vorreiter war hier IBM. Auf PC basierten Hosts werden Virtuelle Server erst eingesetzt, seitdem deren Hardware leistungsfähig genug ist, um mehrere Betriebssysteme gleichzeitig auf einer Maschine laufen lassen zu können.

Einsatz

Virtuelle Server werden eingesetzt, wenn von einer einzelnen Maschine unterschiedliche Systemdienste angeboten werden sollen, die jeweils ihr eigenes Betriebssystem-Umfeld benötigen (vgl. Dedizierter Server).

Im Server-Betrieb erlaubt der Einsatz Virtueller Server den Betrieb mehrerer wenig belasteter Server auf einem Host sowie einen schnellen und problemlosen Umstieg auf neue, leistungsfähigere Hardware oder das Verlagern einzelner virtueller Server (VServer) auf eine andere Maschine.

Unterscheidung Virtueller Server

Virtuelle Server lassen sich in mehrere Gruppen einteilen:

  1. Virtuelle Server auf Basis von Diensten
  2. Virtuelle Server auf Basis von Betriebssystemen
  3. Virtuelle Server auf Basis von Emulation

Virtuelle Server auf Basis von Diensten

Viele Server bieten die Möglichkeit, ihre Dienste gleichzeitig für verschiedene Domains anzubieten. Dieses Verfahren wird auch als Virtual Hosting oder in Anlehnung an das Domain Name System (DNS) auch irreführend als Virtuelle Domain [engl.: Virtual Domain] bezeichnet. Letztere Bezeichnung ist unrichtig, da es nicht Domain ist, die dabei virtualisiert wird, sondern die unter deren Namen annoncierten Dienste. Wie bei allen Virtualisierungstechniken ist diese Tatsache aus Sicht des Nutzers transparent, es besteht kein sichtbarer Unterschied z.B. zu einem dedizierten Server.

Zur Virtualisierung internetbasierter Dienste existieren zwei grundlegende Varianten. Der Unterschied liegt in dem Verfahren, das der Host bei einer Anfrage anwendet um festzustellen, welcher der von ihm erbrachten Dienste angesprochen wurde.

IP-Based
Internet-Hosts können prinzipiell mehrere IP-Adressen tragen. Verschiedene Dienste werden dabei unter verschiedenen IP-Adressen annonciert. Dieses Verfahren ist aufgrund der grundlegenden Natur von IP-Adressen das zuverlässigste.
Name-Based
Unter der Voraussetzung, daß Clients durch das Netzwerkprotokoll verpflichtet sind, bei einer Anfrage den Domain-Namen zu präzisieren, können mehrere Domains auch unter der gleichen IP-Adresse untergebracht werden.

Beispiele:

  • Ein physischer Host, auf dem ein Webserver läuft, kann einige hundert Virtuelle Webserver mit Internetauftritten beherbergen.
  • Ein Host, auf dem ein Mail-Server läuft, der für Mails mehrerer Domains zuständig ist.

Virtuelle Server auf Basis von Betriebssystemen

Ein Gastgeber-Betriebssystem (engl.: Host) beherbergt mehrere Gast-Betriebssystem-Umgebungen (engl.: Guest), die gegeneinander abgeschottet sind und nur über das Gastgeber-Betriebssystem auf die Hardware des Hosts zugreifen dürfen.

Virtualisierung auf Betriebssystembasis gibt es auf unterschiedlichen Ebenen:

  • Erweiterte chroot-Umgebung des Gastgeber-Systems. Direkter Zugriff auf die System-Hardware ist nicht möglich. Beispiel: BSD Jails (s.u.) und Linux vserver
  • Gast-Systeme benutzen das selbe Betriebssystem wie der Gastgeber und greifen über Treiber des Gastgeber-Systems auf die Hardware zu. Beispiel: Virtuozzo, Xen (s.u.)
  • Die Gast-Systeme sind komplette Betriebssysteme mit eigenem (oder gemeinsamen, aber geschützten) Kernel, eigenen Treibern und eigener Konfiguration. Beispiel: UML (s.u.)

Virtuelle Server auf Basis von Emulation oder Virtualisierung

Das Gastgeber-System emuliert alle Systemaufrufe auf Hardware-Ebene oder emuliert eine komplette Hardwarearchitektur (inkl. CPU, Speicherzugriffen usw).

Ein klassischer Emulator ist aus Gastgeber-Sicht meist ein ganz normales Programm, so ist es z.B. möglich, auf PCs Software für Palm Handhelds zu testen, alte C64-Software zu benutzen, oder ein komplettes x86-Windows-System auf einem PowerPC-Apple- oder HP-Unix-Rechner laufen zu lassen.

Will man "nur" andere Betriebssysteme (welche prinzipiell für die gleiche Hardwarearchitektur geeignet sind) oder Instanzen auf einer physischen Maschine laufen lassen, bietet sich im Gegensatz zur Emulation die Virtualisierung an. Beispiele: VirtualPC, VMware (s.u.).

Die Grenzen zwischen Virtualisierung und Emulation sind fließend, zumal zur Zeit auch "Mainstream"-Prozessoren um Virtualisierunghilfen ergänzt werden (z.B. Vanderpool und Pacifica) oder diverse Lösungen Programmcode des Gastsystems vor der Ausführung (teilweise) in für den Host-PC geeigneten Code umformen.

Siehe auch