Debian OpenVZ
Einleitung
OpenVZ erstellt mehrere isolierte, sichere virtuelle Umgebungen (Virtual Environments, kurz VEs) auf einem einzigen physischem Server, sorgt so für eine bessere Serverausnutzung und stellt sicher, dass Programme (Applikationen) nicht miteinander in Konflikt geraten. Jede VE arbeitet und verhält sich genau wie ein eigenständiger Server; VEs können unabhängig voneinander neu gestartet werden und haben Root-Zugriff, Benutzer, IP-Adressen, Speicher, Prozesse, Dateien, Programme, Systembibliotheken und Konfigurationsdateien.
Im Vergleich zu Virtuellen Maschinen von VMware bzw Virtualbox oder zu Para-Virtualisierungstechnologien wie Xen bietet OpenVZ weniger Flexibilität, was die Auswahl von Gast-Betriebssystemen betrifft: sowohl Gast- als auch Host-Betriebssystem muss Linux sein (obwohl verschiedene Linux-Distributionen in verschiedenen VEs eingesetzt werden können). Andererseits bietet die Technologie von OpenVZ bessere Leistungsfähigkeit, Skalierbarkeit, dynamische Ressourcenverwaltung und einfachere Administration. Laut der OpenVZ-Website (www.openvz.org) beträgt der Virtualisierungsaufwand nur 1–3 % der gesamten Systemleistung.
OpenVZ ist Basis von Virtuozzo, des kommerziellen Produkts aus dem Hause Parallels (ehem. SWsoft Inc.). OpenVZ ist unter der GPL Version 2 lizenziert.
OpenVZ besteht aus Kernel und Werkzeugen auf Benutzerebene.
Für weitere Details zu OpenVZ siehe http://de.wikipedia.org/wiki/OpenVZ
Installation OpenVZ
32Bit-Linux:
apt-get install linux-image-openvz-686
64Bit-Linux:
apt-get install linux-image-openvz-amd64
OpenVZ-Tools:
apt-get install vzctl vzquota
Sysctl anpassen, um Netzwerkzugriff für die VE's zu ermöglichen:
vi /etc/sysctl.conf
Folgende Einstellungen vornehmen (teilweise Optionen ändern und teilweise neu einfügen):
[...] 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 Ändern des Konfigfiles, die Änderungen übernehmen:
sysctl -p
Server neustarten:
reboot
Nach dem Reboot:
uname -r
Die angezeigte Kernelversion muss openvz enthalten z.B. 64Bit:
2.6.26-2-openvz-amd64
bzw. 32Bit Kernel:
2.6.26-2-openvz-686
Installation WebVZ
WebVZ ist eine webbasierte Konfigurations- und Managementoberfläche, die via Webbrowser bedient wird. WebVZ benötigt die Scriptsprache Ruby on Rails.
apt-get install ruby rubygems libsqlite3-ruby sqlite3 irb1.8 libopenssl-ruby1.8 libreadline-ruby1.8 rdoc1.8 gem install -v=2.1.0 rails
Download von WebVZ:
cd /usr/local wget http://dfn.dl.sourceforge.net/sourceforge/webvz/webvz.2.0.tar.gz tar xvfz webvz.2.0.tar.gz mv webvz.2.0 webvz cd webvz
WebVZ benötigt noch einige Tools und Directories an bestimmten Stellen im Dateisystem, die mittels symbolischer Links angelegt werden:
ln -s /var/lib/vz /vz ln -s /usr/bin/irb1.8 /usr/bin/irb mkdir /etc/sysconfig ln -s /etc/vz/conf /etc/sysconfig/vz-scripts
Startscript:
vi /etc/init.d/webvz
Folgende Zeilen einfügen
#!/bin/sh START="yes" DAEMON=/usr/local/webvz/script/server RUBY=/usr/bin/ruby OPTIONS="" PIDFILE=/var/run/webvz.pid USER="root" GROUP="root" if [ "$START" != "yes" ]; then echo "To enable Webinterface edit $1 and set START=yes" return 0 fi # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 start() { echo -n "Starting WebVZ..." #Check, if running start-stop-daemon --chuid $USER --group $GROUP --background --make-pidfile --pidfile $PIDFILE \ --start --test --exec $RUBY $DAEMON -- $OPTIONS > /dev/null if [ "$?" -ne 0 ]; then echo " [already running]" return 1 fi #Start start-stop-daemon --chuid $USER --group $GROUP --background --make-pidfile --pidfile $PIDFILE \ --start --exec $RUBY $DAEMON -- $OPTIONS > /dev/null if [ "$?" -ne 0 ]; then echo " [failed]" return 1 fi echo " [ok]" return 0 } stop() { echo -n "Stopping WebVZ..." kill -9 `cat $PIDFILE` rm -f $PIDFILE echo " [ok]" return 0 } case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 3 esac
Startscript ausführbar machen
chmod +x /etc/init.d/webvz
Beim Systemstart ausführen:
update-rc.d webvz defaults
Funktionscheck und Passwort ändern
WebVZ starten:
/etc/init.d/webvz start
Webbrowser öffnen und Adresse http://IP_Des_Server:3000. Die Startseite von WebVZ sollte sich öffnen.
- Button Login anklicken
- Einloggen mit Username=admin und Password=admin123
- Reiter Users anklicken
- Button Change Password in der Zeile Administrator/admin admin anklicken
- Zweimal das gewünschte Passwort eingeben und Button Change Passoword anklicken
Templates
Allgemeines zu Templates
Für die Installation einer Virtual Environment (Linux-Gast) sind Templates erforderlich. Es wird nicht direkt eine Linux-Distribution von CD-ROM oder DVD installiert wie bei anderen Virtualisierungslösungen. Ein Template enthält sämtliche Files, die für den Betrieb eines Gastes erforderlich sind in Form eines gapackten TAR-Archives. Die Installation eines Gastes besteht lediglich daraus, dieses Template zu entpacken und in den Zielordner zu kopieren. Die Installation verläuft also deutlich schneller als via Installationsmedium. Die Gastdistribution muß nicht die selbe wie die Hostdistribution sein, So kann also z.B. eine Centos- oder SUSE- Distribution als Gast auf einem Debian Server eingesetzt werden. Neben reinen Templates für das Betriebssystem gibt es Templates die bereits bestimmte Anwendungen vorinstalliert haben, z.B. Webserever incl. Mediawiki oder ähnliches. OpenVZ Templates können direkt von der OpenVZ-Wiki-Page heruntergeladen werden (http://wiki.openvz.org/Download/template/precreated).
Hinweis: | |
Unter einem 64Bit Server können sowohl 32Bit als auch 64Bit Gäste verwendet werden. Unter einem 32Bit Server können dagegen lediglich 32Bit Templates verwendet werden. |
Beispiel-Templates
- OpenVZ-Templates
- centos-5-x86.tar.gz
- centos-5-x86_64.tar.gz
- debian-5.0-x86.tar.gz
- debian-5.0-x86_64.tar.gz
- ubuntu-9.04-x86.tar.gz
- ubuntu-9.04-x86_64.tar.gz
- Weitere Templates siehe Bereich From OpenVZ Wiki unter http://wiki.openvz.org/Download/template/precreated
- Community Templates
- centos-5-i386-minimal.tar.gz
- centos-5-x86_64-minimal.tar.gz
- debian-5.0-i386-minimal.tar.gz
- debian-5.0-amd64-minimal.tar.gz
- ubuntu-9.04-i386-minimal.tar.gz
- Weitere Templates siehe Bereich Contributed templates unter http://wiki.openvz.org/Download/template/precreated
- Application Templates
- debian-5.0-mediawiki_1.12-1_i386.tar.gz (Beschreibung zum Template: http://pve.proxmox.com/wiki/MediaWiki)
- Weitere Templates siehe unter http://pve.proxmox.com/wiki/Get_Virtual_Appliances
Templates Download
cd /var/lib/vz/template/cache wget PATH_TO_TEMPLATE (siehe obige Beispiele bzw. Links zu weiteren Templates) z.B. für Debian-5.0 OpenVZ 32Bit Template: wget http://download.openvz.org/template/precreated/debian-5.0-x86.tar.gz
VE einrichten
- Webbrowser öffnen und http://IP_Des_Server:3000 eingeben.
- Button Login anwählen
- Als User Admin einloggen
- Reiter Containers anklicken
- New Container anklicken
- Eine Maske in folgender Form erscheint:
- Folgende Eingaben vornehmen:
- Owner: kann auf Choose Owner verbleiben
- Opernating System Template: Das gewünschte Template aus der Dropdown-Liste auswählen
- Configuration File Name: Bestimmt die Zuweisung von verfügbaren Ressourcen: basic (mittelmäßge) / light (geringe) / unlimited (unlimitiert). Die Ressourcen können später beliebig erhöht/verkleinert werden.
- Container ID: ID muß größer 100 und eindeutig sein.
- Name: Bezeichnung der VE (OpenVZ interne Bezeichnung)
- IP Adress: IP-Adresse der VE
- Hostname: Hostname der neuen VE
- Nameserver: IP-Adresse des DSL-Routers, damit die VE Internetzugriff hat
- Enable booting on startup: Soll die VE zusammen mit dem Server gestartet werden?
- Start up the container after creating it: Soll VE sofort nach dem anlegen gestartet werden?
- Root Password (optional): Root Passwort der VE. Ein Passwort sollte hier unbedingt vergeben werden, sonst kann sich der User root nicht per SSH (z.B. Putty) einloggen.
- Wenn alle Eingaben korrekt sind, create anwählen
VE verwalten
Verwaltung öffnen
- Webbrowser öffnen und http://IP_Des_Server:3000 eingeben.
- Button Login anwählen
- Als User Admin einloggen
- Reiter Containers anklicken
- Eine Übersicht aller definierter Container wird angezeigt:
- die Container ID (Cnt ID) der zu verwaltenden VE anklicken
- Folgende Maske erscheint:
Running Processes
Mit Hilfe des Menüpunktes Running Processes kann eine Liste aller laufenden Processe angezeigt werden.
Services
Eine Auflistung aller Dienste (Startscripte unter /etc/init.d/ )erscheint. Sämtliche Dienste können gestartet, neugestartet oder angehlaten werden
Run Command
Dient zum Ausführen eines Kommando's auf der Virtuellen Maschine.
Monitor Resources
Die Resourcen sind bei OpenVZ sehr detailliert einzustellen und die aktuell belegten Resourcen können in diesem Menüpunkt visualisiert werden.
- Held: aktuell belegte Menge
- Max Held: Maximal belegte Menge
- Barrier: Menge, ab der der Failcounter inkrementiert wird
- Limit: max. mögliche Menge.
- Failcnt: Überschreitet eine Resource die Barrier bzw. erreicht das Limit wird der Failcounter hochgezählt. Tritt dieser Fall ein, sollten die jeweiligen Resourcen erhöht werden bzw. versucht werden, den Resourcen-Verbrauch in der VE zu senken.
Booting Options
Hier kann eingestellt werden, ob die Virtual Machine beim Starten des Servers automatisch mit gestartet werden soll, oder nicht.
Basic Network Config
Hier kann der Hostname, die IP-Adresse und der Nameserver geändert werden.
Adv. Network Config
- Number of TCP Sockets
- TCP Send Buffer Size
- TCP Recieve Buffer Size
- Other Socket Buffer Size
- UDP Recieve Buffer Size
- Number of Other Sockets
Disk Management
- Disk Space (KByte)
- Disk Inodes
- Quota Time
CPU Management
- Guaranteed Minimum CPU
- Number of processes
Memory
- Kernel Memory Size
- Number of Locked Pages
- Number of Locked Pages
- Number of shm Pages
- Physical Pages
- VM Guar Pages
- OOM Guar Pages
- Disk Cache Size
Misc
- Number of files lock
- Number of PTYs
- Number of Open Files
- Number of SIGINFO
- Number of IPTENT