Speicher-Pools können mit dem Befehl zpool create erstellt werden. Dieser Befehl akzeptiert einen Pool-Namen und eine beliebige Anzahl virtueller Geräte als Argumente. Der Pool-Name muss den unter Konventionen für das Benennen von ZFS-Komponenten aufgeführten Namenskonventionen genügen.
Mit dem folgenden Befehl wird ein Pool namens tank erstellt, das aus den beiden Datenträgern c1t0d0 und c1t1d0 besteht:
# zpool create tank c1t0d0 c1t1d0 |
Gerätenamen, die ganze Datenträger repräsentieren, befinden sich im Verzeichnis /dev/dsk und werden von ZFS als einzelner, großer Bereich gekennzeichnet. Daten werden mithilfe von Striping dynamisch über beide Datenträger verteilt.
Verwenden Sie zum Erstellen eines Pools mit Datenspiegelung das Schlüsselwort mirror, gefolgt von einer bestimmten Anzahl von Datenspeichergeräten, aus denen das Datenspiegelungssystem bestehen soll Mehrere Datenspiegelungssysteme können durch Wiederholen des Schlüsselworts mirror in der Befehlszeile erstellt werden. Mit dem folgenden Befehl wird ein Pool mit zwei zweifachen Datenspiegelungen erstellt:
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0 |
Das zweite Schlüsselwort mirror spezifiziert ein neues virtuelles Gerät der obersten Hierarchieebene. Daten werden mithilfe von Striping dynamisch über beide Datenträger verteilt, wobei zwischen jedem Datenträger eine jeweilige Datenredundanz auftritt.
Weitere Informationen zu empfohlenen Konfigurationen mit Datenspiegelung finden Sie unter:
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Gegenwärtig werden für ZFS-Datenspiegelungskonfigurationen folgende Vorgänge unterstützt:
Hinzufügen eines weiteren Festplattensatzes zu einer vorhandenen Datenspiegelungskonfiguration, um eine neues virtuelles Gerät der obersten Hierarchieebene bereitzustellen. Weitere Informationen dazu finden Sie unter Hinzufügen von Datenspeichergeräten zu einem Speicher-Pool.
Hinzufügen weiterer Festplatten zu einer vorhandenen Datenspiegelungskonfiguration bzw. Hinzufügen weiterer Festplatten zu einer nicht replizierten Konfiguration, um eine Datenspiegelungskonfiguration zu erstellen. Weitere Informationen dazu finden Sie unter Verbinden und Trennen von Geräten in einem Speicher-Pool.
Ersetzen einer oder mehrerer Festplatten in einer vorhandenen Datenspiegelungskonfiguration, solange die Kapazität der neuen Festplatten größer oder gleich der Kapazität der zu ersetzenden Festplatten ist. Weitere Informationen dazu finden Sie unter Austauschen von Geräten in einem Speicher-Pool.
Abtrennen einer oder mehrerer Festplatten in einer Datenspiegelungskonfiguration, solange die verbleibenden Speichergeräte für die Konfiguration noch eine ausreichende Redundanz gewährleisten. Weitere Informationen dazu finden Sie unter Verbinden und Trennen von Geräten in einem Speicher-Pool.
Teilen einer gespiegelten Konfiguration, indem eine der Festplatten entfernt wird, um einen neuen, identischen Pool zu erstellen. Weitere Informationen finden Sie unter Erstellen eines neuen Pools durch Teilen eines ZFS-Speicher-Pools mit Datenspiegelung.
Ein Speichergerät, das kein Protokollier- oder Cache-Gerät ist, kann nicht direkt aus einem Speicher-Pool mit Datenspiegelung entfernt werden. Dafür wurde ein RFE eingereicht.
Sie können von einem ZFS-Root-Dateisystem installieren und booten. Beachten Sie die folgenden Root-Pool-Konfigurationsinformationen:
Für das Root-Pool verwendete Datenträger müssen ein VTOC (SMI)-Label aufweisen, und der Pool muss mit Festplattenbereichen erstellt werden.
Der Root-Pool muss als gespiegelte Konfiguration oder als einzelne Festplattenkonfiguration erstellt werden. Sie können mit dem Befehl zpooladd keine zusätzlichen Festplatten hinzufügen, um mehrere gespiegelte virtuelle Geräte der obersten Hierarchieebene zu erstellen, aber Sie können ein gespiegeltes virtuelles Gerät mit dem Befehl zpool attach erweitern.
RAID-Z- oder Stripes-Konfigurationen werden nicht unterstützt.
Der Root-Pool kann über kein separates Protokolliergerät verfügen.
Bei dem Versuch, eine nicht unterstützte Pool-Konfiguration für ein Root-Pool zu verwenden, wird eine Meldung wie die folgende angezeigt:
ERROR: ZFS pool <pool-name> does not support boot environments |
# zpool add -f rpool log c0t6d0s0 cannot add to 'rpool': root pool can not have multiple vdevs or separate logs |
Weitere Informationen zum Installieren und Booten eines ZFS-Dateisystems finden Sie in Kapitel 5Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems.
Das Erstellen eines RAID-Z-Pools mit einfacher Parität läuft ähnlich ab wie das Erstellen eines Pools mit Datenspiegelung. Der einzige Unterschied besteht darin, dass anstatt des Schlüsselworts mirror das Schlüsselwort raidz bzw. raidz1 verwendet wird. Das folgende Beispiel zeigt die Erstellung eines Pools mit einem RAID-Z-Gerät, das aus fünf Datenträgern besteht:
# zpool create tank raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 /dev/dsk/c5t0d0 |
Dieses Beispiel zeigt, dass Datenträger angegeben werden können, indem ihre abgekürzten oder ihre vollständigen Gerätenamen verwendet werden. Sowohl /dev/dsk/c5t0d0 als auch c5t0d0 beziehen sich auf denselben Datenträger.
Eine RAID-Z-Konfiguration mit zwei- oder dreifacher Parität kann beim Erstellen eines Pools mithilfe des Schlüsselworts raidz2 oder raidsz3 angelegt werden. Beispiel :
# zpool create tank raidz2 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 # zpool status -v tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz2-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c3t0d0 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 errors: No known data errors |
# zpool create tank raidz3 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 # zpool status -v tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz3-0 ONLINE 0 0 0 c0t0d0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c3t0d0 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 c6t0d0 ONLINE 0 0 0 c7t0d0 ONLINE 0 0 0 errors: No known data errors |
Folgende Vorgänge werden in einer ZFS-RAID-Z-Konfiguration gegenwärtig unterstützt:
Hinzufügen eines weiteren Festplattensatzes zu einer vorhandenen RAID-Z-Konfiguration, um eine neues virtuelles Gerät der obersten Hierarchieebene bereitzustellen. Weitere Informationen dazu finden Sie unter Hinzufügen von Datenspeichergeräten zu einem Speicher-Pool.
Ersetzen einer oder mehrerer Festplatten in einer vorhandenen RAID-Z-Konfiguration, solange die Kapazität der neuen Festplatten größer oder gleich der Kapazität der zu ersetzenden Festplatten ist. Weitere Informationen dazu finden Sie unter Austauschen von Geräten in einem Speicher-Pool.
Folgende Vorgänge werden in einer RAID-Z-Konfiguration gegenwärtig nicht unterstützt:
Hinzufügen einer weiteren Festplatte zu einer vorhandenen RAID-Z-Konfiguration.
Entfernen einer Festplatte aus einer RAID-Z-Konfiguration, ausgenommen Entfernen einer Festplatte, die durch eine Ersatzfestplatte ersetzt wird.
Ein Speichergerät, das kein Protokollier- oder Cache-Gerät ist, kann nicht direkt aus RAID-Z-Konfiguration entfernt werden. Dafür wurde ein RFE eingereicht.
Weitere Informationen zu RAID-Z-Konfigurationen finden Sie unter Speicher-Pools mit RAID-Z-Konfiguration.
Standardmäßig wird das ZIL aus Blöcken innerhalb des Haupt-Pools zugewiesen. Durch Verwendung getrennter Intent-Protokolliergeräte wie z. B. NVRAM oder eine speziell dafür vorgesehene Festplatte kann jedoch eine höhere Leistung erreicht werden. Weitere Informationen zu ZFS-Protokolliergeräten finden Sie unter Einrichten separater ZFS-Protokolliergeräte.
Sie können ZFS-Protokolliergeräte während oder nach der Erstellung eines Speicher-Pools einrichten.
Das folgende Beispiel zeigt, wie ein Speicher-Pool mit Datenspiegelung und gespiegelten Protokolliergeräten erstellt wird:
# zpool create datap mirror c1t1d0 c1t2d0 mirror c1t3d0 c1t4d0 log mirror c1t5d0 c1t8d0 # zpool status datap pool: datap state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM datap ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 logs mirror-2 ONLINE 0 0 0 c1t5d0 ONLINE 0 0 0 c1t8d0 ONLINE 0 0 0 errors: No known data errors |
Informationen zum Wiederherstellen des Normalbetriebs nach dem Fehlschlag eines Protokolliergeräts finden Sie unter Beispiel 11–2.
Sie können mit Cache-Geräten einen Pool erstellen, um Speicher-Pool-Daten im Cache zu speichern. Beispiel:
# zpool create tank mirror c2t0d0 c2t1d0 c2t3d0 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 |
Beachten Sie Folgendes, wenn Sie die Erstellung eines ZFS-Speicher-Pools mit Cache-Geräten in Betracht ziehen:
Cache-Geräte bieten die größte Leistungsverbesserung für die Direktspeicherung von Daten mit vorwiegend statischem Inhalt.
Die Kapazität und Lesevorgänge können mithilfe des Befehls zpool iostat überwacht werden.
Beim Erstellen eines Speicher-Pools können eines oder mehrere Cache-Geräte hinzugefügt werden. Die Geräte können auch nach der Erstellung des Pools hinzugefügt oder entfernt werden. Weitere Informationen finden Sie unter Beispiel 4–4.
Cache-Geräte können nicht gespiegelt werden oder Teil einer RAID-Z-Konfiguration sein.
Wenn auf einem Cache-Gerät ein Lesefehler entdeckt wird, wird der betreffende E/A-Lesevorgang wieder an das ursprüngliche Speicher-Pool-Gerät zurückgegeben, das Teil einer gespiegelten oder RAID-Z-Konfiguration sein kann. Der Inhalt der Cache-Geräte wird als flüchtig betrachtet, wie auch bei anderen Cache-Geräten des Systems.