Solaris 10 10/08 Installationshandbuch: Solaris Live Upgrade und Planung von Upgrades

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