Container-Technologien stammen ursprünglich aus der Großrechner- und Unix-Welt. Daher gibt es für jedes Unix natürlich eine Systemvirtualisierung. Die freie Berkeley-System-Distribution BSD integriert so genannte »Jails«, auf die Network Computing in diesem Artikel aber nicht weiter eingeht.
Sun setzt im hauseigenen Unix Solaris auf eine Container-Technologie namens »Zones«. Diese gibt es sowohl auf der Ultrasparc- als auch auf der Intel-Plattform. Auch die freie Opensolaris-Distribution unterstützt Zonen. Für die Systemvirtualisierung braucht es hier keinen speziell nachzuinstallierenden Systemkern. Der Solaris-Kernel beherrscht Zonen von Haus aus.
Sun integriert die Zonen stark in das hauseigene Dateisystem zfs. Dabei bekommt jede Zone ihr privates Unterdateisystem. Vom Host aus kann der Systemverwalter in diese xfs-Bäume hineinblicken. Aus der Zone heraus gibt es jedoch kein Entkommen auf das Host-Root-Dateisystem oder zu den Daten anderer Zonen.
Für den Test setzt Network Computing die Opensolaris-Version 2008-11 innerhalb einer Kernel-Virtual-Machine (KVM) unter Ubuntu-Linux ein. Unter Solaris lassen sich VEs so leicht wie auf keiner anderen Plattform mit wenigen Kommandos anlegen.
Der Vorgang sieht wie folgt aus und erklärt sich praktisch von selbst:
zonecfg -z <Zonenname>
Jetzt befindet sich der Verwalter auf dem Prompt des Tools zonecfg:
create
set zonepath=/export/<zonename>
set autoboot=true
add net
set address = <IP-Adresse>
set physical = <name des NIC>
end
commit
exit
Der Zonepath muss dabei auf der ersten Ebene eines zfs-Dateisystems liegen, damit zonecfg ein neues Unterdateisystem erstellen kann. Im Beispiel ist /export als eigenes zfs-Dateisystem deklariert. Der Autoboot-Parameter veranlasst, dass die Zone beim Systemstart mit hochgefahren wird.
Eine ausführliche Man-Page beschreibt die vielen Optionen und Parameter von zonecfg. Die Konfiguration sichert Solaris in einer xml-Datei in /etc/zones:
zoneadm -z <Zonenname> install
Nach diesem Kommando erzeugt Solaris das zfs-Dateisystem, lädt die Daten aus dem Internet und kopiert sie in die Zone. Weitere Zonen lassen sich über das Clone-Kommando aus bestehenden erstellen. Danach lässt sich der Container starten:
zoneadm -z <Zonenname> boot
Klinkt sich der Verwalter in die Zone ein, findet er sich in einem Tool zur Erstkonfiguration von Solaris wieder.
zlogin -C <Zonenname>
Dort gibt er alle noch nicht festgelegten Parameter für den Container an und kann die Zone im Anschluss wie einen vollwertigen Solaris-Rechner verwenden.
Sun setzt seine Container-Implementierung vorbildlich um. Die Zonen integriert Sun ohne Kernel-Modifikationen direkt in das Betriebs- und Dateisystem.
Die Syntax der Tools ist klar und verständlich. Administratoren, die ihre Netzwerkdienste auf Solaris anstelle von Linux einsetzen können, sollten diese Option auf jeden Fall ausprobieren. Nahezu alle für Linux verfügbaren Dienste gibt es auch auf Solaris.