JavaScript is required to for searching.
Navigationslinks �berspringen
Druckansicht beenden
Oracle Solaris ZFS-Administrationshandbuch
search filter icon
search icon

Dokument-Informationen

Vorwort

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

Komponenten eines ZFS-Speicher-Pools

Verwenden von Datenträgern in einem ZFS-Speicher-Pool

Verwenden von Bereichen in einem ZFS-Speicher-Pool

Verwenden von Dateien in einem ZFS-Speicher-Pool

Replikationsfunktionen eines ZFS-Speicher-Pools

Speicher-Pools mit Datenspiegelung

Speicher-Pools mit RAID-Z-Konfiguration

ZFS-Hybrid-Speicher-Pool

Selbstheilende Daten in einer redundanten Konfiguration

Dynamisches Striping in einem Speicher-Pool

Erstellen und Entfernen von ZFS-Speicher-Pools

Erstellen eines ZFS-Speicher-Pools

Erstellen eines einfachen Speicher-Pools

Erstellen eines Speicher-Pools mit Datenspiegelung

Erstellen eines ZFS-Root-Pools

Erstellen eines RAID-Z-Speicher-Pools

Erstellen eines ZFS-Speicher-Pools mit Protokolliergeräten

Erstellen eines ZFS-Speicher-Pools mit Cache-Geräten

Anzeigen von Informationen zu virtuellen Geräten in Storage-Pools

Behandlung von Fehlern beim Erstellen von ZFS-Speicher-Pools

Erkennen belegter Geräte

Inkongruente Replikationsmethoden

Ausführen eines Testlaufs für die Erstellung eines Speicher-Pools

Standard-Einhängepunkt für Speicher-Pools

Löschen von ZFS-Speicher-Pools

Löschen eines Pools mit fehlerhaften Geräten

Verwalten von Datenspeichergeräten in ZFS-Speicher-Pools

Hinzufügen von Datenspeichergeräten zu einem Speicher-Pool

Verbinden und Trennen von Geräten in einem Speicher-Pool

Erstellen eines neuen Pools durch Teilen eines ZFS-Speicher-Pools mit Datenspiegelung

In- und Außerbetriebnehmen von Geräten in einem Speicher-Pool

Außerbetriebnehmen eines Geräts

Inbetriebnehmen eines Gerätes

Löschen von Gerätefehlern im Speicher-Pool

Austauschen von Geräten in einem Speicher-Pool

Zuweisen von Hot-Spares im Speicher-Pool

Aktivieren und Deaktivieren von Hot-Spares im Speicher-Pool

Eigenschaften von ZFS-Speicher-Pools

Abfragen des Status von ZFS-Speicher-Pools

Anzeigen von Informationen zu ZFS-Speicher-Pools

Anzeigen von Informationen zu allen Speicher-Pools oder einem bestimmten Pool

Anzeigen spezifischer Speicher-Pool-Statistikinformationen

Verwenden von Ausgaben von ZFS-Speicher-Pools für Skripten

Anzeige des Befehlsprotokolls von ZFS-Speicher-Pools

Anzeigen von E/A-Statistiken für ZFS-Speicher-Pools

Anzeigen globaler Pool-E/A-Statistikinformationen

Anzeigen von E/A-Statistikinformationen zu virtuellen Geräten

Ermitteln des Funktionsstatus von ZFS-Speicher-Pools

Grundlegender Funktionsstatus eines Speicher-Pools

Ausführliche Informationen zum Funktionsstatus

Sammeln von Informationen des ZFS-Speicher-Pools

Migrieren von ZFS-Speicher-Pools

Vorbereiten der Migration eines ZFS-Speicher-Pools

Exportieren eines ZFS-Speicher-Pools

Ermitteln verfügbarer Speicher-Pools für den Import

Importieren von ZFS-Speicher-Pools aus anderen Verzeichnissen

Importieren von ZFS-Speicher-Pools

Importieren eines Pools mit fehlendem Protokolliergerät

Importieren eines Pools im schreibgeschützten Modus

Importieren eines Pools nach einem spezifischen Gerätepfad

Wiederherstellen gelöschter ZFS-Speicher-Pools

Aktualisieren von ZFS-Speicher-Pools

5.  Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems

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

A.  Oracle Solaris ZFS-Versionsbeschreibungen

Index

Migrieren von ZFS-Speicher-Pools

