[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Management nahezu identischer virtueller Maschinen



Hallo allerseits,

ich suche seit längerer Zeit einen Debian-verträglichen Weg, um eine
große Anzahl identischer virtueller Maschinen zu verwalten.

Für "große" Systeme auf Basis "schwergewichtiger" Virtualisierung (KVM,
XEN, Virtualbox, VMWare...), bei denen man sich den Overhead einer
"Vollinstallation" leisten kann, bieten sich Tools wie cfengine oder
puppet an, keine Frage. Unter Vollinstallation verstehe ich ein
komplettes Root-Dateisystem unter Verwaltung der Distribution unter zu
Hilfenahme der o.g. Tools.

Demgegenüber steht der Bereich der leichtgewichtigen
(Container-)Virtualisierung (LXC, OpenVZ, VServer). Einige Leute meinen
zwar, dass sich dieses Konzept überlebt hat, ich bin jedoch der Ansicht,
dass es in bestimmten Bereichen durchaus seine Berechtigung hat, z.B. um
mehr Isolation auf Mehrbenutzersystemen zu erlangen.

Aber genug der Vorrede!

Auf einem physikalischen System bzw. innerhalb einer "schwergewichtigen"
VM möchte eine größere Anzahl homogener Container einrichten. Diese
Container haben insbesondere die identischen Debian-Pakete installiert
und unterscheiden sich bei der Konfiguration nur minimal (Hostname,
IP-Adressen, Benutzer, Gruppen, /home, /tmp. /var enthält zum Teil
identische und variable Daten.)

Die nackte Debian-Installation der Container ohne variable Daten umfasst
bereits rund 8 GB. Es sollen mehrere Dutzend solcher Systeme zum Einsatz
kommen.

Meiner Meinung nach wäre es es effizient, im Hinsicht auf Speicherplatz,
vor allem aber auch des Dateisystem-Caches, die identischen Teile des
Dateisystems gemeinsam (ggf. read-only) zu nutzen.

Realisieren kann man das durch Dateisysteme, die Stacking unterstützen,
z.B. aufs, oder auch durch bind mounts.

Wie auch immer, es erscheint kompliziert. Ich sehe keine sauberen Weg
mit den Debian-Tools zurecht zu kommen und man verliert die Vorzüge der
Distribution.

Beispiele:

* Auf dem Master wird ein Update eingespielt, welches einen Dienst neu
startet. Selbst wenn die getauschten binaries in den Containern
"erscheinen", muss man den Neustart des Dienstes händisch auslösen.

* Auf dem Master wird ein Paket installiert, das Dateien oder
Verzeichnisse ändert oder ergänzt, die Container-spezifisch sind. Dann
muss dies irgendwie manuell nachgeführt werden.

Gibt es vernünftige Tools oder Ansätze, die solches Vorgehen
unterstützen oder läuft es zwangsläufig darauf hinaus, dass man gegen
die Distribution arbeitet?

Ja, RAM und Disk sind günstiger geworden, aber man muss nicht ohne guten
Grund Ressourcen verschleudern.

Viele Grüße

Michael

-- 
Hostsharing Service | http://www.hostsharing.net
Telefon: +49 40 209331311 | Fax: +49 40 209331312
Hostsharing eG | Glockengießerwall 17 | D-20095 Hamburg
Registergericht Hamburg, GnR 1007 | USt.-ID-Nr.: DE218602793
vertretungsberechtiger Vorstand: Michael Hierweck, Uwe Müller


Reply to: