Forum: PC Hard- und Software Linux Software-Raid5: Rebuild ohne "kritische Phase"


von Raid (Gast)


Lesenswert?

Hallo Zusammen,

Ich hab hier ein Software-Raid5 auf vier Platten.
Eine der Platten haucht wohl bald ihr Leben aus, SMART meckert wegen 
mehr und mehr defekten Sektoren.

Backups der wichtigen Daten auf dem Raid sind vorhanden, ein 
zeitaufwändiges Restore möchte ich dennoch vermeiden.

Klar, die kranke Platte gehört ersetzt.

Google findet hier haufenweise HowTos, aber alle nach dem Schema:

Alte Platte als "failed" markieren.
Rausnehmen.
Neue Platte einbauen.
Rebuild.

Bzw, bei genug Anschlüssen:
Neue Platte einbauen.
Als Spare hinzufügen.
Alte Platte als "failed" markieren.
Rebuild.

Beide haben das Risiko: Während des Rebuilds ist das RAID degraded, ein 
weitere Plattenausfall ==> Raid futsch.

Und weil zwei der drei verbleibenden Platten aus derselben Serie wie die 
kranke kommen, und so ein Rebuild doch einigen Stress auf die Platten 
bringt: das Risiko ist mMn nicht vernachlässigbar.

So, viel Text, nun die Frage:

Geht das anders?
Neue Platte sozusagen als Mirror der kranken in den Raid-verbund, kann 
im nicht-degradetem Zustand vollgeschrieben werden, dann die andere 
Raus?

Das device-mapper Framework im Kernel müsste solche "schrägen" 
Raid-Strukturen hergeben, aber kriegt man das irgendwie vom userspace 
aus eingestellt? mdadm scheint jedenfalls nichts in der Richtung zu 
unterstützen.

Danke!

von (prx) A. K. (prx)


Lesenswert?

Raid schrieb:
> Geht das anders?

Du hast doch bestimmt einen Backup. RAID ersetzt keinen Backup.

von Fifal (Gast)


Lesenswert?

pvmove sollte dein Freund werden, in Zukunft Raid6 statt Raid5 wählen.

von Elektro, J. (elektrojunge)


Lesenswert?

Vielleicht würde ja ein Umweg über ein RAID 6 funktionieren:

Einbauen
Upgrade & Rebuild
Downgrade und hierbei defekte Platte entfernen

von A. H. (ah8)


Lesenswert?

Da Du Backups hast bist Du doch auf der sicheren Seite. Das noch eine 
zweite Platte ausgerechnet während des Rebuild den Geist aufgibt ist 
zwar möglich, aber eher unwahrscheinlich, erst recht, wenn sie noch 
keine Fehler meldet. (In 10 Jahren Berufserfahrung bei der Betreuung von 
einigen 1000 Servern ist mir das nicht ein einziges Mal passiert.) 
Sollte es doch passieren musst Du halt in den sauren Apfel beißen und 
restoren. Wenn Du Dir unsicher bist mache lieber noch ein weiteres 
Backup.

Solltest Du auf Raid6 umsteigen wollen würde ich in jedem Fall erst die 
defekte Platte ersetzen, eventuell auch die, die Dir nicht mehr ganz 
geheuer sind, vorausgesetzt, die melden Fehler. Beim Umbau müssen 
nämlich alle Platten angefasst werden, nicht nur die neue, und es werden 
dabei keinesfalls weniger Daten bewegt als bei einem Rebuild, sondern 
mehr. Entsprechend höher ist das Risiko. Auch haben neue Platten ein 
höheres Ausfallrisiko als solche, die schon einige Zeit in Betrieb sind, 
also nach dem Ersetzen defekter Platen erst einige Zeit warten, bevor 
man den Umbau in Angriff nimmt.

von Εrnst B. (ernst)


Lesenswert?

Hab vor langer Zeit so eine Funktion in einem Hardware-Raid gesehen.

