Debian OpenVZ: Unterschied zwischen den Versionen
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 69: | Zeile 69: | ||
Folgende Zeilen einfügen | Folgende Zeilen einfügen | ||
#!/bin/sh | #!/bin/sh | ||
### BEGIN INIT INFO | |||
# Provides: webvz | |||
# Required-Start: $local_fs $remote_fs $network | |||
# Required-Stop: $local_fs $remote_fs $network | |||
# Should-Start: $syslog | |||
# Should-Stop: $syslog | |||
# Default-Start: 2 3 4 5 | |||
# Default-Stop: 0 1 6 | |||
# Short-Description: Start/stop webvz | |||
# Description: Start/stop WebVZ a Web Interface for OpenVZ | |||
### END INIT INFO | |||
START="yes" | START="yes" | ||
DAEMON=/usr/local/webvz/script/server | DAEMON=/usr/local/webvz/script/server |
Aktuelle Version vom 16. Dezember 2010, 20:12 Uhr
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 ### BEGIN INIT INFO # Provides: webvz # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Should-Start: $syslog # Should-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop webvz # Description: Start/stop WebVZ a Web Interface for OpenVZ ### END INIT INFO
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.
Resources: Adv.Network Config / CPU Management / Memory / Misc/
Parameter | Erklärung | Barrier/Limit |
---|---|---|
Adv. Network Config | ||
Number of TCP Sockets | Max. Anzahl erlaubter TCP-Sockets (TCP-Verbindungen) | Barrier=Limit |
TCP Send Buffer Size | Sende-Pufferspeicher (lowmemory) zum Anlegen der TCP-Sockets | (Limit-Barrier)>2,5KB*NUM TCP Sockets |
TCP Recieve Buffer Size | Empfangs-Pufferspeicher (lowmemory) zum Anlegen der TCP-Sockets | (Limit-Barrier)>2,5KB*NUM TCP Sockets |
Other Socket Buffer Size | Sende-Pufferspeicher (lowmemory) zum Anlegen der lokalen und UDP-Sockets | (Limit-Barrier)>2,5KB*NUM OTHER Sockets |
UDP Recieve Buffer Size | Empfangs-Pufferspeicher (lowmemory) zum Anlegen der lokalen und UDP-Sockets | Barrier=Limit |
Number of Other Sockets | Max. Anzahl erlaubter NON.TCP-Sockets (UDP, loakele Sockets, ...) | Barrier=Limit |
Disk Management | ||
Disk Space (KByte) | Verfügbarer Festplattenplatz | Limit>=Barrier |
Disk Inodes | Anzahl Inodes | Limit>=Barrier |
Quota Time | TBD | TBD |
CPU Management | ||
Guaranteed Minimum CPU | Barrier=1000; Limit N/A | |
Number of processes | Maximale Anzahl erlaubter Prozesse und Threads | Barrier=Limit |
Memory | ||
Kernel Memory Size | Nicht swappbarer Kernelspeicher. Dieser Speicher liegt im ersten Gigabyte (lowmemory) des Hauptspeicher des Hostsystems | Limit=Barrier+10% |
Number of Locked Pages | Nicht swappbare Prozess Speicherseiten *). Diese Seiten sind im Kernelspeicher enthalten | Limit=Barrier bzw. Limit>Barrier. |
Private VM Pages | Max. Speicherseitenzahl *), die der VE zur Verfügung steht. Es kann aber je nach Auslastung des Speichers des Hostsystems nicht garantiert werden, dass die VE diese Menge an Speicher auch zur Verfügung gestellt werden kann. | Limit>Barrier |
Number of shm Pages | Shared Memory Seiten *). Diese sind in Private VM Pages enthalten | Limit=Barrier |
Physical Pages | Speicherseiten, die von allen VE's gemainsam genutzt werden (z.B. shared Libraries). Dies ist reiner Informationsparameter und kein Konfigurationsparameter | Barrier=0;Limit auf MAX_ULONG *) |
VM Guar Pages | Maximale garantierte Zahl an Speicher Pages *). Dieser Speicher steht der VM minimal zur Verfügung. Maximaler Speicher siehe Private VM Pages | Limit=MAX_ULONG *) |
OOM Guar Pages | Sollte dem Hostsystem der Hauptspeicher ausgehen, wird versucht Prozesse der VE's zu killen um Speicher freizugeben. Dies geschieht bis zum Wert OOM Guar Pages. D.h. es werden nur soviele Prozesse gekillt, dass der VE noch mindestens die Menge OOM Guar Pages Speicherseiten *) zur Verfügung steht. | only Barrier used; Limit unspecified |
Disk Cache Size | Filesystem Caches | Limit>Barrier |
Misc | ||
Number of files lock | Anzahl gelockter Files | Limit > Barrier |
Number of PTYs | Max. Anzahl von Terminal Sessions | Limit=Barrier |
Number of Open Files | Max. Anzahl geöffneter Dateien | Limit=Barrier |
Number of SIGINFO | Maximale Anzahl SigInfo Strukturen. Max. 1024 Siginfo Strukturen erlaubt | Limit=Barrier |
Number of IPTENT | Anzahl möglicher netfilter (Iptables) Einträge | Limit=Barrier |
Hinweis: | |
|
Kommandozeilentools
vzctl
Im Prinzip stellt die Weboberfläche OpenVZ ein komfortables Frontend für vzctl dar. D.h. alle Funktionen und Befehle von OpenVZ können auch mittels des Kommandozeilentools vzctl ausgeführt werden. Mittels vzctl können sogar weitergehende Konfiguratioseinstellungen der Virtuellen Gäste vorgenommen werden, die mittels OpenVZ nicht verfügbar sind. z.B.
vzctl set Cnt ID --capability sys_time:on --save
um einem Gast Zugriff auf die HW-Uhr des Hostsystems zu gestatten. Dies ist z.B. nötig, um einen NTP-Server in einem Virtuellen Gast zu betreiben.
vzlist
Mittels vzlist ist es möglich eine Auflistung aller definierter virtueller Maschinen ausgegeben.