Solaris 10 5/09 Installationshandbuch: Solaris Live Upgrade und Planung von Upgrades

Kapitel 11 Solaris Live Upgrade und ZFS (Überblick)

Mit Solaris Live Upgrade können Sie UFS-Dateisysteme in ein ZFS-Root-Pool migrieren und von einem vorhandenen ZFS-Root-Pool ZFS-Root-Dateisysteme erstellen.


Hinweis –

Das Erstellen von Boot-Umgebungen mit Solaris Live Upgrade ist ein neues Leistungsmerkmal von 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.


Die folgenden Abschnitten enthalten einen Überblick über diese Aufgaben:

Einführung in die Verwendung von Solaris Live Upgrade mit ZFS

Bei UFS-Dateisystemen ist die Arbeitsweise von Solaris Live Upgrade die gleiche wie in früheren Releases. Sie können UFS-Dateisysteme jetzt auf ein ZFS-Root-Pool migrieren und innerhalb eines ZFS-Root-Pools neue Boot-Umgebungen erstellen. Für diese Aufgaben wurde der Befehl lucreate um die Option -p erweitert. Die Befehlssyntax ist wie folgt:


# lucreate [-c active_BE_name] -n BE_name [-p zfs_root_pool]

Die Option -p gibt das ZFS-Pool an, in dem sich die neue Boot-Umgebung befindet. Diese Option kann ausgelassen werden, wenn sich die Quell- und Ziel-Boot-Umgebungen im gleichen Pool befinden.

Die Option -m des Befehls lucreate wird in ZFS nicht unterstützt. Die anderen Optionen des Befehls lucreate funktionieren (von einigen wenigen Ausnahmen abgesehen)unverändert. Die geltenden Einschränkungen sind in Systemvoraussetzungen und Einschränkungen für die Verwendung von Solaris Live Upgrade beschrieben.

Migration von einem UFS-Dateisystem auf ein ZFS-Root-Pool

Wenn Sie vom aktuell laufenden System eine Boot-Umgebung erstellen, kopiert der Befehl lucreate das UFS-Root-Dateisystem (/) in ein ZFS-Root-Pool. Je nach System kann der Kopiervorgang einige Zeit in Anspruch nehmen.

Bei der Migration von einem UFS-Dateisystem kann die Quell-Boot-Umgebung ein UFS-Root-Dateisystem (/) auf einem Festplatten-Slice sein. Boot-Umgebungen können nicht auf UFS-Dateisystemen von einer Quell-Boot-Umgebung auf einem ZFS-Root-Pool erstellt werden.

Migration von einem UFS-Root-Dateisystem (/) auf ein ZFS-Root-Pool

Die folgenden Befehle erstellen ein ZFS-Root-Pool und eine neue Boot-Umgebung von einem UFS-Root-Dateisystem (/) in einem ZFS-Root-Pool. 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. Die Festplatte darf kein EFI-Label, sondern muss ein SMI-Label haben. Weitere Einschränkungen sind in Systemvoraussetzungen und Einschränkungen für die Verwendung von Solaris Live Upgrade beschrieben.

Abbildung 11–1 zeigt den Befehl zpool der das Root-Pool rpool auf dem separaten Slice c0t1d0s5 erstellt. Das Festplatten-Slice c0t0d0s0 enthält ein UFS-Root-Dateisystem (/). Im Befehl lucreate gibt die Option -c das aktuell laufende System (c0t0d0 ) an, das ein UFS-Root-Dateisystem (/) ist. Die Option -n weist der neu zu erstellenden Boot-Umgebung den Namen neue-zfsBU zu. Die Option -p legt fest, wo die neue Boot-Umgebung rpool angelegt werden soll. Das UFS-Dateisystem /export und das Volume /swap werden nicht in die neue Boot-Umgebung kopiert.

Abbildung 11–1 Migration von einem UFS-Dateisystem auf ein ZFS-Root-Pool

Das Schaubild wird im Kontext erläutert.


Beispiel 11–1 Migration von einem UFS-Root-Dateisystem (/) auf ein ZFS-Root-Pool

Dieses Beispiel zeigt die gleichen Befehle wie in Abbildung 11–1. Diese Befehle erstellen das neue Root-Pool rpool, und legen in diesem Pool von einem UFS-Root-Dateisystem (/) eine neue Boot-Umgebung an. In diesem Beispiel zeigt der Befehl zfs list das mit dem Befehl zpool erstellte ZFS-Root-Pool an. Der nächste Befehl zfs list zeigt die vom Befehl lucreate erstellten Datasets an.


# zpool create rpool c0t1d0s5
# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT 
rpool                      9.29G  57.6G    20K  /rpool

