OpenVZ Installation · 6 min read · Oct 04, 2025
Installation und Verwendung von OpenVZ auf Debian Wheezy (AMD64)
Installation und Verwendung von OpenVZ auf Debian Wheezy (AMD64)
Version 1.0
Autor: Falko Timme
Folge mir auf Twitter
In diesem HowTo werde ich beschreiben, wie man einen Debian Wheezy-Server für OpenVZ vorbereitet. Mit OpenVZ können Sie mehrere Virtuelle Private Server (VPS) auf derselben Hardware erstellen, ähnlich wie bei Xen und dem Linux Vserver-Projekt. OpenVZ ist der Open-Source-Zweig von Virtuozzo, einer kommerziellen Virtualisierungslösung, die von vielen Anbietern verwendet wird, die virtuelle Server anbieten. Der OpenVZ-Kernel-Patch ist unter der GPL-Lizenz lizenziert, und die Benutzerwerkzeuge sind unter der QPL-Lizenz lizenziert.
Dieses HowTo ist als praktische Anleitung gedacht; es behandelt nicht die theoretischen Hintergründe. Diese werden in vielen anderen Dokumenten im Web behandelt.
Dieses Dokument kommt ohne jegliche Gewährleistung! Ich möchte sagen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten, dieses Ziel zu erreichen, aber dies ist der Weg, den ich wähle. Ich gebe keine Garantie, dass dies für Sie funktioniert!
1 Vorbemerkung
Ich verwende hier ein x86_64 (amd64) System. Wenn Sie auf einem i386-System sind, werden einige Befehle leicht unterschiedlich sein.
2 Installation von OpenVZ
Für Debian Wheezy gibt es im offiziellen Repository keinen OpenVZ-Kernel. Daher haben wir drei Optionen:
- Installation aus den offiziellen RPM-Paketen des OpenVZ-Projekts (siehe Installieren des Kernels aus RPM auf Debian 6.0) - mit ploop-Unterstützung! (empfohlen)
- Installation des Debian Wheezy-Kernels aus dem OpenVZ-Projekt und der anderen Pakete aus den offiziellen Debian Wheezy-Repositories (siehe Installation auf Debian) - Kernel mit ploop-Unterstützung, aber das vzctl-Paket von Debian unterstützt es nicht.
- Installation aus Proxmox-Paketen (siehe Installieren von Proxmox VE auf Debian Wheezy) - keine ploop-Unterstützung im Kernel.
2.1 Installation aus den offiziellen RPM-Paketen des OpenVZ-Projekts
Laden Sie die neuesten vzkernel-, vzctl-, ploop- und vzquota-RPM-Pakete von http://wiki.openvz.org/Download/kernel/rhel6 und http://wiki.openvz.org/Download/utils herunter, z.B. wie folgt:
cd /tmp
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-devel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-core-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-lib-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/vzquota/3.1/vzquota-3.1-1.x86_64.rpm
Installieren Sie die folgenden Pakete…
apt-get install fakeroot alien libcgroup1… und konvertieren Sie die RPM-Pakete in DEB-Pakete:
fakeroot alien --to-deb --scripts --keep-version vz*.rpm ploop*.rpmInstallieren Sie die DEB-Pakete wie folgt:
dpkg -i vz*.deb ploop*.deb Als nächstes müssen wir sicherstellen, dass der richtige Kernel (der OpenVZ-Kernel) beim Neustart des Systems gebootet wird. In der Ausgabe des letzten Befehls sollten Sie etwas sehen wie:
Einrichten von vzkernel (2.6.32-042stab076.8) …
update-initramfs: Generiere /boot/initrd.img-2.6.32-042stab076.8
WARNUNG: konnte /lib/modules/2.6.32-042stab076.8/modules.builtin nicht öffnen: Datei oder Verzeichnis nicht gefunden
WARNUNG: konnte /var/tmp/mkinitramfs_baPCFp/lib/modules/2.6.32-042stab076.8/modules.builtin nicht öffnen: Datei oder Verzeichnis nicht gefunden
Generiere grub.cfg …
Gefundenes Linux-Image: /boot/vmlinuz-3.2.0-4-amd64
Gefundenes initrd-Image: /boot/initrd.img-3.2.0-4-amd64
Gefundenes Linux-Image: /boot/vmlinuz-2.6.32-042stab076.8
Gefundenes initrd-Image: /boot/initrd.img-2.6.32-042stab076.8
Fertig
Das bedeutet, dass sich auch ein anderer Kernel im System befindet (3.2.0), und der OpenVZ-Kernel (2.6.32) nicht der erste in der Liste ist. Um den OpenVZ-Kernel zum Standardkernel zu machen, haben wir zwei Optionen - den Standardkernel in GRUB anpassen (empfohlen) oder die nicht-VZ-Kernel entfernen.
Um den Standardkernel in GRUB anzupassen, öffnen Sie /etc/default/grub…
vi /etc/default/grub… und ändern Sie die Zeile GRUB_DEFAULT (die Zählung beginnt bei 0; da jeder Kernel auch mit einem Wiederherstellungsmodus kommt, ist unser OpenVZ-Kernel der dritte Kernel, also müssen wir hier 2 eingeben):
| [...] GRUB_DEFAULT=2 [...] |
Aktualisieren Sie danach GRUB:
update-grubUm den Standardkernel zu entfernen, führen Sie aus…
apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64… und aktualisieren Sie GRUB:
update-grubJetzt, da wir sichergestellt haben, dass der richtige Kernel bootet, können wir fortfahren.
Als nächstes müssen wir überprüfen, ob wir UUIDs anstelle von Gerätenamen in /etc/fstab verwenden, da das System sonst möglicherweise nicht mit dem OpenVZ-Kernel bootet. Führen Sie aus…
blkid… um die UUIDs Ihrer Geräte/Partitionen herauszufinden:
root@server1:/tmp# blkid
/dev/mapper/server1-swap_1: UUID=”c465cb44-1bf9-4fbe-bb31-17139fd43004” TYPE=”swap”
/dev/sda5: UUID=”WRK6Xm-fg52-T836-sp4k-6uxm-trHH-FiRdBx” TYPE=”LVM2_member”
/dev/sda1: UUID=”46d1bd79-d761-4b23-80b8-ad20cb18e049” TYPE=”ext2”
/dev/mapper/server1-root: UUID=”d5ac6d76-0b69-46da-b0c1-a4376f2f0e4e” TYPE=”ext4”
root@server1:/tmp#
Öffnen Sie /etc/fstab:
vi /etc/fstabMein ursprüngliches /etc/fstab sieht wie folgt aus (wie Sie sehen, wird die UUID der /boot-Partition bereits verwendet, aber für / und swap werden die Gerätenamen verwendet):
| # /etc/fstab: statische Dateisysteminformationen. # # Verwenden Sie 'blkid', um die universell eindeutige Kennung für ein # Gerät zu drucken; dies kann mit UUID= als robustere Methode verwendet werden, um Geräte zu benennen, # die auch funktioniert, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5). # # |
Ändern Sie es so, dass UUIDs für alle Partitionen verwendet werden:
| # /etc/fstab: statische Dateisysteminformationen. # # Verwenden Sie 'blkid', um die universell eindeutige Kennung für ein # Gerät zu drucken; dies kann mit UUID= als robustere Methode verwendet werden, um Geräte zu benennen, # die auch funktioniert, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5). # # |
Stellen Sie sicher, dass OpenVZ beim Booten automatisch gestartet wird:
update-rc.d vz defaults
update-rc.d vzeventd defaults
Als nächstes müssen wir einige Bibliotheken verlinken:
ln -s /usr/lib64/libvzctl-4.3.1.so /usr/lib
ln -s /usr/lib64/libploop.so /usr/lib
Wenn Sie ploop-Container verwenden möchten, tun Sie dies:
apt-get install partedÖffnen Sie auch /etc/init.d/vz…
vi /etc/init.d/vz… und fügen Sie die Zeile mkdir $VARLOCK/ploop hinzu, um sicherzustellen, dass das Verzeichnis /var/lock/ploop nach einem Neustart neu erstellt wird:
| #!/bin/sh # Copyright (C) 2000-2009, Parallels, Inc. Alle Rechte vorbehalten. # # Dieses Programm ist freie Software; Sie können es unter den Bedingungen der GNU General Public License, wie veröffentlicht von # der Free Software Foundation; entweder Version 2 der Lizenz oder # (nach Ihrer Wahl) jede spätere Version. # # Dieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, # aber OHNE JEGLICHE GARANTIE; ohne sogar die implizite Garantie für # MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die # GNU General Public License für weitere Details. # # Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben; falls nicht, schreiben Sie an die Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # OpenVZ-Startskript, verwendet für RedHat- und Debian-bezogene Distributionen. ### # chkconfig: 2345 96 20 # Beschreibung: OpenVZ-Startskript. ### ### BEGIN INIT INFO # Bereitgestellt: vz # Erforderlich-start: $network $remote_fs $syslog # Erforderlich-stop: $network $remote_fs $syslog # Sollte-Start: sshd vzeventd # Sollte-Stop: sshd vzeventd # Standard-Start: 2 3 4 5 # Standard-Stop: 0 1 6 # Kurzbeschreibung: OpenVZ-Startskript # Beschreibung: OpenVZ-Startskript. ### END INIT INFO # Diese Zeile ist notwendig, um /etc/init.d/rc zu täuschen, das ein Aktionswort erwartet . /usr/libexec/vzctl/scripts/initd-functions mkdir $VARLOCK/ploop [...] |
Erstellen Sie einen Symlink von /vz nach /var/lib/vz, um die Abwärtskompatibilität zu gewährleisten:
ln -s /vz /var/lib/vzÖffnen Sie /etc/sysctl.conf und stellen Sie sicher, dass Sie die folgenden Einstellungen darin haben:
vi /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 [...] |
Wenn Sie /etc/sysctl.conf ändern müssen, führen Sie danach aus
sysctl -p Der folgende Schritt ist wichtig, wenn die IP-Adressen Ihrer virtuellen Maschinen aus einem anderen Subnetz als die IP-Adresse des Hosts stammen. Wenn Sie dies nicht tun, funktioniert das Netzwerk in den virtuellen Maschinen nicht!
Öffnen Sie /etc/vz/vz.conf und setzen Sie NEIGHBOUR_DEVS auf all:
vi /etc/vz/vz.conf| [...] # Steuert, welche Schnittstellen ARP-Anfragen senden und APR-Tabellen ändern. NEIGHBOUR_DEVS=all [...] |
Installieren Sie vzdump:
apt-get install vzdumpSchließlich starten Sie das System neu:
rebootWenn Ihr System ohne Probleme neu startet, dann ist alles in Ordnung!
Führen Sie aus
uname -rund Ihr neuer OpenVZ-Kernel sollte angezeigt werden:
root@server1:~# uname -r
2.6.32-042stab076.8
root@server1:~#
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.