qemu, kvm, xen & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

OpenVZ, OpenVZ-Templates

(Link zu dieser Seite als [[QEMU-KVM-Buch/ Anhang/ Weitere Virtualisierer und Emulatoren/ OpenVZ]])

<<<|###| >>> | English


Inhaltsverzeichnis

[bearbeiten] OpenVZ

Website: http://wiki.openvz.org

OpenVZ ist eine Virtualisierung-Software für Linux. Mit Hilfe von OpenVZ generiert man isolierte Betriebssystem-Container, deren Prozesse direkt vom Linux-Kernel des Hosts verarbeitet werden. Open-VZ-Container können daher nur Linux-Systeme enthalten. Vorteile von OpenVZ sind die hohe Leistungsfähigkeit, Skalierbarkeit, dynamische Ressourcenverwaltung und einfache Administration. OpenVZ besteht aus einem angepassten Linux-Kernel und Werkzeugen. Container werden mit Hilfe von Templates generiert. Fertige Templates können aus dem Internet heruntergeladen werden.

[bearbeiten] Installation

Unter Debian Squeeze 64-Bit sind folgende Pakete notwendig:

Host ~$ apt-get install linux-image-openvz-amd64 vzctl vzquota vzdump

Unter Debian Squeeze 32-Bit sind folgende Pakete notwendig:

Host ~$ apt-get install linux-image-openvz-686 vzctl vzquota vzdump

Zur Abwärtskompatibilität dient dieser Symlink:

Host ~$ ln -s /var/lib/vz /vz 

Die Datei /etc/sysctl.conf muss diese Einträge enthalten:

# /etc/sysctl.conf
...
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.eth0.proxy_arp=1
...

Nach dem Bearbeiten der Datei /etc/sysctl.conf müssen die Kernel-Parameter angepasst werden.

Host ~$ sysctl -p

Falls die virtuellen Maschinen Zugriff auf ein anderes Subnetz als das Host-System haben sollen, ist die Konfigurationsdatei /etc/vz/vz.conf anzupassen. Statt NEIGHBOUR_DEVS=detect ist NEIGHBOUR_DEVS=all anzuwenden. Das System ist neu zu starten.

Host ~$ reboot

Der OpenVZ-Kernel ist nun aktiv.

Host ~$ uname -r
2.6.32-5-openvz-amd64

[bearbeiten] Die Verzeichnisstruktur

/var/lib/vz

Dies ist das Basisverzeichnis von OpenVZ. Es sollte auf einer extra Partition mit ausreichender Kapazität liegen.

/var/lib/vz/dump

In diesem Verzeichnis werden die Backups der virtuellen Umgebungen abgelegt.

/var/lib/vz/lock

OpenVZ-Prozesse speichern hier ihre Lock Files.

/var/lib/vz/private

In Unterverzeichnissen werden die einzelnen virtuellen Umgebungen gespeichert. Der Name eines Unterverzeichnisses entspricht der ID der zugehörigen virtuellen Umgebung.

/var/lib/vz/root

Hier liegen die Einhängepunkte der virtuellen Umgebungen. Läuft eine virtuelle Umgebung, befindet sich in einem Unterverzeichnis die Verzeichnisstruktur der virtuellen Umgebung. Der Name eines Unterverzeichnisses entspricht der ID der zugehörigen virtuellen Umgebung. Wurden keine virtuellen Maschinen gestartet, ist dieses Verzeichnis leer.

/var/lib/vz/template/cache

Hier werden die Templates gespeichert.

/etc/vz

Basisverzeichnis der Konfigurationsdateien.

/etc/vz/vz.conf

Dies ist die Hauptkonfigurationsdatei von OpenVZ.

/etc/vz/conf

In diesem Verzeichnis liegen Konfigurationsvorlagen und die Konfigurationsdateien der einzelnen virtuellen Umgebungen.

/etc/vz/dists

Scripte für die Konfigurationen der verschiedenen Distributionen.

/etc/vz/names

Hier werden Links angelegt, wenn neben der ID zusätzlich ein Name für eine virtuelle Umgebung vergeben wurde.

[bearbeiten] Verwalten von virtuellen Umgebungen (Container)

Zum Generieren von OpenVZ-Containern ist zumindest ein Template notwendig. In diesem Beispiel ist es ein Template für Debian Sqeeze 32-Bit.

Host ~$ cd /var/lib/vz/template/cache
Host ~$ wget http://download.openvz.org/template/precreated/contrib/debian-6.0-i386-minimal.tar.gz

