Erste Schritte mit Open Solaris und Zones
Containerfracht
Open Solaris ist wie Linux ein ambitioniertes Betriebssystem-Projekt, das eine Plattform bereitstellt, auf der sich Applikationen entwickeln und ausführen lassen. Ursprünglich von Sun Microsystems ins Leben gerufen und nun zu Oracle gehörig, läuft Open Solaris auf einem breiten Spektrum von PC-Hardware [1]. Eines der beeindruckendsten Features ist die eingebaute Virtualisierungslösung Solaris Zones.
Virtualisierungsexperten messen die Effizienz als Funktion der Performance und der Anzahl möglicher virtueller Maschinen pro Host. In beiden Disziplinen ist Solaris Zones ungeschlagen: Die Performance der Zonen ist nativ und es können Hunderte Instanzen auf einem Host nebeneinander existieren.
Die Zonen, oft auch Container genannt, sind eine erweiterte Abart der Chroot-Jails. Wie Jails bieten sie eine sichere und isolierte Umgebung, aus der heraus Prozesse, Applikationen und Services gestartet werden können. Alle Zonen eines Solaris-Systems beziehen sich auf einen gemeinsamen Kernel. Obwohl sich verschiedene Linux-Distributionen in einer Open-Solaris-Zone installieren lassen (Red Hat und CentOS), ist es empfehlenswert, stattdessen bei Open Solaris für alle Zonen zu bleiben.
Wer sich mit einer Zone über ihre IP-Adresse oder einen Hostnamen verbinden will, dem erscheinen die Zonen wie alleinstehende Rechner. Der gelegentliche Nutzer wird zwischen einer Zone, einem voll virtualisierten und einem physischen Rechner keinerlei Unterschiede bemerken. Jede Zone kann ihren eigenen Administrator, ihre eigenen User und Passworte haben.
Voraussetzungen
Für praktische Experimente mit Solaris Zones müssen ein paar Voraussetzungen erfüllt sein. Zunächst ist die aktuellste Open-Solaris-Version nötig, installiert auf einem PC. Hardware, die sich für Linux eignet, sollte auch für Solaris passen. Viele Zonen-Hosts verfügen über 2 GByte RAM, was für einen effizienten Betrieb auch mit vielen Zonen reicht: Weil es nicht um vollvirtualisierte Maschinen geht, ist nicht so viel RAM nötig. Jede Zone braucht zudem ausreichend Plattenplatz, wobei sie die gesamte freie Diskkapazität des Host als nutzbar ansieht. Zeitgemäße Dual-Core- und Quad-Core-Prozessoren haben keine Schwierigkeiten mit Solaris Zones, besondere Anforderungen gibt es nicht – es sei denn, man möchte Linux in den Zonen laufen lassen. Dann braucht man Intel-Prozessoren.
Die letzte Voraussetzung ist ZFS, das leistungsstarke, sich selbst verwaltende Filesystem von Open Solaris. Open Solaris an sich kommt auch mit UFS klar, aber die Zonen benötigen ZFS.
Zonen auf der Kommandozeile
Zwei einfache Informationen über Open Solaris Zones können einem Frustration und stundenlanges Googlen ersparen. Erstens: Man muss für Zonen ZFS verwenden [2]. Zweitens: Das Verzeichnis, das die Zonen beherbergen soll, muss zuerst existieren.
Im folgenden Beispiel benutzen wir der Einfachheit halber den Hostnamen »opensolaris«
. Alle Kommandos für das Zonenmanagement erfordern Rootrechte. Von diesem Punkt an unterstellt der Text, dass der Beispielnutzer als Root angemeldet ist, es sei denn, es wird ausdrücklich etwas anderes gesagt.
Zuerst soll eine Zone angelegt werden. Das übergeordnete Verzeichnis kann zwar beliebig heißen, aber das Beispiel verwendet den Namen »zones«
.
root@opensolaris:~# mkdir /zones
Eine neue Zone einzurichten, ist einfach. Open Solaris benötigt dafür nur wenige Informationen: Einen Namen, den Pfad zum Homedirectory der Zonen und ein Netzwerk-Setup (IP-Adresse, physisches Interface und Default Rooter). Zwar lassen sich noch viele weitere Parameter angeben, doch sind sie in den meisten Fällen nicht notwendig. Das Beispiel (Listing 1) gibt noch eine Beschreibung an, aber die ist optional.
Listing 1
Die Zone web1 anlegen
01 root@opensolaris:~# zonecfg -z web1 02 03 web1: No such zone configured 04 Use 'create' to begin configuring a new zone. 05 zonecfg:web1> create 06 zonecfg:web1> set zonepath=/zones/web1 07 zonecfg:web1> set autoboot=true 08 zonecfg:web1> add net 09 zonecfg:web1:net> set address=192.168.1.40/24 10 zonecfg:web1:net> set physical=e1000g1 11 zonecfg:web1:net> set defrouter=192.168.1.254 12 zonecfg:web1:net> end 13 zonecfg:web1> add attr 14 zonecfg:web1:attr> set name=comment 15 zonecfg:web1:attr> set type=string 16 zonecfg:web1:attr> set value="Apache Web Server 1" 17 zonecfg:web1:attr> end 18 zonecfg:web1> verify 19 zonecfg:web1> commit 20 zonecfg:web1> exit
Im nächsten Schritt wird die Zone installiert. Dabei erzeugt die Software anhand des Konfigurationsfiles »/etc/zones/web1.xml«
die Standardverzeichnisse, legt Links an, kopiert Dateien in das Verzeichnis der Zone und erzeugt das Systemlayout (Listings 2 und 3). Die Installation legt auch das gesicherte Zonenverzeichnis »/zones/web1«
an und setzt die passenden Rechte (»root:root drwx------«
).
Listing 2
Installation einer Zone
01 # zoneadm -z web1 install 02 03 A ZFS file system has been created for this zone. 04 Publisher: Using opensolaris.org (http://pkg.opensolaris.org/release/). 05 Image: Preparing at /zones/web1/root. 06 Cache: Using /var/pkg/download. 07 Sanity Check: Looking for 'entire' incorporation. 08 Installing: Core System (output follows) 09 DOWNLOAD PKGS FILES XFER (MB) 10 Completed 20/20 3021/3021 42.55/42.55 11 12 PHASE ACTIONS 13 Install Phase 5747/5747 14 Installing: Additional Packages (output follows) 15 DOWNLOAD PKGS FILES XFER (MB) 16 Completed 37/37 5598/5598 32.52/32.52 17 18 PHASE ACTIONS 19 Install Phase 7329/7329 20 21 Note: Man pages can be obtained by installing SUNWman 22 Postinstall: Copying SMF seed repository ... done. 23 Postinstall: Applying workarounds. 24 Done: Installation completed in 411.387 seconds. 25 26 Next Steps: Boot the zone, then log into the zone console 27 (zlogin -C) to complete the configuration process 28 29 # zoneadm -z web1 boot
Listing 3
Interaktive Konfigurationssession
01 # zlogin -C web1 02 [Connected to zone 'web1' console] 69/69 03 Reading ZFS config: done. 04 Mounting ZFS filesystems: (6/6) 05 06 What type of terminal are you using? 07 1) ANSI Standard CRT 08 2) DEC VT100 09 3) PC Console 10 4) Sun Command Tool 11 5) Sun Workstation 12 6) X Terminal Emulator (xterms) 13 7) Other 14 Type the number of your choice and press Return: 2 15 16 Creating new rsa public/private host key pair 17 Creating new dsa public/private host key pair 18 Configuring network interface addresses: e1000g1. 19 20 Host name for e1000g1:1: web1 21 22 Configure Kerberos Security: No 23 24 Name service: DNS 25 26 Domain name: blah.com 27 28 Server's IP Address: 192.168.1.254 29 30 Use NFSv4: Yes 31 32 Continents and Oceans: Americas 33 34 Location: US 35 36 Time zones: Central 37 38 Root password: xxxxxxxx
Danach ist die Zone »web1«
fertig und man kann sich vom Hostsystem oder einem anderen Rechner aus via SSH in sie einloggen. Sollte das scheitern, gilt es entweder, Root-Logins für die Zone zu ermöglichen oder in ihr andere User-Accounts anzulegen. Aber wie soll das gehen, wenn man sich nicht als Root einloggen kann? Die Lösung heißt Zone Login.
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Preis € 1,99
(inkl. 19% MwSt.)
Im ADMIN Online-Archiv
Abonnieren Sie das ADMIN Online-Archiv, und Sie erhalten Zugriff auf alle ADMIN-Artikel im HTML- und/oder PDF-Format.