# lucreate -c c0t0d0 -n new-zfsBE -p rpool
# 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 neue Boot-Umgebung ist rpool/ROOT/new-zfsBE. Die Boot-Umgebung neue-zfsBU kann jetzt aktualisiert und aktiviert werden.


Migration eines UFS-Dateiystems mit konfigurierten Solaris Volume Manager-Volumes auf ein ZFS-Root-Dateisystem

Sie können ein UFS-Dateisystem migrieren, wenn auf Ihrem System Solaris Volume Manager-Volumes (SVM) vorhanden sind. Um eine UFS-Boot-Umgebung aus einer vorhandenen SVM-Konfiguration zu erstellen, müssen Sie zunächst aus dem aktuell laufenden System eine neue Boot-Umgebung erstellen. Dann können Sie die ZFS-Boot-Umgebung aus der neuen UFS-Boot-Umgebung erstellen.

Überblick über Solaris Volume Manager (SVM). ZFS nutzt zur Verwaltung physischer Datenträger das Konzept von Speicherpools. Früher setzten Dateisysteme auf einem einzigen physischen Datenträger auf. Damit mehrere Datenträger adressiert werden können und Datenredundanz erreicht wird, wurde das Konzept des Volume Managers eingeführt, der ein „Abbild“ eines einzigen Datenträgers ermöglicht. So mussten Dateisysteme nicht modifiziert werden, damit sie die Vorteile mehrerer Datenträger nutzen können. Dieses Design fügte jedoch eine weitere Komplexitätsebene hinzu. Diese Komplexität verhinderte letztendlich die Nutzung bestimmter Dateisystemweiterentwicklungen, da ein Dateisystem keine Kontrolle über die physische Speicherung von Daten auf virtualisierten Volumes·hatte.

ZFS-Speicherpools lösen SVM ab. Mit ZFS wird die Notwendigkeit der Verwaltung von Datenträgern komplett eliminiert. Sie müssen bei ZFS keine virtualisierte Volumen·erstellen, sondern Datenträger werden in einem Speicherpool gruppiert. Das Speicherpool beschreibt die physischen Eigenschaften von Datenträgerstruktur und Datenredundanz und dient als flexible·Datenablage, aus der Dateisysteme erstellt werden können. Dateisysteme sind nicht mehr an einzelne Datenträger gebunden, sodass sie Speicherplatz gemeinsam mit allen Dateisystemen im Pool nutzen können. Sie müssen die Größe eines Dateisystems nicht mehr vorher festlegen, da Dateisysteme im Rahmen des dem Pool zugewiesenen Speicherplatzes·automatisch vergrößert werden können. Wenn ein Pool um neuen Speicherplatz erweitert wird, können alle Dateisysteme dieses Pools diesen neuen Speicherplatz sofort nutzen, ohne dass dafür Konfigurationen geändert werden müssen. Ein Speicher-Pool verhält sich in vielerlei Hinsicht wie ein virtuelles Speichersystem. Wenn ein System um neue DIMM-Speicherchips erweitert wird, brauchen Sie auf Betriebssystemebene keine Befehle einzugeben, mit denen dieser neue Speicher konfiguriert und zu einzelnen Prozessen zugewiesen werden muss. Alle Prozesse im System nutzen automatisch den zusätzlichen Speicher.


Beispiel 11–2 Migration von einem UFS-Root-Dateisystem (/) mit SVM-Volumes auf ein ZFS-Root-Pool

Bei der Migration eines Systems mit SVM-Volumes werden die SVM-Volumes ignoriert. Sie können im Root-Pool Mirrors einrichten (siehe folgendes Beispiel).

In diesem Beispiel erstellt der Befehl lucreate mit der Option -m aus dem aktuell laufenden System eine neue Boot-Umgebung. Das Festplatten-Slice c1t0d0s0 enthält ein mit SVM-Volumes konfiguriertes UFS-Root-Dateisystem ( /). Der Befehl zpool erstellt das Root-Pool c1t0d0s0 und das RAID-1-Volume c2t0d0s0 (Mirror). Im zweiten lucreate-Befehl weist die Option -n der neu zu erstellenden Boot-Umgebung den Namen neuer-zfsBU-Name zu. Die Option -s identifiziert das Dateisystem UFS-Root (/). Die Option -p legt fest, wo die neue Boot-Umgebung rpool angelegt werden soll.


# lucreate -n ufsBE -m /:/dev/md/dsk/d104:ufs
# zpool create rpool mirror c0t0d0s0 c0t1d0s0
# lucreate -n c0t0d0s0 -s ufsBE -p zpool

Die Boot-Umgebung c0t0d0s0 kann jetzt aktualisiert und aktiviert werden.


Erstellen einer neuen Boot-Umgebung aus einem ZFS-Root-Pool