Zum Verwalten der Container dient der Befehl vzctl mit seinen zahlreichen Optionen.

Host ~$ man vzctl
[bearbeiten] Anlegen eines Containers

Zum Anlegen eines Containers dient die Option create gefolgt von der eindeutigen ID des Containers (ab 101) und der Angabe des zu verwendenden Templates.

Host ~$ vzctl create 101 --ostemplate debian-6.0-i386-minimal --config basic
Creating container private area (debian-6.0-i386-minimal)
Performing postcreate actions
Container private area was created

Die Dateien der Container werden im Verzeichnis /var/lib/vz/private/ gespeichert.

Host ~$ ls /var/lib/vz/private/101
bin  boot  dev	etc  home  lib	media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr	var
[bearbeiten] Konfiguration eines Containers

Die Konfiguration eines Containers erfolgt mit vzctl set. Die dauerhafte Speicherung wird durch --save erreicht. Alternativ zum Befehl vzctl set bearbeitet man die Datei /etc/vz/conf/101.conf. Soll der Container beim Start des Host-System automatisch gestartet werden ist --onboot yes anzugeben.

Host ~$ vzctl set 101 --onboot yes --save
Saved parameters for CT 101

Nachfolgend werden Hostname, IP-Adresse und DNS konfiguriert.

Host ~$ vzctl set 101 --hostname vm01.fritz.box --save
Host ~$ vzctl set 101 --ipadd 192.168.178.101 --save
Host ~$ vzctl set 101 --nameserver 192.168.178.1 --nameserver 8.8.8.8 --save
Host ~$ vzctl set 101 --nameserver 192.168.178.1 --nameserver 8.8.8.8 --save
Host ~$ vzctl set 101 --searchdomain fritz.box --save
[bearbeiten] Starten und Stoppen eines Containers

Die virtuelle Maschine wird gestartet.

Host ~$ vzctl start 101
Starting container ...
Container is mounted
Adding IP address(es): 192.168.178.101
Setting CPU units: 1000
Set hostname: vm01.fritz.box
File resolv.conf was modified
Container start in progress...

Mit der Option exec werden im Host-System Befehle des Gast-Systems ausgeführt. In diesem Beispiel wird das Passwort für den Benutzer root definiert.

Host ~$ vzctl exec 101 passwd
Enter new UNIX password: *****
Retype new UNIX password: *****
passwd: password updated successfully

Nun ist es möglich sich per SSH im Gast-System einzuloggen. Man kann sich aber auch von der Konsole des Host-System direkt in das Gast-System einloggen.

Host ~$ vzctl enter 101 
entered into CT 101
root@vm01:/# uname -a
Linux vm01 2.6.32-5-openvz-686 #1 SMP Sun Sep 23 11:40:07 UTC 2012 i686 GNU/Linux
root@vm01:/# exit

Eine Übersicht über die Container gibt dieser Befehl:

Host ~$ vzlist -a
 CTID      NPROC STATUS    IP_ADDR         HOSTNAME
  101          8 running   192.168.178.101 vm01.fritz.box

Zum Überprüfen der Konfigurationsdatei einer virtuellen Umgebungen dient der Befehl vzcfgvalidate.

Host ~$ vzcfgvalidate /etc/vz/conf/101.conf
Validation completed: success

Ein Reboot eines Containers wird mit vzctl restart eingeleitet.

Host ~$ vzctl restart 101

Heruntergefahren wird ein Container mit vzctl stop.

Host ~$ vzctl stop 101
vzctl stop 101
Stopping container ...
Container was stopped
Container is unmounted
Host ~$ vzlist -a
 CTID      NPROC STATUS    IP_ADDR         HOSTNAME
  101          - stopped   192.168.178.101 vm01.fritz.box

Zum Löschen der Container-Dateien dient nach dem Herunterfahren der Befehl vzctl destroy.

Host ~$ vzctl destroy 101
Container private area was destroyed
[bearbeiten] Ressourcenverwaltung

Da alle virtuellen Maschinen den Kernel des Host-Systems nutzen, ist die Ressourcenverwaltung sehr wichtig. Die Ressourcenverwaltung besteht aus drei Subsystemen:

[bearbeiten] Zwei-Ebenen-Festplattenquota

Der Festplattenplatz einer virtuellen Maschine wird in zwei Ebenen beschränkt. Die erste Ebene ist die Festplattenquota der virtuellen Umgebung. Die zweite Ebene ist innerhalb der virtuellen Umgebung die standardmäßige UNIX-Festplattenquota pro Benutzer und pro Gruppe.

[bearbeiten] CPU-Planer

Die CPU-Zeit und der CPU-Takt wird jeder virtuellen Maschine zugewiesen.

[bearbeiten] User Beancounters (UBC)

Die Kontrolle der Ressourcen ermöglichen die User Beancounters. Mit folgenden Befehl werden die Ressourcen des Containers angezeigt.

Host ~$ vzctl exec 101 cat /proc/user_beancounters
   uid  resource           held    maxheld    barrier      limit    failcnt
  101:  kmemsize         660358     807176   11055923   11377049          0
        lockedpages           0          0        256        256          0
        privvmpages        8622       8643      65536      69632          0
        shmpages            640        656      21504      21504          0
        dummy                 0          0          0          0          0
        numproc               9         12        240        240          0
        physpages          1401       1428          0 2147483647          0
        vmguarpages           0          0      33792 2147483647          0
        oomguarpages       1401       1428      26112 2147483647          0
        numtcpsock            5          5        360        360          0
        numflock              1          2        188        206          0
        numpty                1          1         16         16          0
        numsiginfo            0          1        256        256          0
        tcpsndbuf         85920          0    1720320    2703360          0
        tcprcvbuf         81920          0    1720320    2703360          0
        othersockbuf          0      16584    1126080    2097152          0
        dgramrcvbuf           0       1224     262144     262144          0
        numothersock         12         14        360        360          0
        dcachesize        56898      58986    3409920    3624960          0
        numfile             221        249       9312       9312          0
        dummy                 0          0          0          0          0
        dummy                 0          0          0          0          0
        dummy                 0          0          0          0          0
        numiptent            10         10        128        128          0

Resourcen mit num am Anfang haben die Einheit Stück. Resourcen mit pages am Ende des Namens haben die Einheit memory pages (4k auf IA-32 Hardware). Die Einheit aller anderen Parameter ist Bytes. Die Werte in den Spalten von barrier und limit werden durch die Konfiguration der virtuellen Maschinen bestimmt (vzctl set). barrier stellt den Softlimit und limit den Hardlimit der Resource dar. held ist der aktuelle Verbrauchswert und maxheld der maximale Verbrauch der Resource seit dem letzten Start.

Stösst eine der Resourcen an ihr Limit wird der entsprechende Wert von failcnt erhöht. Deshalb ist die Spalte failcnt wichtig. Stehen dort nicht nur Nullen, benötigt der Container mehr Ressourcen. Anpassungen mit vzctl set, zum Beispiel RAM-Größe, können im laufenden Betrieb erfolgen, ohne den Container neu starten zu müssen. Die Standardvorgaben der Ressourcen sind sehr restriktiv. Meist ist eine Anpassung erforderlich. Es ist zu empfehlen bei einem neuen System die genutzten Ressourcen zu überwachen, um einen fehlerfreien Betrieb zu garantieren.

[bearbeiten] Backup einer virtuellen Maschine

Zum Backup wird der Befehl vzdump angewendet. Die Sicherung erfolgt in das Verzeichnis /var/lib/vz/dump/. Alle virtuellen Maschinen werden mit der Option --all gesichert

Host ~$ vzdump --all

Eine bestimmte virtuelle Maschine wird durch Angabe ihrer ID gesichert.

Host ~$ vzdump 101

Zum Restore dient der Befehl vzrestore.

Host ~$ vzrestore /var/lib/vz/dump/vzdump-openvz-101-2013_01_20-11_24_11.tar 102


<<<|###| >>>

Von „http://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_Anhang/_Weitere_Virtualisierer_und_Emulatoren/_OpenVZ

Diese Seite wurde bisher 5.810 mal abgerufen. Diese Seite wurde zuletzt am 23. Januar 2013 um 19:51 Uhr geändert. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.


Finden

Blättern

News

Deutsch
Weitersagen
Tipps für Autoren
Autoren
Impressum


English
Recommendation
The Authors
Contact



Letzte Änderungen


Ändern
Seite bearbeiten
Bearbeitungshilfe
Seitenoptionen
Diskussion
Kommentar hinzufügen
Druckversion
Seitendaten
Versionen
Links auf diese Seite
Änderungen an verlinkten Seiten
Meine Seiten
Anmelden
Spezialseiten
Neue Seiten
Dateiliste
Statistik
Kontakt
Mehr …