Guida all'installazione di Oracle Solaris 10 9/10: Solaris Live Upgrade e pianificazione degli aggiornamenti

Migrazione da un file system root (/) UFS con zone non globali a un pool root ZFS (procedure)

Questo capitolo contiene istruzioni dettagliate per la migrazione da un file system root (/) UFS a un pool root ZFS su un sistema con zone non globali. Nessuna zona non globale si trova su un file system condiviso nel file system UFS.

ProcedureEseguire la migrazione da un file system UFS a un pool root ZFS su un sistema con zone non globali

Il comando lucreate crea un ambiente di boot di un pool root ZFS da un file system root (/) UFS. Il pool root ZFS deve esistere prima dell'esecuzione di lucreate e deve essere creato a partire da una slice anziché da un intero disco per essere aggiornabile e avviabile. Questa procedura mostra come la zona non globale esistente associata al file system root (/) UFS viene copiata nel nuovo ambiente di boot in un pool root ZFS.

Nell'esempio seguente, la zona non globale esistente, zona, ha la root della zona non globale in un file system root (/) UFS. La zona zona_z ha la sua root in un file system ZFS nel pool di memorizzazione ZFS esistente, pool. Solaris Live Upgrade viene usato per eseguire la migrazione dell'ambiente di boot UFS, c2t2d0s0, a un ambiente di boot ZFS, BE_2_zfs. La zona zona basata su UFS viene fatta migrare a un nuovo pool di memorizzazione ZFS, pool_m, che viene creato prima dell'esecuzione di Solaris Live Upgrade. La zona non globale basata su ZFS, zona_z, viene clonata ma mantenuta nel pool ZFS pool e fatta migrare al nuovo ambiente di boot BE_2_zfs.

  1. Completare i seguenti passaggi la prima volta che si esegue un aggiornamento con Solaris Live Upgrade.


    Nota –

    L'utilizzo di Solaris Live Upgrade per creare nuovi ambienti di boot ZFS richiede la versione Solaris 10 10/08 o superiore. Le versioni precedenti non includono il software richiesto per ZFS e Solaris Live Upgrade.


    1. Se necessario, rimuovere i pacchetti esistenti di Solaris Live Upgrade. Se si sta eseguendo l'aggiornamento a una nuova versione, è necessario installare i pacchetti relativi a quella versione.

      I tre pacchetti di Solaris Live Upgrade, SUNWluu, SUNWlur e SUNWlucfg, includono il software richiesto per l'aggiornamento con Solaris Live Upgrade. I pacchetti includono il software esistente, le nuove funzioni e le correzioni dei bug. Se i pacchetti esistenti non vengono rimossi e la nuova versione non viene installata sul sistema prima di usare Solaris Live Upgrade, l'aggiornamento alla versione di destinazione non riesce.


      # pkgrm SUNWlucfg SUNWluu SUNWlur
      
    2. Installare i nuovi pacchetti di Solaris Live Upgrade dalla versione verso la quale si esegue l'aggiornamento. Per informazioni, vedere Installazione di Solaris Live Upgrade.

    3. Prima di installare o eseguire Solaris Live Upgrade, è necessario installare le seguenti patch. Queste patch garantiscono che tutte le correzioni dei bug e le nuove funzioni siano installate.

      Verificare di disporre dell'elenco più aggiornato delle patch accedendo al sito SunSolve. Consultare il documento informativo 206844 (in precedenza 72099) sul sito Web di SunSolve.

      • Diventare superutente o assumere un ruolo equivalente.


        Nota –

        I ruoli comportano determinate autorizzazioni e consentono di eseguire comandi che richiedono privilegi. Per maggiori informazioni sui ruoli, vedere Configuring RBAC (Task Map) in System Administration Guide: Security Services.


      • Se le patch vengono memorizzate sul disco rigido locale creare una directory, ad esempio /var/tmp/patches_lu, e scaricare le patch in quella directory.

      • Dal sito Web SunSolve, scaricare l'elenco delle patch.

      • Spostarsi nella directory delle patch.


        # cd /var/tmp/lupatches
        
      • Installare le patch con il comando patchadd.


        # patchadd patch_id
        

        patch_id indica il numero o i numeri delle patch. Se le patch sono più di una, separare i nomi con uno spazio.


        Nota –

        Le patch devono essere applicate nell'ordine specificato nel documento informativo (Infodoc) 206844.


      • Effettuare il reboot del sistema, se necessario. Alcune patch richiedono il reboot del sistema.

        solo x86: il reboot del sistema è necessario per eseguire correttamente Solaris Live Upgrade.


        # init 6
        
  2. Creare un pool root ZFS.

    Il pool root ZFS deve trovarsi su una singola slice per essere avviabile e aggiornabile.


    # zpool create rpool c3t0d0s0
    

    In questo esempio, il nome del nuovo pool root ZFS da creare è rpool . Il pool viene creato su una slice avviabile, c3t0d0s0.

    Per informazioni sulla creazione di un nuovo pool root, vedere il manuale Oracle Solaris ZFS Administration Guide.

  3. Eseguire la migrazione del file system root (/) UFS sul nuovo pool root ZFS.


    # lucreate [-c ufsBE] -n new-zfsBE -p rpool
    
    -c BE_ufs

    Assegna il nome BE_ufs all'ambiente di boot UFS corrente. Questa opzione è richiesta solo ed esclusivamente per la creazione del primo ambiente di boot. Se alla prima esecuzione di lucreate non si utilizza l'opzione -c, il software crea automaticamente un nome.

    -n nuovo-BE-zfs

    Assegna il nome nuovo-BE-zfs all'ambiente di boot da creare. Il nome deve essere unico sul sistema.

    -p rpool

    Posiziona il nuovo file system root (/) ZFS nel pool root ZFS definito in pool_root.

    Tutte le zone non globali non condivise vengono copiate nel nuovo ambiente di boot insieme con i file system di importanza critica. La creazione del nuovo ambiente di boot ZFS può richiedere un certo tempo. I dati del file system UFS vengono copiati nel pool root ZFS. Una volta creato l'ambiente di boot inattivo, è possibile usare i comandi luupgrade o luactivate per aggiornare o attivare il nuovo ambiente di boot ZFS.

  4. (Opzionale) Verificare che l'ambiente di boot sia completo.

    Il comando lustatus indica se la creazione dell'ambiente di boot è terminata e se l'ambiente è avviabile.


    # lustatus
    boot environment   Is         Active   Active     Can	    Copy 
    Name               Complete   Now	  OnReboot   Delete	 Status 
    ------------------------------------------------------------------------ 
    ufsBE               yes       yes      yes        no         - 
    new-zfsBE           yes       no       no        yes         -
  5. (Opzionale) Verificare le informazioni di base sui set di dati.

    Il comando list indica i nomi di tutti i set di dati presenti sul sistema. In questo esempio, rpool è il nome del pool ZFS e nuovo-BE-zfs è il nome dell'ambiente di boot ZFS appena creato.


    # zfs list
    NAME                        USED  AVAIL  REFER  MOUNTPOINT 
    rpool                      9.29G  57.6G    20K  /rpool
    rpool/ROOT                 5.38G  57.6G    18K  /rpool/ROOT
    rpool/ROOT/new-zfsBE       5.38G  57.6G   551M  /tmp/.alt.luupdall.110034
    rpool/dump                 1.95G      -  1.95G  - 
    rpool/swap                 1.95G      -  1.95G  - 

    I punti di attivazione elencati per il nuovo ambiente di boot sono temporanei fino all'esecuzione del comando luactivate. I volumi /dump e /swap non sono condivisi con l'ambiente di boot UFS originale ma vengono condivisi con il pool root ZFS e con gli ambienti di boot inclusi nel pool root.


