Debian OpenVZ

Aus Wiki
Zur Navigation springen Zur Suche springen

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).

Bulbgraph.png 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

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


In Arbeit