Gelegentlich kann es vorkommen, dass Speicher-Pools zwischen Systemen transferiert werden müssen. Dafür müssen Sie die Datenspeichergeräte aus dem ursprünglichen System herausnehmen und an das neue System anschließen. Dies kann durch Neuverkabelung der betreffenden Geräte bzw. die Verwendung von Geräten mit mehreren Anschlüssen, z. B. Geräte in einem Speichernetzwerk (SAN), bewerkstelligt werden. Mit ZFS können Sie einen Pool aus einem System exportieren und in das Zielsystem importieren. Dies ist auch möglich, wenn beide Rechnerarchitekturen unterschiedliche Bitbreiten besitzen. Informationen zum Replizieren bzw. Migrieren von Dateisystemen zwischen verschiedenen Speicher-Pools, die auf unterschiedlichen Rechnersystemen installiert sind, finden Sie unter Senden und Empfangen von ZFS-Daten.

Vorbereiten der Migration eines ZFS-Speicher-Pools

Speicher-Pools sollten explizit exportiert werden, um anzuzeigen, dass sie zur Migration bereit sind. Bei diesem Vorgang werden ungeschriebene Daten auf die Festplatte ausgespeichert und Daten auf die Festplatte geschrieben, wodurch angezeigt wird, dass der Export abgeschlossen ist. Anschließend werden alle Informationen, die den Pool betreffen, aus dem System entfernt.

Wenn Sie den Pool nicht explizit exportieren, sondern die Datenträger manuell entfernen, kann der resultierende Pool trotzdem noch in ein anderes System importiert werden. Es kann jedoch sein, dass die in den allerletzten Sekunden ausgeführten Datentransaktionen verloren gehen und der betreffende Pool auf dem ursprünglichen System als fehlerhaft angezeigt wird, da die Datenspeichergeräte nicht mehr vorhanden sind. Standardmäßig kann ein Pool, der nicht explizit exportiert wurde, nicht vom Zielsystem importiert werden. Dies ist erforderlich, um zu verhindern, dass versehentlich ein aktiver Pool importiert wird, der Speicherplatz enthält, der über das Netzwerk zugänglich ist und noch von einem anderem System belegt wird.

Exportieren eines ZFS-Speicher-Pools

Speicher-Pools können mit dem Befehl zpool export exportiert werden. Beispiel:

# zpool export tank

Vor dem Fortfahren versucht der Befehl alle innerhalb des Pools eingehängten Dateisysteme auszuhängen. Falls das Aushängen von Dateisystemen fehlschlägt, können Sie mithilfe der Option -f ein Aushängen erzwingen. Beispiel:

# zpool export tank
cannot unmount '/export/home/eschrock': Device busy
# zpool export -f tank

Nach der Ausführung dieses Befehls ist der Pool tank im System nicht mehr sichtbar.

Falls Datenspeichergeräte zum Zeitpunkt des Exports nicht verfügbar sind, können die betreffenden Geräte nicht als "sauber" exportiert eingestuft werden. Wenn ein solches Datenspeichergerät später ohne die funktionierenden Datenspeichergeräte mit einem System verbunden wird, erscheint das betreffende Gerät als potenziell aktiv.

Wenn im Pool ZFS-Volumes vorhanden sind, kann der Pool auch nicht mithilfe der Option -f exportiert werden. Wenn Sie einen Pool mit einem ZFS-Volume exportieren möchten, müssen Sie zunächst sicherstellen, dass das Volume nicht von aktiven Ressourcen belegt wird.

Weitere Informationen zu ZFS-Volumes finden Sie unter ZFS-Volumes.

Ermitteln verfügbarer Speicher-Pools für den Import

Nachdem ein Pool (durch expliziten Export oder erzwungenes Entfernen von Datenspeichergeräten) aus einem System entfernt wurde, müssen die betreffenden Geräte mit dem Zielsystem verbunden werden. ZFS kann Situationen bewältigen, in denen nur einige der Geräte verfügbar sind. Der Erfolg der Pool-Migration hängt jedoch von der Funktionstüchtigkeit der Geräte ab. Die Geräte müssen jedoch nicht notwendigerweise unter dem gleichen Gerätenamen verbunden werden. ZFS erkennt verschobene bzw. umbenannte Geräte und passt die Konfiguration entsprechend an. Führen Sie zum Ermitteln importierbarer Pools den Befehl zpool export aus. Beispiel:

# zpool import
 pool: tank
    id: 11809215114195894163
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        tank        ONLINE
          mirror-0  ONLINE
            c1t0d0  ONLINE
            c1t1d0  ONLINE

