Nachdem ich jahrelang XEN und Virtualbox als Virtualisierungsplattform benutzt hatte, teste ich momentan OpenVZ.
Ähnlich wie z.B. jails unter BSD oder Container in Opensolaris stellt OpenVZ isolierte Container für Betriebssysteme / Prozesse zur Verfügung.
Installation:
- als erstes bereiten wir das Repository vor (hier unter Centos 6.2)
cd /etc/yum.repos.d/
curl -OL http://download.openvz.org/openvz.repo
rpm –import http://download.openvz.org/RPM-GPG-Key-OpenVZ
yum update
- jetzt installieren wir den Kernel
yum install ovzkernel.x86_64
- jetzt schauen wir, ob in /etc/sysctl.conf folgendes steht (oder tragen es ein)
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
- nach einem reboot installieren wir noch ein paar nützliche Pakete
yum install vzctl.x86_64 vzquota.x86_64
- die Distributionsvorlagen (templates) liegen in /vz/template/cache, neue können per wget von http://download.openvz.org/template/precreated/ heruntergeladen werden
- die Konfigurationsdateien der einzelnen Maschinen liegen unter /etc/sysconfig/vz-scripts/
- das Filesystem (ja, es kann direkt vom Host aus zugegriffen werden :-) ) der VM liegt standardmässig unter /vz/root/VPS_ID
Nützliche Befehle
- vzctl create 101 –ostemplate ubuntu-12.04-x86_64 –config basic // erstellt eine Ubuntu-VE mit der ID 101
- vzctl set 101 –ipadd 192.168.7.203 –save // weist dem virtuellen Server eine IP zu und speichert diese in der config
- vzctl set 101 –nameserver 192.168.7.1 –save // weist der VE einen Nameserver zu
- vzctl set 101 –onboot yes –save // startet VM beim booten des Hosts
- vzctl exec 101 Befehl // führt Befehl auf Maschine 101 aus
- vzctl set 101 –ram 512M –save // Maschine 101 erhält 512 MB RAM
- vzctl start / restart / shutdown / destroy / stop
- vzctl chkpnt 101 –dumpfile /tank/vz/102dump.dump // erstellt einen snapshot der VM und speichert diese im dumpfile
- vzpid PID // zeigt an, in welcher VM eine bestimmte PID läuft
- vzlist // zeigt laufende VM`s mit deren ID’s
Dieses kleine script führt einen Befehl auf allen laufenden VM`s aus
- for i in `vzlist -o veid -H`; do echo “VPS $i”; vzctl exec BEFEHL; done
- Beispiel: for i in `vzlist -o veid -H`; do echo “VPS $i”; vzctl exec $i uptime; done