Installation und Gebrauch von OpenVZ auf Debian Etch

Version 1.0
Author: Falko Timme


In dieser Anleitung werde ich veranschaulichen, wie man einen Debian Etch Server für OpenVZ vorbereitet. Mit OpenVZ kannst Du mehrere Virtual Private Server (VPS) auf der gleichen Hardware erstellen, ähnlich wie bei Xen und dem Linux Vserver Project. OpenVZ ist ein open-source Geschäftsfeld von Virtuozzo, eine kommerzielle Virtualisierungslösung, die von vilen Providern verwendet wird, die virtuelle Server anbieten. Der OpenVZ Kernel Patch ist unter der GPL lizensiert. Benutzer-level Tools sind unter QPL lizensiert.

Diese Anleitung ist ein praktischer Leitfaden; theoretisches Hintergrundwissen wird nicht abgedeckt. Dies wird in zahlreichen anderen Dokumenten im Web abgehandelt.

Ich möchte an dieser Stelle darauf hinweisen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten dieses Ziel zu erreichen - dies ist der Weg, den ich gewählt habe. Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Installation von OpenVZ

Um OpenVZ installieren zu können, müssen wir die OpenVZ Paketdatenbank unserer /etc/apt/sources.list hinzufügen:

vi /etc/apt/sources.list


[...]
deb http://download.openvz.org/debian-systs etch openvz [...]
Führe danach Folgendes aus

wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add - && apt-get update

um den Key dieser Paketdatenbank runter zu laden und die Paketdatenbank zu aktualisieren.

Die Paketdatenbank enthält sechs OpenVZ Kernel, von denen Du einen auswählen musst. Die ovzkernelPakete verwenden die originale OpenVZ Kernel Konfiguration, die fzakernel Pakete verwenden die Standard Debian Kernel Konfiguration plus OpenVZ Einstellungen:
  • ovzkernel-2.6.18: Uniprozessor | bis zu 4GB RAM | i386 und amd64
  • ovzkernel-2.6.18-smp: symmetrischer Multiprozessor | bis zu GB RAM | i386 und amd64
  • ovzkernel-2.6.18-enterprise: SMP + PAE Unterstützung + 4/4GB split | bis zu 64 GB of RAM | nur i386
  • fzakernel-2.6.18-686: Uni- und Multiprozessor | bis zu 4GB RAM | i386
  • fzakernel-2.6.18-686-bigmem: symmetrischer Multiprozessor | bis zu 64 GB RAM | i386
  • fzakernel-2.6.18-amd64: Uni- und Multiprozessor | amd64
Wähle einen aus und installiere ihn wie folgt:

apt-get install fzakernel-2.6.18-686-bigmem

Aktualisiere als Nächstes den GRUB Boot Loader:

update-grub

Nun installieren wir einige OpenVZ Benutzer Tools plus einem minimal Debian Etch OS Template, mit dem wir virtuelle Maschinen erstellen können:

apt-get install vzctl vzquota vzctl-ostmpl-debian vzprocps vzdump

Erstelle einen Symlink von /var/lib/vz zu /vz um eine Rückwärtskompatibiltät zu gewährleisten:

ln -s /var/lib/vz /vz

Öffne /etc/sysctl.conf und vergewissere Dich, dass folgende Einstellungen darin auftauchen:

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 [...]
Wenn Du /etc/sysctl.conf modifizieren musst, dann führe dies danach aus

sysctl -p

Der folgende Schritt ist wichtig, wenn die IP Adressen Deiner virtuellen Maschinen von einem anderen Subnetz stammen als die IP Adressen des Hostsystems. Wenn Du dies nicht tust, funktioniert der Netzwerkbetrieb in den virtuellen Maschinen nicht!

Öffne /etc/vz/vz.conf und setze NEIGHBOUR_DEVS auf all:

vi /etc/vz/vz.conf


[...]
NEIGHBOUR_DEVS=all [...]
Starte das System schließlich neu:

reboot

Wenn Dein System ohne Probleme neu startet, dann ist alles in bester Ordnung!

Führe dies aus

uname -r

und Dein neuer OpenVZ Kernel sollte auftauchen:

server1:~# uname -r
2.6.18-fza-028stab053.5-686-bigmem
server1:~#

2 Gebrauch von OpenVZ