In diesem Beispiel kann der Pool tank in ein Zielsystem importiert werden. Jeder Pool wird durch einen Namen und einen eindeutigen numerischen Bezeichner identifiziert. Wenn mehrere Pools mit dem gleichen Namen für den Import verfügbar sind, können sie mithilfe des numerischen Bezeichners unterschieden werden.

Ebenso wie die Ausgabe des Befehls zpool status verweist die Ausgabe des Befehls zpool import auf einen Artikel der Sun Knowledge Base, der die aktuellsten Informationen und Reparaturhinweise zu Problemen enthält, die das Importieren von Pools verhindern. In diesem Fall kann das Importieren eines Pools erzwungen werden. Das Importieren eines Pools, der gegenwärtig über Netzwerkzugriff von einem anderen System verwendet wird, kann Daten beschädigen und auf beiden Systemen zu Abstürzen führen, wenn diese Systeme Daten auf das gleiche Datenspeichergerät schreiben. Wenn einige Geräte eines Pools nicht verfügbar sind, zum Bereitstellen eines funktionierenden Pools jedoch genügend Redundanzdaten vorhanden sind, geht der Pool in den Status DEGRADED. Beispiel:

# zpool import
  pool: tank
    id: 11809215114195894163
 state: DEGRADED
status: One or more devices are missing from the system.
action: The pool can be imported despite missing or damaged devices.  The
        fault tolerance of the pool may be compromised if imported.
   see: http://www.sun.com/msg/ZFS-8000-2Q
config:

        NAME        STATE     READ WRITE CKSUM
        tank        DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            c1t0d0  UNAVAIL      0     0     0  cannot open
            c1t3d0  ONLINE       0     0     0

In diesem Beispiel ist der erste Datenträger beschädigt oder nicht vorhanden, der Pool kann aber trotzdem importiert werden, da die gespiegelten Daten noch verfügbar sind. Wenn zuviele fehlerhafte Datenspeichergeräte vorhanden sind bzw. Geräte fehlen, kann der Pool nicht importiert werden. Beispiel:

# zpool import
  pool: dozer
    id: 9784486589352144634
 state: FAULTED
action: The pool cannot be imported. Attach the missing
        devices and try again.
   see: http://www.sun.com/msg/ZFS-8000-6X
config:
        raidz1-0       FAULTED
          c1t0d0       ONLINE
          c1t1d0       FAULTED
          c1t2d0       ONLINE
          c1t3d0       FAULTED

In diesem Beispiel fehlen in einem virtuellen RAID-Z-Gerät zwei Datenträger, was bedeutet, dass zum Rekonstruieren des Pools nicht genügend Redundanz verfügbar ist. In einigen Fällen kann es auch sein, dass zum Ermitteln der vollständigen Konfiguration nicht genügend Datenspeichergeräte vorhanden sind. In einem solchen Fall kann ZFS nicht bestimmen, welche anderen Geräte zu diesem Pool gehört haben, obwohl ZFS diesbezüglich so viele Informationen wie möglich meldet. Beispiel:

# zpool import
pool: dozer
    id: 9784486589352144634
 state: FAULTED
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
        devices and try again.
   see: http://www.sun.com/msg/ZFS-8000-6X
config:
        dozer          FAULTED   missing device
          raidz1-0     ONLINE
            c1t0d0     ONLINE
            c1t1d0     ONLINE
            c1t2d0     ONLINE
            c1t3d0     ONLINE
Additional devices are known to be part of this pool, though their
exact configuration cannot be determined.

Importieren von ZFS-Speicher-Pools aus anderen Verzeichnissen

Standardmäßig durchsucht der Befehl zpool import nur im Verzeichnis /dev/dsk enthaltene Datenspeichergeräte. Wenn Geräte in einem anderen Verzeichnis vorhanden sind oder Sie Pools verwenden, die durch Dateien gesichert sind, müssen Sie mithilfe der Option -d andere Verzeichnisse durchsuchen. Beispiel:

# zpool create dozer mirror /file/a /file/b
# zpool export dozer
# zpool import -d /file
  pool: dozer
    id: 7318163511366751416
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        dozer        ONLINE
          mirror-0   ONLINE
            /file/a  ONLINE
            /file/b  ONLINE
# zpool import -d /file dozer

Sie können die Option - d mehrmals angeben, wenn Datenspeichergeräte in mehreren Verzeichnissen vorhanden sind.

