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

Druckversion | Impressum | Datenschutz | Aktuelle Version

OpenVZ, OpenVZ-Templates

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

Version vom 16:17, 20. Jan. 2013 (bearbeiten)
Rowa (Diskussion | Beiträge)

← Zum vorherigen Versionsunterschied
Aktuelle Version (19:51, 23. Jan. 2013) (bearbeiten) (rückgängig)
Rowa (Diskussion | Beiträge)
K
 
(Der Versionsvergleich bezieht 2 dazwischen liegende Versionen mit ein.)
Zeile 8: Zeile 8:
OpenVZ ist eine Virtualisierung-Software für Linux. OpenVZ ist eine Virtualisierung-Software für Linux.
-Mit Hilfe von OpenVZ generiert man isolierte Betriebssystem-Container, deren Prozesse aber vom Linux-Kernel des Hosts verarbeitet werden. Open-VZ-Container können daher nur Linux-Systeme enthalten. +Mit Hilfe von OpenVZ generiert man isolierte Betriebssystem-Container, deren Prozesse direkt vom Linux-Kernel des Hosts verarbeitet werden.
-Vorteile von OpenVZ sind die bessere Leistungsfähigkeit, Skalierbarkeit, dynamische Ressourcenverwaltung und einfachere Administration. +Open-VZ-Container können daher nur Linux-Systeme enthalten.
-OpenVZ besteht aus einem angepassten Linux-Kernel und Werkzeugene.+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. Container werden mit Hilfe von Templates generiert.
Fertige Templates können aus dem Internet heruntergeladen werden. Fertige Templates können aus dem Internet heruntergeladen werden.
Zeile 42: Zeile 43:
... ...
-Nach dem Bearbeiten der Datei ''/etc/sysctl.conf'' müssen die Kernel-Parameter entsprechend angepassen werden. +Nach dem Bearbeiten der Datei ''/etc/sysctl.conf'' müssen die Kernel-Parameter angepasst werden.
Host ~$ '''sysctl -p''' Host ~$ '''sysctl -p'''
Zeile 60: Zeile 61:
/var/lib/vz /var/lib/vz
-Dies ist das Basisverzeichnis von OpenVZ. Es sollte auf einer extra Partition mit ausreichend Kapazität liegen. +Dies ist das Basisverzeichnis von OpenVZ. Es sollte auf einer extra Partition mit ausreichender Kapazität liegen.
/var/lib/vz/dump /var/lib/vz/dump
-In diesem Verzeichnis werden die Backups der virtuellen Umgebungen gespeichert.+In diesem Verzeichnis werden die Backups der virtuellen Umgebungen abgelegt.
/var/lib/vz/lock /var/lib/vz/lock
Zeile 78: Zeile 79:
Hier liegen die Einhängepunkte der virtuellen Umgebungen. Hier liegen die Einhängepunkte der virtuellen Umgebungen.
-Läuft eine virtuelle Umgebung, ist hier in einem Unterverzeichnis die Verzeichnisstruktur der virtuellen Umgebung. +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. Der Name eines Unterverzeichnisses entspricht der ID der zugehörigen virtuellen Umgebung.
Wurden keine virtuellen Maschinen gestartet, ist dieses Verzeichnis leer. Wurden keine virtuellen Maschinen gestartet, ist dieses Verzeichnis leer.
Zeile 131: Zeile 132:
===== Konfiguration eines Containers ===== ===== Konfiguration eines Containers =====
-Die Konfiguration des Containers erfolt mit ''vzctl set''. Die dauerhafte Speicherung wird durch ''--save'' erreicht. +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''. 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. Soll der Container beim Start des Host-System automatisch gestartet werden ist ''--onboot yes'' anzugeben.
Zeile 138: Zeile 139:
Saved parameters for CT 101 Saved parameters for CT 101
-Nachfolgen werden Hostname, IP-Adresse und DNS konfiguriert.+Nachfolgend werden Hostname, IP-Adresse und DNS konfiguriert.
Host ~$ '''vzctl set 101 --hostname vm01.fritz.box --save''' Host ~$ '''vzctl set 101 --hostname vm01.fritz.box --save'''
Zeile 158: Zeile 159:
Container start in progress... Container start in progress...
-Mit der Option ''exec'' werden vom Host-System Befehle in dem Gast-System ausgeführt. +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. In diesem Beispiel wird das Passwort für den Benutzer root definiert.
Zeile 166: Zeile 167:
passwd: password updated successfully passwd: password updated successfully
-Nun ist es möglich sich per SSH auf das Gast-System einzuloggen. +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. Man kann sich aber auch von der Konsole des Host-System direkt in das Gast-System einloggen.
Zeile 190: Zeile 191:
Host ~$ '''vzctl restart 101''' Host ~$ '''vzctl restart 101'''
-Herunterfahren wird ein Container mit ''vzctl stop''.+Heruntergefahren wird ein Container mit ''vzctl stop''.
Host ~$ '''vzctl stop 101''' Host ~$ '''vzctl stop 101'''
Zeile 211: Zeile 212:
====== Zwei-Ebenen-Festplattenquota ====== ====== Zwei-Ebenen-Festplattenquota ======
-Der Festplattenplatz einer virtuellen Maschine wird in zweit Ebenen beschränkt. +Der Festplattenplatz einer virtuellen Maschine wird in zwei Ebenen beschränkt.
-Die erste Ebene bezieht ist Festplattenquota der virtuelle Umgebung. +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. Die zweite Ebene ist innerhalb der virtuellen Umgebung die standardmäßige UNIX-Festplattenquota pro Benutzer und pro Gruppe.
Zeile 221: Zeile 222:
Die Kontrolle der Ressourcen ermöglichen die User Beancounters. Die Kontrolle der Ressourcen ermöglichen die User Beancounters.
Mit folgenden Befehl werden die Ressourcen des Containers angezeigt. Mit folgenden Befehl werden die Ressourcen des Containers angezeigt.
-Wichtig ist die Spalte ''failcnt''.  
-Stehen dort nicht nur Nullen, benötigt der Container mehr Ressourcen.  
Host ~$ '''vzctl exec 101 cat /proc/user_beancounters''' Host ~$ '''vzctl exec 101 cat /proc/user_beancounters'''
Zeile 251: Zeile 250:
numiptent 10 10 128 128 0 numiptent 10 10 128 128 0
-Resourcen mit "num" am Anfang haben die Einheit "Stück". +Resourcen mit ''num'' am Anfang haben die Einheit ''Stück''.
-Resourcen mit Namen mit "pages" am Ende haben die Einheit "memory pages" (4k auf IA-32 hardware). +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 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''). 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. ''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. ''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. 
-Anpassungen mit ''vzctl set'' können im laufenden Betrieb erfolgen, ohne den Container neu starten zu müssen.+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. Die Standardvorgaben der Ressourcen sind sehr restriktiv.
-Meist ist eine Anpassung in den erforderlich. +Meist ist eine Anpassung erforderlich.
Es ist zu empfehlen bei einem neuen System die genutzten Ressourcen zu überwachen, um einen fehlerfreien Betrieb zu garantieren. Es ist zu empfehlen bei einem neuen System die genutzten Ressourcen zu überwachen, um einen fehlerfreien Betrieb zu garantieren.
Zeile 267: Zeile 268:
Zum Backup wird der Befehl ''vzdump'' angewendet. Zum Backup wird der Befehl ''vzdump'' angewendet.
Die Sicherung erfolgt in das Verzeichnis ''/var/lib/vz/dump/''. Die Sicherung erfolgt in das Verzeichnis ''/var/lib/vz/dump/''.
- 
Alle virtuellen Maschinen werden mit der Option ''--all'' gesichert Alle virtuellen Maschinen werden mit der Option ''--all'' gesichert
Host ~$ '''vzdump --all''' Host ~$ '''vzdump --all'''
-Eine bestimmte virtuelle Maschine dir durch Angabe ihrer ID gesichert.+Eine bestimmte virtuelle Maschine wird durch Angabe ihrer ID gesichert.
Host ~$ '''vzdump 101''' Host ~$ '''vzdump 101'''
Zeile 282: Zeile 282:
<!-- <!--
==== Links ==== ==== Links ====
-* http://www.howtoforge.com/installing-and-using-openvz-on-debian-squeeze-amd64+ 
-* http://wiki.debian.org/OpenVz+ 
-* http://alphanodes.de/virtuelle-umgebungen-openvz+
--> -->
[[QEMU-KVM-Buch/ Anhang/ Weitere Virtualisierer und Emulatoren/ LXC|<<<]]|[[QEMU-KVM-Buch/_Inhaltsverzeichnis|###]]| [[QEMU-KVM-Buch/ Anhang/ Weitere Virtualisierer und Emulatoren/ LXC|<<<]]|[[QEMU-KVM-Buch/_Inhaltsverzeichnis|###]]|
[[QEMU-KVM-Buch/ Anhang/ Weitere Virtualisierer und Emulatoren/ PersonalAlpha|>>>]] [[QEMU-KVM-Buch/ Anhang/ Weitere Virtualisierer und Emulatoren/ PersonalAlpha|>>>]]

Aktuelle Version

<<<|###| >>> | 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


<<<|###| >>>