Ich habe ein bisschen gelesen und es sieht so aus, als würde ZFS es nicht mögen, wenn Festplatten aus nicht redundanten Arrays entfernt werden :
Mit dem
zpool detach
Befehl können Sie ein Gerät von einem gespiegelten Speicherpool trennen. Zum Beispiel:# zpool detach zeepool c2t1d0
Dieser Vorgang wird jedoch abgelehnt, wenn keine anderen gültigen Replikate der Daten vorhanden sind. Zum Beispiel:
# zpool detach newpool c1t2d0 cannot detach c1t2d0: only applicable to mirror and replacing vdevs
Das Grundproblem ist verständlich: Wenn Sie die einzige Kopie eines Datenelements (ob Metadaten oder Nutzdaten) aus einem Array entfernen, sind diese Daten nicht mehr verfügbar.
Die Beispiele zum Ersetzen von Geräten in einem ZFS-Speicherpool enthalten eine grundlegende schrittweise Beschreibung zum Ersetzen eines Geräts in einem Speicherpool: Offline-Festplatte, Entfernen der Festplatte, Einlegen der Ersatzfestplatte, Ausführen zpool replace
, um ZFS über die Änderung zu informieren und online die Festplatte. Dies erfordert offensichtlich, dass das Array nicht von der zu ersetzenden Festplatte abhängt, daher muss das Array redundant sein. Wenn dies vom betreffenden Laufwerk abhängt, stellt dieser Ansatz das gleiche Problem wie oben dar.
Was ist die empfohlene Methode zum Ersetzen einer Festplatte in einem nicht redundanten ZFS-Array?
Angenommen, die vorhandene Festplatte funktioniert ordnungsgemäß, und die Ersatzfestplatte hat mindestens die gleiche Größe wie die zu ersetzende Festplatte. (Wenn die vorhandene Festplatte ausgefallen ist, können Sie natürlich nur eine neue Festplatte hinzufügen und alle vom Festplattenfehler betroffenen Dateien aus der Sicherung wiederherstellen.)