2017-04-04 3 views
2

Meine Maschine startet von einem gespiegelten ZFS Pool von zwei USB-Geräten. Der Pool verwendet wie folgt aussehen:Reparieren falsch konfigurierte gespiegelte ZFS-Pool

sudo zpool status 
pool: freenas-boot 
state: ONLINE 
scan: resilvered 891M in 15h19m with 0 errors on Wed Mar 29 03:29:55 2017 
config: 

    NAME  STATE  READ WRITE CKSUM 
    freenas-boot ONLINE  0  0  0 
     mirror-0 ONLINE  0  0  0 
     da0p2 ONLINE  0  0  3 
     da1p2 ONLINE  0  0  0 

errors: No known data errors 

Ich versuchte, die Medien mit der Prüfsumme Fehler zu ersetzen, sondern durch eine Reihe von falsch verwendeten Befehle I ended up „Hinzufügen“, um das neue Laufwerk anstelle von „Befestigung“ es. Der Pool ist jetzt eine Verkettung von zwei Geräten und nicht mehr gespiegelt:

NAME  STATE  READ WRITE CKSUM 
    freenas-boot ONLINE  0  0  0 
     da0p2  ONLINE  0  0  0 
     da1p2  ONLINE  0  0  0 

erfuhr ich, dass ich das Gerät nicht aus dem Pool nicht mehr entfernen und die offensichtlichen

zpool attach -f pool device new_device 

Befehl funktioniert nicht.

Ich plante, alle Daten auf (groß genug) dritte und vierte Laufwerke zu spiegeln und dann die verketteten ersten und zweiten loszuwerden. Es scheint jedoch, dass das Spiegeln nur auf einer Gerätebasis funktioniert. Ich würde vier Geräte für eine gespiegelte Konfiguration benötigen, was ungünstig ist, da nur zwei USB-Ports im Gehäuse der Maschine sind.

Was wäre ein guter Weg, um in Richtung eines bootfähigen gespiegelten Pools von zwei Geräten zu gelangen? Bitte beachten Sie, dass es sich bei dem fraglichen Rechner um einen Server handelt, dessen Bootfehler mehrere Benutzer unzufrieden machen würde.

Antwort

1
  1. Recursively zfs snapshot Ihr Root-Pool
  2. zfs send/recv dieser Schnappschuss auf einen anderen Stick oder Volumen von gleicher Größe als separates Root-Pool konfiguriert
  3. diese separaten Root-Pool bilden mit den kopierten Daten auftritt startfähiges
  4. Reboot der System und starten von Ihrem neuen Root-Pool
  5. Fügen Sie beide Stöcke als Spiegel zu dem neuen Pool und damit die alte zu zerstören
  6. Wenn Resilvering abgeschlossen ist, entfernen th e Anfang Stick oder Volumen und zerstört es

Sie haben nun einen korrekt gespiegelten Pool mit dem beide Anfangs-Sticks.

+0

Hört sich gut an, aber wie kann ich das Dateisystem des Boot-Geräts aufnehmen? Sein Mountpoint ist /, nicht wahr? – patmin

+0

@patmin Sie können alle Mountpoints aller Dateisysteme aller Pools mit 'zfs list -o name, mountpoint' anzeigen und dann nach'/'suchen. Ich kenne das Layout auf Linux-Systemen nicht genau, daher kann ich nicht genauer sein, sorry. – user121391

+0

Ich probiere sudszo zfs freenas-boot | sudo zfs recv -F newpool – patmin

Verwandte Themen