Sie können eine neue ZFS-Boot-Umgebung innerhalb des gleichen Root-Pools oder auf einem anderen Root-Pool erstellen. Dieser Abschnitt enthält Übersichten zu den folgenden Themen:

Erstellen einer neuen Boot-Umgebung innerhalb des gleichen Root-Pools

Beim Erstellen einer neuen Boot-Umgebung innerhalb des gleichen ZFS-Root-Pools erstellt der Befehl lucreate zunächst einen Snapshot der Quell-Boot-Umgebung und dann aus diesem Snapshot einen Klon. Das Erstellen des Snapshots und des Klons nimmt sehr wenig Zeit in Anspruch, und der belegte Festplattenspeicherplatz ist minimal. Der letztendlich erforderliche Speicherplatz hängt davon ab, wieviele Dateisysteme im Zuge des Upgrade-Vorgangs ersetzt werden. Der Snapshot ist schreibgeschützt, der Klon ist jedoch eine nicht schreibgeschützte Kopie des Snapshots. Alle an der geklonten Boot-Umgebung vorgenommenen Änderungen werden nicht in den Snapshot bzw. die Boot-Umgebung, aus der der Snapshot erstellt wurde, übernommen.


Hinweis –

Auch bei Änderungen an den Daten des aktiven Datasets belegt der Snapshot durch Referenzierung der alten Daten weiterhin Speicherplatz. Deswegen verhindert der Snapshot, dass die Daten zurück ins Pool freigegeben werden. Weitere Informationen zu Snapshots finden Sie in Kapitel 7, Arbeiten mit ZFS-Snapshots und -Klonen in Solaris ZFS - Administrationshandbuch.


Wenn sich die aktuelle Boot-Umgebung auf dem gleichen ZFS-Pool befindet, kann die Option - p ausgelassen werden.

Abbildung 11–2 zeigt das Erstellen einer ZFS-Boot-Umgebung aus einem ZFS-Root-Pool. Das Slice c0t0d0s0 enthält das ZFS-Root-Pool rpool. Im Befehl lucreate weist die Option -n der neu zu erstellenden Boot-Umgebung den Namen neue-zfsBU zu. Aus dem ursprünglichen Root-Pool wird der Snapshot rpool@new-zfsBE erstellt. Von diesem Snapshot wird der Klon angelegt, der die neue Boot-Umgebung neue-zfsBU darstellt. Die Boot-Umgebung neue-zfsBU kann jetzt aktualisiert und aktiviert werden.

Abbildung 11–2 Erstellen einer neuen Boot-Umgebung im gleichen Root-Pool

Das Schaubild wird im Kontext erläutert.


Beispiel 11–3 Erstellen einer Boot-Umgebung innerhalb des gleichen ZFS-Root-Pools

Dieses Beispiel zeigt den gleichen Befehl wie in Abbildung 11–2, mit dem im gleichen Root-Pool eine neue Boot-Umgebung erstellt wird. Der lucreate-Befehl benennt die aktuell laufende Boot-Umgebung mit der Option -c zfsBU, und die Option -n neue-zfsBU erstellt die neue Boot-Umgebung. Der Befehl zfs list zeigt die ZFS-Datasets mit der neuen Boot-Umgebung und dem Snapshot an.


# lucreate -c zfsBE -n new-zfsBE
# zfs list
AME                        USED  AVAIL  REFER  MOUNTPOINT 
rpool                      9.29G  57.6G    20K  /rpool
rpool/ROOT                 5.38G  57.6G    18K  /rpool/ROOT
rpool/ROOT/zfsBE           5.38G  57.6G   551M  
rpool/ROOT/zfsBE@new-zfsBE 66.5K      -   551M  -
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  - 

Erstellen einer neuen Boot-Umgebung in einem anderen Root-Pool

Mit dem Befehl lucreate können Sie ein vorhandenes ZFS-Root-Pool in ein anderes ZFS-Root-Pool kopieren. Je nach System kann der Kopiervorgang einige Zeit in Anspruch nehmen.

Abbildung 11–3 zeigt den Befehl zpool, der das ZFS-Root-Pool rpool2 auf c0t1d0s5 erstellt, da ein bootfähiges ZFS-Root-Pool noch nicht vorhanden ist. Im Befehl lucreate weist die Option -n der zu erstellenden Boot-Umgebung den Namen neue-zfsBU zu. Die Option -p legt fest, wo die neue Boot-Umgebung angelegt werden soll.

Abbildung 11–3 Erstellen einer neuen Boot-Umgebung in einem anderen Root-Pool

Das Schaubild wird im Kontext erläutert.


Beispiel 11–4 Erstellen einer Boot-Umgebung in einem anderen ZFS-Root-Pool