Da konnte man (Menügeführt über Serielles Kabel) für den geplanten 
Plattenaustausch die Spare-Platte mit einer laufenden "Platz tauschen 
lassen".
Einen Tag später waren dann die Daten umgeschaufelt, und man konnte die 
(neue) Spare-Disk entnehmen.
Ich gehe davon aus, dass dieses Umkopieren soweit "Sicher" implementiert 
war, das auch währenddessen eine (beliebige) Platte ausfallen durfte.

Für mdadm kenn ich so eine Funktion jedoch nicht.

von Georg (Gast)


Lesenswert?

Hallo,

im Prinzip könntest du die fast defekte Platte herausnehmen und extern 
mit einem Imager duplizieren - aber nur wenn du den Server solange 
ausschalten kannst. Oder du riskierst es, ihn solange mit einer Platte 
weniger laufen zu lassen, aber das ist ja das Risiko das du vermeiden 
wolltest.

Georg

von Olga (Gast)


Lesenswert?

Georg schrieb:
> aber nur wenn du den Server solange
> ausschalten kannst.

Das wird wohl nicht möglich sein. Denn der einzige Grund für ein Raid 
ist ja gerade der unterbrechungsfreie Betrieb. Wenn es darauf nicht 
ankäme, könnte er ja einfach ein Rebuild machen, und für den 
unwahrscheinlichen Fall eines Doppelversagens einfach das Backup wieder 
einspielen.

von Axel S. (a-za-z0-9)


Lesenswert?

Raid schrieb:

> Ich hab hier ein Software-Raid5 auf vier Platten.
> Eine der Platten haucht wohl bald ihr Leben aus, SMART meckert wegen
> mehr und mehr defekten Sektoren.
...
> Beide haben das Risiko: Während des Rebuilds ist das RAID degraded, ein
> weitere Plattenausfall ==> Raid futsch.
>
> Und weil zwei der drei verbleibenden Platten aus derselben Serie wie die
> kranke kommen, und so ein Rebuild doch einigen Stress auf die Platten
> bringt: das Risiko ist mMn nicht vernachlässigbar.

> Geht das anders?

Jein.

Zuerst mal: dieses Risiko ist nicht neu. Aus genau diesem Grund wird bei 
großen Arrays (wo die Zeitdauer, in der das RAID5 während des Rebuild 
degraded ist, eine signifikante Länge aufweist) statt dessen RAID6 
empfohlen.

Was du machen kannst:

1. das Array offline nehmen oder doch zumindest read-only machen. Die 
kranke Platte auf die neue Platte klonen. Array stoppen, kranke Platte 
entfernen und das Array mit den verbleibenden Platten wieder starten.

2. die neue Platte hinzufügen und das RAID5 auf RAID6 umkonfigurieren. 
Sobald das fertig ist, kann die kranke Platte als failed deklariert 
werden. Das RAID6 läuft dann degraded (mit verminderter Redundanz) 
weiter.

Variante 1 funktioniert so nur, wenn du die kranke Platte noch 
komplett(!) auslesen kannst. Variante 2 dauert länger als ein RAID5 
Rebuild und benötigt temporär zusätzlichen Plattenplatz (Manual lesen). 
Außerdem läßt Variante 2 ein RAID6 mit verminderter Performance zurück. 
Es wäre dann höchst empfehlenswert, eine weitere Platte dazu zu stecken 
und in Zukunft ein komplettes RAID6 zu fahren.

Da du aber ein Backup hast, würde ich es einfach darauf ankommen lassen 
und ein normales Rebuild versuchen. Hat bei mir schon einige Male 
funktioniert. Anfangs mußte ich das RAID sogar einige Tage degraded 
lassen, weil ich keine Ersatzplatte im Haus hatte. Mittlerweile habe ich 
eine Spare-Platte permanent im System stecken.

Irgendwann mal will ich das auf RAID6 migrieren. Vielleicht warte ich 
aber auch noch, bis ich die Hardware komplett ersetze und setze dann ein 
frisches RAID6 auf.


XL

von Fifal (Gast)


