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

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.