Nachdem wir nun ein Prozessorset erschaffen haben, folgt der nächste Schritt:
Die Erschaffung einer Solaris Zone
Dafür erstelle ich mir mir zuerst einmal in meinem Softwarepool ein Unterverzeichnis zones :
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
softwarepool 54,7M 3,76G 24,5K none
softwarepool/opt 54,6M 3,76G 54,6M /opt
# zfs create softwarepool/zones
# zfs set mountpoint=/zones softwarepool/zones
nun noch ein Verzeichnis für meine erste Zone erstellen:
# mkdir /zones/email
Aus Sicherheitsgründen habe ich dann mal für mein /opt 500mb reserviert (liegt auch im Softwarepool), man weiß ja nie wie groß die Zonen werden…
# zfs set reservation=500m softwarepool/opt
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
softwarepool 500M 3,33G 24,5K none
softwarepool/opt 54,6M 3,76G 54,6M /opt
softwarepool/zones 24,5K 3,33G 24,5K /zones
Im nächsten Schritt wird dann eine Sparse-Root Zone erschaffen. Die Konfiguration ist beliebig, sollte halt zum entsprechenden System passen.
# zonecfg -z email
email: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:email> create
zonecfg:email> set zonepath=/zones/email
zonecfg:email> set autoboot=true
zonecfg:email> add net
zonecfg:email:net> set address=192.168.0.240
zonecfg:email:net> set physical=hme0
zonecfg:email:net> end
zonecfg:email> set pool=email-pool
zonecfg:email> verify
zonecfg:email> commit
zonecfg:email> exit
Nachdem die Zone erstellt ist, müssen noch alle Daten installiert werden. Dabei bin ich auf das Problem gestoßen, dass das Verzeichnis der Zones nicht für alle lesbar sein darf. Also wurde dieses noch mit chmod 700 geändert:
# zoneadm -z email install
/zones/email must not be group readable.
/zones/email must not be group executable.
/zones/email must not be world readable.
/zones/email must not be world executable.
could not verify zonepath /zones/email because of the above errors.
zoneadm: zone email failed to verify
# chmod 700 /zones/email
# zoneadm -z email install
Preparing to install zone <email>.
Creating list of files to copy from the global zone.
Copying <4601> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1023> packages on the zone.
Initializing package <841> of <1023>: percent complete: 82%
Initialized <1023> packages on zone.
Zone <email> is initialized.
Die Datei </zones/email/root/var/sadm/system/logs/install_log> enthält ein Protokoll der Zoneninstallation.
Zoneadm kann eine Liste mit allen aktuell verfügbaren Zonen anzeige. Dort steht die Email Zone nun als installiert drinnen.
# zoneadm list -cv
ID NAME STATUS PATH
0 global running /
3 email installed /zones/email
Als nächstes kann die Zone gebootet werden:
# zoneadm -z email boot
# zoneadm list -cv
ID NAME STATUS PATH
0 global running /
1 email running /zones/email
Im nächsten Schritt logged man sich in der Zone ein und lässt die Installation durchlaufen:
# zlogin -C email
[Connected to zone 'email' console]
Hier kommt dann die normale Installationsroutine von Solaris.
Danach startet die Zone neu.
[NOTICE: Zone rebooting]
SunOS Release 5.10 Version Generic_118833-36 64-bit
Copyright 1983-2006 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Hostname: email
...
nach dem login in der Zone kann man sich mit mpstat die CPU Auslastung anzeigen lassen. Dabei sieht man auch, dass in der Zone nur eine CPU vorhanden ist:
# mpstat
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 150 1 364 630 530 771 15 5 6 0 2763 12 12 0 76
mit
~.
loggt man sich nun aus der Zone aus und kann einfach über Netzwerk (SSH etc) auf sie zugreifen als wäre sie ein eigenständiges Solaris.
Nachdem wir nun ein Prozessorset erschaffen haben, folgt der nächste Schritt:
Die Erschaffung einer Solaris Zone
Dafür erstelle ich mir mir zuerst einmal in meinem Softwarepool ein Unterverzeichnis zones :
nun noch ein Verzeichnis für meine erste Zone erstellen:
Aus Sicherheitsgründen habe ich dann mal für mein /opt 500mb reserviert (liegt auch im Softwarepool), man weiß ja ...