Solarise tsoon

Allikas: Kuutõrvaja

Solarise tsoon

Operatsioonisüsteem Solaris võimaldab arvutis toimuvaid tegevusi lokaliseerida nii, et kõik protsessid nö ei näe kõiki protsesse. Selleks käivitatakse selle operatsioonisüsteemi, millelt arvuti booditi, kontrolli all vajalik arv Solaris operatsioonisüsteemi eksemplare; seda eksemplari, millelt arvuti booditi nimetatakse globaalseks tsooniks ja ülejäänuid mitte-globaalseteks tsoonideks. Globaalses tsoonis on näha kõigi tsoonide protsessid, kuid mitte-globaalsetes tsoonides töötavad protsessid näevad vaid oma tsooni protsesse ja mitte teistes mitte-globaalsetes tsoonides töötavaid protsesse. Seejuures kõik tsoonid kasutavad ühte ja sama globaalse tsooni operatsioonisüsteemi tuuma. Iga tsooniga saab seostada piirangud arvuti ressursside kasutamise osas, kõvaketas, mälu, protsessor, võrk sh igal tsoonil on oma lo0 seade.

Tsoonide moodustamine

Globaalne tsoon tekib automaatselt operatsioonisüsteemi paigaldamise tulemusena, mitte-globaalsed tsoonid moodustatakse globaalses tsoonis olles. Globaalse tsooni nimi on alati 'global', mitte-globaalsete tsoonide nimed saab kasutaja ise valida. Mitte-globaalne tsoon võib pärida globaalselt osa katalooge, tavaliselt päritakse süsteemseid katalooge. Tsoon moodustatakse programmide zonecfg ja zoneadm abil, vastavalt kirjeldatakse tsooni seadistused ja moodustatakse tsoonile vastav osa globaalse tsooni failisüsteemis. Näitena on esitatud ühe maksimaalselt vähe pärinud tsooni tekitamine. Uus tsoon moodustatakse globaalse tsooni alusel, paigaldusmeediat ei ole vaja seejuures kättesaadavaks teha.

Alustuseks küsime olemasolevate tsoonide nimekirja

baas# zoneadm list -vi
 ID NAME             STATUS         PATH                          
  0 global           running        /

Moodustame mitte-globaalsele tsoonile 'baas' vajalikud kataloogid globaalses tsooni failisüsteemis

bash# mkdir /data/domains/baas
bash# chmod 0700 /data/domains/baas
bash# zonecfg -z baas
baas: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:baas> create

Seejärel saab vaadata millised vaikeväärtused on loodavale tsoonile omistatud, antud juhul on päritud kataloogid

zonecfg:baas> info
zonepath: 
autoboot: false
pool: 
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr

Kuna eesmärk on tekitada võimalikult sõltumatu tsoon, siis eemaldame need. Üks praktiline põhjus eemaldamiseks võiks olla soov neisse kataloogidesse mitte-globaalses tsoonis muudatusi teha, aga kui nad on päritud, siis on nad mitte-globaalses tsoonis read-only'd.

zonecfg:baas> remove inherit-pkg-dir dir=/lib
zonecfg:baas> remove inherit-pkg-dir dir=/platform
zonecfg:baas> remove inherit-pkg-dir dir=/sbin
zonecfg:baas> remove inherit-pkg-dir dir=/usr

Seadistame zonepath parameetri, mis näitab kus asuvad globaalse tsooni failisüsteemis sellele mitte-globaalsele tsoonile vastavad failid

zonecfg:baas> set zonepath=/data/domains/baas

Seadistama võrgu

zonecfg:baas> add net
zonecfg:baas:net> set address=10.0.6.38
zonecfg:baas:net> set physical=fjgi0
zonecfg:baas:net> end

Sisestame tsoonile kirjelduse

zonecfg:baas> add attr
zonecfg:baas:attr> set name=comment
zonecfg:baas:attr> set type=string
zonecfg:baas:attr> set value="Tartu loomaaia andmebaas"
zonecfg:baas:attr> end

Salvestame tsooni konfiguratsiooni

zonecfg:baas> verify
zonecfg:baas> commit
zonecfg:baas> exit

Tehtud konfiguratsiooni saab vaadata käsuga

bash# zonecfg -z baas info

Seejärel tuleb lasta tsoon tekitada vastavalt loodud konfiguratsioonile

bash# zoneadm -z baas verify
bash# zoneadm -z baas install
Preparing to install zone <baas>.
Creating list of files to copy from the global zone.
Copying <139451> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1136> packages on the zone.
Initialized <1136> packages on zone.                                 
Zone <baas> is initialized.
Installation of these packages generated errors: <SUNWgnome-a11y-libs-share>
Installation of <19> packages was skipped.
The file  contains a log of the zone installation.

