Oracle Solaris 10 9/10 Installationshandbuch: Solaris Live Upgrade und Planung von Upgrades

Kapitel 14 Solaris Live Upgrade für ZFS mit installierten nicht-globalen Zonen

Dieses Kapitel enthält einen Überblick sowie schrittweise Anleitungen zur Migration eines UFS-Root-Dateisystems (/) auf ein ZFS-Root-Pool.


Hinweis –

Die Migration von einem UFS-Root-Dateisystem (/) auf ein ZFS-Root-Pool bzw. das Erstellen von ZFS-Boot-Umgebungen mit Solaris Live Upgrade ist ein neues Leistungsmerkmal im Solaris-Release 10 10/08. Beim Ausführen von Solaris Live Upgrade für ein UFS-Dateisystem bleiben sowohl die Befehlszeilenparameter und die Operation von Solaris Live Upgrade unverändert. Informationen zur Ausführung von Solaris Live Upgrade auf Systemen mit UFS-Dateisystemen finden Sie in Teil I, Ausführen eines Upgrades mit Solaris Live Upgrade dieses Handbuchs.


Erstellen einer ZFS-Boot-Umgebung auf einem System mit installierten nicht-globalen Zonen (Übersicht und Planung).

Sie können mithilfe von Solaris Live Upgrade ein UFS-Root-Dateisystem (/) mit installierten nicht-globalen Zonen auf ein ZFS-Root-Pool migrieren. Alle nicht-globalen Zonen, die diesem Dateisystem zugeordnet sind, werden ebenfalls in die neue Boot-Umgebung kopiert. Es werden die folgenden Szenarien für die Migration von Systemen mit nicht-globalen Zonen unterstützt:

Kombination von Root-Dateisystem und Zonen vor der Migration  

Kombination von Root-Dateisystem und Zonen nach·der Migration 

UFS-Root-Dateisysteme, bei denen sich das Root-Verzeichnis nicht-globaler Zonen im UFS-Dateisystem befindet 

UFS-Root-Dateisysteme, bei denen sich das Root-Verzeichnis nicht-globaler Zonen in einem ZFS-Root-Pool befindet 

 

ZFS-Root-Pools, bei denen sich das Root-Verzeichnis nicht-globaler Zonen in einem ZFS-Root-Pool befindet 

 

ZFS-Root-Pools, bei denen sich das Root-Verzeichnis nicht-globaler Zonen im UFS-Dateisystem befindet 

UFS-Root-Dateisysteme, bei denen sich die·nicht-globale Zonen-Root in einem ZFS-Root-Pool befindet 

ZFS-Root-Pools, bei denen sich die nicht-globale Zonen-Root in einem ZFS-Root-Pool befindet 

 

UFS-Root-Dateisysteme, bei denen sich die nicht-globale Zonen-Root in einem ZFS-Root-Pool befindet 

ZFS-Root-Pools, bei denen sich das Root-Verzeichnis nicht-globaler Zonen in einem ZFS-Root-Pool befindet 

ZFS-Root-Pools, bei denen sich das Root-Verzeichnis nicht-globaler Zonen in einem ZFS-Root-Pool befindet 

Auf einem System mit UFS-Root-Dateisystem (/) mit installierten nicht-globalen Zonen werden diese nicht-globalen Zonen migriert, wenn sich die Zone im Rahmen der Migration von UFS auf ZFS in einem nicht gemeinsam nutzbaren·Dateisystem befindet, oder die Zone wird beim Upgrade innerhalb des gleichen ZFS-Pools geklont. Wenn in einem gemeinsam genutzen UFS-Dateisystem (/) eine nicht-globale Zone vorhanden ist, müssen Sie wie in früheren Solaris-Releases diese nicht-globale Zone zunächst aktualisieren, damit sie in ein anderes ZFS-Root-Pool migriert werden kann.

Migration von einem UFS-Root-Dateisystem (/) mit installierten nicht-globalen Zonen auf ein ZFS-Root-Pool (Vorgehen)

Dieses Kapitel enthält schrittweise Anleitungen zur Migration von einem UFS-Root-Dateisystem (/) auf ein ZFS-Root-Pool auf einem System mit installierten nicht-globalen Zonen. In einem UFS-Dateisystem befinden sich nicht-globale Zonen nicht in gemeinsam nutzbaren Dateisystemen.

ProcedureSo migrieren Sie auf einem System mit installierten nicht-globalen Zonen ein UFS-Dateisystem auf ein ZFS-Root-Pool

Der Befehl lucreate erstellt aus einem UFS-Root-Dateisystem (/) eine Boot-Umgebung eines ZFS-Root-Pools. Vor der Ausführung des Befehls lucreate muss ein ZFS-Root-Pool vorhanden und mit Slices statt auf einer gesamten Festplatte erstellt worden sein, damit es upgrade- und bootfähig ist. Hier wird gezeigt, wie eine dem UFS-Root-Dateisystem (/) zugeordnete und bereits vorhandene nicht-globale Zone in die neue Boot-Umgebung in einem ZFS-Root-Pool kopiert wird.

Im folgenden Beispiel besitzt die vorhandene nicht-globale Zone meineZone ihre nicht-globale Zonen-Root in einem UFS-Root-Dateisystem (/). Die Zone zzone besitzt ihre Zonen-Root in einem ZFS-Dateisystem im vorhandenen ZFS-Speicherpool pool. Die UFS-Boot-Umgebung c2t2d0s0 wird mithilfe von Solaris Live Upgrade in die ZFS-Boot-Umgebung zfs2BU migriert. The UFS-basierte Zone myzone migriert in das neue ZFS-Speicherpool mpool, das vor dem Ausführen von Solaris Live Upgrade erstellt worden ist. Die ZFS-basierte nicht-globale Zone zzone wird geklont, aber im ZFS-Pool pool beibehalten und in die neue Boot-Umgebung zfs2BU migriert.

  1. Arbeiten Sie die folgenden Schritte ab, wenn Sie Solaris Live Upgrade zum ersten Mal verwenden.


    Hinweis –

    Damit Sie mit Solaris Live Upgrade neue ZFS-Boot-Umgebungen installieren können, muss auf Ihrem System mindestens Solaris-Release 10 10/08 installiert sein. In früheren Releases ist die ZFS- und Solaris Live Upgrade-Software zum Durchführen dieser Aufgaben nicht enthalten.


    1. Entfernen Sie - falls erforderlich - vorhandene Solaris Live Upgrade-Packages von Ihrem System. Wenn Sie ein Upgrade auf ein neues Release durchführen, müssen Sie die Packages dieses Release installieren.

      Die drei Solaris Live Upgrade-Packages SUNWluu, SUNWlur und SUNWlucfg enthalten die zum Aktualisieren mithilfe von Solaris Live Upgrade erforderliche Software. Diese Pakete enthalten die bestehende Software, neue Funktionen sowie Bugfixes. Wenn Sie die vorhandenen Packages nicht entfernen und die neuen Packages auf Ihrem System installieren, bevor Sie Solaris Live Upgrade ausführen, schlägt das Aktualisieren auf die Zielversion fehl.


      # pkgrm SUNWlucfg SUNWluu SUNWlur
      
    2. Installieren Sie die Solaris Live Upgrade-Packages des Release, auf das Sie aktualisieren möchten. Eine Anleitung finden Sie unter  Installieren von Solaris Live Upgrade.

    3. Vor der Installation und dem Ausführen von Solaris Live Upgrade müssen Sie die folgenden Patches installieren. Diese Patches gewährleisten, dass auf Ihrem System die neuesten Fehlerbehebungen und Leistungsmerkmale installiert sind.

      Vergewissern Sie sich auf SunSolve, dass Sie die aktuellste Patch-Liste haben. Suchen Sie auf der Sunsolve-Website nach dem Informationsdokument 206844 (früher 72099).

      • Melden Sie sich als Superuser an oder nehmen Sie eine entsprechende Rolle an.


        Hinweis –

        Rollen umfassen Autorisierungen und privilegierte Befehle. Weitere Informationen zu Rollen finden Sie unter Configuring RBAC (Task Map) in System Administration Guide: Security Services.


      • Zum Speichern der Patches auf einer lokalen Festplatte sollten Sie ein Verzeichnis wie z. B. /var/tmp/lupatches erstellen und die Patches in dieses Verzeichnis herunterladen.

      • Laden Sie von der Sunsolve -Website die Patchliste herunter.

      • Wechseln Sie in das Patch-Verzeichnis.


        # cd /var/tmp/lupatches
        
      • Installieren Sie die Patches mit dem Befehl patchadd.


        # patchadd patch_id
        

        Patch_ID sind die Patchnummern. Trennen Sie mehrere Patch-Namen mit Leerzeichen voneinander.


        Hinweis –

        Sie müssen die Patches in der im Dokument 206844 angegebenen Reihenfolge installieren.


      • Starten Sie, falls erforderlich, das System neu. Bei einigen Patches ist ein Systemneustart erforderlich.

        Nur x86: Das System muss neu gestartet werden, anderenfalls schlägt Solaris Live Upgrade fehl.


        # init 6
        
  2. Erstellen Sie ein ZFS-Root-Pool.

    Damit das ZFS-Root-Pool boot- und upgradefähig ist, muss es sich auf einem einzigen Slice befinden.


    # zpool create rpool c3t0d0s0
    

    In diesem Beispiel heißt das neu zu erstellende ZFS-Pool rpool. Das Pool wird auf dem bootfähigen Slice c3t0d0s0 erstellt.

    Informationen zum Erstellen eines neuen Root-Pools finden Sie im Oracle Solaris ZFS-Administrationshandbuch.

  3. Migrieren Sie das UFS-Root-Dateisystem (/) auf das neue ZFS-Root-Pool.


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

    Weist der aktuellen Boot-Umgebung den Namen ufsBU zu. Diese Option ist nicht obligatorisch und wird nur beim Erstellen der ersten Boot-Umgebung verwendet. Wenn Sie lucreate zum ersten Mal ausführen und dabei keine Option -c angeben, erstellt die Software automatisch einen Standardnamen.

    -n neue-zfsBU

    Weist der zu erstellenden Boot-Umgebung den Namen neue-zfsBU zu. Der Name muss auf dem System einmalig sein.

    -p rpool

    Legt das neu erstellte ZFS-Root-Dateisystem (/) in dem in rpool definierten ZFS-Root-Pool an.

    Alle nicht gemeinsam nutzbaren nicht-globalen Zonen werden zusammen mit kritischen Dateisystemen in die neue Boot-Umgebung kopiert. Das Erstellen der neuen ZFS-Boot-Umgebung kann eine gewisse Zeit dauern. Die Daten des UFS-Dateisystems werden in das ZFS-Root-Pool kopiert. Nach dem Erstellen der inaktiven Boot-Umgebung können Sie die neue ZFS-Boot-Umgebung mithilfe der Befehle luupgrade bzw. luactivate aktualisieren bzw. aktivieren.

  4. (Optional) Überprüfen Sie, ob die Boot-Umgebung vollständig ist.

    Der Befehl lustatus erzeugt einen Bericht, ob die erstellte Boot-Umgebung vollständig und bootfähig ist.


    # 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. (Optional) Überprüfen Sie die grundlegenden Dataset-Informationen auf dem System.

    Der Befehl list zeigt die Namen aller auf dem System vorhandenen Datasets an. In diesem Beispiel ist rpool der Name des ZFS-Pools und neue-zfsBU der Name der neu erstellten ZFS-Boot-Umgebung.


    # 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  - 

    Die für die neue Boot-Umgebung angezeigten Einhängepunkte sind temporär und gelten nur bis zur Ausführung des Befehls luactivate. Die Volumes /dump und /swap werden nicht gemeinsam mit der ursprünglichen UFS-Boot-Umgebung, sondern innerhalb des ZFS-Root-Pools und mit Boot-Umgebungen innerhalb des Root-Pools genutzt.