Importieren von ZFS-Speicher-Pools

Wenn ein Pool für den Import ermittelt wurde, können Sie ihn durch Angabe seines Namens oder numerischen Bezeichners als Argument für den Befehl zpool import importieren. Beispiel:

# zpool import tank

Wenn mehrere Pools den gleichen Namen besitzen, müssen Sie mithilfe des numerischen Bezeichners angeben, welcher Pool importiert werden soll. Beispiel:

# zpool import
  pool: dozer
    id: 2704475622193776801
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        dozer       ONLINE
          c1t9d0    ONLINE

  pool: dozer
    id: 6223921996155991199
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        dozer       ONLINE
          c1t8d0    ONLINE
# zpool import dozer
cannot import 'dozer': more than one matching pool
import by numeric ID instead
# zpool import 6223921996155991199

Wenn ein Pool-Name mit einem bereits vorhandenen Pool-Namen in Konflikt steht, können Sie den Pool unter einem anderen Namen importieren. Beispiel:

# zpool import dozer zeepool

Dieser Befehl importiert den exportierten Pool dozer unter dem neuen Namen zeepool. Der Name des neuen Pools ist dauerhaft.

Wenn ein Pool nicht ordnungsgemäß exportiert wurde, benötigt ZFS das -f-Flag, um zu verhindern, dass versehentlich ein Pool importiert wird, der noch von einem anderen System benutzt wird. Beispiel:

# zpool import dozer
cannot import 'dozer': pool may be in use on another system
use '-f' to import anyway
# zpool import -f dozer

Hinweis - Versuchen Sie nicht, einen in einem System aktiven Pool in ein anderes System zu importieren. ZFS ist kein natives Cluster-, verteiltes oder paralleles Dateisystem und bietet keinen gleichzeitigen Zugriff von mehreren verschiedenen Hosts aus.


Pools können mithilfe der Option -R in ein anderes Root-Verzeichnis importiert werden. Weitere Informationen zu Speicher-Pools mit alternativem Root-Verzeichnis finden Sie unter Verwenden von ZFS-Speicher-Pools mit alternativem Root-Verzeichnis.

Importieren eines Pools mit fehlendem Protokolliergerät

Standardmäßig kann ein Pool mit einem fehlenden Protokolliergerät nicht importiert werden. Mit dem Befehl zpool import -m können Sie den Import eines Pools mit einem fehlenden Protokolliergerät erzwingen. Beispiel:

# zpool import dozer
The devices below are missing, use '-m' to import the pool anyway:
            c3t3d0 [log]

cannot import 'dozer': one or more devices is currently unavailable

Importieren Sie den Pool mit dem fehlenden Protokolliergerät. Beispiel:

# zpool import -m dozer
# zpool status dozer
  pool: dozer
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scan: scrub repaired 0 in 0h0m with 0 errors on Fri Oct 15 16:43:03 2010
config:

        NAME                    STATE     READ WRITE CKSUM
        dozer                   DEGRADED     0     0     0
          mirror-0              ONLINE       0     0     0
            c3t1d0              ONLINE       0     0     0
            c3t2d0              ONLINE       0     0     0
        logs
          14685044587769991702  UNAVAIL      0     0     0  was c3t3d0

Führen Sie nach dem Anschließen des fehlenden Protokolliergeräts den Befehl zpool clear aus, um die Pool-Fehler zu löschen.

Eine ähnliche Wiederherstellung kann mit fehlenden gespiegelten Protokolliergeräten versucht werden. Beispiel:

# zpool import dozer
The devices below are missing, use '-m' to import the pool anyway:
            mirror-1 [log]
              c3t3d0
              c3t4d0

cannot import 'dozer': one or more devices is currently unavailable
# zpool import -m dozer
# zpool status dozer
  pool: dozer
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scan: scrub repaired 0 in 0h0m with 0 errors on Fri Oct 15 16:51:39 2010
config:

        NAME                      STATE     READ WRITE CKSUM
        dozer                     DEGRADED     0     0     0
          mirror-0                ONLINE       0     0     0
            c3t1d0                ONLINE       0     0     0
            c3t2d0                ONLINE       0     0     0
        logs
          mirror-1                UNAVAIL      0     0     0  insufficient replicas
            13514061426445294202  UNAVAIL      0     0     0  was c3t3d0
            16839344638582008929  UNAVAIL      0     0     0  was c3t4d0

