Wie aktualisiere ich ein ZFS-RAID-Z-Array auf größere Festplatten unter OpenSolaris?

11

Ich plane die Installation von OpenSolaris auf meinem Heimserver (derzeit mit Linux) und möchte wissen, wie ich mich auf das Upgrade des Servers vorbereiten kann, um in Zukunft größere Festplatten zu haben. Jetzt hat der Server 4x 400 GB SATA-Laufwerke und ich würde OpenSolaris mit ZFS RAID-Z darauf installieren. Einige Zeit später in diesem oder im nächsten Jahr werde ich die Laufwerke auf vielleicht 4x 1 TB SATA-Laufwerke aktualisieren.

Wie kann ich die Partitionsgröße mit ZFS aktualisieren und erhöhen? Ist es ein einfacher und schmerzloser Vorgang (z. B. jeweils ein Laufwerk austauschen und ZFS ändert automatisch die Größe, um den gesamten Speicherplatz zu nutzen), oder sind einige spezielle Schritte erforderlich? Kann es gemacht werden, ohne das System herunterzufahren?

Esko Luontola
quelle

Antworten:

17
  1. Offline-Laufwerk Nr. 1.
  2. Ersetzen Sie das alte Laufwerk durch das neuere Laufwerk mit hoher Kapazität.
  3. zpool tauschen Sie das Laufwerk aus.
  4. Warten Sie, bis der Ersatz wiederhergestellt ist.
  5. Fahren Sie mit Schritt 1 fort und wiederholen Sie den Vorgang für jedes nachfolgende Laufwerk im Array.

Möglicherweise müssen Sie den zpool exportieren und anschließend importieren, sobald dieser Vorgang abgeschlossen ist. Der Pool zeigt dann die vergrößerte Größe. Es sind keine Ausfallzeiten erforderlich, aber wenn ein Laufwerk während des Upgrades Ihres Arrays nach Süden fährt, verlieren Sie alles, da Sie bei insgesamt vier Festplatten vermutlich ein 3 + 1-Setup haben. (Die Chancen stehen nicht so hoch, aber Murphy schläft nie.)

Die offizielle Quelle: "Ersetzen von Geräten in einem Speicherpool" im ZFS-Administrationshandbuch . Der ZFS Best Practices Guide ist ebenfalls nützlich.

Brad Ackerman
quelle
+1 für "Möglicherweise müssen Sie den Zpool exportieren und dann importieren, sobald dieser Vorgang abgeschlossen ist" - der Vorgang zum Ersetzen funktionierte bei mir erst, als ich diese Aktion ausgeführt habe.
Josh
Sie müssen es nicht erneut importieren, wenn die autoexpandOption onfür den Pool aktiviert ist.
Bahamat
15

Ich möchte hinzufügen, dass das Ersetzen eines nicht defekten Laufwerks den Raid weniger ausfallsicher macht. Sie können das ersetzende Laufwerk zuerst mit Daten füllen, bevor Sie das kleinere Laufwerk herausnehmen. So wird die Bestellung.

  • Schließen Sie ein größeres Laufwerk an (kann sogar über USB erfolgen)
  • zpool replace smallerdrive biggerdrive
  • warten
  • Wenn dies erledigt ist, nehmen Sie ein kleineres Laufwerk heraus oder was auch immer Sie tun müssen.
  • wiederholen
  • und am Ende müssen Sie möglicherweise laufen zpool set autoexpand=on pool

Jetzt ist Murphy weniger ein Problem

Josh
quelle
Für Leute, die dies unter Linux tun: Ich habe jedes Laufwerk erfolgreich ausgetauscht, aber es würde den Speicherplatz beim Ausführen nicht erhöhen autoexpand=on. Ich musste zpool online -e poolname devicenamefür jedes Gerät laufen , und dann funktionierte es. Importieren / Exportieren hat nichts gebracht.
Peterdk