Kasutaja peab ise otsustama saadud teadetele reageerimise osas.

Arvutis kasutusel olevate tsoonide seadistusfailid asuvad kataloogis /etc/zones.

Tsooni operatsioonisüsteemi seadistamine

Kuna tsoon esineb operatsioonisüsteemi eksemplari kujul, tuleb tsooni käivitamiseks ta bootida

bash# zoneadm -z baas boot

Esmakordsel bootimisel jätkub tsooni operatsioonisüsteemi eksemplari seadistamine konsoolil, millega ühendumiseks tuleb öelda

bash# zlogin -C baas
[Connected to zone 'baas' console]
[NOTICE: Zone booting up]

SunOS Release 5.10 Version Generic_118833-17 64-bit
Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: baas
Loading smf(5) service descriptions: 104/104

Seejärel tuleb läbida sarnased menüüd nagu operatsioonisüsteemi nö tavalisel paigaldamisel

Select a Language

  0. English
  1. es
  2. fr
Please make a choice (0 - 2), or press h or ? for help: 0
...
 What type of terminal are you using?
 1) ANSI Standard CRT
 2) DEC VT52
 3) DEC VT100
 ...

Kusjuures, terminaliks võiks Xtermile vastava valiku kui tegevus toimub Xterm aknast.

Seadistuste lõpus mitte-globaalne süsteem rebooditakse ning lõpuks peaks nägema konsoolil login'i

rebooting system due to change(s) in /etc/default/init
[NOTICE: Zone rebooting]
SunOS Release 5.10 Version Generic_118833-17 64-bit
Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: baas
pg-818 console login: 

Üks esimene praktiline probleem võib tõenäoliselt olla, et ssh abil ei saa vaikimisi sisse logida. Kuna konsool on kaunis katki visual editoride jaoks ja line editoride kasutamine on jällegi muidu kohmakas, siis antud juhul saab kasutada ära asjaolu, et mitte-globaalse tsooni failisüsteemile pääseb globaalsest tsoonist ligi. Niisiis, selleks, et juurkasutaja saaks sisse logida tuleb muuta failis

/data/domains/baas/etc/ssh/sshd_config

parameetri PermitRootLogin väärtust ning tsooni konsoolil öelda

bash# svcadm refresh ssh

Tsooni haldamine

Peale tsooni paigaldamist ei ole tingimata tarvis konsooli kasutada, kuigi teatud juhul võib seal näha mugavalt süsteemseid teateid.

Tsooni käivitamiseks tuleb öelda

 bash# zoneadm -z baas boot

Selleks, et protsessid normaalsest seiskuksid ja failisüsteemid lahti ühendataks on kõige otstarbekam tsooni seiskamiseks tsooni sees öelda shutdown

 bash-baas# shutdown -y -g 0 -i 5

Tsooni eemaldamine sh gloobalse tsoonis talle vastava failisüsteem ning konfiguratsiooni kustutamisega

 bash# zoneadm -z baas uninstall
 Are you sure you want to uninstall zone baas (y/[n])? y

Õiendades globaalse tsooni upgrade'i või muidugi paketihaldusega võib jääda mitte-globaalne tsoon vahel mounted olekusse, sel juhul aitab öelda unmount (vähemalt Solaris 10 11/06 versiooni man zoneadm juures pole seda sub-commandit dokumenteeritud)

 bash# zoneadm -z baas unmount

Kontrolli alt väljunud tsooni võiks saada kinni panna öeldes, kuid sel juhul ei täideta korrektse shutdown'niga kaasnevaid protseduure

 bash# zoneadm -z baas halt

Vahel on abiks teha tsooni olemasolu mittenähtavaks, nt mingite tarkvara-uuenduste puhul kus on parem, et tsoonide olemasolu ei segaks vms. Selles piisab tsooni seisma panna ning failis /etc/zones/index asendada 'installed' kohal väärtusega 'configured'.

Tsooni seadistused saab eksportida sedasi, et nad esinevad sellisel kujul, et neid sobib omakorda kasutada uue tsooni loomisel.

 # zonecfg -z tsooninimi export -f /root/tsooninimi.export.zone
 # cat tsooninimi.export.zone
 create -b
 set zonepath=/data/domains/tsooninimi
 set autoboot=false
 set ip-type=shared
 add fs
 set dir=/data/postgresql
 set special=anum/data-portgresql
 set type=zfs
 end
 add net
 set address=10.0.7.7
 set physical=hme1
 end
 add net
 set address=10.0.1.7
 set physical=qfe0
 end
 add attr
 set name=comment
 set type=string
 set value="Andmebaas"
 end

Ning uue tsooni moodustamiseks sobib sarnanse formaadiga faili kasutada nii

 # zonecfg -z tsooninimi2 -f /root/tsooninimi.export.zone

TODO

Tsooni migreerimine