1. Oracle Solaris ZFS-Dateisystem (Einführung)
2. Erste Schritte mit Oracle Solaris ZFS
3. Unterschiede zwischen Oracle Solaris ZFS und herkömmlichen Dateisystemen
4. Verwalten von Oracle Solaris ZFS-Speicher-Pools
5. Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems
Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems (Übersicht)
Leistungsmerkmale für die ZFS-Installation
Oracle Solaris-Installation und Live Upgrade: Voraussetzungen für die ZFS-Unterstützung
Voraussetzungen für die Oracle Solaris-Version
Allgemeine Voraussetzungen für einen ZFS-Speicher-Pool
Erforderliche Festplattenkapazität für ZFS-Speicher-Pools
Voraussetzungen für die Konfiguration des ZFS-Speicher-Pools
Installieren eines ZFS-Root-Dateisystems (Erstinstallation von Oracle Solaris)
Erstellen eines gespiegelten ZFS-Root-Pools (nach der Installation)
Installieren eines ZFS-Root-Dateisystems (Oracle Solaris Flash-Archiv-Installation)
Installieren eines ZFS-Root-Dateisystems (JumpStart-Installation)
JumpStart-Schlüsselwörter für ZFS
JumpStart-Profilbeispiele für ZFS
JumpStart-Probleme im Zusammenhang mit ZFS
Migrieren in ein ZFS-Root-Dateisystem oder Aktualisieren eines ZFS-Root-Dateisystems (Live Upgrade)
Probleme bei der ZFS-Migration mit Live Upgrade
Migrieren oder Aktualisieren eines ZFS-Root-Dateisystems mit Live Upgrade (ohne Zonen)
So konfigurieren Sie ein ZFS-Root-Dateisystem mit Zonen-Roots auf ZFS (Solaris 10 10/08)
Unterstütztes ZFS mit Zonen-Root-Konfigurationsinformationen (ab Solaris 10 5/09)
So aktualisieren oder patchen Sie ein ZFS-Root-Dateisystem mit Zonen-Roots (ab Solaris 10 5/09)
ZFS-Unterstützung für Swap- und Dump-Geräte
Anpassen der Größe von ZFS-Swap- und Dump-Geräten
Behebung von Problemen mit ZFS-Dump-Geräten
Booten aus einem ZFS-Root-Dateisystem
Booten von einer alternativen Festplatte in einem gespiegelten ZFS-Root-Pool
SPARC: Booten aus einem ZFS-Root-Dateisystem
x86: Booten aus einem ZFS-Root-Dateisystem
So lösen Sie Probleme mit ZFS-Einhängepunkten
Booten zur Wiederherstellung in einer ZFS-Root-Umgebung
Wiederherstellen von ZFS-Root-Pool oder Root-Pool-Schnappschüssen
So ersetzen Sie eine Festplatte im ZFS-Root-Pool
So erstellen Sie Root-Pool-Schnappschüsse
So erstellen Sie einen ZFS-Root-Pool neu und stellen Root-Pool-Schnappschüsse wieder her
6. Verwalten von Oracle Solaris ZFS-Dateisystemen
7. Arbeiten mit Oracle Solaris ZFS-Snapshots und -Klonen
8. Schützen von Oracle Solaris ZFS-Dateien mit Zugriffskontrolllisten und Attributen
9. Delegierte Oracle Solaris ZFS-Administration
10. Fortgeschrittene Oracle Solaris ZFS-Themen
11. Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS
Sowohl bei SPARC- als auch bei x86-Systemen kommt die neue Art des Bootens mit Boot-Archiv zum Einsatz. Dabei handelt es sich um ein Dateisystemabbild, in dem sich die zum Booten benötigten Dateien befinden. Beim Booten aus einem ZFS-Root-Dateisystem werden die Pfadnamen des Archivs und der Kernel-Datei in dem für das Booten ausgewählten Root-Dateisystem aufgelöst.
Wenn das System für die Installation gebootet wird, wird während des gesamten Installationsvorgangs ein RAM-Datenträger für das Root-Dateisystem verwendet.
Das Booten aus einem ZFS-Dateisystem unterscheidet sich vom Booten aus einem UFS-Dateisystem dadurch, dass ein Gerätebezeichner bei ZFS kein einzelnes Root-Dateisystem sondern einen Speicher-Pool kennzeichnet. Ein Speicher-Pool kann mehrere bootfähige Datasets oder ZFS-Root-Dateisysteme enthalten. Beim Booten aus ZFS müssen Sie ein Boot-Gerät und ein Root-Dateisystem innerhalb des Pools angeben, das durch das Boot-Gerät identifiziert ist.
Standardmäßig ist das zum Booten ausgewählte Dataset das mit der Eigenschaft bootfs des Pools bezeichnete Dataset. Diese Standardauswahl kann durch Angabe eines alternativen bootfähigen Datasets mit dem Befehl boot -Z außer Kraft gesetzt werden.
Bei der Installation des Systems haben Sie die Möglichkeit, einen ZFS-Root-Pool mit Datenspiegelung zu erstellen oder eine Festplatte einzubinden, um nach der Installation ein solches zu erstellen. Weitere Informationen finden Sie unter:
Installieren eines ZFS-Root-Dateisystems (Erstinstallation von Oracle Solaris)
Erstellen eines gespiegelten ZFS-Root-Pools (nach der Installation)
Beachten Sie die folgenden bekannten Probleme im Zusammenhang mit gespiegelten ZFS-Root-Pools:
Wenn Sie mit dem Befehl zpool replace eine Root-Pool-Festplatte ersetzen, müssen Sie mithilfe des Befehls installboot oder installgrub die Boot-Informationen auf der neu ersetzten Festplatte installieren. Dieser Schritt ist nicht notwendig, wenn Sie zur Erstellung des gespiegelten ZFS-Root-Pools die Erstinstallationsmethode verwenden oder mit dem Befehl zpool attach eine Festplatte in den Root-Pool einbinden. Die Syntax der Befehle installboot und installgrub lautet wie folgt:
SPARC:
sparc# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk
x86:
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0
Es kann von verschiedenen Speichergeräten in einem gespiegelten ZFS-Root-Pool gebootet werden. Je nach der Hardwarekonfiguration kann es erforderlich sein, eine Aktualisierung von PROM oder BIOS vorzunehmen, um ein anderes Boot-Gerät angeben zu können.
So ist es in diesem Pool beispielsweise möglich, vom Datenträger (c1t0d0s0 oder c1t1d0s0) zu booten:
# zpool status rpool pool: rpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0s0 ONLINE 0 0 0 c1t1d0s0 ONLINE 0 0 0
SPARC: Geben Sie an der Eingabeaufforderung ok die alternative Festplatte an. Beispiel:
ok boot /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0
Rufen Sie nach dem Neustart des Systems eine Bestätigung des aktiven Boot-Geräts ab. Beispiel:
SPARC# prtconf -vp | grep bootpath bootpath: '/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a'
x86: Wählen Sie aus dem entsprechenden BIOS-Menü eine alternative Festplatte im gespiegelten ZFS-Root-Pool aus.
Anschließend verwenden Sie folgende Syntax, um zu bestätigen, dass Sie von der alternativen Festplatte gebootet haben.
x86# prtconf -v|sed -n '/bootpath/,/value/p' name='bootpath' type=string items=1 value='/pci@0,0/pci8086,25f8@4/pci108e,286@0/disk@0,0:a'
Auf SPARC-Systemen mit mehreren ZFS-Boot-Umgebungen können Sie mithilfe des Befehls luactivate von jeder Boot-Umgebung booten.
Während der Installation des Betriebssystems Oracle Solaris und des Live Upgrade wird dem standardmäßigen ZFS-Root-Dateisystem automatisch die Eigenschaft bootfs zugewiesen.
Innerhalb eines Pools können mehrere bootfähige Datasets vorhanden sein. Standardmäßig bezieht sich die Eigenschaft bootfs des Pools auf den Eintrag für das bootfähige Dataset in der Datei /Pool-Name/boot/menu.lst . Der Eintrag menu.lst kann jedoch den Befehl bootfs enthalten, der ein alternatives Dataset im Pool angibt. So ist es möglich, dass die Datei menu.lst Einträge für mehrere Root-Dateisysteme im Pool enthält.
Wenn auf einem System ein ZFS-Root-Dateisystem installiert oder eine Migration in ein ZFS-Root-Dateisystem vorgenommen wird, wird die Datei menu.lst um einen Eintrag wie diesen erweitert:
title zfsBE bootfs rpool/ROOT/zfsBE title zfs2BE bootfs rpool/ROOT/zfs2BE
Bei Erstellung einer neuen BU wird die Datei menu.lst automatisch aktualisiert.
Auf SPARC-Systemen stehen zwei ZFS-Boot-Optionen zur Verfügung:
Nach der Aktivierung der BU können Sie mit dem Befehl boot -L eine Liste der bootfähigen Datasets innerhalb eines ZFS-Pools anzeigen lassen. Anschließend können Sie eines der bootfähigen Datasets in der Liste auswählen. Es werden ausführliche Anweisungen zum Booten dieses Datasets angezeigt. Befolgen Sie diese Anweisungen zum Booten des ausgewählten Datasets.
Zum Booten eines bestimmten ZFS-Datasets können Sie den Befehl boot -Z dataset verwenden.
Beispiel 5-11 SPARC: Booten aus einer bestimmten ZFS-Boot-Umgebung
Wenn in einem ZFS-Speicher-Pool auf dem Boot-Gerät des Systems mehrere ZFS-BUs vorhanden sind, können Sie mit dem Befehl luactivate eine Standard-BU angeben.
Die folgende Ausgabe von lustatus zeigt beispielsweise, dass zwei ZFS-BUs verfügbar sind:
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- zfsBE yes no no yes - zfs2BE yes yes yes no -
Sind auf einem SPARC-System mehrere ZFS-BUs vorhanden, können Sie den Befehl boot -L verwenden, um aus einer BU zu booten, die sich von der Standard-BU unterscheidet. Jedoch wird eine BU, die aus einer boot -L-Sitzung gebootet wird, nicht auf die Standard-BU zurückgesetzt, und die Eigenschaft bootfs wird nicht aktualisiert. Wenn Sie die BU, die aus einer boot -L Sitzung gebootet wurde, zur Standard-BU machen möchten, müssen Sie sie mit dem Befehl luactivate aktivieren.
Beispiel:
ok boot -L Rebooting with command: boot -L Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0 File and args: -L 1 zfsBE 2 zfs2BE Select environment to boot: [ 1 - 2 ]: 1 To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/zfsBE Program terminated ok boot -Z rpool/ROOT/zfsBE
Beispiel 5-12 SPARC: Booten eines ZFS-Dateisystems im Failsafe-Modus
Auf SPARC-Systemen kann aus dem in /platform/`uname -i`/failsafe befindlichen Failsafe-Archiv gebootet werden. Gehen Sie dazu wie folgt vor:
ok boot -F failsafe
Um ein Failsafe-Archiv aus einem bestimmten bootfähigen ZFS-Dataset zu booten, verwenden Sie folgende Syntax:
ok boot -Z rpool/ROOT/zfsBE -F failsafe
Während der Installation des Betriebssystems Oracle Solaris oder des Live Upgrade werden der Datei /pool-name/boot/grub/menu.lst die folgenden Einträge hinzugefügt, damit ZFS automatisch gebootet wird:
title Solaris 10 8/11 X86 findroot (rootfs0,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title Solaris failsafe findroot (rootfs0,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe
Enthält das von GRUB als Boot-Gerät identifizierte Speichergerät einen ZFS-Speicher-Pool, wird auf Grundlage der Datei menu.lst das GRUB-Menü erstellt.
Auf x86-Systemen mit mehreren ZFS-BUs kann die BU über das GRUB-Menü gewählt werden. Ist das diesem Menüeintrag entsprechende Root-Dateisystem ein ZFS-Dataset, wird die folgende Option hinzugefügt:
-B $ZFS-BOOTFS
Beispiel 5-13 x86: Booten eines ZFS-Dateisystems
Beim Booten eines Systems von einem ZFS-Dateisystem wird das Root-Gerät von dem Boot-Parameter -B $ZFS-BOOTFS angegeben. Beispiel:
title Solaris 10 8/11 X86 findroot (pool_rpool,0,a) kernel /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title Solaris failsafe findroot (pool_rpool,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe
Beispiel 5-14 x86: Booten eines ZFS-Dateisystems im Failsafe-Modus
Das Failsafe-Archiv für x86-Systeme lautet /boot/x86.miniroot-safe und kann durch Auswahl des Solaris-Failsafe-Eintrags im GRUB-Menü gebootet werden. Beispiel:
title Solaris failsafe findroot (pool_rpool,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe
Die beste Methode zum Ändern der aktiven Boot-Umgebung (BU) ist der Befehl luactivate. Wenn das Booten von der aktiven BU wegen eines ungültigen Patches oder eines Konfigurationsfehlers fehlschlägt, können Sie nur von einer anderen BU booten, wenn Sie diese zur Boot-Zeit auswählen. Sie können eine alternative BU durch explizites Booten vom PROM oder von einem SPARC-System oder aus dem GRUB-Menü auf einem x86-System auswählen.
Aufgrund eines Fehlers im Live Upgrade von Solaris 10 10/08 kann das Booten der nichtaktiven BU fehlschlagen, wenn ein ZFS-Dataset oder ein ZFS-Dataset einer Zone in der BU einen ungültigen Einhängepunkt besitzt. Der gleiche Bug verhindert auch das Einhängen einer BU, wenn sie ein separates /var-Dataset besitzt.
Wenn ein ZFS-Dataset einer Zone einen ungültigen Einhängepunkt besitzt, kann dieser mit den folgenden Schritten korrigiert werden.
Beispiel:
# zpool import rpool
Beispiel:
# zfs list -r -o name,mountpoint rpool/ROOT/s10up NAME MOUNTPOINT rpool/ROOT/s10up /.alt.tmp.b-VP.mnt/ rpool/ROOT/s10up/zones /.alt.tmp.b-VP.mnt//zones rpool/ROOT/s10up/zones/zonerootA /.alt.tmp.b-VP.mnt/zones/zonerootA
Der Einhängepunkt für die Root-BU (rpool/ROOT/s10up) muss / sein.
Wenn der Boot-Vorgang wegen Einhängeproblemen von /var fehlschlägt, sollten Sie einen ähnlichen unzulässigen Einhängepunkt für das /var-Dataset suchen.
Beispiel:
# zfs inherit -r mountpoint rpool/ROOT/s10up # zfs set mountpoint=/ rpool/ROOT/s10up
Wählen Sie die BU aus, deren Einhängepunkte Sie gerade korrigiert haben, wenn im GRUB-Menü bzw. in der Eingabeaufforderung des OpenBoot-PROM die Option zum Booten einer spezifischen Boot-Umgebung angezeigt wird.
Gehen Sie wie folgt vor, um das System zu booten und eine Wiederherstellung durchzuführen, wenn ein root-Passwort verloren gegangen oder ein ähnliches Problem aufgetreten ist.
Je nach Schweregrad des Fehlers müssen Sie im Failsafe-Modus oder von einem alternativen Datenträger booten. Um ein verloren gegangenes oder unbekanntes root--Passwort wiederherzustellen, können Sie in der Regel im Failsafe-Modus booten.
Informationen zur Wiederherstellung eines Root-Pools oder Root-Pool-Schappschusses finden Sie unter Wiederherstellen von ZFS-Root-Pool oder Root-Pool-Schnappschüssen.
Auf einem SPARC-System geben Sie an der Eingabeaufforderung ok Folgendes ein:
ok boot -F failsafe
Auf einem x86-System wählen Sie im GRUB-Menü den Failsafe-Modus aus.
. . . ROOT/zfsBE was found on rpool. Do you wish to have it mounted read-write on /a? [y,n,?] y mounting rpool on /a Starting shell.
# cd /a/etc
# TERM=vt100 # export TERM
# vi shadow
# init 6
Wenn ein Problem das erfolgreiche Booten des Systems verhindert oder ein anderes schwerwiegendes Problem auftritt, müssen Sie von einem Netzwerkinstallationsserver oder von einer Oracle Solaris-Installations-DVD booten, den Root-Pool importieren, die ZFS-BU einhängen und anschließend versuchen, das Problem zu lösen.
SPARC – Wählen Sie eine der folgenden Boot-Methoden:
ok boot cdrom -s ok boot net -s
Wenn Sie die Option -s nicht verwenden, müssen Sie das Installationsprogramm beenden.
x86 – Wählen Sie die Option zum Booten über das Netzwerk oder booten Sie von einer lokalen DVD.
# zpool import -R /a rpool
# zfs mount rpool/ROOT/zfsBE
# cd /a
# init 6