Nachdem ich nun noch ein paar eigene Zonen erstellt habe, möchte ich in der Zone web apache2 aktivieren.

Dieser wird bei Solaris mitgeliefert und sollte erst einmal genügen.

Zuerst kopiert man sich die example config ins Apache Verzeichnis:

cp /etc/apache2/httpd.conf-example /etc/apache2/httpd.conf

danach editiert man noch in der Datei /etc/apache2/httpd.conf den Hostname und das Documentroot.

Um Apache2 nun zu starten, reicht ein einfaches:

svcadm enable apache2

fertig…

Das schöne an Java ist ja, dass es praktisch überall läuft (ok, auf PPCs leider noch nicht).

Da ich im Moment für meine Seminararbeit mich mit der Leistungsfähigkeit von Handys auseinander setzten muss, dachte ich mir, warum nicht einfach mal den unten verwendeten Benchmark auf meinem Handy laufen lassen.

Ergebniss:

100000 Primzahlen ist was viel, 10000 ist machbar, also hier die gedrosselte Fassung.

1 Thread needed 3970 milliseconds

2 Threads needed 3912 milliseconds

Man sieht, das Handy ist richtig langsam.

Damit die Zeit von meiner E4500 mal etwas genauer geht:

# mcedit /etc/inet/ntp.conf

In diese Datei einfügen:

driftfile /var/ntp/ntp.drift
statsdir /var/ntp/ntpstats
server ptbtime1.ptb.de
server ptbtime2.ptb.de
server ntps1-0.cs.tu-berlin.de

Dann das ganze noch aktivieren:

svcadm enable ntp

Wenn ich eine erschaffene Zone nicht mehr brauche, kann ich diese einfach löschen. Dazu führt man zuerst ein uninstall aus, danach wird sie gelöscht:

#zoneadm -z ZONENAME uninstall

#zonecfg -z ZONENAME delete

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.