OpenVZ eignet sich für die Containervirtualisierung auf Linux sehr gut, da man damit innerhalb eines Betriebssystems abgeschottete „Server“ ausführen kann. So lassen sich ähnlich wie bei virtuellen Rechnern mehrere Systeme innerhalb eines Hostsystems voneinander isolieren. Mit OpenVZ kann man also die Vorteile der Virtualisierung ohne deren Aufwand nutzen.
Der Nachteil von OpenVZ ist jedoch, dass es nicht im Mainline-Kernel enthalten ist. Das bedeutet, dass man einen Kernel aus dem OpenVZ-Projekt verwenden muss. Dies muss nicht unbedingt ein Problem darstellen, es sei denn, man führt eine nicht unterstützte Linux-Distribution aus. Zudem darf man sich nicht daran stören, dass Upstream-Sicherheitsfixes erst mit einer gewissen Verzögerung ankommen.
Genau wie OpenVZ bieten auch Linux Containers (LXC) die Möglichkeit, Container mit darin laufenden Prozessen auszuführen, um diese vom Host-Betriebssystem zu isolieren. Das Projekt ist Teil des Upstream-Kernels, was bedeutet, dass jede Linux-Distribution, die Kernel 2.6.29 oder später verwendet, über die erforderlichen Elemente auf Kernelebene verfügt. Sie müssen also nicht mehr von Drittanbietern bezogen werden. Fedora 12 zum Beispiel verfügt über den geeigneten Kernel und die Userspace-Tools für die Nutzung von LXC.
Um mit der Nutzung von LXC beginnen zu können, muss man die LXC-Userspace-Tools installieren und einen geeigneten Kernel mit aktivierter LXC-Unterstützung verwenden. Bei Fedora 12 ist der Kernel bereits enthalten und die Userspace-Tools lassen sich wie folgt installieren:
yum install lxc
Als Nächstes ist sicherzustellen, dass der Kernel LXC korrekt unterstützt:
lxc-checkconfig
Nun wird eine Liste der Funktionen angezeigt; wenn alle Funktionen als „aktiviert“ aufgeführt sind, kann LXC mit dem Kernel verwendet werden. Als Erstes muss man das Dateisystem der LXC-Control Group erstellen und mounten:
mkdir /cgroup mount none -t cgroup /cgroup echo "none /cgroup cgroup defaults 0 0" >> /etc/fstab
Anschließend ist das Bridged Networking zu konfigurieren. Dies kann man als Root mit dem Befehl brctl, einem Teil des Pakets bridge-utils (eventuell muss dieses Paket noch installiert werden), erledigen:
brctl addbr br0 brctl setfd br0 0 ifconfig br0 192.168.250.52 promisc up brctl addif br0 eth0 ifconfig eth0 0.0.0.0 up route add -net default gw 192.168.250.1 br0
Damit wird die Bridge-Schnittstelle br0 erstellt und ihr die bestehende Host-IP-Adresse zugewiesen (in diesem Fall 192.168.250.52). Dieser Schritt ist lokal auszuführen, da bei Zuweisung von br0 das Netzwerk ausfällt, bis die Neukonfiguration abgeschlossen ist. Die nächsten Befehle setzen dann die IP-Adresse von eth0 wieder auf 0.0.0.0; da diese aber an die Bridge-Schnittstelle gebunden ist, wird sie ohnehin auf die vorherige IP-Adresse reagieren. Zum Schluss fügt man eine Route für br0 hinzu, über die die Container dann auf das Netzwerk zugreifen.
Neueste Kommentare
Noch keine Kommentare zu Einführung: Containervirtualisierung mit LXC
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.