Lesenswert?

Georg schrieb:
> Hallo,
>
> im Prinzip könntest du die fast defekte Platte herausnehmen und extern
> mit einem Imager duplizieren - aber nur wenn du den Server solange
> ausschalten kannst. Oder du riskierst es, ihn solange mit einer Platte
> weniger laufen zu lassen, aber das ist ja das Risiko das du vermeiden
> wolltest.
>
> Georg

pvmove macht das online und atomar.

von Raid (Gast)


Lesenswert?

Vielen Dank für die Antworten!

A. K. schrieb:
> Du hast doch bestimmt einen Backup. RAID ersetzt keinen Backup.

Ja, hab ich extra im Eröffnungs-Post geschrieben.

Fifal schrieb:
> pvmove sollte dein Freund werden

Fifal schrieb:
> pvmove macht das online und atomar

Geht in dem Fall leider nicht.
Setup ist 4 Platten -> Raid5 -> LVM
d.h. /dev/md0 ist mein PV. Damit pvmove hilft, bräuchte ich ein zweites 
Raid mit mindestens selber Größe, um ganz /dev/md0 zu ersetzen.

Fifal schrieb:
> in Zukunft Raid6 statt Raid5 wählen.

Elektro, Junge! schrieb:
> Vielleicht würde ja ein Umweg über ein RAID 6 funktionieren:

Sind leider nur 4 Plattenslots vorhanden. Temporär könnte ich da mit 
fliegend verkabelter Platte, USB-HDD oder NBD arbeiten, aber nicht als 
Dauerlösung. RAID6 wäre anschließend auch zu klein.

Georg schrieb:
> im Prinzip könntest du die fast defekte Platte herausnehmen und extern
> mit einem Imager duplizieren

Wäre eine Option, aber: Die Platte meldet mehrere 
"CurrentPendingSectors" und einen "OfflineUncorrectableSector". Das 
Image würde also nicht 100% OK sein.

Εrnst B✶ schrieb:
> Hab vor langer Zeit so eine Funktion in einem Hardware-Raid gesehen.

Bin also nicht der Einzige, der an so ein Szenario gedacht hat :)


Axel Schwenke schrieb:
> Da du aber ein Backup hast, würde ich es einfach darauf ankommen lassen
> und ein normales Rebuild versuchen.

A. H. schrieb:
> In 10 Jahren Berufserfahrung bei der Betreuung von
> einigen 1000 Servern ist mir das nicht ein einziges Mal passiert.

Ok, also geh ich den "Normalen Weg" mit "mdadm --fail" und rebuild.

Besten Dank nochmal!

von Quack (Gast)


Lesenswert?

A. K. schrieb:
> Du hast doch bestimmt einen Backup. RAID ersetzt keinen Backup.

Hat auch niemand behauptet. Macht das irgendwie besonders stolz, 
unreflektiert und voellig unpassend coole Netzsprueche zu zitieren?

Jeder, der schonmal wirklich ein xTera-System restoren musste, weiss, 
dass es sich lohnt das zu vermeiden. Und nichts Anderes will der TO - 
das Risiko eines noetigen Neuaufbaus und Restores vermeiden.

von Georg (Gast)


Lesenswert?

Raid schrieb:
> Wäre eine Option, aber: Die Platte meldet mehrere
> "CurrentPendingSectors" und einen "OfflineUncorrectableSector". Das
> Image würde also nicht 100% OK sein.

Nicht unmittelbar, aber dann hast du eine technisch einwandfreie Platte, 
vielleicht lassen sich dann die Fehler beheben oder verschwinden von 
selbst.

Aber der von der Software vorgesehene Weg ist, nach einem 
Sicherheitsbackup, wohl der beste.

Georg

von Fifal (Gast)


Lesenswert?

Raid schrieb:
> Fifal schrieb:
>> pvmove sollte dein Freund werden
>
> Fifal schrieb:
>> pvmove macht das online und atomar
>
> Geht in dem Fall leider nicht.
> Setup ist 4 Platten -> Raid5 -> LVM
> d.h. /dev/md0 ist mein PV. Damit pvmove hilft, bräuchte ich ein zweites
> Raid mit mindestens selber Größe, um ganz /dev/md0 zu ersetzen.

