zpool wiederherstellen

kira12

Well-Known Member
Hallo Leute,

ich habe auf meinem Fileserver die Rootpartition verkleiner mit resize. Leider die falsche Platte gewesen, es sollte nicht die Root werden. Somit bootet der Server nicht mehr. Auf der Platte sind aber die geilkeys für meine beiden Cache Laufwerke für einen Zpool.

Der Pool besteht aus 8 Platten und 2 Cache SSDs. Die Platten Geli keys sind da, die der beiden Cache SSDs nicht. Der Pool sagt nun immer:

Code:
  pool: data
 state: UNAVAIL
status: One or more devices could not be opened.  There are insufficient
   replicas for the pool to continue functioning.
action: Attach the missing device and online it using 'zpool online'.
  see: http://illumos.org/msg/ZFS-8000-3C
  scan: none requested
config:

   NAME  STATE  READ WRITE CKSUM
   data  UNAVAIL  0  0  0
    raidz2-0  UNAVAIL  0  0  0
    gpt/da0.eli  ONLINE  0  0  0
    2533109009042986733  UNAVAIL  0  0  0  was /dev/gpt/da1.eli
    15955743284141515406  UNAVAIL  0  0  0  was /dev/gpt/da2.eli
    3798635349595906764  UNAVAIL  0  0  0  was /dev/gpt/da3.eli
    18009584609129667927  UNAVAIL  0  0  0  was /dev/gpt/da4.eli
    12634104064355411299  UNAVAIL  0  0  0  was /dev/gpt/da5.eli
    4167967181567690366  UNAVAIL  0  0  0  was /dev/gpt/da6.eli
    11188071881169143692  UNAVAIL  0  0  0  was /dev/gpt/da7.eli

Ich boote von einer recht alten Version (10.3) dieses Servers da waren die Cache SSDs noch nicht im Pool integriert. Gibt es eine Möglichkeit den Pool ohne die beiden SSDs zu starten oder kann ich die keys aus der verkleinerten Partition auslesen?

Gruß ré
 
ZFS funktioniert auch ohne die Cache-Laufwerke problemlos. Die sind nicht dein Problem. Das Problem ist, dass er nur eine der Datenplatten sieht. Hänge den Rest wieder an und der Pool sollte sich importieren lassen. :)
 
Hallo Yamagi,

danke für die Antwort, der Pool wurde zuletzt mit 11.1 benutzt und nicht exportiert. Das OS jetzt ist 10.3. geli sagt:

Code:
gpt/da0.eli  ACTIVE  gpt/da0
gpt/da1.eli  ACTIVE  gpt/da1
gpt/da2.eli  ACTIVE  gpt/da2
gpt/da3.eli  ACTIVE  gpt/da3
gpt/da4.eli  ACTIVE  gpt/da4
gpt/da5.eli  ACTIVE  gpt/da5
gpt/da6.eli  ACTIVE  gpt/da6
gpt/da7.eli  ACTIVE  gpt/da7
gpt/da8.eli  ACTIVE  gpt/da8
gpt/da9.eli  ACTIVE  gpt/da9
gpt/da10.eli  ACTIVE  gpt/da10
gpt/da11.eli  ACTIVE  gpt/da11

das bedeutet doch das die Platten sichtbar sein sollten oder verstehe ich das falsch? Das steht in /var/log/message:

Code:
Dec  6 19:36:42 file devd: Executing 'logger -p kern.notice -t ZFS 'vdev state changed, pool_guid=8355690984555760660 vdev_guid=5020199991507460938''
Dec  6 19:36:42 file ZFS: vdev state changed, pool_guid=8355690984555760660 vdev_guid=5020199991507460938

Gruß ré

P.S. der 2. Pool auf dem Rechner (ohne cache) funktioniert
Code:
root@file:/ # zpool status
  pool: backup
 state: ONLINE
  scan: resilvered 4K in 0h0m with 0 errors on Fri Jul 28 19:51:39 2017
config:

   NAME  STATE  READ WRITE CKSUM
   backup  ONLINE  0  0  0
    raidz1-0  ONLINE  0  0  0
    gpt/da8.eli  ONLINE  0  0  0
    gpt/da9.eli  ONLINE  0  0  0
    gpt/da10.eli  ONLINE  0  0  0
    gpt/da11.eli  ONLINE  0  0  0

errors: No known data errors
 
Zuletzt bearbeitet:
Hallo,

Problem gelöst, mein Resize rückgängig gemacht und alles läuft wieder. Aber schon komisch das eine Platte erkannt wird und die anderen 7 nicht?

Zum ursprünglichen Problem, wie kann ich eine OS Partition verkleinern oder das dann nix mehr funktioniert? Ich nutze aktuell 300GB SAS Platten, aber die werden langsam weniger und ich möchte gern auf SSD umstellen, allerdings reichen da ja aich 128GB für das OS. Darum würde ich gern die Partition auf der 300GB Platte verkleinern sodas alles auf die 128GB SSD passt. Aktuellen Bedarf auf der SAS Platte liegt bei 21GB.

Gruß ré
 
Aber schon komisch das eine Platte erkannt wird und die anderen 7 nicht?
Ja, das wundert mich auch. Eine Theorie wäre, dass der Controller die Platten neu nummeriert hat. Das mag ZFS nicht besonders gerne. Da kommt man meist nur mit purer Gewalt raus, also Pool manuell aus dem System kratzen (z.B. durch löschen des Caches in /boot/zfs/ und anschließendem Reboot) und dann wieder importieren.

Verkleinern ist schwierig. Grundsätzlich sieht ZFS erstmal kein Verkleinern von Medien vor. Der sicherste Weg ist einen neuen Pool zu erstellen und per "zfs send" die Daten ausdem alten Pool in den neuen verschieben. Dafür brauchst du aber natürlich mindestens einen freien Slot, eher mehr. Und es geht nicht ausfallfrei.
 
Hallo Yamagi,

die Platten des Zpools werden alle per gpt Label angesprochen um genau den Fall zu vermeiden wenn der Controller Sie umbenennt. Zumal ja geli den Key korrekt zugeordnet hat, dann wurde Sie ja korrekt per gpt benannt.

Das OS liegt auf einer UFS Partition, ich kann natürlich auch alles kopieren aber mit verkleinern wäre mir persönlich lieber. Dann werde ich mal neu Installieren ;-)

Gruß ré
 
Zurück
Oben