Solaris Live Upgrade

Allikas: Kuutõrvaja

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 pruugi 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.
Making boot environment <u5> bootable.
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, /mnt kataloogis asub meedia juurikas, st kataloogid Solaris_10, boot, platform jt

# 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

Uuendamise ajal on uus BE ja abistavad failisüsteemid ühendatud külge selliselt

 /tmp/miniroot.9468      22G    47M    22G     1%    /mnt/solaris10-u6/Solaris_10/Tools/Boot
 /dev/dsk/c0t0d0s0       18G    11G   7.5G    59%    /a
 swap                    22G     0K    22G     0%    /a/var/run
 swap                    22G     0K    22G     0%    /a/tmp


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 u4
Determining the devices to be marked free.
Updating boot environment configuration database.
Updating boot environment description database on all BEs.
Updating all boot environment configuration databases.
Boot environment <u4> deleted.

Tundub, et seejuures vastavast failisüsteemist andmeid ei kustutata.

Peale uue BE alglaadimist

Peale uue BE keskkonna alglaadimist tuleks veeduda, et arvuti üldiselt töötab ning rakendada paigada, näiteks peale u4 -> u5 uuendust on asjakohased sellised paigad

# smpatch analyze

        You have new messages. To retrieve: smpatch messages [-a]

120199-13 SunOS 5.10: sysidtool patch
127888-07 SunOS 5.10: ipf patch
119042-11 SunOS 5.10: svccfg & svcprop patch
120812-24 OpenGL 1.5: OpenGL Patch for Solaris
122911-11 SunOS 5.10: Apache 1.3 Patch
120272-19 SunOS 5.10: SMA patch
138064-02 SunOS 5.10: pkcs11_softtoken patch
137017-02 SunOS 5.10: crontab patch
138042-01 SunOS 5.10: MAC patch
121004-04 SunOS 5.10: sh patch
128400-01 SunOS 5.10: sd driver patch
128306-04 SunOS 5.10: devfs patch
127892-05 SunOS 5.10: UFS utilities patch
127922-04 SunOS 5.10: cpio Patch
121081-08 Disable Transport Agentry for Sun Update Connection Hosted EOL
127853-02 SunOS 5.10: sad driver patch
138044-01 SunOS 5.10: bge driver patch
120222-27 SunOS 5.10: Emulex-Sun LightPulse Fibre Channel Adapter driver
138075-01 SunOS 5.10: mpt driver patch
138165-01 SunOS 5.10: sppp driver patch
126133-03 SunOS 5.10: sshd patch
119757-12 SunOS 5.10: Samba patch
137871-01 SunOS 5.10: tk patch
119090-26 SunOS 5.10: Sun iSCSI Device Driver and Utilities
137147-04 SunOS 5.10: libexpat patch
119213-17 NSS_NSPR_JSS 3.11.9: NSPR 4.7 / NSS 3.11.9 / JSS 4.2.6
118666-16 JavaSE 5.0: update 15 patch (equivalent to JDK 5.0u15)
118667-16 JavaSE 5.0: update 15 patch (equivalent to JDK 5.0u15), 64bit
136998-04 SunOS 5.10: PostgreSQL 8.2 core patch
136708-01 SunOS 5.10: Service Tags patch
118777-13 SunOS 5.10: Sun GigaSwift Ethernet 1.0 driver patch
125060-04 Message Queue 3.7 UR2 Patch 1 SunOS 5.9 5.10 Core product
120185-15 StarOffice 8 (Solaris): Update 10
125952-16 Sun Java Web Console 3.1: Support for Application Server 8.2 EE
118712-21 SunOS 5.10: Sun XVR-100 Graphics Accelerator Patch
124149-12 SunOS 5.10: Sun XVR-300 Graphics Accelerator Patch
119280-18 CDE 1.6: Runtime library patch for Solaris 10
119278-23 CDE 1.6: dtlogin patch
119117-44 Evolution 1.4.6 patch
120460-14 GNOME 2.6.0: Gnome libs Patch
119900-05 GNOME 2.6.0: Gnome libtiff - library for reading and writing TIFF Patch
119115-34 Mozilla 1.7 patch
125332-03 JDS 3: Macromedia Flash Player Plugin Patch
119059-42 X11 6.6.2: Xsun patch
123611-04 X11 6.6.2: Trusted Extensions patch
120094-19 X11 6.6.2: xscreensaver patch

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

  • showrev -p näitab süsteemile rakendatud paikade nimekirja
  • 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

u3 -> u6 Live Upgrade

Toimub ladusalt üldiselt, kuid

  • vana süsteem tuleb ära uuendada smpatch ja pca abil, millegipärast ainult smpatch ei uuenda kõiki vajalikke pakette, eriti kernelit
  • ei tohi olla kasutusele võetud EMCPower paketi abil emcpower0 seadet

Asjassepuutuv Live Upgrade dokumentatsioon