Führen Sie nach dem Anschließen der fehlenden Protokolliergeräte den Befehl zpool clear aus, um die Pool-Fehler zu löschen.

Importieren eines Pools im schreibgeschützten Modus

Sie können einen Pool im schreibgeschützten Modus importieren. Ist ein Pool dermaßen beschädigt, dass nicht auf ihn zugegriffen werden kann, können Sie mithilfe dieser Funktion die Daten des Pools eventuell wiederherstellen. Beispiel:

# zpool import -o readonly=on tank
# zpool scrub tank
cannot scrub tank: pool is read-only

Beim Importieren eines Pools im schreibgeschützten Modus gelten die folgenden Bedingungen:

Ein schreibgeschützter Pool kann durch Exportieren und Importieren in den Lese- und Schreibmodus zurückgesetzt werden. Beispiel:

# zpool export tank
# zpool import tank
# zpool scrub tank

Importieren eines Pools nach einem spezifischen Gerätepfad

Der folgende Befehl importiert den Pool dpool, indem er eines der spezifischen Geräte (hier /dev/dsk/c2t3d0) identifiziert.

# zpool import -d /dev/dsk/c2t3d0s0 dpool
# zpool status dpool
  pool: dpool
 state: ONLINE
 scan: resilvered 952K in 0h0m with 0 errors on Thu Mar 10 10:28:46 2011
config:

        NAME        STATE     READ WRITE CKSUM
        dpool       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c2t3d0  ONLINE       0     0     0
            c2t1d0  ONLINE       0     0     0

Eine Einschränkung besteht darin, dass der Befehl den Bereichsbezeichner des spezifischen Geräts einschließen muss, obwohl dieser Pool ganze Festplatten enthält.

Wiederherstellen gelöschter ZFS-Speicher-Pools

Gelöschte Speicher-Pools können mit dem Befehl zpool import -D wiederhergestellt werden. Beispiel:

# zpool destroy tank
# zpool import -D
  pool: tank
    id: 5154272182900538157
 state: ONLINE (DESTROYED)
action: The pool can be imported using its name or numeric identifier.
config:

        tank        ONLINE
          mirror-0  ONLINE
            c1t0d0  ONLINE
            c1t1d0  ONLINE

In dieser Ausgabe des Befehls zpool import kann der tank-Pool aufgrund der folgenden Statusinformationen als gelöscht erkannt werden:

state: ONLINE (DESTROYED)

Führen Sie zum Wiederherstellen des gelöschten Pools den Befehl zpool import - D erneut aus. Beispiel:

# zpool import -D tank
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE
          mirror-0  ONLINE
            c1t0d0  ONLINE
            c1t1d0  ONLINE

errors: No known data errors

Wenn eines der Datenspeichergeräte im gelöschten Pool fehlerhaft oder nicht verfügbar ist, können Sie den gelöschten Pool unter Umständen mit der Option -f trotzdem wiederherstellen. Importieren Sie in einer solchen Situation den im eingeschränkten Zustand befindlichen Pool und versuchen Sie dann, den Geräteausfall zu beheben. Beispiel:

# zpool destroy dozer
# zpool import -D
pool: dozer
    id: 13643595538644303788
 state: DEGRADED (DESTROYED)
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
config:

        NAME         STATE     READ WRITE CKSUM
        dozer        DEGRADED     0     0     0
          raidz2-0   DEGRADED     0     0     0
            c2t8d0   ONLINE       0     0     0
            c2t9d0   ONLINE       0     0     0
            c2t10d0  ONLINE       0     0     0
            c2t11d0  UNAVAIL      0    35     1  cannot open
            c2t12d0  ONLINE       0     0     0

errors: No known data errors
# zpool import -Df dozer
# zpool status -x
  pool: dozer
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scrub: scrub completed after 0h0m with 0 errors on Thu Jan 21 15:38:48 2010
config:

        NAME         STATE     READ WRITE CKSUM
        dozer        DEGRADED     0     0     0
          raidz2-0   DEGRADED     0     0     0
            c2t8d0   ONLINE       0     0     0
            c2t9d0   ONLINE       0     0     0
            c2t10d0  ONLINE       0     0     0
            c2t11d0  UNAVAIL      0    37     0  cannot open
            c2t12d0  ONLINE       0     0     0

errors: No known data errors
# zpool online dozer c2t11d0
Bringing device c2t11d0 online
# zpool status -x
all pools are healthy