[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RAID5 administrieren


Hi,

Am Donnerstag, 24. Juli 2008 00:37 schrieb Werner Holtfreter:
> Am Mittwoch, 23. Juli 2008 22:54:07 schrieb Markus Hochholdinger:
> > Korrekter Weg waere:
> > * Kaputte Platte aus dem aktiven RAID5 nehmen ("mdadm --set-faulty .."
> > und "mdadm --remove ..")
> > * Jetzt hantieren wie Du lustig bist, dd usw. Im Prinzip koenntest Du die
> >   Platte aber auch einfach wieder ins RAID5 integrieren und der Rebuild
> >   schreibt dann eh alles neu ("mdadm --add ..").
> md schreibt wohl nur dann alles neu, wenn der Superblock fehlt, wenn ich
> die Manpage richtig verstanden habe:
> | If an array is using a write-intent bitmap, then devices which have been
> | removed can be re-added in a way that avoids a full reconstruction but
> | instead just updated the blocks that have changed since the device was
> | removed. For arrays with persistent metadata (superblocks) this is done
> | automatically.

Man hat die Moeglichkeit dies zu machen! Wenn man mit set-faulty und remove 
eine Platte entfernt hat, kann man auch noch zur Sicherheit ein 
zero-superblock nachschieben. Aber normalerweise sollte bei einem set-faulty 
die Platte komplett draussen sein. Anders, wenn z.B. eine Platte nur 
einen "Haenger" hat und vom md raisgeworfen wird. Dann hilft das block bitmap 
zu protokollieren was sich alles so auf der Platte haette veraendern sollen. 
Wird nun dieselbe Platte wieder integriert werden nur die Teile neu 
synchronisiert, die sich seit dem Rauswurf veraendert haben. Der Superblock 
ist hierbei eine entscheidende Rolle so ein Szenario zu erkennen.


> > > Die genullte Partition gehoerte zu einem RAID5 aus 3 Partitionen.
> > > Leider klappt die Inbetriebnahme nicht wieder, /dev/sda1 und sdc1
> > > sind nur noch "spare".
> > Wenn du das RAID5 beendet hast ("mdadm --stop") und dann die Platte
> > genullt hast, wissen das die anderen Platten nicht. Bei einem normalen
> > inbetriebnehmen ("mdadm --assemble ..") merkt md dann, dass eigentlich
> > eine Platte fehlt (war das letzte mal ja noch OK) und macht das ganze
> > nicht.
> Verstehe ich richtig: Bei einem Plattenausfall arbeitet das Raid
> unauffaellig weiter - aber nur bis zu einem Reboot?

Nein. Stell Dir das so vor, dass jede Festplatte in ihrem Superblock eine Art 
Status des RAID hat. Wenn eine Festplatte ausfaellt, dann notieren sich das 
die anderen und das RAID kann beim naechsten Reboot auch mit einer fehlenden 
Platte zusammengestellt werden. ALLERDINGS haengt der Erfolg sehr Stark davon 
ab, wie die jeweilige Linux-Distribution das RAID beim Boot zusammenbaut.


> > Fuer die, die es wissen, die koennen mit
> > force "mdadm --assemble /dev/md0 --force .." dem md sagen, dass man schon
> > weiss was man tut. Damit haette dann das RAID5 mit Angabe der zwei
> > verbliebenen Platten wieder inbetrieb genommen werden koennen und mit add
> > haette dann die genullte Platte in das laufende RAID5 wieder aufgenommen
> > werden koennen.
> > Mit der Annahme /dev/sdd1 ist die genullte Platte:
> >  mdadm --assemble /dev/md0 --force /dev/sda1 /dev/sdc1
> > Oder neu erstellen:
> >  mdadm  --create /dev/md0 --level=5 --raid-disks=3 /dev/sda1 /dev/sdc1
> > missing
> Warum werden hierbei die vorhandenen Daten (Superblock) nicht zerstoert?

Ja, das werden sie. Mit dem force sage ich dem md ja, ich weiss schon was ich 
tue. Ich versuche damit das RAID wieder so zusammenzubauen, wie es vorher 
war. Nur eben mit einer fehlenden Platte und ohne Rebuild. Der Superblock ist 
natuerlich nach so einer Aktion ueberschrieben!
Ich hatte hier vergessen, dsas man evtl. verschiedene Kombinationen benutzen 
muss ("/dev/sda1 /dev/sdc1 missing" oder "/dev/sda1 missing /dev/sdc1" 
oder "missing /dev/sda1 /dev/sdc1") bevor man die korrekte Konstellation 
zusammen hat. Den Erfolg testen kann man jeweils wenn man das RAID versucht 
zu mounten.


> Hier muss dann vermutlich folgen: mdadm --add [partition] ?

Wenn es denn wieder funktional ist, dann will man natuerlich auch die Redundanz 
wiederherstellen. Aber erst, wenn man sich sicher ist, dass die Daten OK 
sind. Mit dem add stoesst man naemlich einen Resync an, welcher dann Daten 
ueberschreibt. Alles davor veraendert keine Daten nur den Superblock.


-- 
Gruss
                                                          \|/
       eMHa                                              (o o)
------------------------------------------------------oOO--U--OOo--
 Markus Hochholdinger
 e-mail  mailto:Markus@xxxxxxxxxxxxxxxxx             .oooO
 www     http://www.hochholdinger.net                (   )   Oooo.
------------------------------------------------------\ (----(   )-
                                                       \_)    ) /
                                                             (_/



--
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/