Dieses Beispiel zeigt die gleichen Befehle wie in Abbildung 11–3, die zunächst ein neues Root-Pool und dann in diesem neu erstellten Root-Pool eine neue Boot-Umgebung erstellen. In diesem Beispiel erstellt der Befehl zpool create das Pool rpool2. Der Befehl zfs list zeigt, dass in rpool2 keine ZFS-Datasets angelegt wurden. Die Datasets werden mit dem Befehl lucreate erstellt.


# zpool create rpool2 c0t2d0s5
# zfs list
NAME                             USED    AVAIL   REFER   MOUNTPOINT 
rpool2                           9.29G    57.6G     20K   /rpool2 
rpool                            9.29G    57.6G     20K   /.new.lulib.rs.109262
rpool/ROOT                       5.46G    57.6G     18K   legacy
rpool/ROOT/zfsBE                 5.46G    57.6G   551M  
rpool/dump                       3.99G        -   3.99G   - 
rpool/swap                       3.99G        -   3.99G   - 

Das neue ZFS-Root-Pool rpool2 wird auf dem Festplatten-Slice c0t2d0s5 erstellt.


# lucreate -n new-zfsBE -p rpool2
# zfs list
NAME                             USED    AVAIL   REFER   MOUNTPOINT 
rpool2                           9.29G    57.6G     20K   /rpool2 
rpool2/ROOT/                     5.38G    57.6G     18K   /rpool2/ROOT 
rpool2/ROOT/new-zfsBE            5.38G    57.6G    551M   /tmp/.new.luupdall.109859
rpool2/dump                      3.99G        -   3.99G   - 
rpool2/swap                      3.99G        -   3.99G   - 
rpool                            9.29G    57.6G     20K   /.new.lulib.rs.109262
rpool/ROOT                       5.46G    57.6G     18K   legacy
rpool/ROOT/zfsBE                 5.46G    57.6G   551M  
rpool/dump                       3.99G        -   3.99G   - 
rpool/swap                       3.99G        -   3.99G   - 

Die neue Boot-Umgebung neue-zfsBU wird zusammen mit den anderen Datasets ROOT, dump und swap auf rpool2 erstellt. Die Boot-Umgebung neue-zfsBU kann jetzt aktualisiert und aktiviert werden.


Erstellen einer neuen Boot-Umgebung von einem anderen System als dem aktuell laufenden System

Wenn Sie eine Boot-Umgebung von einem anderen System als dem aktuell laufenden System erstellen, müssen Sie den Befehl lucreate mit der Option -s verwenden. Die Wirkungsweise der Option -s ist die gleiche wie bei UFS-Dateisystemen. Die Option -s gibt den Pfad zum alternativen Root-Dateisystem (/) an. Von diesem alternativen Root-Dateisystem (/) wird das neue ZFS-Root-Pool erstellt. Die alternative Root kann ein UFS-Root-Dateisystem (/) oder ein ZFS-Root-Pool sein. Je nach System kann der Kopiervorgang einige Zeit in Anspruch nehmen.


Beispiel 11–5 Erstellen einer Boot-Umgebung von einem alternativen Root-Dateisystem (/ )

Mithilfe des folgenden Befehls wird ein neues ZFS-Root-Pool von einem vorhandenen ZFS-Root-Pool erstellt. Die Option -n weist der neu zu erstellenden Boot-Umgebung den Namen neue-zfsBU zu. Die Option -s gibt an, dass die Boot-Umgebung statt von der aktuell laufenden Boot-Umgebung von der Boot-Umgebung source-zfsBE erstellt werden soll. Die Option -p legt fest, dass die neue Boot-Umgebung in neuesPool2 angelegt werden soll.


# lucreate -n new-zfsBE  -s source-zfsBE -p rpool2

Die Boot-Umgebung neue-zfsBU kann jetzt aktualisiert und aktiviert werden.


Erstellen einer ZFS-Boot-Umgebung auf einem System mit installierten nicht-globalen Zonen.

Sie können mithilfe von Solaris Live Upgrade nicht-globale Zonen auf ein ZFS-Root-Dateisystem migrieren. Eine Übersicht, Informationen zur Planung sowie schrittweise Anleitungen finden Sie in Kapitel 14Solaris Live Upgrade für ZFS mit installierten nicht-globalen Zonen.

Weitere Ressourcen

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

Tabelle 11–1 Weitere Ressourcen

Ressource 

Zu finden in: 

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

Solaris ZFS - Administrationshandbuch

Verwendung von Solaris Live Upgrade auf Systemen mit UFS-Dateisystemen 

Teil I, Ausführen eines Upgrades mit Solaris Live Upgrade of this book