PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Software-Raid 5 rebuild aus 2 Spare Devices



Zondan
06.02.11, 14:17
Hallo,
ich habe ein relativ großes Problem mit meinem Raid5. Letztes Jahr, Anfang November hab ich meinen Raid aus versehen zerstört. Wie das passiert ist, ist nicht wirklich relevant. Es sollte ausreichen wenn ich sage, dass ein lockeres SATA-Kabel vermutlich Mitschuld war.

Zur aktuellen Situation:

Der Raid hat nur noch 1 Aktives und 2 Spare Devices. Mir ist schon klar, dass das zu wenig für Raid5 ist und die Chancen wohl nicht gut stehen es wiederherzustellen. Dennoch will ich noch nicht aufgeben es zu versuchen.

Ich habe von allen 3 Partitionen mittels dd, was 5 Stunden pro Platte gebraucht hat, Backups auf 2TB Festplatten gemacht die ext4 formatiert sind und werde nur mit diesen Backups arbeiten. Das System welches ich benutze ist Debian Squezze. Warum Squezze? Normalerweise bin ich Archlinux User, jedoch wollte ich einfach nur ein halbwegs aktuelles, stabiles System haben wo ich nicht alles selbst einstellen muss damit es funktioniert.

Diese Images habe ich mit losetup eingehängt:



root@backup-server:/media# losetup -a
/dev/loop0: [0801]:12 (/media/backuphd1/raidbackup_unten.img)
/dev/loop1: [0811]:12 (/media/backuphd2/raidbackup_mitte.img)
/dev/loop2: [0831]:12 (/media/backuphd3/raidbackup_oben.img)


So jetzt mal zu dem was ich versucht habe um das Array wieder zum laufen zu bringen:



root@backup-server:/media# mdadm --assemble -v --force /dev/md3 /dev/loop0
mdadm: looking for devices for /dev/md3
mdadm: /dev/loop0 is identified as a member of /dev/md3, slot 3.
mdadm: No suitable drives found for /dev/md3

root@backup-server:/media# mdadm --assemble -v --force /dev/md3 /dev/loop1
mdadm: looking for devices for /dev/md3
mdadm: /dev/loop1 is identified as a member of /dev/md3, slot 0.
mdadm: no uptodate device for slot 1 of /dev/md3
mdadm: no uptodate device for slot 2 of /dev/md3
mdadm: added /dev/loop1 to /dev/md3 as 0
mdadm: /dev/md3 assembled from 1 drive - not enough to start the array.

root@backup-server:/media# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md3 : inactive loop1[0](S)
1463481216 blocks

unused devices: <none>

Wie es aussieht ist /dev/loop1 das funktionierende Device.

Also habe ich versucht die restlichen beiden hinzuzufügen:



root@backup-server:/media# mdadm /dev/md3 -a /dev/loop0
mdadm: re-added /dev/loop0

root@backup-server:/media# mdadm /dev/md3 -a /dev/loop2
mdadm: re-added /dev/loop2

