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
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
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
Löschen von Gerätefehlern im Speicher-Pool
Austauschen von Geräten in einem 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
Die meisten grundlegenden Informationen zu Datenspeichergeräten sind in Komponenten eines ZFS-Speicher-Pools enthalten. Nach dem Erstellen eines Pools können Sie zum Verwalten der zum Pool gehörenden Datenspeichergeräte verschiedene Aufgaben ausführen.
Erstellen eines neuen Pools durch Teilen eines ZFS-Speicher-Pools mit Datenspiegelung
In- und Außerbetriebnehmen von Geräten in einem Speicher-Pool
Durch Hinzufügen eines neuen Gerätes der obersten Hierarchieebene können Sie einen Pool dynamisch um Festplattenkapazität erweitern. Die zusätzliche Festplattenkapazität steht allen im Pool enthaltenen Datasets sofort zur Verfügung. Mit dem Befehl zpool add fügen Sie einem Pool ein neues virtuelles Gerät hinzu. Beispiel:
# zpool add zeepool mirror c2t1d0 c2t2d0
Das Format zum Angeben dieser virtuellen Geräte entspricht dem Format für den Befehl zpool create. Es wird geprüft, ob die betreffenden Datenspeichergeräte belegt sind, und der Befehl kann die Redundanzebene ohne die Option - f nicht ändern. Der Befehl unterstützt auch die Option -n zum Durchführen eines Testlaufs. Beispiel:
# zpool add -n zeepool mirror c3t1d0 c3t2d0 would update 'zeepool' to the following configuration: zeepool mirror c1t0d0 c1t1d0 mirror c2t1d0 c2t2d0 mirror c3t1d0 c3t2d0
Mit dieser Befehlsyntax werden die gespiegelten Geräte c3t1d0 und c3t2d0 zur vorhandenen Konfiguration des Poolszeepool hinzugefügt.
Weitere Informationen zur Überprüfung von virtuellen Geräten finden Sie unter Erkennen belegter Geräte.
Beispiel 4-1 Hinzufügen von Festplatten in eine ZFS-Konfiguration mit Datenspiegelung
Im folgenden Beispiel wird eine ZFS-Konfiguration mit Datenspiegelung auf einem Oracle Sun Fire x4500-System um eine weitere Spiegelplatte ergänzt.
# zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors # zpool add tank mirror c0t3d0 c1t3d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-2 ONLINE 0 0 0 c0t3d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors
Beispiel 4-2 Hinzufügen von Datenträgern zu einer RAID-Z-Konfiguration
Datenträger können in ähnlicher Weise auch zu einer RAID-Z-Konfiguration hinzugefügt werden. Das folgende Beispiel zeigt, wie ein Speicher-Pool mit einem aus drei Festplatten bestehenden RAID-Z-Gerät in ein Speicher-Pool mit zwei aus je drei Datenträgern bestehenden RAID-Z-Geräten umgewandelt werden kann.
# zpool status rzpool pool: rzpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rzpool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 errors: No known data errors # zpool add rzpool raidz c2t2d0 c2t3d0 c2t4d0 # zpool status rzpool pool: rzpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rzpool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 raidz1-1 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t4d0 ONLINE 0 0 0 errors: No known data errors
Beispiel 4-3 Hinzufügen und Entfernen eines gespiegelten Protokolliergeräts
Das folgende Beispiel zeigt, wie einem Speicher-Pool mit Datenspiegelung ein gespiegeltes Protokolliergerät hinzugefügt werden kann.Weitere Informationen zum Einsatz von Protokolliergeräten in Speicher-Pools finden Sie unter Einrichten separater ZFS-Protokolliergeräte.
# zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 errors: No known data errors # zpool add newpool log mirror c0t6d0 c0t7d0 # zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 logs mirror-1 ONLINE 0 0 0 c0t6d0 ONLINE 0 0 0 c0t7d0 ONLINE 0 0 0 errors: No known data errors
Sie können zur Datenspiegelung an ein vorhandenes Protokolliergerät ein weiteres Protokolliergerät anschließen. Dies entspricht dem Verbinden eines Speichergeräts in einem Speicher-Pool ohne Datenspiegelung.
Mit dem Befehl zpool remove können Sie Protokolliergeräte entfernen. Das gespiegelte Protokolliergerät, um das es im vorherigen Beispiel geht, kann durch Angabe des Arguments mirror-1 entfernt werden. Beispiel:
# zpool remove newpool mirror-1 # zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 errors: No known data errors
Wenn Ihre Pool-Konfiguration nur ein Protokolliergerät enthält, entfernen Sie das Gerät, indem Sie dessen Namen angeben. Beispiel:
# zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c0t8d0 ONLINE 0 0 0 c0t9d0 ONLINE 0 0 0 logs c0t10d0 ONLINE 0 0 0 errors: No known data errors # zpool remove pool c0t10d0
Beispiel 4-4 Hinzufügen und Entfernen von Cache-Geräten
Sie können Cache-Geräte zu Ihrem ZFS-Speicher-Pool hinzufügen oder Cache-Geräte aus Ihrem ZFS-Speicher-Pool entfernen, wenn diese nicht mehr benötigt werden.
Verwenden Sie den Befehl zpool add zum Hinzufügen von Cache-Geräten. Beispiele:
# zpool add tank cache c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 cache c2t5d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 errors: No known data errors
Cache-Geräte können nicht gespiegelt werden oder Teil einer RAID-Z-Konfiguration sein.
Verwenden Sie den Befehl zpool remove zum Entfernen von Cache-Geräten. Beispiel:
# zpool remove tank c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 errors: No known data errors
Der Befehl zpool remove unterstützt derzeit nur das Entfernen von Hot-Spares, Protokolliergeräten und Cache-Geräten. Geräte, die zur primären gespiegelten Pool-Konfiguration gehören, können mit dem Befehl zpool detach entfernt werden. Geräte ohne Redundanz und RAID-Z-Geräte können nicht aus einem Pool entfernt werden.
Weitere Informationen zur Verwendung von Cache-Geräten in einem ZFS-Speicher-Pool finden Sie unter Erstellen eines ZFS-Speicher-Pools mit Cache-Geräten.
Zusätzlich zum Befehl zpool add können Sie mit dem Befehl zpool attach zu einem Gerät mit oder ohne Datenspiegelung ein neues Datenspeichergerät hinzufügen.
Wenn Sie eine Festplatte einbinden möchten, um einen gespiegelten Root-Pool zu erstellen, gehen Sie wie unter Erstellen eines gespiegelten ZFS-Root-Pools (nach der Installation) beschrieben vor.
Wenn Sie eine Festplatte in einem ZFS-Root-Pool ersetzen möchten, gehen Sie wie unter So ersetzen Sie eine Festplatte im ZFS-Root-Pool beschrieben vor.
Beispiel 4-5 Umwandlung eines Speicher-Pools mit zweifacher Datenspiegelung in einen Speicher-Pool mit dreifacher Datenspiegelung
In diesem Beispiel ist zeepool eine vorhandene zweifache Datenspiegelungskonfiguration, die durch Verbinden des Geräts c2t1d0 mit dem vorhandenen Gerät c1t1d0 in eine dreifache Datenspiegelungskonfiguration umgewandelt wird.
# zpool status zeepool pool: zeepool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach zeepool c1t1d0 c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 12:59:20 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 592K resilvered errors: No known data errors
Wenn das betreffende Gerät zu einer dreifachen Datenspiegelungskonfiguration gehört, wird durch Verbinden des neuen Geräts eine vierfache Datenspiegelungskonfiguration erstellt usw. In jedem Fall wird sofort das Resilvering durchgeführt (d. h., die gespiegelten Daten werden auf das neue Gerät in der Datenspiegelungskonfiguration übertragen).
Beispiel 4-6 Umwandeln eines ZFS-Speicher-Pools ohne Redundanz in einen ZFS-Speicher-Pool mit Datenspiegelung
Außerdem können Sie mithilfe des Befehls zpool attach einen Speicher-Pool ohne Redundanz in einen Pool mit Redundanz umwandeln. Beispiel:
# zpool create tank c0t1d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach tank c0t1d0 c1t1d0 # zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 14:28:23 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 73.5K resilvered errors: No known data errors
Mit dem Befehl zpool detach kann ein Datenspeichergerät aus einem Pool mit Datenspiegelungskonfiguration abgetrennt werden. Beispiel:
# zpool detach zeepool c2t1d0
Dieser Vorgang ist allerdings nicht ausführbar, wenn keine anderen Replikationen der betreffenden Daten vorhanden sind. Beispiel:
# zpool detach newpool c1t2d0 cannot detach c1t2d0: only applicable to mirror and replacing vdevs
Eine ZFS-Speicher-Pool mit Datenspiegelung kann mithilfe des Befehls zpool split schnell als Sicherungs-Pool geklont werden.
Diese Funktion kann derzeit nicht zum Teilen eines Root-Pools mit Datenspiegelung verwendet werden.
Mithilfe des Befehls zpool split können Sie eine oder mehrere Festplatten von einem ZFS-Speicher-Pool mit Datenspiegelung trennen, um einen neuen Pool mit der/den getrennten Festplatte(n) zu erstellen. Der Inhalt des neuen Pools ist mit dem des ursprünglichen ZFS-Speicher-Pools mit Datenspiegelung identisch.
Durch den Befehl zpool split wird die letzte Festplatte eines Pools mit Datenspiegelung standardmäßig getrennt und für den neuen Pool verwendet. Nach der Teilung importieren Sie den neuen Pool. Beispiel:
# zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors # zpool split tank tank2 # zpool import tank2 # zpool status tank tank2 pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 errors: No known data errors pool: tank2 state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank2 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors
Sie können feststellen, welche Festplatte für den neuen Pool verwendet werden soll, indem Sie sie mithilfe des Befehls zpool split angeben. Beispiel:
# zpool split tank tank2 c1t0d0
Vor der tatsächlichen Teilung werden die im Speicher enthaltenen Daten auf die gespiegelten Festplatten ausgespeichert. Nach dem Ausspeichern wird die Festplatte vom Pool getrennt und erhält eine neue Pool-GUID. Die neue Pool-GUID wird generiert, damit der Pool auf dasselbe System importiert werden kann, auf dem er geteilt wurde.
Wenn der Pool, der geteilt werden soll, keine standardmäßigen Dataset-Einhängepunkte hat und der neue Pool auf demselben System erstellt wird, müssen Sie die Option zpool split -R verwenden, um ein alternatives Root-Verzeichnis für den neuen Pool zu bestimmen, damit es nicht zu Konflikten zwischen vorhandenen Einhängepunkten kommt. Beispiel:
# zpool split -R /tank2 tank tank2
Wenn Sie nicht die Option zpool split -R verwenden und feststellen, dass Einhängepunkte in Konflikt geraten, sobald Sie versuchen, den neuen Pool zu importieren, importieren Sie den neuen Pool mithilfe der Option -R. Wenn der neue Pool auf einem anderen System erstellt wird, ist die Angabe eines alternativen Root-Verzeichnisses nicht nötig, es sei denn, es treten Einhängepunkt-Konflikte auf.
Berücksichtigen Sie Folgendes, bevor Sie die Funktion zpool split verwenden:
Diese Funktion steht für RAIDZ-Konfigurationen oder nicht redundante Pools mit mehreren Festplatten nicht zur Verfügung.
Datenverarbeitungs- und Anwendungsprozesse sollten unterbrochen werden, bevor die Funktion zpool split verwendet wird.
Es ist wichtig, dass der Ausspeicherungsbefehl von den Festplatten akzeptiert und nicht ignoriert wird.
Ein Pool kann nicht geteilt werden, wenn das Resilvering im Gange ist.
Ein Pool mit Datenspiegelung kann optimal geteilt werden, wenn dieser zwei bis drei Festplatten enthält und die letzte Festplatte des Pools für den neuen Pool verwendet wird. Anschließend können Sie den Befehl zpool attach verwenden, um den ursprünglichen Speicher-Pool mit Datenspiegelung wiederherzustellen oder den neuen Pool in einem Speicher-Pool mit Datenspiegelung umzuwandeln. Derzeit besteht keine Möglichkeit, mithilfe dieser Funktion einen neuen Pool mit Datenspiegelung aus einem vorhandenen Pool mit Datenspiegelung zu erstellen.
Wenn der vorhandene Pool ein Pool mit dreifacher Datenspiegelung ist, enthält der neue Pool nach der Teilung eine Festplatte. Wenn der vorhandene Pool ein Pool mit zweifacher Datenspiegelung ist und zwei Festplatten enthält, entstehen durch die Teilung zwei nicht redundante Pools mit zwei Festplatten. Sie müssen zwei weitere Festplatten einbinden, um die nicht redundanten Pools in Pools mit Datenspiegelung umzuwandeln.
Ein gute Methode zur Beibehaltung der Daten während einer Teilung ist es, einen Speicher-Pool mit Datenspiegelung, der drei Festplatten enthält, zu teilen, sodass der ursprüngliche Pool nach der Teilung zwei Festplatten mit Datenspiegelung enthält.
Beispiel 4-7 Teilung eines ZFS-Speicher-Pools mit Datenspiegelung
Im folgenden Beispiel wird ein Speicher-Pool mit Datenspiegelung namens trinity, der drei Festplatten enthält, c1t0d0, c1t2d0 und c1t3d0, geteilt. Dadurch entstehen der Pool mit Datenspiegelung trinity, der die Festplatten c1t0d0 und c1t2d0 enthält, und der neue Pool neo, der die Festplatte c1t3d0 enthält. Der Inhalt beider Pools ist identisch.
# zpool status trinity pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors # zpool split trinity neo # zpool import neo # zpool status trinity neo pool: neo state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM neo ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors
Einzelne Datenspeichergeräte können in ZFS in und außer Betrieb genommen werden. Wenn Hardwarekomponenten unzuverlässig sind und nicht richtig funktionieren, schreibt ZFS trotzdem weiter Daten auf das betreffende Gerät bzw. liest sie von diesem und geht davon aus, dass dieser Zustand nicht von Dauer ist. Wenn dieser Zustand andauert, können Sie ZFS anweisen, das Gerät zu ignorieren, wodurch es außer Betrieb genommen wird. ZFS sendet dann keine Anforderungen an das außer Betrieb genommene Gerät.
Hinweis - Zum Austauschen von Datenspeichergeräten müssen diese vorher nicht außer Betrieb genommen werden.
Datenspeichergeräte werden mit dem Befehl zpool offline außer Betrieb genommen. Wenn es sich bei dem Datenspeichergerät um eine Festplatte handelt, kann es mit dem vollständigen Pfad oder einer Kurzbezeichnung angegeben werden. Beispiel:
# zpool offline tank c1t0d0 bringing device c1t0d0 offline
Beim Außerbetriebnehmen von Datenspeichergeräten sollten Sie Folgendes berücksichtigen:
Pools können nicht außer Betrieb genommen werden, wenn dadurch die Datensicherheit beeinträchtigt wird. So können Sie beispielsweise zwei Geräte nicht aus einer raids1-Konfiguration oder kein virtuelles Gerät der obersten Hierarchieebene außer Betrieb nehmen.
# zpool offline tank c1t0d0 cannot offline c1t0d0: no valid replicas
Der OFFLINE-Status ist dauerhaft, d. h. das Gerät bleibt auch bei einem Systemneustart außer Betrieb.
Mit dem Befehl zpool offline -t können Sie ein Datenspeichergerät zeiweilig außer Betrieb nehmen. Beispiel:
# zpool offline -t tank c1t0d0 bringing device 'c1t0d0' offline
Bei einem Systemneustart wird dieses Gerät dann automatisch in den ONLINE-Status gebracht.
Wenn ein Gerät außer Betrieb genommen wurde, wird es nicht automatisch vom Speicher-Pool getrennt. Wenn Sie versuchen, das betreffende Gerät für einen anderen Pool zu verwenden (selbst wenn dieser Pool gelöscht wurde), wird eine Meldung wie die folgende angezeigt:
device is part of exported or potentially active ZFS pool. Please see zpool(1M)
Wenn Sie das außer Betrieb genommene Gerät für einen anderen Pool verwenden möchten, nachdem der ursprüngliche Pool gelöscht wurde, müssen Sie zunächst das Gerät wieder in Betrieb nehmen und dann den ursprünglichen Pool löschen.
Eine andere Methode, ein Gerät eines anderen Speicher-Pools zu nutzen, während der ursprüngliche Pool beibehalten wird, besteht darin, das vorhandene Gerät im ursprünglichen Pool durch ein anderes, vergleichbares Gerät zu ersetzen. Weitere Informationen zum Austauschen von Geräten finden Sie unter Austauschen von Geräten in einem Speicher-Pool.
Wenn Sie den Pool-Status abfragen, weisen außer Betrieb genommene Geräte den Status OFFLINE auf. Weitere Informationen zum Abfragen des Pool-Status finden Sie unter Abfragen des Status von ZFS-Speicher-Pools.
Weitere Informationen zum Funktionsstatus von Datenspeichergeräten finden Sie unter Ermitteln des Funktionsstatus von ZFS-Speicher-Pools.
Nach dem Außerbetriebnehmen eines Geräts kann es mit dem Befehl zpool online wieder in Betrieb genommen werden. Beispiel:
# zpool online tank c1t0d0 bringing device c1t0d0 online
Nach dem Inbetriebnehmen des Gerätes werden alle Daten, die im Pool gespeichert wurden, mit dem neu verfügbaren Gerät synchronisiert. Bitte beachten Sie, dass Sie eine Festplatte nicht ersetzen können, indem Sie ein Gerät in Betrieb nehmen. Wenn Sie ein Gerät außer Betrieb nehmen, es austauschen und versuchen, es wieder in Betrieb zu nehmen, verursacht das einen Fehlerzustand.
Wenn Sie versuchen, ein fehlerhaftes Gerät in Betrieb zu nehmen, wird eine Meldung wie die folgende angezeigt:
# zpool online tank c1t0d0 warning: device 'c1t0d0' onlined, but remains in faulted state use 'zpool replace' to replace devices that are no longer present
Die Fehlermeldung kann auch an der Konsole angezeigt oder in die Datei unter /var/adm/messages geschrieben werden. Beispiel:
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device.
Weitere Informationen zum Austauschen fehlerhafter Geräte finden Sie unter Abhilfe bei Nichtverfügbarkeit eines Geräts.
Mit dem Befehl zpool online -e können Sie die Pool-Größe erweitern, wenn eine größere Festplatte in den Pool eingebunden oder eine kleinere Festplatte durch eine größere ersetzt wurde. Eine Festplatte, die zu einem Pool hinzugefügt wird, wird standardmäßig nicht auf ihre volle Größe erweitert, wenn die Pool-Eigenschaft autoexpand nicht aktiviert ist. Mithilfe des Befehls zpool online -e können Sie die Festplatte automatisch erweitern, selbst dann, wenn die Ersatzfestplatte bereits aktiviert wurde oder wenn die Festplatte gerade deaktiviert ist. Beispiel:
# zpool online -e tank c1t13d0
Wenn ein Datenspeichergerät aufgrund von Fehlern, die in der Ausgabe von zpool status aufgeführt werden, außer Betrieb genommen wird, können Sie diese Fehler mithilfe des Befehls zpool clear löschen.
Wenn keine Argumente angegeben werden, löscht der Befehl alle Gerätefehler eines Pools. Beispiel:
# zpool clear tank
Wenn ein Gerät oder mehrere Geräte angegeben werden, löscht der Befehl nur die zu den betreffenden Geräten gehörenden Fehler. Beispiel:
# zpool clear tank c1t0d0
Weitere Informationen zum Löschen von zpool-Fehlern finden Sie unter Löschen vorübergehender Fehler.
Mit dem Befehl zpool replace können Sie Datenspeichergeräte in einem Speicher-Pool austauschen.
Wenn Sie in einem Pool mit Redundanz ein Datenspeichergerät an der gleichen Stelle durch ein anderes Datenspeichergerät ersetzen, brauchen Sie nur das ersetzte Datenspeichergerät anzugeben. Bei mancher Hardware erkennt ZFS, dass das Gerät eine andere Festplatte ist, die sich an derselben Stelle befindet. Wenn Sie beispielsweise eine ausgefallene Festplatte (c1t1d0) durch Auswechseln an der gleichen Stelle ersetzen wollen, verwenden Sie folgende Syntax:
# zpool replace tank c1t1d0
Wenn Sie ein Gerät in einem Speicher-Pool durch eine Festplatte an einer anderen physischen Stelle ersetzen wollen, müssen Sie beide Geräte angeben. Beispiel:
# zpool replace tank c1t1d0 c1t2d0
Wenn Sie eine Festplatte in einem ZFS-Root-Pool ersetzen, lesen Sie unter So ersetzen Sie eine Festplatte im ZFS-Root-Pool nach.
Es folgen die grundlegenden Schritte zum Austauschen von Datenträgern:
Nehmen Sie den Datenträger wenn nötig mit dem Befehl zpool offline außer Betrieb.
Bauen Sie die zu erstetzende Festplatte aus.
Setzen Sie die Ersatzfestplatte ein.
Führen Sie den Befehl zpool replace aus. Beispiel:
# zpool replace tank c1t1d0
Nehmen Sie den Datenträger mit dem Befehl zpool online in Betrieb.
Bei manchen Systemen, wie etwa bei Sun Fire-Systemen von Oracle, muss eine Festplatte vor der Außerbetriebnahme dekonfiguriert werden. Wenn Sie bei diesem System eine Festplatte an ein und demselben Steckplatz austauschen, genügt es, den Befehl zpool replace wie im ersten Beispiel dieses Abschnitt beschrieben auszuführen.
Ein Beispiel für das Austauschen eines Datenträgers auf einem Sun Fire X4500-System finden Sie in Beispiel 11-1.
Beachten Sie beim Auswechseln von Datenspeichergeräten in einem ZFS-Speicher-Pool Folgendes:
Wenn Sie die Eigenschaft autoreplace des Pools auf on setzen, wird jedes neue Datenspeichergerät, das sich an der physischen Stelle eines zuvor zum Pool gehörenden Datenspeichergeräts befindet, automatisch formatiert und ersetzt. Der Befehl zpool replace muss nicht verwendet werden, wenn diese Eigenschaft aktiviert ist. Dieses Leistungsmerkmal ist möglicherweise nicht auf jeder Art von Hardware verfügbar.
Die Kapazität des Austauschgeräts muss der Kapazität der kleinsten Festplatte in einer Datenspiegelungs- bzw. RAID-Z-Konfiguration entsprechen oder größer sein.
Wenn ein Austauschgerät – dessen Kapazität größer ist als die des Geräts, das ausgetauscht wird – zu einem Pool hinzugefügt wird, wird es nicht automatisch auf seine volle Kapazität erweitert. Der Pool-Eigenschaftswert autoexpand bestimmt, ob der Pool erweitert wird, wenn ihm eine größere Festplatte hinzugefügt wird. Standardmäßig ist die Eigenschaft autoexpand aktiviert. Sie können diese Eigenschaft aktivieren, um die Pool-Größe zu erweitern, bevor oder nachdem die größere Festplatte zum Pool hinzugefügt wird.
Im folgenden Beispiel werden zwei 16-GB-Festplatten in einem Pool mit Datenspiegelung durch zwei 72-GB-Festplatten ersetzt. Nach dem Ersetzen der Festplatten wird die Eigenschaft autoexpand aktiviert, um die Festplatten auf die volle Größe zu erweitern.
# zpool create pool mirror c1t16d0 c1t17d0 # zpool status pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t16d0 ONLINE 0 0 0 c1t17d0 ONLINE 0 0 0 zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 76.5K 16.7G 0% ONLINE - # zpool replace pool c1t16d0 c1t1d0 # zpool replace pool c1t17d0 c1t2d0 # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 88.5K 16.7G 0% ONLINE - # zpool set autoexpand=on pool # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 68.2G 117K 68.2G 0% ONLINE -
Das Austauschen mehrerer Festplatten in einem großen Pool ist zeitaufwändig, da die Daten mithilfe von Resilvering auf die neuen Festplatten aufgespielt werden müssen. Außerdem sollten Sie zwischen dem Austausch von Festplatten den Befehl zpool scrub ausführen, um sicherzustellen, dass die Austauschgeräte ordnungsgemäß funktionieren und Daten fehlerfrei geschrieben werden.
Wenn eine ausgefallene Festplatte automatisch durch eine Hot-Spare-Festplatte ersetzt wurde, müssen Sie die Hot-Spare-Festplatte möglicherweise nach dem Ersetzen der ausgefallenen Festplatte abtrennen. Mit dem Befehl zpool detach kann eine Ersatzfestplatte in einem gespiegelten oder RAID-Z-Pool abgetrennt werden. Weitere Informationen zum Abtrennen von Hot-Spares finden Sie unter Aktivieren und Deaktivieren von Hot-Spares im Speicher-Pool.
Weitere Informationen zum Austauschen von Geräten finden Sie unter Abhilfe bei Nichtverfügbarkeit eines Geräts sowie Ersetzen oder Reparieren eines beschädigten Geräts.
Mithilfe der Hot-Spare-Funktion können Sie Datenträger ermitteln, die zum Ersetzen eines ausgefallenen bzw. fehlerhaften Geräts in einem bzw. mehreren Speicher-Pools verwendet werden können. Das Vorsehen eines Geräts als Hot-Spare bedeutet, dass das Gerät im Pool nicht aktiv ist, sondern nur dazu dient, ein ausgefallenes Gerät im Pool automatisch zu ersetzen.
Datenspeichergeräte können mit den folgenden Methoden als Hot-Spares vorgesehen werden:
bei der Erstellung eines Pools mit dem Befehl zpool create
nach der Erstellung eines Pools mit dem Befehl zpool add
Das folgende Beispiel zeigt, wie Geräte bei der Erstellung des Pools als Hot-Spares zugewiesen werden:
# zpool create trinity mirror c1t1d0 c2t1d0 spare c1t2d0 c2t2d0 # zpool status trinity pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c1t2d0 AVAIL c2t2d0 AVAIL errors: No known data errors
Das folgende Beispiel zeigt, wie Hot-Spares zugewiesen werden, indem sie zu einem Pool hinzugefügt werden, nachdem dieser erstellt wurde:
# zpool add neo spare c5t3d0 c6t3d0 # zpool status neo pool: neo state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM neo ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c3t3d0 ONLINE 0 0 0 c4t3d0 ONLINE 0 0 0 spares c5t3d0 AVAIL c6t3d0 AVAIL errors: No known data errors
Hot-Spares können mit dem Befehl zpool remove aus einem Speicher-Pool entfernt werden. Beispiel:
# zpool remove zeepool c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c1t3d0 AVAIL errors: No known data errors
Ein Hot-Spare kann nur entfernt werden, wenn es gerade nicht vom Speicher-Pool verwendet wird.
Beachten Sie beim Arbeiten mit ZFS-Hot-Spares Folgendes:
Zurzeit können mit dem Befehl zpool remove nur Hot-Spares, Cache-Geräte und Protokolliergeräte entfernt werden.
Wenn eine Festplatte als Hot-Spare hinzugefügt werden soll, muss die Kapazität des Hot-Spares der Kapazität der größten Festplatte im Pool entsprechen oder größer sein. Sie können Festplatten mit geringerer Kapazität zwar hinzufügen, sollten jedoch beachten, dass bei Aktivierung der Festplatte mit der geringeren Kapazität (automatisch oder mithilfe des Befehls zpool replace) der Vorgang mit einer Fehlermeldung wie der Folgenden abbricht:
cannot replace disk3 with disk4: device is too small
Hot-Spares können mit einer der folgenden Methoden aktiviert werden:
Manueller Austausch – Mithilfe des Befehls zpool replace können Sie ein ausgefallenes Gerät im Speicher-Pool durch ein Hot-Spare ersetzen.
Automatischer Austausch – Wenn ein Fehler erkannt wird, überprüft ein FMA-Agent den Pool, um festzustellen, ob dieser verfügbare Hot-Spares enthält. Wenn dies der Fall ist, ersetzt er das fehlerhafte Gerät durch ein verfügbares Ersatzgerät.
Falls ein gerade verwendetes Hot-Spare ausfällt, trennt der FMA-Agent das Ersatzgerät ab und macht den Austausch somit rückgängig. Dann versucht der Agent, das Datenspeichergerät mit einem anderen Hot-Spare zu ersetzen, falls dies möglich ist. Diese Funktion ist gegenwärtig Beschränkungen unterworfen, da das ZFS-Diagnoseprogramm nur Fehler generiert, wenn ein Datenspeichergerät aus dem System verschwindet.
Wenn Sie ein ausgefallenes Datenspeichergerät physisch durch ein aktives Ersatzgerät ersetzen, können Sie das ursprüngliche Gerät wieder aktivieren, indem Sie das Ersatzgerät mithilfe des Befehls zpool detach abtrennen. Wenn Sie die Eigenschaft autoreplace des Pools auf on setzen, wird das Ersatzgerät automatisch getrennt und wieder in den Ersatzgeräte-Pool zurückgeführt, sobald das neue Datenspeichergerät eingesetzt und die Inbetriebnahme abgeschlossen ist.
Mit dem Befehl zpool replace können Sie ein Datenspeichergerät manuell durch ein Hot-Spare ersetzen. Siehe Beispiel 4-8.
Ein fehlerhaftes Datenspeichergerät wird automatisch ausgetauscht, wenn ein Hot-Spare verfügbar ist. Beispiel:
# zpool status -x pool: zeepool 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: resilver completed after 0h0m with 0 errors on Mon Jan 11 10:20:35 2010 config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 DEGRADED 0 0 0 c2t1d0 UNAVAIL 0 0 0 cannot open c2t3d0 ONLINE 0 0 0 88.5K resilvered spares c2t3d0 INUSE currently in use errors: No known data errors
Derzeit können Sie ein Hot-Spare wie folgt deaktivieren:
Durch Entfernen des Hot-Spares aus dem Speicher-Pool.
Durch Trennen eines Hot-Spares, nachdem eine ausgefallene Festplatte physisch ersetzt wurde. Siehe Beispiel 4-9.
Durch temporäres oder dauerhaftes "Einlagern" (Swap-in) des Hot-Spares. Siehe Beispiel 4-10.
Beispiel 4-8 Manuelles Ersetzen einer Festplatte durch ein Hot-Spare
In diesem Beispiel wird der Befehl zpool replace verwendet, um die Festplatte c2t1d0 durch das Hot-Spare c2t3d0 zu ersetzen.
# zpool replace zeepool c2t1d0 c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 90K resilvered spares c2t3d0 INUSE currently in use errors: No known data errors
Dann trennen Sie die Festplatte c2t1d0.
# zpool detach zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 90K resilvered errors: No known data errors
Beispiel 4-9 Trennen eines Hot-Spares, nachdem eine ausgefallene Festplatte physisch ersetzt wurde
In diesem Beispiel wird die ausgefallene Festplatte (c2t1d0) physisch ersetzt, und ZFS wird benachrichtig. Dazu wird der Befehl zpool replace verwendet.
# zpool replace zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:08:44 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 90K resilvered c2t1d0 ONLINE 0 0 0 spares c2t3d0 INUSE currently in use errors: No known data errors
Danach können Sie den Befehl zpool detach verwenden, um das Hot-Spare in den Ersatzgeräte-Pool zurückzuführen. Beispiel:
# zpool detach zeepool c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed with 0 errors on Wed Jan 20 10:08:44 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c2t3d0 AVAIL errors: No known data errors
Beispiel 4-10 Trennen einer ausgefallenen Festplatte und Verwenden des Hot-Spares
Wenn Sie eine ausgefallene Festplatte durch temporäres oder dauerhaftes Einlagern des Hot-Spares, das die ausgefallene Festplatte gerade ersetzt, ersetzen möchten, trennen Sie die ursprüngliche (ausgefallene) Festplatte. Wenn die ausgefallene Festplatte schließlich ersetzt ist, können Sie sie wieder in den Speicher-Pool zurückführen, wo sie als Ersatzfestplatte verfügbar ist. Beispiel:
# zpool status zeepool pool: zeepool 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: resilver in progress for 0h0m, 70.47% done, 0h0m to go config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 DEGRADED 0 0 0 c2t1d0 UNAVAIL 0 0 0 cannot open c2t3d0 ONLINE 0 0 0 70.5M resilvered spares c2t3d0 INUSE currently in use errors: No known data errors # zpool detach zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 13:46:46 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 70.5M resilvered errors: No known data errors (Original failed disk c2t1d0 is physically replaced) # zpool add zeepool spare c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 13:48:46 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 70.5M resilvered spares c2t1d0 AVAIL errors: No known data errors