Esempio 14–1 Migrazione da un file system root (/) UFS con zone non globali a un pool root ZFS

Nell'esempio seguente, la zona non globale esistente, zona, ha la root della zona non globale in un file system root (/) UFS. La zona zona_z ha la sua root in un file system ZFS nel pool di memorizzazione ZFS esistente, pool. Solaris Live Upgrade viene usato per eseguire la migrazione dell'ambiente di boot UFS, c2t2d0s0, a un ambiente di boot ZFS, BE_2_zfs. La zona zona basata su UFS viene fatta migrare a un nuovo pool di memorizzazione ZFS, pool_m, che viene creato prima dell'esecuzione di Solaris Live Upgrade. La zona non globale basata su ZFS, zona_z, viene clonata ma mantenuta nel pool ZFS e fatta migrare al nuovo ambiente di boot BE_2_zfs.


# zoneadm list -iv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - myzone           installed  /zones/myzone                  native   shared
   - zzone            installed  /pool/zones                    native   shared

# zpool create mpool mirror c3t0d0s0 c4td0s0
# lucreate -c c1t2d0s0 -n zfs2BE -p mpool
Analyzing system configuration.
No name for current boot environment.
Current boot environment is named <c1t2d0s0>.
Creating initial configuration for primary boot environment <c1t2d0s0>.
The device </dev/dsk/c1t2d0s0> is not a root device for any 
boot environment; cannot get BE ID.
PBE configuration successful: PBE name <c1t2d0s0> PBE Boot Device 
</dev/dsk/c1t2d0s0>.
Comparing source boot environment <c1t2d0s0> 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.
Updating system configuration files.
The device </dev/dsk/c1t0d0s0> is not a root device for any boot
environment; cannot get BE ID.
Creating configuration for boot environment <zfsBE>.
Source boot environment is <c1t2d0s0>.
Creating boot environment <zfsBE>.
Creating file systems on boot environment <zfsBE>.
Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfsBE>.
Populating file systems on boot environment <zfsBE>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Creating shared file system mount points.
Creating compare databases for boot environment <zfsBE>.
Creating compare database for file system </>.
Making boot environment <zfsBE> bootable.
Creating boot_archive for /.alt.tmp.b-cBc.mnt
updating /.alt.tmp.b-cBc.mnt/platform/sun4u/boot_archive
Population of boot environment <zfsBE> successful.
Creation of boot environment <zfsBE> successful.

