ZFS: Es wurde versucht, das Laufwerk der obersten Ebene aus Zpool zu entfernen

9

Ich habe einen Zpool namens Speicher, der ein raidz1-Array mit fünf Geräten enthält.

Heute habe ich mir ein anderes 3-TB-Gerät gekauft und es in mein Gehäuse gesteckt. Anstatt jedoch einen neuen Pool zu erstellen und dieses Gerät hinzuzufügen, habe ich einen Fehler gemacht und ihn meinem vorhandenen Speicherpool hinzugefügt.

Jetzt habe ich ein Gerät der obersten Ebene, das ich entfernen möchte, genannt sdg(das ist das neue Laufwerk). Jedes Mal, wenn ich versuche, es zu entfernen, erhalte ich:

cannot remove sdg: only inactive hot spares, cache, top-level, or log devices can be removed.

Wie entferne ich dieses Gerät jetzt? Wenn dieses Gerät ausfällt, ist mein gesamter Pool nicht verfügbar. Ich denke, ich sollte ein anderes Laufwerk kaufen und es wird zumindest gespiegelt, aber ich kann einfach nicht glauben, dass es keinen richtigen Weg gibt, dies zu tun.

Dies ist mein Status-Dump:

pool: storage
state: ONLINE
scan: scrub canceled on Wed Jul 23 17:26:08 2014

config:

 NAME                                 STATE     READ WRITE CKSUM
 storage                              ONLINE       0     0     0
   raidz1-0                           ONLINE       0     0     0
     ata-ST3000DM001-1CH166_Z1F1PYM6  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_W1F24CSC  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_W1F2372R  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_W1F24BTK  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_Z1F2KKLW  ONLINE       0     0     0
   sdg                                ONLINE       0     0     0

errors: No known data errors
chronisch
quelle
1
Meines Wissens nach ist das sdgjetzt Teil des gestreiften Speicherpools. Da der Pool eher gestreift als gespiegelt ist, kann er nicht sdgaus dem Pool entfernt werden. Die einzige Möglichkeit, es zurückzubekommen, besteht darin, Ihre Daten aus dem storagePool auf ein anderes Gerät zu kopieren, den Pool zu zerstören und ohne SDG neu zu erstellen. Erstellen Sie dann einen neuen Pool für sdg, um alles zu tun, wofür Sie ihn verwenden möchten.
Warwick
Alles, was ich in der zfs-Dokumentation gelesen habe, besagt, dass ein Streifen nicht so wachsen kann. Tatsächlich haben sich die Leute einige interessante Dinge ausgedacht, um das gleiche Array zu vergrößern.
chronische
Wenn ich es nicht entfernen kann, kann ich ein paar weitere Laufwerke hinzufügen und aus SDG und den beiden neuen Laufwerken einen weiteren Streifen machen?
chronische
Sobald Sie das Laufwerk zum Pool hinzugefügt haben, können Sie es nicht mehr entfernen.
Fragen und lernen
Ich weiß es nicht genau, aber ich glaube nicht, dass Sie in der Lage sind, ein paar weitere Laufwerke hinzuzufügen und aus SDG und den beiden neuen Laufwerken einen weiteren Streifen zu machen. Ich glaube, dass die SDG als gestreiftes Volume mit den zwei zusätzlichen Festplatten angegeben werden müsste, wenn sie dem Pool hinzugefügt wurden. Es gibt keine zfs convertFunktionalität.
Warwick

Antworten:

2

Leider ein vdev Entfernen aus einem Pool (was dieses Laufwerk ist) nicht von ZFS unterstützt zur Zeit (aber es gibt Arbeiten , die derzeit zu unterstützen). Die Problemumgehung besteht darin, Ihre Daten aus dem Pool zu sichern, neu zu erstellen und die Daten dann zurückzusetzen.

Steve Wills
quelle