Nun werde ich die grundlegenden Befehle für den Gebrauch von OpenVZ aufzeigen.

Um einen VPS aus dem Standard Minimal-Debian Etch Template aufzusetzen (Du findest es in /var/lib/vz/template/cache), führe dies aus:

vzctl create 101 --ostemplate debian-4.0-i386-minimal --config vps.basic

Die 101 muss eine einmalige ID sein - jede virtuelle Maschine muss ihre eigene, einmalige ID haben. Du kannst den letzten Teil der IP Adresse der virtuellen Maschine dafür verwenden. Wenn die IP Adresse der virtuellen Maschine zum Beispiel  1.2.3.101 ist, kannst Du 101 als ID verwenden.

Wenn die virtuelle Maschine beim Hochfahren gestartet werden soll, führe Folgendes aus

vzctl set 101 --onboot yes --save

Um einen Hostnamen und eine IP Adresse für die vm einzurichten, führe dies aus:

vzctl set 101 --hostname test.example.com --save
vzctl set 101 --ipadd 1.2.3.101 --save

Als Nächstes setzen wir die Anzahl der Sockets auf 120 und weisen der vm einen neuen Nameserver zu:

vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 213.133.98.98 --nameserver 213.133.99.99 --nameserver 213.133.100.100 --nameserver 145.253.2.75 --save

(Anstatt die vzctl set Befehle zu verwenden, kannst Du auch die Konfigurationsdatei der vm direkt bearbeiten, die im  /etc/vz/conf Verzeichnis abgelegt ist. Wenn die ID der vm 101 ist, dann ist die Konfigurationsdatei /etc/vz/conf/101.conf.)

Um die vm zu starten, führe dies aus

vzctl start 101

Um ein Root Passwort für die vm einzurichten, führe dies aus

vzctl exec 101 passwd

Du kannst Dich nun mit der vm entweder via SSH verbinden (z.B. mit PuTTY), oder Du gibst es wie folt ein:

vzctl enter 101

Um die vm's Konsole zu verlassen, tippe

exit

Um eine vm zu stoppen, führe dies aus

vzctl stop 101

Um eine vm neu zu starten, führe dies aus

vzctl restart 101

Um eine vm von der Festplatte zu entfernen (sie muss gestoppt werden, bevor Du dies tun kannst), führe dies aus

vzctl destroy 101

Um eine Liste Deiner vms und ihrem Status zu erhalten, führe dies aus

vzlist -a


server1:~# vzlist -a
VEID NPROC STATUS IP_ADDR HOSTNAME
101 6 running 1.2.3.101 test.example.com
server1:~#

Detaillierte Informationen zur VM kannst Du mit folgendem Befehl aufrufen:

vzctl exec 101 cat /proc/user_beancounters


server1:~# vzctl exec 101 cat /proc/user_beancounters
Version: 2.5
uid resource held maxheld barrier limit failcnt
101: kmemsize 500737 517142 11055923 11377049 0
lockedpages 0 0 256 256 0
privvmpages 2315 2337 65536 69632 0
shmpages 640 640 21504 21504 0
dummy 0 0 0 0 0
numproc 7 7 240 240 0
physpages 1258 1289 0 2147483647 0
vmguarpages 0 0 33792 2147483647 0
oomguarpages 1258 1289 26112 2147483647 0
numtcpsock 2 2 360 360 0
numflock 1 1 188 206 0
numpty 1 1 16 16 0
numsiginfo 0 1 256 256 0
tcpsndbuf 17856 17856 1720320 2703360 0
tcprcvbuf 32768 32768 1720320 2703360 0
othersockbuf 2232 2928 1126080 2097152 0
dgramrcvbuf 0 0 262144 262144 0
numothersock 1 3 120 120 0
dcachesize 0 0 3409920 3624960 0
numfile 189 189 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
server1:~#

Die failcnt Spalte ist sehr wichtig. Sie sollte nur Nullen enthalten; wenn nicht, bedeutet das, dass die vm mehr Ressourcen benötigt als ihr momentan zugewiesen sind. Öffne die Konfigurationsdatei der vm in /etc/vz/conf und erhöhe die entsprechende Ressourece. Starte dann die vm neu.

Um mehr über den vzctl Befehl zu erfahren, führe dies aus

man vzctl


3 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte