Solaris Live Upgrade

Allikas: Kuutõrvaja
Redaktsioon seisuga 6. juuni 2008, kell 00:07 kasutajalt Imre (arutelu | kaastöö) (Kriitilistest kataloogidest koopia tegemine)

Sissejuhatus

Operatsioonisüsteem Solaris tarkvara uuendusi antakse välja ilma fikseeritud tähtaegadeta, praktiliselt mõned korrad aastas ning neid esitatakse uuendatud installatsioonimeedia kujul. Nt Solaris 10 kohta on ilmunud kokku 2008 aasta alguseks viis väljalaset

  • Solaris 10 1/06 s10s_u1wos_10
  • Solaris 10 6/06 s10s_u2wos_10
  • Solaris 10 11/06 s10s_u3wos_10
  • Solaris 10 8/07 s10s_u4wos_10
  • Solaris 10 5/08 s10s_u5wos_10

Süsteemi saab uuendada bootides arvuti uue versiooni paigaldusmeedialt ja valides seejärel menüüst 'Initial Install' asemel 'Upgrade'. Selliselt juhul kirjutatakse operatsioonisüsteemi moodustavad failid üle, kusjuures säilitatakse arvuti konfiguratsioonis kirjeldatud seadistused. Arusaadavalt saab vajadusel tagasi pöörduda uuendamise-eelsele oleku juurde backupist taastades.

Alternatiivseks võimaluseks süsteemi uuendada on kasutada Live Upgrade (LU) tehnikat, mis võimaldab sooritada osa operatsioonisüsteemi uuendamisega seotud tegevusi arvuti tavapärase töötamise ja teenusepakkumise ajal ning lisaks on hõlbus pöörduda tagasi uuendamisele eelnenud olekule.

Live Upgrade

Ülidselt Live Upgrade eeldab, et arvutis kasutatakse mitut füüsilist kõvaketast, kuid mitte ilmtingimata. Protseduur koosneb sellistest sammudest

  1. Operatsioonisüsteemi kriitilistest kataloogidest (/, /usr, /var, /opt) moodustatakse teisele kõvakettale koopia. Need kataloogid võivad olla ka eraldi failisüsteemides.
  2. Uue Solarise paigaldusmeedia tehakse kättesaadavaks, näiteks ühendatakse NFS abil üle võrgu külge.
  3. Antakse korraldus uuendada koopiale vastav operatsioonisüsteemi eksemplar.
  4. Arvuti booditakse koopiale vastava ja uuendatud operatsioonisüsteemiga.

Ettevalmistused

Üldiselt peavad LU sooritamiseks olema uuendatavale süsteemi paigaldatud teatud paigad ning reegline tuleb kasutada programme uue versiooni SUNWlur ja SUNWluu pakketidest. LU sooritamisel ei pruugu uuendatav versioon olla vahetult eelnev uuenduse järgselt tekkivale, suuremate sammude puhul tuleb jälgida dokumentatsiooni tähelepanelikumalt. Kui uuendatakse sama Solarise versiooni sees, nt Solaris 10, siis mõnel juhul on olemasolevad paketid niisamagi sobivad. Igaljuhul, nende pakettide uuendamine toimub selliselt, uue Solarise meedia on ühendatud kataloogi /mnt alla

bash# pkgadd -d /mnt/Solaris_10/Product SUNWlur SUNWluu

Näiteks uuendades Solaris 5/08 peale öeldakse nende pakettide paigaldamise järel, millisele Solarise SunSolve dokumendile vajalike paikade osas tähelepanu pöörata, näiteks

=========================================================================
                             IMPORTANT NOTICE

                 Patches Needed to Run Solaris Live Upgrade

Correct operation of Solaris Live Upgrade requires that a limited set of
patch revisions be installed for SunOS 5.10 for the sparc platform.
 
Before installing or running Live Upgrade, you are required to install a
limited set of patch revisions.  Make sure you have the most recently
updated patch list by consulting sunsolve.sun.com. Search for the info doc
72099 on the SunSolve(tm) web site.

Live Upgrade may fail to work properly if the latest limited set
of patch revisions are not installed on this system.

=========================================================================

Viidatud dokument, õigemini selle asemel on http://sunsolve.sun.com/ veebikohas

 Document Audience:    PUBLIC
 Document ID:	        206844
 Old Document ID:      (formerly 72099)
 Title:                Solaris[TM] Live Upgrade Software: Minimum Patch Requirements
 Copyright Notice:	Copyright © 2008 Sun Microsystems, Inc. All Rights Reserved
 Update Date:	        Thu Nov 15 00:00:00 MST 2007

Paikade osas peaks praktiliselt piisama, kui uuendatav süsteemi on korrektselt paigatud, näiteks smpatch, pca või updatemanager abil. Parasjagu süsteemi rakendatud paikade loetelu näeb öeldes

 # patchadd -p

Lisaks tuleb format programmi abil ettevalmistada partitsioon, kus operatsioonisüsteemist moodustatav koopia hakkab asuma.

Kriitilistest kataloogidest koopia tegemine

Ühes arvutis töötavaid erinevaid operatsioonisüsteemi eksemplare, nt originaali ja temast tehtud koopiat nimetatakse bootkeskkondadeks (ingl. k. boot environment - BE) ja neid tähistatakse nimedega. Alati on üks bootkeskkond aktiivne ning ülejäänud on mitte-aktiivsed. Kui arvutis toimetakse esimest korda LU'ga, siis tuleb koopiale vastava bootkeskkonna moodustamise ajal anda nimi ka aktiivsele bootkeskkonnale

bash# lucreate -A 'Solaris 10 5/08' -c u4 -m /:/dev/dsk/c1t1d0s0:ufs -n u5

Kui aga u4 on juba olemas, siis

bash# lucreate -A 'Solaris 10 5/08' -m /:/dev/dsk/c1t1d0s0:ufs -n u5
Discovering physical storage devices
Discovering logical storage devices
Cross referencing storage devices with boot environment configurations
Determining types of file systems supported
Validating file system requests
Preparing logical storage devices
Preparing physical storage devices
Configuring physical storage devices
Configuring logical storage devices
Analyzing system configuration.
Comparing source boot environment <u4> file systems with the file 
system(s) you specified for the new boot environment. Determining which 
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Searching /dev for possible boot environment filesystem devices
                             
Updating system configuration files.
The device </dev/dsk/c1t1d0s0> is not a root device for any boot environment; cannot get BE ID.
Setting description for boot environment <u5>.
Updating boot environment description database on all BEs.
Creating configuration for boot environment <u5>.
Source boot environment is <u4>.
Creating boot environment <u5>.
Creating file systems on boot environment <u5>.
Creating <ufs> file system for </> in zone <global> on </dev/dsk/c1t1d0s0>.
Mounting file systems for boot environment <u5>.
Calculating required sizes of file systems for boot environment <u5>.
Populating file systems on boot environment <u5>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Population of boot environment <u3> successful.
Creation of boot environment <u3> successful.
  • Aktiivsele bootkeskkonnale omistatakse nimi u2
  • Uuele bootkeskkoonale omistatakse nimi u3
  • Uue bootkeskkonna kirjelduseks on uue versiooni nimi
  • Vaatamata sellele, kas kõik kriitilised kataloogid/failisüsteemid asuvad lähtesüsteemis koos või eraldi, kopeeritakse nad antud juhul partitsioonile c1t1d0s0 moodustatavasee ühte ufs failisüsteemi kokku
  • Tegevuse käigus moodustatakse ufs failisüsteem
  • Käsu väljundisse kirjutatakse omajagu teateid toimuva kohta, lõpeb teatega, et on valmis.

Kopeerimise kulgu on võimalik jälgida lisaks df -h abil

 # df -h
 ...
 /dev/dsk/c0t0d0s0       32G   979M    30G     4%    /.alt.tmp.b-mnb.mnt
 swap                    19G     0K    19G     0%    /.alt.tmp.b-mnb.mnt/var/run
 swap                    19G     0K    19G     0%    /.alt.tmp.b-mnb.mnt/tmp

Mitteaktiivse bootkeskkonna uuendamine

Tarkvara uuendamine iseenesest toimub käsuga

bash-3.00# luupgrade -u -n u5 -s /mnt
218128 blocks
miniroot filesystem is <lofs>
Mounting miniroot at </mnt/Solaris_10/Tools/Boot>
Validating the contents of the media </mnt>.
The media is a standard Solaris media.
The media contains an operating system upgrade image.
The media contains <Solaris> version <10>.
Constructing upgrade profile to use.
Locating the operating system upgrade program.
Checking for existence of previously scheduled Live Upgrade requests.
Creating upgrade profile for BE <u5>.
Determining packages to install or upgrade for BE <u5>.
Performing the operating system upgrade of the BE <u5>.
CAUTION: Interrupting this process may leave the boot environment unstable 
or unbootable.
Upgrading Solaris: 1% completed
...
Upgrading Solaris: 100% completed
Installation of the packages from this media is complete.
Updating package information on boot environment <u5>.
Package information successfully updated on boot environment <u5>.
Adding operating system patches to the BE <u5>.
The operating system patch installation is complete.
INFORMATION: The file  on boot 
environment <u5> contains a log of the upgrade operation.
INFORMATION: The file  on boot 
environment <u5> contains a log of cleanup operations required.
INFORMATION: Review the files listed above. Remember that all of the files 
are located on boot environment <u5>. Before you activate boot environment 
<u5>, determine if any additional system maintenance is required or if 
additional media of the software distribution must be installed.
The Solaris upgrade of the boot environment <u5> is complete.
  • -u toimub uuendamine
  • -n uuendatava bootkeskkonna nimi
  • -s uue paigaldusmeedia asukoht

Uuenduse logi asub uue keskkonna failides, vastav failisüsteem tuleb käsitsi külge ühendada (ja seejärel lahti)

/var/sadm/system/logs/upgrade_log
/var/sadm/system/data/upgrade_cleanup

Lisaks uuema Solaris operatsioonisüsteemi meedialt lähtuvatele uuendustele saab ka nt pca abil omakorda rakendada uuendusi külgeühendatud bootkeskkonnale.

Uue bootkeskkonna bootimine

Uue keskkonna bootimiseks tuleb märkida uus keskkond aktiivseks ning seejärel bootida tingimata 'init 6' käsuga parema kontrolli huvides konsoolilt

bash# /sbin/luactivate -s u5
A Live Upgrade Sync operation will be performed on startup of boot environment <u5>.

**********************************************************************

The target boot environment has been activated. It will be used when you 
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You 
MUST USE either the init or the shutdown command when you reboot. If you 
do not use either init or shutdown, the system will not boot using the 
target BE.

**********************************************************************

In case of a failure while booting to the target BE, the following process 
needs to be followed to fallback to the currently working boot environment:

 1. Enter the PROM monitor (ok prompt).
 2. Change the boot device back to the original boot environment by typing:
     setenv boot-device /pci@83,4000/FJSV,ulsa@2/disk@0,0:a
 3. Boot to the original boot environment by typing:
     boot

**********************************************************************

Activation of boot environment <u5> successful.
bash# init 6

Lisaks annab käsu luactivate väljund vajaliku juhendi vanale bootkeskkonnale tagasipöördiseks, põhimõtteliselt tuleb arvutile PROM'is öelda, et ta boodiks teiselt st vanale keskkonnale vastavalt seadmelt.

Süsteemis olevate bootkeskkonda oleku kohta saab küsida selliselt (antud juhul BE u4 moodustamine toimub)

bash# lustatus 
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
u2                         yes      no     no        yes    -         
u3                         yes      yes    yes       no     -         
u4                         no       no     no        no     ACTIVE   

Kahe bootkeskkonna vahel liikumiseks tuleb teine aktiviseerida käsuga luactivate ning arvuti bootida.

Lähemat info bootkeskkonna kohta saab vaadata käsuga lufslist

bash-3.00# lufslist u2
              boot environment name: u2

Filesystem              fstype    device size Mounted on          Mount Options
----------------------- -------- ------------ ------------------- --------------
/dev/md/dsk/d1          swap       1073940480 -                   -
/dev/md/dsk/d0          ufs        7999733760 /                   -

