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
So booten Sie im ZFS-Failsafe-Modus
So booten Sie ZFS von einem alternativen Datenträger
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
In den folgenden Abschnitten werden diese Vorgehensweisen beschrieben:
Das Ersetzen einer Festplatte im Root-Pool kann aus folgenden Gründen erforderlich sein:
Der Root-Pool ist zu klein und Sie möchten eine kleine durch eine größere Festplatte ersetzen.
Eine Root-Pool-Festplatte ist ausgefallen. Wenn Sie einen nicht redundanten Pool verwenden und nach einem Festplattenausfall das System nicht mehr booten können, müssen Sie von anderen Medien wie einer DVD oder dem Netzwerk booten, bevor Sie die Root-Pool-Festplatte ersetzen können.
In einer gespiegelten Root-Pool-Konfiguration können Sie versuchen, eine Festplatte zu ersetzen, ohne von einem alternativen Medium zu booten. Sie können eine ausgefallene Festplatte ersetzen, indem Sie den Befehl zpool replace verwenden. Wenn Sie über eine zusätzliche Festplatte verfügen, können Sie auch den Befehl zpool attach verwenden. In diesem Abschnitt finden Sie ein Beispiel für das Verfahren zum Einbinden einer zusätzlichen Festplatte und zum Entfernen einer Root-Pool-Festplatte.
Bei mancher Hardware müssen Sie eine Festplatte zunächst deaktivieren und dekonfigurieren, bevor Sie versuchen können, eine ausgefallene Festplatte mithilfe des Vorgangs zpool replace zu ersetzen. Beispiel:
# zpool offline rpool c1t0d0s0 # cfgadm -c unconfigure c1::dsk/c1t0d0 <Physically remove failed disk c1t0d0> <Physically insert replacement disk c1t0d0> # cfgadm -c configure c1::dsk/c1t0d0 # zpool replace rpool c1t0d0s0 # zpool online rpool c1t0d0s0 # zpool status rpool <Let disk resilver before installing the boot blocks> SPARC# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0 x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0
Bei mancher Hardware müssen Sie die Ersatzfestplatte nach dem Einsetzen weder aktivieren noch neu konfigurieren.
Sie müssen die Pfadnamen des Boot-Geräts der aktuellen und der neuen Festplatte angeben, damit Sie das Booten von der Ersatzfestplatte testen und manuell von der vorhandenen Festplatte booten können, falls das Booten von der Ersatzfestplatte fehlschlägt. In dem Beispiel des folgenden Verfahrens lautet der Pfadname für die aktuelle Root-Pool-Festplatte (c1t10d0s0):
/pci@8,700000/pci@3/scsi@5/sd@a,0
Der Pfadname für die Ersatzfestplatte zum Booten (c1t9d0s0) lautet:
/pci@8,700000/pci@3/scsi@5/sd@9,0
Informationen zum Umbenennen einer für den Root-Pool bestimmten Festplatte finden Sie auf:
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
Beispiel:
# zpool attach rpool c1t10d0s0 c1t9d0s0
Beispiel:
# zpool status rpool pool: rpool state: ONLINE status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scrub: resilver in progress, 25.47% done, 0h4m to go config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t10d0s0 ONLINE 0 0 0 c1t9d0s0 ONLINE 0 0 0 errors: No known data errors
Auf einem SPARC-System würden Sie eine Syntax wie die folgende verwenden:
ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
Beispiel:
# zpool detach rpool c1t10d0s0
SPARC – Verwenden Sie den Befehl eeprom oder setenv vom SPARC-Boot-PROM.
x86 – Konfigurieren Sie das System-BIOS erneut.
Sie können Root-Pool-Schnappschüsse zur Wiederherstellung erstellen. Der beste Weg zum Erstellen von Root-Pool-Schnappschüssen besteht darin, einen rekursiven Schnappschuss des Root-Pools zu erstellen.
Das folgende Verfahren erstellt einen rekursiven Root-Pool-Schnappschuss und speichert diesen sowohl als Datei als auch als Schnappschüsse in einem Pool auf einem entfernten System. Wenn ein Root-Pool ausfällt, kann das entfernte Dataset durch Verwendung von NFS eingehängt und die Schnappschussdatei im wiederhergestellten Pool gespeichert werden. Sie können Root-Pool-Schnappschüsse auch als die eigentlichen Schnappschüsse in einem Pool auf einem entfernten System speichern. Das Senden und Empfangen von Schnappschüssen über ein entferntes System ist etwas komplexer, da Sie ssh konfigurieren oder rsh verwenden müssen, während das zu reparierende System von dem Miniroot des Betriebssystems Oracle Solaris gebootet wird.
Weitere Informationen zum Speichern und Wiederherstellen von Root-Pool-Schnappschüssen auf entfernten Systemen finden Sie auf:
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
Das Validieren von Schnappschüssen, die auf entfernten Systemen als Dateien oder Schnappschüsse gespeichert sind, ist ein wichtiger Schritt bei der Wiederherstellung von Root-Pools. Bei beiden Methoden sollten Schnappschüsse regelmäßig wiederhergestellt werden, beispielsweise, wenn sich die Konfiguration des Pools verändert oder das Solaris-Betriebssystem aktualisiert wird.
Im folgenden Verfahren wird das System von der Boot-Umgebung zfsBE gebootet.
Beispiel:
remote# zfs create rpool/snaps
Beispiel:
remote# zfs set sharenfs='rw=local-system,root=local-system' rpool/snaps # share -@rpool/snaps /rpool/snaps sec=sys,rw=local-system,root=local-system ""
local# zfs snapshot -r rpool@snap1 local# zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 7.84G 59.1G 109K /rpool rpool@snap1 21K - 106K - rpool/ROOT 4.78G 59.1G 31K legacy rpool/ROOT@snap1 0 - 31K - rpool/ROOT/s10zfsBE 4.78G 59.1G 4.76G / rpool/ROOT/s10zfsBE@snap1 15.6M - 4.75G - rpool/dump 1.00G 59.1G 1.00G - rpool/dump@snap1 16K - 1.00G - rpool/export 99K 59.1G 32K /export rpool/export@snap1 18K - 32K - rpool/export/home 49K 59.1G 31K /export/home rpool/export/home@snap1 18K - 31K - rpool/swap 2.06G 61.2G 16K - rpool/swap@snap1 0 - 16K -
Um beispielsweise die Root-Pool-Schnappschüsse als Datei an einen entfernten Pool zu senden, verwenden Sie folgende Syntax:
local# zfs send -Rv rpool@snap1 > /net/remote-system/rpool/snaps/rpool.snap1 sending from @ to rpool@snap1 sending from @ to rpool/ROOT@snap1 sending from @ to rpool/ROOT/s10zfsBE@snap1 sending from @ to rpool/dump@snap1 sending from @ to rpool/export@snap1 sending from @ to rpool/export/home@snap1 sending from @ to rpool/swap@snap1
Wenn Sie die Root-Pool-Schnappschüsse als Schnappschüsse an einen entfernten Pool senden möchten, verwenden Sie folgende Syntax:
local# zfs send -Rv rpool@snap1 | ssh remote-system zfs receive -Fd -o canmount=off tank/snaps sending from @ to rpool@snap1 sending from @ to rpool/ROOT@snap1 sending from @ to rpool/ROOT/s10zfsBE@snap1 sending from @ to rpool/dump@snap1 sending from @ to rpool/export@snap1 sending from @ to rpool/export/home@snap1 sending from @ to rpool/swap@snap1
In diesem Verfahren wird von folgenden Voraussetzungen ausgegangen:
Der ZFS-Root-Pool kann nicht wiederhergestellt werden.
Die ZFS-Root-Pool-Schnappschüsse wurden auf einem entfernten System gespeichert und über NFS freigegeben.
Alle Schritte werden auf dem lokalen System ausgeführt.
SPARC – Wählen Sie eine der folgenden Boot-Methoden:
ok boot net -s ok boot cdrom -s
Wenn Sie die Option -s nicht verwenden, müssen Sie das Installationsprogramm beenden.
x86 – Wählen Sie die Option zum Booten von der DVD oder über das Netzwerk. Beenden Sie das Installationsprogramm.
Beispiel:
# mount -F nfs remote-system:/rpool/snaps /mnt
Wenn Ihre Netzwerkservices nicht konfiguriert sind, müssen Sie eventuell die IP-Adresse des remote-system angeben.
Weitere Informationen zum Umbenennen der Festplatte finden Sie auf der folgenden Site:
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
Beispiel:
# zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /etc/zfs/zpool.cache rpool c1t1d0s0
Dieser Schritt kann etwas Zeit beanspruchen. Beispiel:
# cat /mnt/rpool.0804 | zfs receive -Fdu rpool
Durch Verwenden der Option -u wird das wiederhergestellte Archiv nach dem zfs receive-Vorgang nicht eingehängt.
Um die tatsächlich in einem Pool auf einem entfernten System gespeicherten Root-Pool-Schnappschüsse wiederherzustellen, verwenden Sie folgende Syntax:
# rsh remote-system zfs send -Rb tank/snaps/rpool@snap1 | zfs receive -F rpool
Beispiel:
# zfs list
Beispiel:
# zpool set bootfs=rpool/ROOT/zfsBE rpool
SPARC:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
x86:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
# init 6
Für dieses Verfahren wird vorausgesetzt, dass Root-Pool-Schnappschüsse verfügbar sind. In diesem Beispiel befinden sie sich auf dem lokalen System.
# zfs snapshot -r rpool@snap1 # zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 7.84G 59.1G 109K /rpool rpool@snap1 21K - 106K - rpool/ROOT 4.78G 59.1G 31K legacy rpool/ROOT@snap1 0 - 31K - rpool/ROOT/s10zfsBE 4.78G 59.1G 4.76G / rpool/ROOT/s10zfsBE@snap1 15.6M - 4.75G - rpool/dump 1.00G 59.1G 1.00G - rpool/dump@snap1 16K - 1.00G - rpool/export 99K 59.1G 32K /export rpool/export@snap1 18K - 32K - rpool/export/home 49K 59.1G 31K /export/home rpool/export/home@snap1 18K - 31K - rpool/swap 2.06G 61.2G 16K - rpool/swap@snap1 0 - 16K -
ok boot -F failsafe 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.
# zfs rollback rpool@snap1 # zfs rollback rpool/ROOT@snap1 # zfs rollback rpool/ROOT/s10zfsBE@snap1
# init 6