Beispiel 14–1 Migration von einem UFS-Root-Dateisystem (/) mit installierten nicht-globalen Zonen auf ein ZFS-Root-Pool

Im folgenden Beispiel besitzt die vorhandene nicht-globale Zone meineZone ihre nicht-globale Zonen-Root in einem UFS-Root-Dateisystem (/). Die Zone zzone besitzt ihre Zonen-Root in einem ZFS-Dateisystem im vorhandenen ZFS-Speicherpool pool. Die UFS-Boot-Umgebung c2t2d0s0 wird mithilfe von Solaris Live Upgrade in die ZFS-Boot-Umgebung zfs2BU migriert. The UFS-basierte Zone myzone migriert in das neue ZFS-Speicherpool mpool, das vor dem Ausführen von Solaris Live Upgrade erstellt worden ist. Die ZFS-basierte nicht-globale Zone zzone wird geklont, aber im ZFS-Pool pool beibehalten und in die neue Boot-Umgebung zfs2BU migriert.


# 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.

Wenn die Ausführung des Befehls lucreate abgeschlossen ist, können Sie sich die Boot-Umgebung mithilfe des Befehls lustatus anzeigen lassen (siehe Beispiel).


# 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

Danach können Sie mit dem Befehl luactivate die neue ZFS-Boot-Umgebung aktivieren. Beispiel:


# 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.

Booten Sie das System mit der ZFS-Boot-Umgebung neu.


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

Bestätigen Sie die neue Boot-Umgebung und den Status der migrierten Zonen (siehe Beispiel).


# 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    -         

Wenn Sie einen Fallback auf die UFS-Boot-Umgebung durchführen, müssen Sie alle in der ZFS-Boot-Umgebung erstellten ZFS-Speicherpools neu importieren, da diese·in der UFS-Boot-Umgebung nicht automatisch verfügbar sind. Beim Zurückschalten auf die UFS-Boot-Umgebung werden Meldungen wie im folgenden Beispiel angezeigt.


# 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>

Weitere Ressourcen

Weitere Informationen zu den in diesem Kapitel enthaltenen Themen finden Sie in den in Tabelle 14–1 aufgeführten Ressourcen.

Tabelle 14–1 Weitere Ressourcen

Ressource 

Zu finden in: 

Informationen zu nicht-globalen Zonen einschließl. Überblick, Planung sowie schrittweise Anleitungen 

Systemverwaltungshandbuch: Oracle Solaris Container – Ressourcenverwaltung und Solaris Zones

Informationen zu ZFS einschließl. Übersicht, Planung und schrittweise Anleitungen 

Oracle Solaris ZFS-Administrationshandbuch

Informationen zur Verwendung von Solaris Live Upgrade auf Systemen mit UFS-Dateisystemen 

Teil I, Ausführen eines Upgrades mit Solaris Live Upgrade dieses Handbuchs, einschließlich Kapitel 8Aktualisieren des Betriebssystems Solaris auf einem System mit bereits installierten nicht-globalen Zonen