Kui on piisavalt kindlust tekkinud, et uus bootkeskkond on kasutatav ning vana pole enam tarvis, siis saab vana eemalda käsuga

bash# ludelete u2

Flash Archive - Flar

Solarise instrumentaariumis on utiliit flar, mille abil saab moodustada töötavast süsteemist faili kujul esineva ja sellises formaadis koopia, mille saab LU vahenditega hiljem taastada süsteemi seisu.

bash# flar create -n systeeminimi-20070721 -X /root/flar-exclude /mnt/systeeminimi-20070721.flar

Probleemid

  • Kahe erineva Solarise versiooni puhul on tõenäoline, et ZFS failisüsteemi versioon on erinev. Praktiliselt tähendab see seda, et uuendamise käigus võib märkamatult nn ZFS on-disk formaat ära uuendatud saada ning seejärel vana userspace'i utiliitidega ei saa kõnealuse ZFS failisüsteemi poole pöörduda.
  • Tsoonide kasutamine on LU puhul problemaatiline, ilmselt mitte siiski võimatu.
  • Osutub, et tuumapaiga paigaldamise ajal peab /var/sadm asuma juurfailisüsteemis.
  • Abiks on vaadata üle aadressilt http://docs.sun.com/ manuaalide Troubleshooting peatükid.
  • Kui BE keskkondadega on juhtunud segadus (näiteks BE keskkonnale vastavat failisüsteemi ei ole tegelikult enam olemas) ja esineb näiteks sarnane veateade, siis vahel aitab käsitsi /etc/lutab faili redigeerimise teel olukorda parandada
 # lufslist u2
 ERROR: mount: /dev/md/dsk/d0 or /.alt.tmp.b-j3.mnt, no such file or directory
 ERROR: cannot mount mount point </.alt.tmp.b-j3.mnt> device </dev/md/dsk/d0>
 ERROR: cannot mount root device </dev/md/dsk/d0> to mount point </.alt.tmp.b-j3.mnt> for boot environment <u2>
 ERROR: cannot determine file system configuration for boot environment <u2>
 ERROR: cannot determine file system list of boot environment <u2>

Sel juhul tundub, et sobib eemaldada eksitav osa

# DO NOT EDIT THIS FILE BY HAND. This file is not a public interface.
# The format and contents of this file are subject to change.
# Any user modification to this file may result in the incorrect
# operation of Live Upgrade.
1:u2:C:0
1:/:/dev/md/dsk/d0:1
1:boot-device:/dev/dsk/c0t3d0s0:2
2:u3:C:0
2:/:/dev/md/dsk/d2:1
2:boot-device:/dev/dsk/c5t2d0s0:2
3:u4:C:0
3:/:/dev/dsk/c1t0d0s0:1
3:boot-device:/dev/dsk/c0t4d0s0:2
  • lucreate käsu täitmise ajal võib ilmuda väljundisse ka veateateid, näiteks mitmekordselt 'Reading of /etc/group failed', kasutaja peab ise otsustama, kas selliseid teateid võib ignoreerida.

u3 -> u4 Live Upgrade

u4 meedialt tuleb paigaldada paketid

bash# pkgadd -d path_to_packages SUNWlucfg SUNWlur SUNWluu

Ning käsitsi tuleb paigaldada paketid (mille küll smpatch update all laadib)

bash# smpatch add -i 125547-02
bash# smpatch add -i 121430-17
bash# smpatch add -i 121428-08
bash# smpatch add -i 120011-14

Lisaks on tarvis dokumendis 72099, http://sunsolve.sun.com/search/document.do?assetkey=1-9-72099-1 kirjeldatud paigad rakendada, et lu utiliidid toimiksid, kuigi kui Solaris 10 u3 nn smpatch uuendused sh kerneli paik on rakendatud ei sealt ilma-tsoonide-juhtumi nimekirjast seisuga 20070923 midagi tarvis lisada.

u3 -> u5 Live Upgrade

Tundub, et toimib täitsa ladusalt nii nagu juhend kõneleb, va ei õnnestu rakendada nõutud paika (või tema sõltuvusi), aga ehk ei ole see ka nii oluline

 125418-01 - in.telnetd patch

Asjassepuutuv Live Upgrade dokumentatsioon