Festplatte aus Stripe entfernen bzw. ersetzen?

frank.haas

Cadet
Joined
May 21, 2020
Messages
6
Hallo Leute, ich bin vor ein paar Wochen (bisher zufrieden) von Amahi auf FreeNAS umgestiegen. Nachdem ich doch etliche unterschiedliche NAS-HDD's besitze, habe ich für meine "unwichtigen" Daten ein Stripe aus 6 Festplatten gemacht. (meine wichtigen Files sind in einem 2x5 TB Mirror)

Nun ist jedoch eine der 6 HDD's auffällig und meldet 2 defekte Sektoren. Diese Platte würd ich gern austauschen. Von Greyhole war ich es gewohnt, dass man mittels CLI die zu entfernende HDD vom Stripe entfernen kann, die Daten dabei auf die anderen umliegenden Platten umgeschichtet wurden. Wie läuft das bei FreeNAS? Ich hab das noch nicht so ganz durchblickt. Ich hab schon eine weitere Ersatzplatze am Start und könnte diese dem Stripe-Pool hinzufügen. Nur: wie bekomm ich die anfällige HDD vom Stripe raus vor allem, wie werden die Daten auf den Rest umgeschaufelt ...

DANKESCHÖN!

frank
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Ganz einfach: gar nicht. Wenn Du keine Redundanz hast, kannst Du keine Platten ersetzen. Wenn eine Platte aus Deinem Stripe stirbt, sind Deine Daten Toast.

Der oberste Grundsatz in der ZFS-Implementierung ist, dass niemals Daten "umgeschaufelt" werden. Was geschrieben ist, bleibt, wo es ist, bis es durch neuere Daten ersetzt wird.

Du kannst versuchen, den Pool zu exportieren ("abzumelden") und die fehlerhafte Platte low-level mit dd auf Deine neue zu kopieren. Dann die alte entfernen und den Pool neu importieren.
 

frank.haas

Cadet
Joined
May 21, 2020
Messages
6
sh.., das ist ein 30TB-Pool mit meiner Mediathek, deshalb hab ich mich für Stripe entschieden, Mirror wär da völlig überteuert. Das heißt, wenn diese eine Platte eingeht, ist der Pool tot? Das hätt ja mit dem alten Greyhole-System doch besser funktioniert :-( aber das hilft grad nicht bei der Lösung.
An und für sich bin ich mit FreeNAS ja doch sehr zufrieden, läuft astrein, die Jails und VM gefallen mir wirklich super.

Wenn ich im Stripe-Pool (Tank1) bei dieser Platte aufs Sub-Menü " ... " gehe, dann wird mir aber schon der Punkt "replace" angeboten, wozu wär das dann? Was riskier ich, wenn ich die bereits eingebaute (gleich große!) - aber in keinem Pool integrierte neue Platte als Replacement anbiete?

DANKE! ich weiß, ich frag da sicher ziemlich blöd, aber auch wenn die Daten nicht lebenswichtig sind, unnötig verlieren möcht ich diese nun doch nicht :)
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Das UI wird Dir wahrscheinlich sagen, dass das vdev nicht replaced werden kann. Ansonsten nochmal: ein stripe bedeutet, dass einzelne Blocks jeder deiner Dateien über alle Platten verteilt sind. Eine Platte weg --> Daten weg. Deshalb benutzt man kein Stripe, wenn man auf die Daten Wert legt. Maximal für Zwischenergebnisse bei Videoschnitt oder so Zeugs. Da ist heute aber wahrscheinlich eine einzelne SSD besser. Auch ein RAID0 mit einem Hardware-RAID-Controller verliert alles bei Ausfall einer Platte.

Ein RAIDZ1 wäre jetzt nicht so übertrieben gewesen, dann hättest Du eine Platte Redundanz.

 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Moment ... jetzt fällt's mir ein.

