www.wikidata.de-de.nina.az
Dieser Artikel oder Abschnitt bedarf einer grundsatzlichen Uberarbeitung Naheres sollte auf der Diskussionsseite angegeben sein Bitte hilf mit ihn zu verbessern und entferne anschliessend diese Markierung OpenVZ Open VirtualiZation ist eine Software fur Linux zur Virtualisierung und Containerisierung von Betriebssystemen OpenVZBasisdatenMaintainer VirtuozzoEntwickler GemeinschaftsprojektErscheinungsjahr 2005Aktuelle Version 7 0 1 26 Juli 2016 Betriebssystem LinuxKategorie VirtualisierungLizenz GPL 2 Freie Software openvz orgOpenVZ wird von libvirt unterstutzt Inhaltsverzeichnis 1 Details 2 Kernel 2 1 Virtualisierung und Isolierung 2 2 Ressourcenverwaltung 2 2 1 Zwei Ebenen Festplattenquota 2 2 2 CPU Planer 2 2 3 User Beancounters 2 3 Checkpointing und Live Migration 3 Werkzeuge auf Benutzerebene 3 1 vzctl 3 2 vzlist 3 3 Templates und vzpkg 4 Die wichtigsten Eigenschaften von OpenVZ 4 1 Skalierbarkeit 4 2 Dichte 4 3 Massenverwaltung 5 Einsatzszenarien 6 Ahnliche Technologien 7 Siehe auch 8 Einzelnachweise 9 WeblinksDetails BearbeitenOpenVZ erstellt mehrere isolierte Container fur Betriebssysteme Dazu werden alle Prozesse dieser Betriebssysteme werden in einem einzigen Kernel verarbeitet Die Betriebssysteme in den Containern sind dennoch weitgehend unabhangig voneinander und konnen beispielsweise unabhangig voneinander heruntergefahren werden Sie verfugen ausserdem jeweils uber ihr eigenes Root Konto Im Vergleich zu Virtuellen Maschinen von VMware oder zu Paravirtualisierungen wie Xen bietet OpenVZ weniger Auswahl an Betriebssystemen sowohl der Host als auch die Gaste mussen unter Linux laufen nur die Linux Distributionen konnen sich unterscheiden Andererseits bietet OpenVZ bessere Leistungsfahigkeit Skalierbarkeit dynamische Ressourcenverwaltung und einfachere Administration an Der Virtualisierungsaufwand oder Overhead durch OpenVZ ist vernachlassigbar gering 2 OpenVZ wurde im Jahr 2005 aus dem kommerziellen Virtuozzo heraus von dessen Hersteller als Open Source eingefuhrt 3 OpenVZ besteht aus Erweiterungen des Kernels und Werkzeugen auf Benutzerebene 4 Kernel BearbeitenDer OpenVZ Kernel ist ein modifizierter Linux Kernel der den Begriff Virtual Environment VE einfuhrt Der Kernel gewahrleistet die Funktionalitat von Virtualisierung Isolierung Ressourcenverwaltung und Checkpointing Virtualisierung und Isolierung Bearbeiten Jedes VE ist eine separate Einheit die vom Standpunkt ihres Besitzers wie ein physischer Server aussieht Das bedeutet jedes VE hat unter anderem eigene Dateien Systembibliotheken Applikationen virtualisierte proc sys usw Benutzer und Gruppen Jedes VE hat den Benutzer root sowie auch andere Benutzer und Gruppen Prozessbaum Ein VE kann nur eigene Prozesse sehen die standardmassig von init stammen PIDs Prozess IDs sind virtualisiert so dass z B PID von init in jedem VE gleich 1 ist Netzwerk Virtuelles Netzwerkgerat ermoglicht einem VE eine eigene IP Adresse zu haben sowie ein Set von Netzwerkfiltern iptables und Routingtabellen Devices Falls notig kann fur ein VE ein Zugang zu realen Geraten wie Netzwerk Schnittstellen seriellen Ports Festplatten Partitionen usw gewahrleistet werden IPC Objekte Gemeinsam genutzter Speicher Semaphore NachrichtenRessourcenverwaltung Bearbeiten Weil alle VEs denselben Kernel nutzen spielt die Ressourcenverwaltung die wichtigste Rolle Tatsachlich muss jedes VE im Rahmen der zugewiesenen Ressourcengrenzen bleiben und darf nicht die anderen VEs beeinflussen Genau das ist die Kompetenz der Ressourcenverwaltung Die OpenVZ Ressourcenverwaltung besteht aus drei Subsystemen Zwei Ebenen Festplattenquota CPU Planer und User Beancounters Alle diese Ressourcen lassen sich im laufenden Betrieb andern es ist dafur kein Neustart notig Soll einem VE beispielsweise mehr RAM zugewiesen werden konnen die entsprechenden Parameter on the fly geandert werden Bei VM basierten Virtualisierungslosungen ist dies nicht ohne weiteres moglich Zwei Ebenen Festplattenquota Bearbeiten Die erste Ebene ist die pro VE Festplattenquota die zweite Ebene ist die standardmassige UNIX Festplattenquota pro Benutzer und pro Gruppe innerhalb eines VEs Um mehr Festplattenplatz zu einem VE zuzuweisen braucht man nur die entsprechende Festplattenquota zu vergrossern CPU Planer Bearbeiten Der CPU Planer in OpenVZ ist eine Zwei Ebenen Implementierung der fair share Planungsstrategie Auf der ersten Ebene entscheidet der Planer welches VE den CPU Takt erhalt Das wird entsprechend dem per VE cpuunits Wert gemacht Auf der zweiten Ebene entscheidet der standardmassige Linux Planer welcher Prozess in ausgewahltem VE den CPU Takt bekommen soll Dabei werden wie immer die Standard Linux Prioritaten von Prozessen usw benutzt Der OpenVZ Administrator kann verschiedene Werte von cpuunits fur verschiedene VEs definieren In diesem Fall wird CPU Zeit proportional laut den angegebenen Werten der VEs verteilt Ausserdem steht die Moglichkeit zur Verfugung die CPU Zeit zu limitieren D h man kann z B 10 der CPU Zeit einem VE zuweisen User Beancounters Bearbeiten Die User Beancounters sind ein Set von pro VE Ressourcenzahlern Limits und Garantien Es gibt etwa 20 Parameter die sorgfaltig ausgewahlt werden mussen um alle Aspekte der VE Funktionalitat zu berucksichtigen Damit darf jedes einzelne VE nur die zugewiesenen Ressourcen nutzen und keinen Einfluss auf das Hostsystem oder andere VEs haben Die kontrollierten Ressourcen sind RAM und verschiedene in kernel Objekte wie IPC shared memory segments network buffers usw Jede Ressource kann man in proc user beancounters anschauen Hier werden 5 Werte fur jeden einzelnen Parameter angezeigt Aktuelle Auslastung maximale Auslastung Soft Limit Hard Limit und fail counter Die Bedeutungen von Soft Limit und Hard Limit sind verschieden und hangen von Parametern ab Generell gilt wenn irgendeine Ressource das Limit uberschreitet wird der entsprechende fail counter erhoht So kann der Besitzer des VEs falls irgendein Problem im VE auftritt die Ausgabe von proc user beancounters analysieren und mogliche Ursachen ausfindig machen Checkpointing und Live Migration Bearbeiten Live Migration und Checkpointing sind Funktionen die von OpenVZ Mitte April 2006 veroffentlicht wurden Sie ermoglichen ein VE von einem physischen Server auf den anderen zu migrieren ohne dabei das VE stoppen neu starten zu mussen Der Vorgang ist als Checkpointing bekannt und die Hauptidee besteht darin ein VE einzufrieren und alle Prozesse in eine Datei zu speichern Diese Datei kann dann auf eine andere Maschine ubertragen und alle Prozesse konnen dort wiederhergestellt werden Die ganze Ubertragung des VEs nimmt nur einige Sekunden in Anspruch und verursacht damit keine Downtime sondern nur eine leichte Verzogerung Die Tatsache dass jeder Teil des VE Status wie z B geoffnete Netzwerkverbindungen gespeichert wird macht den ganzen Migrationsprozess fur den Benutzer vollig transparent Wahrend des Verschiebens des VEs kann z B eine Transaktion mit einer Datenbank laufen die viel Zeit benotigt In diesem Fall merkt der Benutzer nicht dass die Datenbank schon auf einem anderen Server lauft Dieses Merkmal ermoglicht Szenarien wie das Upgrade eines Servers ohne Neustart durchzufuhren Wenn eine Datenbank oder andere Applikation in einem VE mehr RAM oder CPU Ressourcen braucht kann man einfach eine andere bessere Maschine kaufen dieses VE live darauf migrieren und dann die entsprechenden Limits vergrossern Wenn es z B notig ist zusatzliches RAM hinzuzufugen kann man alle VEs auf einen anderen Server migrieren das Upgrade auf der Maschine durchfuhren und dann alle VEs zuruck migrieren Werkzeuge auf Benutzerebene BearbeitenOpenVZ hat sowohl Kommandozeilen Werkzeuge fur die Verwaltung von VEs vzctl als auch Werkzeuge fur die Verwaltung von Applikationen in VEs vzpkg vzctl Bearbeiten vzctl ist ein einfaches high level Kommandozeilen Werkzeug fur die Verwaltung von VEs vzctl create VEID ostemplate lt name gt config lt name gt Dieser Befehl erzeugt ein neues VE das eine numerische ID ein angegebenes OS Template eine Linux Distribution und die Ressourcen die in der angegebenen Konfigurationsdatei spezifiziert sind hat Die beiden Parameter ostemplate und config sind optional Die Hauptkonfigurationsdatei enthalt Standardwerte fur beide vzctl start VEID Startet das angegebene VE Das Starten bedeutet das Erzeugen eines Virtual Environment im Kernel Initialisieren von allen Ressourcenverwaltungsparametern und Starten des VEs sbin init in diesem Umfeld vzctl stop VEID Stoppt das angegebene VE Ein VE kann auch mit Hilfe von eigenen sbin halt oder sbin reboot Befehlen gestoppt oder neu gestartet werden vzctl exec VEID lt command gt Startet den Befehl lt command gt im angegebenen VE Um beispielsweise alle Prozesse im VE 102 anzeigen zu lassen kann man vzctl exec 102 ps ax nutzen vzctl enter VEID Offnet die VE Shell Das ist nutzlich wenn z B sshd nicht gestartet ist und das Problem untersucht werden soll vzctl set VEID parameter lt value gt save Setzt den angegebenen Parameter fur das VE Hier konnen verschiedene Parameter benutzt werden um z B eine IP Adresse zu einem VE hinzuzufugen geben Sie vzctl set VEID ipadd x x x x save ein Um die Festplattenquota fur das VE festzulegen verwenden Sie vzctl set VEID diskspace soft hard save Um das Kernel RAM Soft Limit und Hard Limit fur VE zu re definieren mussen Sie den Befehl so starten vzctl set VEID kmemsize barrier limit savevzlist Bearbeiten vzlist zeigt die Liste der VEs an vzlist a Dieser Befehl zeigt den Zustand und den Ressourcenverbrauch der VEs an VEID NPROC STATUS IP ADDR HOSTNAME 110 21 running 192 168 0 1 dns 111 0 stopped 192 168 0 21 wwwTemplates und vzpkg Bearbeiten Templates sind vorgefertigte Images die zum Erzeugen von VEs benutzt werden Ein Template ist ein Set von Paketen und ein Template Cache ist ein Tar Archiv einer chroot Umgebung in der alle Pakete installiert sind Wahrend der Ausfuhrung von vzctl create wird das Tar Archiv entpackt Diese Technik ermoglicht ein VE in wenigen Sekunden zu erzeugen Die Entwickler stellen Template Caches fur die gebrauchlichsten Linux Distributionen auf der Projekt Webseite zum Download zur Verfugung vzpkg ist ein Satz von Werkzeugen mit dem das Erzeugen eines Template Caches wesentlich vereinfacht wird Es unterstutzt rpm und yum basierende Repositories Um ein Template z B Fedora Core 5 zu erstellen braucht man ein Set von yum Repositories in denen sich FC5 Pakete befinden und auch ein Set von Paketen die installiert werden mussen Zusatzlich falls es notig ist ein Template anzupassen stehen auch pre und postinstall Skripte zur Verfugung Alle oben dargestellten Parameter Repositories Paketlisten Skripte GPG keys usw werden als Template Metadaten dargestellt Mit Hilfe von Template Metadaten kann der Template Cache automatisch erstellt werden Man braucht nur den vzpkgcache Befehl zu starten Dabei werden alle angegebenen Pakete auf den Server hochgeladen und in ein temporares VE installiert Danach wird das entsprechende Tar Archiv erzeugt Es ist auch moglich Template Caches fur nicht RPM basierende Distributionen zu erstellen Die wichtigsten Eigenschaften von OpenVZ BearbeitenSkalierbarkeit Bearbeiten OpenVZ benutzt das Ein Kernel Modell und ist deswegen wie der Linux Kernel 2 6 skalierbar Es unterstutzt somit die Nutzung von bis zu 64 CPUs und 64 GB RAM Eine einzelne VE kann auf das komplette Hostsystem skaliert werden d h alle CPUs und das gesamte RAM des Hostsystems nutzen Diese Vorgehensweise virtualisiert die Hardware des VEs Das in der VE laufende Betriebssystem greift nicht mehr direkt auf die physische Hardware des Hostsystems zu sondern nutzt die Schnittstellen von OpenVZ Auf diese Weise ist es moglich einen Server zur Laufzeit zu migrieren um gestiegene Ressourcen zu nutzen oder um Hardware Ausfalle des Hostsystems zu kompensieren Dichte Bearbeiten Auf dem Server mit OpenVZ konnen hunderte von Virtual Environments laufen ihre Zahl ist hauptsachlich durch den vorhandenen RAM und die CPU Leistung begrenzt Massenverwaltung Bearbeiten Der Administrator des OpenVZ Servers kann auf Prozesse und Dateien von allen VEs zugreifen Das erleichtert die Massenverwaltung vieler Server Sicherheitsupdates in den VEs konnen durch ein einfaches Skript geschehen Das ist ein Vorteil gegenuber Virtualisierungslosungen wie VMware oder Xen die fur jede virtuelle Maschine ein manuelles Update erfordern Einsatzszenarien BearbeitenDie folgenden Einsatzszenarien sind fur alle Virtualisierungstechnologien gemeinsam Der Hauptunterschied von Virtualisierungen auf Betriebssystem Ebene besteht darin dass der Virtualisierungsaufwand sehr gering ist Genau das macht solche Szenarien sehr attraktiv Sicherheit Es ist moglich verschiedene Netzwerkdienste wie Apache Mailserver DNS Server usw in verschiedenen VEs laufen zu lassen Falls ein Eindringling eine Sicherheitslucke in einem dieser Dienste findet und in das System eindringt kann er zunachst nur diesen Dienst beschadigen weil alle anderen sich in separaten VEs befinden Damit wird die gesamte Sicherheit des Systems erhoht wenn die Netzwerkdienste zuvor zusammen auf einem physischen System ausgefuhrt wurden und es dem Eindringling nicht gelingt in OpenVZ selbst eine Sicherheitslucke zu finden Die Sicherheit wird verringert wenn die Netzwerkdienste vorher auf physisch getrennten Systemen ausgefuhrt wurden Server Konsolidierung Heutzutage ist die Mehrzahl der Server wenig ausgelastet Mit Hilfe von OpenVZ konnen solche Maschinen beim Migrieren in Virtual Environments konsolidiert werden Die Ersparnisse liegen beim Platz im Rack Strom und dem Verwaltungsaufwand Hosting Zweifellos ist die Virtualisierung auf Betriebssystem Ebene eine einzigartige Moglichkeit fur Hoster sehr gunstige VEs anzubieten Man muss beachten dass jedes VE Root Zugang hat so dass ein Besitzer eines VEs verschiedene Applikationen re installieren und auch Dinge wie iptables Firewall Regeln konfigurieren kann Entwicklung und Test Entwickler und Tester brauchen gewohnlich einen Zugang zu verschiedenen Linux Systemen Dabei wird es erforderlich diese jederzeit komplett neu installieren zu konnen Mit OpenVZ hat man alle verschiedenen Systeme auf demselben Server und Operationen wie das Erstellen von VEs nimmt nur etwa eine Minute in Anspruch Es ist auch sehr einfach ein VE zu klonen Dafur muss man nur den VE Bereich und die Konfigurationsdatei kopieren Bildungseinrichtungen Jeder Schuler kann ein eigenes VE haben Es ist moglich mit verschiedenen Linux Distributionen zu arbeiten Ein neues VE kann in nur einer Minute erstellt werden Thin Client Systeme Es konnen mehrere Application Server in VEs realisiert werden Auf diese kann jeweils via Thin Clients zugegriffen werden Die verschiedenen Application Server sind bezuglich Ressourcen durch die OpenVZ Mechanismen gegeneinander geschutzt Zudem konnen verschiedene Distributionen auf diesen parallel zur Verfugung gestellt werden Ahnliche Technologien BearbeitenAndere Implementierungen von OS Virtualisierung sind LXC LinuX Containers und Linux VServer sowie FreeBSD Jails und Solaris Containers Allerdings kann die VServer Technologie komplett durch OpenVZ ersetzt werden Siehe auch BearbeitenBochs Liste von VirtualisierungsproduktenEinzelnachweise Bearbeiten openvz livejournal com Performance Evaluation of Virtualization Technologies for Server Consolidation PDF 419 kB Hewlett Packard 30 September 2008 abgerufen im 1 Januar 1 Julius Stiebert OpenVZ Neue Virtualisierungstechnik unter Linux In golem de 6 Dezember 2005 abgerufen im 1 Januar 1 Diego Wyllie Integration von OpenVZ in Debian Linux In Computerwoche 8 August 2006 abgerufen im 1 Januar 1 Weblinks BearbeitenAn OpenVZ kernel hacker interview Memento vom 21 April 2006 im Internet Archive Interview mit Andrey Savochkin englisch OpenVZ Weniger Overhead als Xen Interview mit Kir Kirill Kolyshkin auf Pro Linux Abgerufen von https de wikipedia org w index php title OpenVZ amp oldid 236623851