Die Raid-Member sind also nicht unter lvm Kontrolle?

Was spuckt denn "pvs" und "fdisk -l" aus?

von nighty2k (Gast)


Lesenswert?

Schon mal was von google gehört ?
Die Suche hat exakt 1 Minute gedauert....
Wie lange hast du gebraucht um deinen Beitrag zu tippen?

http://unix.stackexchange.com/questions/74924/how-to-safely-replace-a-not-yet-failed-disk-in-a-linux-raid5-array

Im untersten Beitrag findest du zwei Varianten für mdadm < 3.3 <

Und man sieht, die Entwickler haben auch genau an deinen Fall und deine 
Wünsche gedacht .....

von Raid (Gast)


Lesenswert?

nighty2k schrieb:
> Im untersten Beitrag findest du zwei Varianten für mdadm < 3.3 <

Wow. Danke!
Ich hab mich durch zwei Seiten Google-Hits geklickt, die alle nur das 
übliche "degrade -> rebuild"-Prozedere vorgeschlagen haben.
Und ja: Ich habe länger gesucht als das Tippen des Eröffnungs-Posts 
gebraucht hat.

meine mdadm-Version ist 3.2.6 (Oktober 2012) deshalb waren dessen 
Manpages auch keine Hilfe.

Kernel-Version müsste jedoch passen, und mdadm ist ja schnell 
aktualisiert.

Also:

# mdadm /dev/md0 --replace /dev/bald-kaputt --with /dev/neu-und-gut

:)

von Raid (Gast)


Lesenswert?

Fifal schrieb:
> Die Raid-Member sind also nicht unter lvm Kontrolle?

Nein. Raid-Member sind direkt die Platten-Partitionen.
Das Raid-Device md0 ist dann ein LVM-PV.

> Was spuckt denn "pvs" und "fdisk -l" aus?

PV /dev/md0
und vier Platten mit Typ 0xFD "Raid Autodetect" Partitionen.

Macht man das sonst wirklich anders herum? Also erst die Einzel-Platten 
als PVs und dann ein Raid über LVs aus dem LVM?
Zum Vergrößern einer Parition müsste man dann erstmal vier LVs 
vergrößern und dann das Raid?
Oder packt man eine zweite LVM-Schicht hinter das Raid aus LVM-LVs?
Kommt mir unnötig komplex vor.

von A. H. (ah8)


Lesenswert?

Wenn Du einen LVM hast und vielleicht sogar ohnehin planst, drei Deiner 
vier Platten zu ersetzen (klang ein wenig danach), dann würde ich Dir 
doch empfehlen, etwas größere Platten zu kaufen und im LVM auf RAID1 zu 
gehen. Das spart die eine komplette Software-Schicht, macht das ganze 
System einfacher, weniger fehleranfällig, wahrscheinlich auch 
performanter und im LVM hättest Du kein Probleme, im Fehlerfall eine 
dritte Platte in den Spiegel zu nehmen, bevor Du die angeschlagene 
heraus nimmst. Mit etwas Geschick könntest Du die ganze Migration sogar 
Online hinkriegen. Vier Platten im RAID6 würden ohnehin wenig Sinn 
machen. (OK, theoretisch können dann zwei beliebige Platten gleichzeitig 
ausfallen, aber der kleine Vorteil kostet nicht unerheblich 
Performance.)

von Icke ®. (49636b65)


Lesenswert?

A. H. schrieb:
> dann würde ich Dir
> doch empfehlen, etwas größere Platten zu kaufen und im LVM auf RAID1 zu
> gehen. Das spart die eine komplette Software-Schicht, macht das ganze
> System einfacher, weniger fehleranfällig, wahrscheinlich auch
> performanter

Dito. Siehe auch:

http://www.baarf.com/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.