root@backup-server:/media# mdadm --detail /dev/md3
/dev/md3:
Version : 0.90
Creation Time : Thu Nov 19 21:09:37 2009
Raid Level : raid5
Used Dev Size : 1463481216 (1395.68 GiB 1498.60 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 3
Persistence : Superblock is persistent

Update Time : Sun Nov 14 14:12:44 2010
State : active, FAILED, Not Started
Active Devices : 1
Working Devices : 3
Failed Devices : 0
Spare Devices : 2

Layout : left-symmetric
Chunk Size : 64K

UUID : 9665c475:31f17aa2:83a3570a:c5b3b84e
Events : 0.3352467

Number Major Minor RaidDevice State
0 7 1 0 active sync /dev/loop1
1 0 0 1 removed
2 0 0 2 removed

3 7 0 - spare /dev/loop0
4 7 2 - spare /dev/loop2


Die werden leider nur als Spare erkannt und nach einigem hin und her, array auflösen und wieder zusammenfügen, Spares raus und rein habe ich nicht mehr gewusst was ich noch tun kann also wurde es Zeit für etwas das ich schon öfter in Foren gelesen habe aber mir bis jetzt nicht getraut habe:



root@backup-server:/media# mdadm -Cv /dev/md2 -n3 -l5 /dev/loop0 /dev/loop1 /dev/loop2
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: /dev/loop0 appears to be part of a raid array:
level=raid5 devices=3 ctime=Thu Nov 19 21:09:37 2009
mdadm: layout defaults to left-symmetric
mdadm: /dev/loop1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Thu Nov 19 21:09:37 2009
mdadm: layout defaults to left-symmetric
mdadm: /dev/loop2 appears to be part of a raid array:
level=raid5 devices=3 ctime=Thu Nov 19 21:09:37 2009
mdadm: size set to 1463479808K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.

root@backup-server:/media# mdadm -D /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Fri Feb 4 17:05:18 2011
Raid Level : raid5
Array Size : 2926959616 (2791.37 GiB 2997.21 GB)
Used Dev Size : 1463479808 (1395.68 GiB 1498.60 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Fri Feb 4 17:05:18 2011
State : clean, degraded
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Name : backup-server:2 (local to host backup-server)
UUID : c37336d0:9811f9d1:294aa588:a85a5096
Events : 0

Number Major Minor RaidDevice State
0 7 0 0 active sync /dev/loop0
1 7 1 1 active sync /dev/loop1
2 0 0 2 removed

3 7 2 - spare /dev/loop2

root@backup-server:/media# mdadm /dev/md2 -r /dev/loop2
mdadm: hot removed /dev/loop2 from /dev/md2

root@backup-server:/media# mdadm /dev/md2 -a /dev/loop2
mdadm: re-added /dev/loop2
root@backup-server:/media# mdadm -D /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Fri Feb 4 17:05:18 2011
Raid Level : raid5
Array Size : 2926959616 (2791.37 GiB 2997.21 GB)
Used Dev Size : 1463479808 (1395.68 GiB 1498.60 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Fri Feb 4 17:15:25 2011
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Rebuild Status : 0% complete

Name : backup-server:2 (local to host backup-server)
UUID : c37336d0:9811f9d1:294aa588:a85a5096
Events : 6

Number Major Minor RaidDevice State
0 7 0 0 active sync /dev/loop0
1 7 1 1 active sync /dev/loop1
3 7 2 2 spare rebuilding /dev/loop2

root@backup-server:/media# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid5 loop2[3] loop0[0] loop1[1]
2926959616 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[=>...................] recovery = 5.0% (74496424/1463479808) finish=188.7min speed=122624K/sec

unused devices: <none>


Stunden später, die Anzeige lügt...



root@backup-server:/media# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid5 loop2[3] loop0[0] loop1[1]
2926959616 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices: <none>


Das Array läuft jetzt Synchron aber anscheinend wurde durch die create Aktion der ganze Inhalt vom Raid vernichtet.
Normal sollte sich ein LVM drinnen befinden aber pvscan findet nichts.
Deshalb bitte ich jetzt um Rat. Was kann ich noch versuchen? Soll ich das Original wieder einspielen (dauert 5 Stunden pro Platte falls ich es schaffe die Platten perfekt zu wechseln, kann immer nur eine Zusätzliche auf einmal einschließen, dauert es 15 Stunden) oder gibt es sonst etwas, was ich mit dem momentanen Zustand machen kann?

Wäre über JEDEN Vorschlag/ Tipp glücklich, egal wie gering die Chance ist das es funktioniert.

Zondan

JAF
06.02.11, 20:55
du hast noch eine HDD aus dem Raid-5 und 2 Spare?

dann kommst du auf eine daten.
oder ist auf den spare was darauf?

bei einem raid5 ist die einzelne festplatte wertlos.
wie viele festplatten waren es original im raid?

Zondan
06.02.11, 21:38
Danke für die Antwort.
3 Festplatten waren ursprünglich im Raid, 2 davon werden nur noch als Spare erkannt(die WAREN mal normale Teile des Raids) und 1 als Aktiv. siehe 3ter Code im ersten Post.


Nachtrag für den ersten Post:

Mittlerweile habe ich mit Hilfe von "vgcfgrestore" und einer alten Backup Datei die ich auf meinem Hauptrechner gefunden (irgendwann in der Vergangenheit waren die 3 Festplatten wohl bei dem angehängt und deshalb wurde die erstellt) habe ich das LVM wiederhergestellt.

Jedoch werden die darin befindlichen LVs leider nicht als ext4 Partitionen erkannt und kann sie somit leider nicht mounten. Testdisks "PhotoRec" konnte aber einige Dateien wiederherstellen also existieren die Daten noch und das wäre somit eine Notlösung wenn es sonst keine Möglichkeiten mehr gibt(wenn auch keine gute da ich einfach nicht den Speicherplatz hätte um das effektiv durchzuführen).

quinte17
06.02.11, 22:31
mhh, ich hatte vor längerer zeit auch mal ein problem mit dem softwareraid..
stromkabel an 2 festplatten genackelt zu 2 blöden zeitpunkten. beide festplatten flogen damals aus dem raid.

ich konnte damals durch den einfachen befehl


mdadm --assemble --force /dev/md3 /dev/sda1 /dev/sdb1 /dev/sdc1

das raid wieder starten und es war wieder alles da!
vielleicht verhält es sich bei dir gleich.
allerdings musst du neue images von den platten ziehen, da du die alten images ja einem resync unterzogen hast.

Zondan
06.02.11, 23:36
ich konnte damals durch den einfachen befehl


mdadm --assemble --force /dev/md3 /dev/sda1 /dev/sdb1 /dev/sdc1

das raid wieder starten und es war wieder alles da!

Das habe ich leider schon damals, und jetzt natürlich auch wieder, probiert. 2 von 3 Platten werden nur als Spare erkannt. Dennoch werde ich mal das Backup wieder daraufspielen und es nochmal versuchen.

Zondan
10.02.11, 00:48
So Backup ist wieder darübergespielt und ich habe es Probiert:


root@backup-server:/media# mdadm --assemble --force /dev/md2 /dev/loop0 /dev/loop1 /dev/loop2
mdadm: /dev/md2 assembled from 1 drive and 2 spares - not enough to start the array.

root@backup-server:/media# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : inactive loop1[0](S) loop2[4](S) loop0[3](S)
4390443648 blocks

unused devices: <none>

root@backup-server:/media# mdadm -R /dev/md2
mdadm: failed to run array /dev/md2: Input/output error

root@backup-server:/media# mdadm -D /dev/md2
/dev/md2:
Version : 0.90
Creation Time : Thu Nov 19 21:09:37 2009
Raid Level : raid5
Used Dev Size : 1463481216 (1395.68 GiB 1498.60 GB)
Raid Devices : 3
Total Devices : 1
Preferred Minor : 2
Persistence : Superblock is persistent

Update Time : Sun Nov 14 14:12:44 2010
State : active, FAILED, Not Started
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 64K

UUID : 9665c475:31f17aa2:83a3570a:c5b3b84e
Events : 0.3352467

Number Major Minor RaidDevice State
0 7 1 0 active sync /dev/loop1
1 0 0 1 removed
2 0 0 2 removed

root@backup-server:/media# mdadm /dev/md2 -a /dev/loop0
mdadm: re-added /dev/loop0
root@backup-server:/media# mdadm /dev/md2 -a /dev/loop2
mdadm: re-added /dev/loop2
root@backup-server:/media# mdadm -D /dev/md2
/dev/md2:
Version : 0.90
Creation Time : Thu Nov 19 21:09:37 2009
Raid Level : raid5
Used Dev Size : 1463481216 (1395.68 GiB 1498.60 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 2
Persistence : Superblock is persistent

Update Time : Sun Nov 14 14:12:44 2010
State : active, FAILED, Not Started
Active Devices : 1
Working Devices : 3
Failed Devices : 0
Spare Devices : 2

Layout : left-symmetric
Chunk Size : 64K

UUID : 9665c475:31f17aa2:83a3570a:c5b3b84e
Events : 0.3352467

Number Major Minor RaidDevice State
0 7 1 0 active sync /dev/loop1
1 0 0 1 removed
2 0 0 2 removed

3 7 0 - spare /dev/loop0
4 7 2 - spare /dev/loop2



Leider ohne Erfolg :(
Noch jemand Ideen?

quinte17
10.02.11, 09:19
hast du bei der linux-raid maillingliste schonmal nachgefragt? vielleicht können die dir noch helfen.
http://vger.kernel.org/vger-lists.html#linux-raid

Zondan
10.02.11, 11:13
Du bist schon der zweite der mir das vorschlägt. Leider hab ich wirklich keine Ahnung wie Mailinglisten funktionieren. Die Archive hab bereits versucht zu durchsuchen aber 15 Jahre an Nachrichten zu durchsuchen ist nicht wirklich einfach. ;)

quinte17
10.02.11, 14:40
einfach ne email an
linux-raid@vger.kernel.org
schreiben müsste ausreichen (auf englisch logischerweise)

Zondan
10.02.11, 18:23
Ok danke, dann werde ich mal anfangen einen halbwegs lesbaren Text zu schreiben und werde, falls das Problem zu einem Positiven Schluss kommt, hier schreiben wie. Damit Suchmaschinen-Nutzer auch was davon haben. :)

Falls jemanden doch noch etwas Einfällt - nicht zögern.

Zondan
13.02.11, 19:43
Mit Hilfe der Mailingliste hab ich meine Daten wiederhergestellt.



mdadm -Cv /dev/md2 -e 0.90 -c 64 --assume-clean -n3 -l5 /dev/loop0 /dev/loop1 /dev/loop2



Den Wert für -e und -c kriegt man durch "mdadm -E /dev/loop0" wobei die Version -e und "Chunk Size" -c ist.

Sehr wichtig ist noch das die Reihenfolge der Platten die selbe ist wie bei der ursprünglichen Erstellung des Raids. In meinem Fall musste ich loop1 und loop0 tauschen.

Der Rest dürfte selbsterklärend sein.

Anschließend konnte ich mit den LVM tools mein LVM und wiederherstellen. Nachdem ich alle LVs mit e2fsck überprüft habe konnte ich die Partitionen mounten und sehen das alle Daten noch vorhanden sind.

Juhu!

quinte17
14.02.11, 19:48
aus übersichtsgründen verlinke ich hier noch den mailverlauf, da dadurch vielleicht noch mehr informationen ersichtlich werden. (wie zum beispiel wie man die reihenfolge vorab herausbekommt)
http://marc.info/?l=linux-raid&m=129736101603682&w=2

just4uk
14.02.11, 22:08
Gratulation, mal wieder was gelernt!!
Ich hätte nicht gedacht das da noch was geht.

Gruß aus L.E.
Uwe