Konvertieren Sie den nicht gespiegelten FreeBSD ZFS-Pool mit zwei Festplatten in einen gespiegelten Pool

7

Ich habe einen Speicherpool storagemit zwei Festplatten. Ursprünglich wollte ich die zweite Festplatte als Spiegel hinzufügen, habe aber den Fehler des ZFS-Neulings gemacht, zpool add storage <device>statt zu verwenden zpool attach storage <device>.

Jeder Versuch removeoder detachdas zweite Gerät aus dem Pool schlägt fehl, da sich ZFS darüber beschwert, dass keine redundanten Laufwerke vorhanden sind. Nachdem ich es gelesen habe, verstehe ich das Problem und warum dies so ist. Ich konnte jedoch keine Lösung finden, um entweder das Laufwerk zu entfernen, um es wieder anzuschließen, oder einfach den gesamten Pool in gespiegelt statt gestreift umzuwandeln. Ich bin auch ein bisschen verwirrt darüber, dass es keinen direkten Weg gibt, dies zu tun.

Gibt es eine Möglichkeit, dies zu erreichen, ohne den Pool zu zerstören und neu zu erstellen? Ich möchte lieber kein weiteres 4-TB-Laufwerk kaufen und all diese Daten kopieren.

herrbischoff
quelle

Antworten:

3

Leider haben Sie an dieser Stelle grundsätzlich zwei gute Möglichkeiten:

  • Zerstören Sie den Pool und erstellen Sie ihn mit der beabsichtigten Konfiguration neu. Stellen Sie dann Ihre Daten von einer Wiederherstellungskopie wieder her
  • Holen Sie sich zwei weitere Laufwerke (mindestens die gleiche Größe wie die jeweils bereits vorhandenen) und erweitern Sie Ihren Pool auf zwei gespiegelte Paare anstelle von zwei einzelnen Festplatten

Letzteres kann vor Ort durchgeführt werden und bietet Ihnen den zusätzlichen Speicherplatz, erfordert jedoch den Kauf von mehr Hardware (was Sie in der Frage angegeben haben, die Sie nicht tun möchten). Ersteres kann nicht vor Ort durchgeführt werden, bietet Ihnen jedoch eine gute Gelegenheit, Ihre Wiederherstellungsstrategie zu testen (Sie haben vermutlich eine Wiederherstellungsstrategie ?).

Wie Sie herausgefunden haben, ist es nicht möglich, eine JBOD-Komponente in einem ZFS-Pool zu entfernen. Indem addSie nicht attachdas neue Laufwerk verwenden, haben Sie eine JBOD-Situation mit mehreren Festplatten erstellt.

Wenn Sie es mit Erweiterung auf den Pool gehen, empfehlen bedenken , dass ich stark in raidz2 Ausbau statt zwei gespiegelten Paare. Sie erhalten (im Wesentlichen) dieselbe nutzbare Speicherkapazität, aber die Fähigkeit, den Ausfall von zwei beliebigen Laufwerken zu überstehen, im Gegensatz zu nur einem pro Paar. Sie können ein raidz2 vdev mit zwei Dateien mit geringer Dichte erstellen und diese Dateien dann löschen, bevor Sie sie durch Laufwerke ersetzen, von denen Sie Daten migrieren, um von Ihrer aktuellen Situation mit 2-Festplatten-JBOD auf 4-Festplatten-RAIDZ2 zu migrieren und nur zwei weitere Festplatten hinzuzufügen.

ein CVn
quelle
In Bezug auf den raidz2-Rat: Es ist wahr, dass Sie mit dem Ausfall von zwei beliebigen Festplatten leben können, aber Ihre Resilvering-Zeiten sind langsamer (alle Festplatten müssen vollständig gelesen werden, anstatt nur der betroffene Spiegel), was auch die Wahrscheinlichkeit einer anderen Festplatte erhöht Wenn Sie im Resilver-Fenster sterben, wird Ihre Leistung schlechter (insbesondere zufällige Lesevorgänge, und dies wird schlechter, wenn Sie Ihren Pool erweitern), und schließlich benötigt Ihre Pool-Erweiterung jetzt vier statt zwei Laufwerke, wenn Sie ein symmetrisches Layout wünschen. Sie erhalten alle Nachteile eines Paritätsangriffs ohne die Platzverbesserungen - ich würde mich an Spiegel halten.
user121391
0

Leider wäre die Zerstörung und Wiederherstellung des Pools Ihre einzige Option.

Wenn Sie nur dieses bestimmte Laufwerk extrahieren möchten (aus anderen Gründen, z. B. wenn es eine geringere Leistung als alle anderen Laufwerke aufweist), können Sie ein Spiegellaufwerk an das vdev anschließen und dann das alte Laufwerk vom vdev trennen und so "extrahieren". das Laufwerk, während der Pool intakt bleibt (natürlich ohne Resilver-Zeit). Aber in Ihrem Fall hilft das nicht viel.

Ich würde daher empfehlen, ein größeres Laufwerk zu kaufen, das ohnehin Ihre vollständigen Pooldaten enthält, da Sie sonst kein Backup haben. ZFS ist zwar das sicherste allgemein verfügbare Dateisystem, jedoch nicht fehlerfrei. Ein aussterbender Controller, der gleichzeitige Tod beider Laufwerke, eine fehlerhafte Stromversorgung, ein Administratorfehler, ein unerwünschter Angreifer oder einfach ein Fehler in ZFS oder im Hostsystem können zu einem teilweisen oder vollständigen Datenverlust ohne Sicherung führen. RAID ist kein Backup und ZFS auch nicht.

Beachten Sie, dass Sie alle Ihre Daten mit ZFS send / recv übertragen können. Abgesehen von dem investierten Geld und der Zeit für die Übertragung ist dies also recht einfach.

user121391
quelle