Quando viene completata l'operazione del comando lucreate, usare il comando lustatus per visualizzare lo stato dell'ambiente di boot come nell'esempio seguente.


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
c1t2d0s0                   yes      yes    yes       no     -         
zfsBE                      yes      no     no        yes    -         

# zoneadm list -iv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - myzone           installed  /zones/myzone                  native   shared
   - zzone            installed  /pool/zones                    native   shared

Successivamente, usare il comando luactivate per attivare il nuovo ambiente di boot ZFS. Ad esempio:


# luactivate zfsBE
**********************************************************************

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@1f,0/pci@1/scsi@4,1/disk@2,0:a

3. Boot to the original boot environment by typing:

     boot

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

Modifying boot archive service
Activation of boot environment <ZFSbe> successful.

Effettuare il reboot del sistema nell'ambiente di boot ZFS BE.


# init 6
# svc.startd: The system is coming down.  Please wait.
svc.startd: 79 system services are now being stopped.
.
.
.

Confermare il nuovo ambiente di boot e lo stato delle zone di cui è stata eseguita la migrazione, come in questo esempio.


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
c1t2d0s0                   yes      yes    yes       no     -         
zfsBE                      yes      no     no        yes    -         

Se si ritorna all'ambiente di boot UFS, sarà necessario importare nuovamente eventuali pool di memorizzazione ZFS creati nell'ambiente di boot ZFS in quanto questi non sono automaticamente disponibili nell'ambiente di boot UFS. Quando si torna all'ambiente di boot UFS vengono visualizzati messaggi simili ai seguenti.


# luactivate c1t2d0s0
WARNING: The following files have changed on both the current boot 
environment <ZFSbe> zone <global> and the boot environment to be activated <c1t2d0s0>:
 /etc/zfs/zpool.cache
INFORMATION: The files listed above are in conflict between the current 
boot environment <ZFSbe> zone <global> and the boot environment to be 
activated <c1t2d0s0>. These files will not be automatically synchronized 
from the current boot environment <ZFSbe> when boot environment <c1t2d0s0>