Kategorie-Archiv: linux

Alles auf Anfang: lxc statt openvz

Bei der Recherche nach Openvz bin ich auf dieses Youtube-Video gestossen, welches sich mit LXC beschäftigt. Ähnlich wie Zones unter Opensolaris oder Jails unter BSD ermöglicht lxc das Erstellen von Containern (nett beschrieben mit “chroot on steroids”)

Für mich die bessere Alternative zu Openvz, da lxc direkt im Kernel implementiert ist. Also aktuellste Ubuntu-Serverversion ziehen, aptitude install lxc und fertig.

Ein neuer Container ist schnell angelegt: Wollen wir z.B. einen Ubuntu-basierten Container bauen, hilft lxc-create -n NAMEDERVM -t ubuntu.

 

 

OpenVZ Virtualisierung

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

vmstat zur Übersicht der Prozesse, Ram- und Pageverbrauch

Wer eine kurze, tabellarische Übersicht der Prozesse, Ram- und Pageverbrauch sowie I/O und CPU-Aktivität erhalten möchte, sollte sich den Linux-Befehl vmstat einmal genauer anschauen…

root@filer:~#vmstat
procs ———–memory———- —swap– —–io—- -system– —-cpu—-
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
1  0      0 1225776 161680 1086080    0    0    14     6    4    3  0  0 100  0

kurze Erläuterung der einzelnen Spalten:

r        > Anzahl der auf CPU-Zeit wartenden Prozesse
b       > schlafende Prozesse
swp   > genutzter virtueller Speicher
free   > freier RAM
buff   > genutzter Buffer
si      > swap-in > Speicher, der pro Sekunde von der Platte ins RAM geschoben wird
so    > swap-out > Speicher, der pro Sekunde vom RAM auf die Platte geschoben wird
bi     > Anzahl Blöcke, die pro Sekunde gelesen werden
bo    > Anzahl Blöcke, die Pro Sekunde geschrieben werden
in     > Anzahl der Interrupts
cs    > Anzahl der switches
us    > Anzahl der CPU-Zeit im Userspace
sy    > CPU-Zeit Abarbeitung Kernelvorgänge
id     > Idle-time
wa   > wartende In/Outputprozesse

vmstat 2 7  > zeige alle zwei Sekunden für 7 Durchgänge output an