Fehler beim Erstellen von Pools können in verschiedenen Situationen auftreten. Einige Fehlergründe sind sofort offensichtlich, wenn beispielsweise ein angegebenes Gerät nicht vorhanden ist, während andere Gründe nicht so einfach nachzuvollziehen sind.
Vor dem Formatieren eines Datenspeichergeräts versucht ZFS herauszufinden, ob dieser Datenträger bereits von ZFS oder anderen Bereichen des Betriebssystems verwendet wird. Wenn der Datenträger bereits verwendet wird, sehen Sie in etwa folgende Fehlermeldung:
# zpool create tank c1t0d0 c1t1d0 invalid vdev specification use '-f' to override the following errors: /dev/dsk/c1t0d0s0 is currently mounted on /. Please see umount(1M). /dev/dsk/c1t0d0s1 is currently mounted on swap. Please see swap(1M). /dev/dsk/c1t1d0s0 is part of active ZFS pool zeepool. Please see zpool(1M). |
Einige Fehler können mithilfe der Option -f ignoriert werden, die meisten Fehler jedoch nicht. Die folgenden Zustände können mithilfe der Option -f nicht ignoriert werden. Sie müssen diese Zustände manuell korrigieren:
Der Datenträger oder einige seiner Bereiche enthalten ein gegenwärtig eingehängtes Dateisystem. Sie müssen diesen Fehler mit dem Befehl umount beheben.
Der Datenträger enthält ein Dateisystem, das in der Datei /etc/vfstab aufgeführt, jedoch gegenwärtig nicht eingehängt ist. Zur Behebung dieses Fehlers müssen Sie die entsprechende Zeile aus der Datei /etc/vfstab entfernen bzw. diese Zeile auskommentieren.
Dieser Datenträger ist das reservierte Dump-Gerät für dieses System. Sie müssen diesen Fehler mit dem Befehl dumpadm beheben.
Der Datenträger bzw. die Datei gehört zu einem aktiven ZFS-Speicher-Pool. Sofern nicht mehr benötigt, entfernen Sie den anderen Pool mit dem Befehl zpool destroy. Oder verwenden Sie den Befehl zpool detach, um die Festplatte aus dem anderen Pool zu trennen. Sie können nur eine Festplatte aus einem Speicher-Pool mit Datenspiegelung trennen.
Die folgenden Überprüfungen auf Datenträgerbelegungen dienen als nützliche Warnungen und können mithilfe der Option -f manuell übergangen werden, um den Pool zu erstellen:
Der Datenträger enthält ein bekanntes Dateisystem, obwohl es nicht eingehängt ist und nicht in Gebrauch zu sein scheint.
Der Datenträger gehört zu einem Solaris Volume Manager-Volume.
Der Datenträger dient als alternative Boot-Umgebung für Oracle Solaris Live Upgrade.
Der Datenträger gehört zu einem Speicher-Pool, das exportiert bzw. manuell aus einem System entfernt wurde. Im letzteren Fall wird der Pool als potenziell aktiv gemeldet, da der Datenträger unter Umständen über das Netzwerk von einem anderen System belegt sein kann. Überprüfen Sie den Status vor beim Überschreiben eines potenziell aktiven Datenträgers äußerst sorgfältig.
Das folgende Beispiel zeigt die Verwendung der Option -f:
# zpool create tank c1t0d0 invalid vdev specification use '-f' to override the following errors: /dev/dsk/c1t0d0s0 contains a ufs filesystem. # zpool create -f tank c1t0d0 |
Im Normalfall sollten Sie Fehler beheben, anstatt sie mit Option -f zu ignorieren.
Die Erstellung von Pools mit unterschiedlichen Replikationsmethoden wird nicht empfohlen. Der Befehl zpool verhindert, dass Sie versehentlich einen Pool mit inkongruenten Redundanzebenen erstellen. Wenn Sie versuchen, einen Pool mit einer solchen Konfiguration zu erstellen, wird in etwa die folgende Fehlermeldung ausgegeben:
# zpool create tank c1t0d0 mirror c2t0d0 c3t0d0 invalid vdev specification use '-f' to override the following errors: mismatched replication level: both disk and mirror vdevs are present # zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0 c5t0d0 invalid vdev specification use '-f' to override the following errors: mismatched replication level: 2-way mirror and 3-way mirror vdevs are present |
Sie können diese Fehler mit der Option -f ignorieren, obwohl dies nicht empfohlen wird. Der Befehl warnt Sie darüber hinaus auch, wenn Sie versuchen, einen Pool mit Datenspiegelung bzw. RAID-Z zu erstellen, das Datenträger unterschiedlicher Kapazität verwendet. Obwohl eine solche Konfiguration zulässig ist, führen inkongruente Redundanzebenen dazu, dass die Kapazität größerer Datenträger ungenutzt bleibt. Die Option -f wird benötigt, um die Warnung zu ignorieren.
Versuche, einen Pool zu erstellen, können unerwartet und aus verschiedenen Gründen fehlschlagen, und das Formatieren von Datenträgern ist ein potentiell schädlicher Vorgang. Aus diesen Gründen verfügt der Befehl zpool create über eine zusätzliche Option (-n), mit der das Erstellen eines Pools simuliert wird, ohne das Gerät tatsächlich zu beschreiben. Mit der Option dry run wird die Belegung von Datenträgern sowie die Evaluierung der Replikationsmethoden überprüft, und es werden im Verlauf dieses Vorgangs eventuell auftretende Fehler gemeldet. Wenn keine Fehler gefunden wurden, wird in etwa die folgende Meldung ausgegeben:
# zpool create -n tank mirror c1t0d0 c1t1d0 would create 'tank' with the following layout: tank mirror c1t0d0 c1t1d0 |
Einige Fehler werden jedoch erst angezeigt, wenn der Pool tatsächlich erstellt wird. Ein Beispiel für einen solchen häufig auftretenden Fehler ist die mehrmalige Angabe eines Datenträgers in der gleichen Konfiguration. Dieser Fehler kann erst beim tatsächlichen Schreiben von Daten zuverlässig erkannt werden. Aus diesem Grunde kann es sein, dass mit dem Befehl zpool create -n eine erfolgreiche Ausführung gemeldet wird, aber der Pool nicht erstellt werden kann, wenn der Befehl ohne diese Option ausgeführt wird.
Bei der Erstellung eines Speicher-Pools ist /pool-name der Standard-Einhängepunkt für das Dataset der obersten Hierarchieebene. Dieses Verzeichnis darf noch nicht vorhanden oder muss leer sein. Falls das Verzeichnis noch nicht existiert, wird es autoamtisch erstellt. Wenn das Verzeichnis leer ist, wird das Root-Dataset in dieses vorhandene Verzeichnis eingehängt. Mithilfe der Option -m des Befehls zpool create können Sie Pools mit anderen Standard-Einhängepunkten erstellen. Beispiel:
# zpool create home c1t0d0 default mountpoint '/home' exists and is not empty use '-m' option to provide a different default # zpool create -m /export/zfs home c1t0d0 |
Mit diesem Befehl wird der neue Pool home sowie das Dataset home mit dem Einhängepunkt /export/zfs erstellt.
Weitere Informationen zu Einhängepunkten finden Sie unter Verwalten von ZFS-Einhängepunkten.