Linux-VServer
Kein Artikel--Shairon 17:36, 5. Dez. 2007 (CET)
Linux-VServer
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Herbert Pötzl (Community Projekt) |
Aktuelle Version | 0.30.215[1] (17. März 2008) |
Betriebssystem | Linux 2.6 and 2.4 |
Programmiersprache | C[2] |
Kategorie | Virtualisierung |
Lizenz | GNU GPL v.2 |
Linux-VServer.org |
VServer ist ein Open-Source-Projekt, das virtuelle Linux-Server auf Basis von Betriebssystemvirtualisierung für den Linux-Kernel implementiert. Das Produkt ist Open Source-Software, die unter der GNU General Public License (GPL) veröffentlicht wird. Es verfolgt damit einen grob vergleichbaren Ansatz wie OpenVZ.
Das Projekt wurde von Jacques Gélinas begonnen und wird jetzt von dem Österreicher Herbert Pötzl betreut. Das Produkt hat nichts mit dem Linux Virtual Server-Projekt zu tun, das eine Lösung für eine gleichmäßige Netzwerkbelastung (Load Balancing) bieten will.
Linux-VServer schafft die Möglichkeit, Teile eines Computersystems wie das Dateisystem, die Prozessorzeit, Netzwerkadressen und den Hauptspeicher so aufzuteilen und sicher voneinander abzugrenzen, das einzelne Prozesse keine Möglichkeit haben, außerhalb ihrer Partition, des ihnen zugestandenen Arbeitsbereiches, zuzugreifen .
Jede Partition bzw. jeder Arbeitsbereich stellt einen sogenannten Security Context dar, in dem das virtualisierte Computersystem einen Virtuellen Server bildet. Ein dem Chroot-Mechanismus vergleichbares Werkzeug bietet Zugriff auf diesen Security Context. Das Booten dieses Virtuellen Servers beschränkt sich dann auf Durchführen eines Init in diesem Security Context, das Herunterfahren entspricht vergleichbar einem Beenden der in diesem Security Context ablaufenden Prozesse. Die Security Contexte, also die virtuellen Maschinen, sind leistungsfähig genug, um beispielsweise viele Linux-Distributionen unmodifiziert verwenden und verarbeiten zu können, dazu gehören auch Debian und Fedora Core.
Virtuelle Server werden normalerweise von Webhosting Dienstleistern verwendet, da sie bei gleichzeitiger Zusammenfassung der Computerresourcen eine saubere Trennung verschiedener virtueller Kundenmaschinen sowie eine Abschottung dieser Maschinen untereinander erlauben. Um bei solchen Installationen mit möglichst wenig Plattenplatz auszukommen, wird das Dateisystem jedes Virtuellen Servers als ein Copy-On-Write Hard Link auf ein virtuelles Dateisystem aufgesetzt. Dieser Hard Link besitzt spezielle Dateisystemattribute, die bei einer erkannten Änderung die zu schreibende Datei durch eine sicher und transparent geschriebene reale Kopie der Datei ersetzen.
Linux-VServer existiert in zwei verschiedenen Versionen, einer stabilen Version V.2.2.x und einer Entwicklerversion V.2.3.x für den Linux-Kernel 2.6, sowie einer stabilen Version für den Linux-Kernel 2.4.
Vergleichbare Virtualisierungsmechanismen
Andere vergleichbare Virtualisierungstechniken sind OpenVZ, von FreeBSD das FreeBSD Jail-Verfahren, Solaris Containers und FreeVPS (eine frühe Ableitung (Fork) von Linux-VServer).
Vorteile
- Virtual Servers benutzen die gleiche System Call Schnittstelle und erzeugen keine zusätzliche Last durch Emulation.
- Virtual Servers müssen nicht durch ein instransparentes Disk Image gesichert werden, sondern können ein allgemeines, gemeinsames Dateisystem benutzen (through copy-on-write hard links). Das macht die Sicherung eines Virtuellen Servers einfacher und erlaubt, den vorhandenen Plattenplatz für mehrere Virtuelle Server zu nutzen.
- Prozesse innerhalb der Virtuellen Server laufen wie normale Prozesse auf einem Rechnersystem. Das ist weit effizienter in Bezug auf Speicherausnutzung und I/O-Last als die vollständige Emulation eines Rechners, die unbenutzten Hauptspeicher oder Plattenplatz nicht mehr dem Hostrechner oder anderen Virtuellen Servern zur Verfügung stellen kann.
- Prozesse innerhalb eines virtuellen Servers werden mit derselben Warteschlangenverwaltung (Scheduler) auf dem Hostrechner abgearbeitet, was für die Gastprozesse des virtuellen Servers eine gleichzeitige Ausführung auf Multiprozessorsystemen (SMP) erlaubt. Eine derartige Implementation für Komplettemulationen eines Rechners wäre aufwendig.
- Die Netzwerkverbindungen werden durch Packettrennung statt Virtualisierung realisiert, auch hier wird eine zusätzliche Packetverarbeitung vermieden.
Nachteile
- Linux-VServer erfordern auf dem Host einen modifizierten Betriebssystem-Kernel.
- Alle Virtuellen Server benutzen diesen selben Kernel und profitieren so auch von etwa darin enthaltenen Bugs und Sicherheitslöchern.
- Es ist kein Clustering oder Prozessübernahme möglich, der Kernel des Hostrechners sowie der Hostrechner selber bilden immer noch einen Single Point of Failure für alle Virtuellen Server.
- Da die Netzwerkverbindungen auf einer Pakettrennung und nicht auf einer Virtualisierung beruhen, kann keiner der virtuellen Server eigene interne Routing Tabellen aufbauen oder als Firewall-Rechner benutzt werden.
- Einige besonders hardwarespezifische Systemaufrufe wie beispielsweise der Echtzeituhr und von Teilen des /proc und /sys Dateisystems sind nicht virtualisierbar.
- Linux-VServer erlaubt noch keine Zuweisung von I/O-Bandbreite zu einzelnen Virtuellen Servern. Diese Option ist erst in den Development-Versionen verfügbar, aber noch nicht in der stabilen Version.
Weblinks
- ↑ Release 0.30.215. 17. März 2008 (abgerufen am 21. September 2018).
- ↑ The vserver Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 21. September 2018).