Du kannst aus dem Eine-Platte-vdev natürlich einen Mirror mit Deiner neuen Platte machen und danach die sterbende Platte wieder entfernen. Das erfordert aber, dass sie noch lang genug lebt, um die Daten vollständig auf die neue zu spiegeln.

Ich wüsste wie das auf der Kommandozeile geht, hab das aber noch nie im UI probiert. Frag doch mal im Englischsprachigen Teil des Forums.

@Ericloewe kannst Du hier einspringen? Single disk vdev - attach - mirror - resilver - detach ... geht das über das Ui?
 

frank.haas

Cadet
Joined
May 21, 2020
Messages
6
ok, trotzdem vielen dank für deine Bemühungen!
RaidZ1 wird somit das nächste Ziel werden. Stripe war eben aufgelegt, weil die Festplatten völlig unterschiedlich sind: 2x2, 3, 8, 2x10tb)
da müssen wohl mindestens 2x10tb her um den start für ein raidz1 zu bilden damit ich die daten irgendwie hinüberretten kann.
ich versuch in aller ruhe mal den trick mit dd, betroffen ist ja eine 2tb-platte mit 2 defekten sektoren, zpool status -v zeigt mir zum glück an, dass nur 1 file betroffen ist und das wirklich völlig unwichtig ist. aber wo 2 defekte sektoren sind, kommen vermutlich bald mehr. Ich hab hier noch eine weitere 2tb-platte, mit der kann ich dd leicht probieren.

vielleicht aber noch eine frage, die mich etwas beruhige könnte: wie erkennt freenas die zusammensetzung eines pools? aufgrund der festplatten seriennummer oder ist die pool-zugehörigkeit irgendwo auf den einzelnen laufwerken gespeichert?
ich kann zwar englisch auf abi-niveau (doch schon ein paar jahre her) aber die doku ist mit den zfs-begriffen wie scrubben, resilver, export nicht ganz so logisch für mich.

nochmals: DANKE!
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Die ist auf den Festplatten gespeichert. Wenn Du die mit dd rüber bügelst, ist die neue aus ZFS Sicht identisch. Deshalb Pool vorher exportieren, dann dd, dann die kaputte rausziehen. Dann Pool importieren.
RAIDZ1 wird für 10 TB Platten auch nicht mehr wirklich empfohlen. Die Wahrscheinlichkeit, dass Dir während eines Resilver (ZFS Speak für die Wiederherstellung der Redundanz) eine weitere Platte aussteigt, geht mit zunehmender Plattengröße gegen 1 ;)
Dass RAID5 deshalb de facto tot ist, hat man vor 10 Jahren schon gebloggt. RAIDZ1 ist mehr oder weniger äquivalent.

Was dachtest Du denn, was passiert, wenn eine Platte kaputt geht?
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
P.S. Klar ist die spezifische ZFS-Terminologie zunächst verwirrend, Deshalb hatte ich oben den ZFS Primer verlinkt ;)
 

frank.haas

Cadet
Joined
May 21, 2020
Messages
6
also - ich möchte kurz berichten, mit DD hatte ich zu wenig Geduld, nachdem ich nicht abschätzen konnte wie lange die 2TB kopieren und mit DD keine Statusanzeige aufscheint hab ich den Pool exportiert, die HDD ausgebaut und am Windows-PC mit AOMEI auf eine andere Platte mit 2TB geklont (Sektorkopie). Hat rund 20 Stunden gedauert, da hätt ich vor lauter Ungeduld bei DD sicher schon abgebrochen :smile:
Die geklonte Platte wieder eingebaut, Pool importiert und das Teil läuft wieder.
Danke für die Hilfe, vor allem für die Geduld mit mir :)
SG
Frank
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Ctrl-T in dem Fenster, in dem das dd läuft und Du kriegst einen Status.
killall -INFO dd in einem anderen Fenster und Du kriegst einen Status.

Schön, dass es geklappt hat.
 
Top