Linux sw-raid recover Raid5 (spare is geen spare)

Pagina: 1
Acties:

  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Topicstarter
Gisteren rebootte mijn systeem een paar keer en floeps raid5 array offline.

Geen probleem zou je zeggen, maar het waren 2 van de 3 disks. Nu google ik al heel de dag om een oplossing te vinden om een deel van mijn data te recupureren.

Het gaat over een array /dev/md0
raiddev /dev/md0
raid-level 5
nr-raid-disks 3
nr-spare-disks 0
persistent-superblock 1
parity-algorithm left-symmetric
chunk-size 32
device /dev/hde1
raid-disk 0
device /dev/hdf1
raid-disk 1
device /dev/hdh1
raid-disk 2
Ik gebruik wel type fd auto detect dus.
root@tigger:/tmp/mdctl-0.5# mdadm --examine /dev/hde1
/dev/hde1:
Magic : a92b4efc
Version : 00.90.01
UUID : 6644de41:0e38ffb1:e5f77c38:825553ae
Creation Time : Tue May 31 21:24:31 2005
Raid Level : raid5
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0

Update Time : Thu Dec 29 11:33:33 2005
State : clean
Active Devices : 1
Working Devices : 3
Failed Devices : 2
Spare Devices : 2
Checksum : 1ed2c2c5 - correct
Events : 0.75536395

Layout : left-symmetric
Chunk Size : 32K

Number Major Minor RaidDevice State
this 3 33 1 3 spare /dev/hde1

0 0 33 65 0 active sync /dev/hdf1
1 1 0 0 1 faulty removed
2 2 0 0 2 faulty removed
3 3 33 1 3 spare /dev/hde1
4 4 34 65 4 spare /dev/hdh1
root@tigger:/tmp/mdctl-0.5# mdadm --examine /dev/hdf1
/dev/hdf1:
Magic : a92b4efc
Version : 00.90.01
UUID : 6644de41:0e38ffb1:e5f77c38:825553ae
Creation Time : Tue May 31 21:24:31 2005
Raid Level : raid5
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0

Update Time : Thu Dec 29 11:33:33 2005
State : clean
Active Devices : 1
Working Devices : 3
Failed Devices : 2
Spare Devices : 2
Checksum : 1ed2c301 - correct
Events : 0.75536395

Layout : left-symmetric
Chunk Size : 32K

Number Major Minor RaidDevice State
this 0 33 65 0 active sync /dev/hdf1

0 0 33 65 0 active sync /dev/hdf1
1 1 0 0 1 faulty removed
2 2 0 0 2 faulty removed
3 3 33 1 1 spare /dev/hde1
4 4 34 65 2 spare /dev/hdh1
root@tigger:/tmp/mdctl-0.5# mdadm --examine /dev/hdh1
/dev/hdh1:
Magic : a92b4efc
Version : 00.90.01
UUID : 6644de41:0e38ffb1:e5f77c38:825553ae
Creation Time : Tue May 31 21:24:31 2005
Raid Level : raid5
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0

Update Time : Thu Dec 29 11:33:33 2005
State : clean
Active Devices : 1
Working Devices : 3
Failed Devices : 2
Spare Devices : 2
Checksum : 1ed2c308 - correct
Events : 0.75536395

Layout : left-symmetric
Chunk Size : 32K

Number Major Minor RaidDevice State
this 4 34 65 4 spare /dev/hdh1

0 0 33 65 0 active sync /dev/hdf1
1 1 0 0 1 faulty removed
2 2 0 0 2 faulty removed
3 3 33 1 3 spare /dev/hde1
4 4 34 65 4 spare /dev/hdh1
root@tigger:/tmp/mdctl-0.5#
Iemand enig idee om een van de 2 disks terug in de array te krijgen.

Het zou een grote hulp zijn.

Hi ziet de disks dus als spares ipv deel van de array.

[edit]
root@tigger:/tmp/mdctl-0.5# mdadm --create /dev/md0 -l5 -n3 /dev/hde1 /dev/hdf1 /dev/hdh1
mdadm: /dev/hde1 appears to be part of a raid array:
level=5 devices=3 ctime=Tue May 31 21:24:31 2005
mdadm: /dev/hdf1 appears to contain an ext2fs file system
size=320159104K mtime=Thu Dec 29 09:51:49 2005
mdadm: /dev/hdf1 appears to be part of a raid array:
level=5 devices=3 ctime=Tue May 31 21:24:31 2005
mdadm: /dev/hdh1 appears to contain an ext2fs file system
size=341131652K mtime=Mon Dec 20 21:49:29 1971
mdadm: /dev/hdh1 appears to be part of a raid array:
level=5 devices=3 ctime=Tue May 31 21:24:31 2005
Continue creating array? n
mdadm: create aborted.
root@tigger:/tmp/mdctl-0.5#

Die dingen op 31 may tonen aan dat er nog degelijk een stuk van de info is (en dus nog 2 disks ok wat voldoende zou moeten zijn.)

[ Voor 11% gewijzigd door Tomsworld op 29-12-2005 17:08 ]

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Topicstarter
Wat ik ook probeer hij blijft erbij :(

mdadm: /dev/md0 assembled from 1 drive and 2 spares - not enough to start the array.


Niemand nog een idee tip ?

[edit]

Ik lees op verschillende plaatsen dat deze info uit een md superblock komt is het mogelijk dit te negeren, wijzigen ?

[ Voor 30% gewijzigd door Tomsworld op 30-12-2005 12:02 ]

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Topicstarter
Ik heb ondertussen hdf1 losgekoppeld omdat die de foute info lijkt te hebben.
root@tigger:~/mdctl-0.6# ./mdctl --assemble /dev/md0 /dev/hde1 /dev/hdh1 mdctl: device 3 in /dev/md0 is marked faulty in superblock, but /dev/hde1 seems ok
mdctl: device 4 in /dev/md0 is marked faulty in superblock, but /dev/hdh1 seems ok
mdctl: /dev/md0 assembled from 0 drives - not enough to start it (use --run to insist).
root@tigger:~/mdctl-0.6#
hoe forceer ik nu het negeren ?

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • HunterPro
  • Registratie: Juni 2001
  • Niet online
is het niet mogelijk om met de 'hand' middels het gebruikte algoritme met 2 disken weer een correcte disk-image eruit te krijgen? Kost even tijd en diskspace, en is natuurlijk niet de bedoeling, maar is het mogelijk? Of is dat enorm hogere wiskunde ;)

  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 23-12-2025
Zoals de foutmelding zegt: use --run to insist

Dus als je het wil forceren (een raid array starten zonder alle disken) doe je dat, dit gaat wel enorm cpu resources vreten dus ik raad je aan toch een nieuwe disk bij de hand te houden. Wat is er precies gebeurd (is er een van je schijven kapot, zitten ze op dezelfde bus?).

[ Voor 27% gewijzigd door Guru Evi op 01-01-2006 04:03 ]

Pandora FMS - Open Source Monitoring - pandorafms.org


  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Topicstarter
Guru Evi schreef op zondag 01 januari 2006 @ 04:01:
Zoals de foutmelding zegt: use --run to insist

Dus als je het wil forceren (een raid array starten zonder alle disken) doe je dat, dit gaat wel enorm cpu resources vreten dus ik raad je aan toch een nieuwe disk bij de hand te houden. Wat is er precies gebeurd (is er een van je schijven kapot, zitten ze op dezelfde bus?).
Ga ik er met run komen ? Volgens mij gaat hij die andere als spares blijven zien dan ben ik er niks mee. Disks zijn ok volgens mij, kabels heb ik vervangen ondertussen disks waren / zijn koel.
Wat er gebeurd is is dat de stroom hier verschillende keren uitgeknald is op zeer korte tijd, dat is mijn vermoeden want ik zat op mijn werk.

Ik ben tevreden als de boel een paar uurtjes opkomt gewoon genoeg om een move te doen. Naar mijn desktop.

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • DDX
  • Registratie: April 2001
  • Laatst online: 22:40

DDX

de info die jij post :

/dev/hde1 Update Time : Thu Dec 29 11:33:33 2005
/dev/hdf1 Update Time : Thu Dec 29 11:33:33 2005
/dev/hdh1 Update Time : Thu Dec 29 11:33:33 2005

je moet dus echt 100% zeker zien te achterhalen welke disk er wanneer is uitgeklapt

je kan nml altijd 'mdadm -A /dev/md0 /dev/hde1 /dev/hdf1 -f' doen
(-f van force)
alleen als dan blijkt dat je dit doet met de disk die niet helemaal lekker is, is er niet echt een weg terug

(of als je de ruimte hebt dd images maken van je hd's natuurlijk)

wat voor controller gaat het om trouwens, gebruik je master/slave opstelling voor raid5 (zoiezo af te raden) dan kan het zijn dan de 2 disks zijn gefailed ivm ide kanaal wat wegviel (en 1 disk overbleef, maargoed dan had die een andere update tijd moeten hebben??)

https://www.strava.com/athletes/2323035


  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Topicstarter
DDX schreef op zondag 01 januari 2006 @ 13:54:
de info die jij post :

/dev/hde1 Update Time : Thu Dec 29 11:33:33 2005
/dev/hdf1 Update Time : Thu Dec 29 11:33:33 2005
/dev/hdh1 Update Time : Thu Dec 29 11:33:33 2005

je moet dus echt 100% zeker zien te achterhalen welke disk er wanneer is uitgeklapt
Dat wordt moeilijk
je kan nml altijd 'mdadm -A /dev/md0 /dev/hde1 /dev/hdf1 -f' doen
(-f van force)
alleen als dan blijkt dat je dit doet met de disk die niet helemaal lekker is, is er niet echt een weg terug

(of als je de ruimte hebt dd images maken van je hd's natuurlijk)
Ruimte tsja das wel een probleem. Ik ga nog es de smart toestanden uitlveren.
wat voor controller gaat het om trouwens, gebruik je master/slave opstelling voor raid5 (zoiezo af te raden) dan kan het zijn dan de 2 disks zijn gefailed ivm ide kanaal wat wegviel (en 1 disk overbleef, maargoed dan had die een andere update tijd moeten hebben??)
Ik moet ff nakijken een CMD-649 domme ata-100 of 133 controller. Ja ik gebruikte master / slave wegens gebrek aan ruimte in de oude situatie (heel dom dat weet ik nu wel).

Ik heb da kabels al gecontroleerd. Het probleem is ook dat er een deel logs gepurged zijn omwille van de / die vol stond.

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • DDX
  • Registratie: April 2001
  • Laatst online: 22:40

DDX

tja als je het echt niet kan achterhalen zit er niets anders op dan de gok nemen en met 2 disken mdadm -A -f te doen....

zoeizo vreemd dat de update tijd op de 3 disken gelijk zijn
en dat ze alle 3 weten dat er 2 disken offline zijn (als ik een failed disk heb dan weet die failed disk niet dat hij failed is)

tja anders kan ik je alleen als tip geven om naar de linux-raid mailinglist te mailen
misschien dat iemand je daar nog tips kan geven hoe te achterhalen welke disken je het best samen kan proberen...

https://www.strava.com/athletes/2323035


  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Topicstarter
DDX schreef op zondag 01 januari 2006 @ 15:59:
tja als je het echt niet kan achterhalen zit er niets anders op dan de gok nemen en met 2 disken mdadm -A -f te doen....

zoeizo vreemd dat de update tijd op de 3 disken gelijk zijn
en dat ze alle 3 weten dat er 2 disken offline zijn (als ik een failed disk heb dan weet die failed disk niet dat hij failed is)

tja anders kan ik je alleen als tip geven om naar de linux-raid mailinglist te mailen
misschien dat iemand je daar nog tips kan geven hoe te achterhalen welke disken je het best samen kan proberen...
Dat van de list heb ik gisteren gedaan, toch bedankt voor de tip.

Het vervelende is wel dat als je kijkt hij ze als SPARE ziet dus ze terug in de array duwen wou niet. Maar ik ga toch nog eens aan de slag met wat dingen uit te lezen. En te proberen.

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • DDX
  • Registratie: April 2001
  • Laatst online: 22:40

DDX

je kan ook nog mdadm de raid opnieuw laten maken
moet je alleen exact de settings overnemen zoals je nu ook hebt (zoals chunksize)

je overschijft dan alleen de raidsettings op de hd's

maargoed bij zulk soort stappen eerst 10 keer nadenken voordat je echt -force doet ;)

https://www.strava.com/athletes/2323035


  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Topicstarter
DDX schreef op zondag 01 januari 2006 @ 16:26:
je kan ook nog mdadm de raid opnieuw laten maken
moet je alleen exact de settings overnemen zoals je nu ook hebt (zoals chunksize)

je overschijft dan alleen de raidsettings op de hd's

maargoed bij zulk soort stappen eerst 10 keer nadenken voordat je echt -force doet ;)
Daar dacht ik aan als ultieme oplossing maar, hoe doe je het zonder dat hij gaat rebuilden ? Ik heb opties gezien met missing disk enzo maar niet echt duidelijk.

Ik ben nu alles ff aan nieuwe ide kabels aan het hangen.
md: Autodetecting RAID arrays.
usb 1-1: default language 0x0409
usb 1-1: Product: DeskJet 970C
usb 1-1: Manufacturer: Hewlett-Packard
usb 1-1: SerialNumber: ES02L140Q7JQ
usb 1-1: adding 1-1:1.0 (config #1, interface 0)
uhci_hcd 0000:00:07.2: port 2 portsc 018a,00
hub 1-0:1.0: port 2, status 0300, change 0003, 1.5 Mb/s
md: autorun ...
md: considering hdh1 ...
md: adding hdh1 ...
md: adding hdf1 ...
md: adding hde1 ...
md: created md0
md: bind<hde1>
md: bind<hdf1>
md: bind<hdh1>
md: running: <hdh1><hdf1><hde1>
raid5: device hdf1 operational as raid disk 0
raid5: not enough operational devices for md0 (2/3 failed)
RAID5 conf printout:
--- rd:3 wd:1 fd:2
disk 0, o:1, dev:hdf1
raid5: failed to run raid set md0
md: pers->run() failed ...
md: do_md_run() returned -22
md: md0 stopped.
md: unbind<hdh1>
md: export_rdev(hdh1)
md: unbind<hdf1>
md: export_rdev(hdf1)
md: unbind<hde1>
md: export_rdev(hde1)
md: ... autorun DONE.
Nog niet veel beterschap dus :(

edit:

root@tigger:/home/tom# mdadm -A /dev/md0 /dev/hde1 /dev/hdf1
mdadm: /dev/md0 assembled from 1 drive and 1 spare - not enough to start the array.
root@tigger:/home/tom# mdadm -A /dev/md0 /dev/hdh1 /dev/hdf1
mdadm: /dev/md0 assembled from 1 drive and 1 spare - not enough to start the array.
root@tigger:/home/tom# mdadm -A /dev/md0 /dev/hdh1 /dev/hde1
mdadm: No suitable drives found for /dev/md0



Als ik force zou doen gaat de status dan veranderen van spare terug naar member ?

[ Voor 99% gewijzigd door Tomsworld op 01-01-2006 16:47 ]

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • HunterPro
  • Registratie: Juni 2001
  • Niet online
kun je zoiets readonly doen zodat je iig de disks en daarmee de info erop niet beschadigt als je em per ongeluk met de corrupte disk in een array knikkert? of kun je iig de huidige disks naar image dumpen middels dd? :)

[ Voor 18% gewijzigd door HunterPro op 02-01-2006 03:52 ]


  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Topicstarter
En een heel klein beetje vordering.
no fs: mdadm -C /dev/md0 -c 32 -l 5 -n 3 /dev/hdf1 /dev/hde1 missing --force --run

unmountable

fs: mdadm -C /dev/md0 -c 32 -l 5 -n 3 /dev/hdf1 missing /dev/hdh1 --force --run

error tijdens copy

fs: mdadm -C /dev/md0 -c 32 -l 5 -n 3 missing /dev/hde1 /dev/hdh1 --force --run

error tijdens copy
Ik heb proberen mounten telkens met een missing disk om rebuild uit te stellen, bij optie 2 en 3 heb ik data, ik kan de disk mouten maar sommige copy's lukken, andere niet.

Wat ik wil zijn 2 grote files:

1 tje van 170 GB
1 tje van 5 GB

De grootste is het belangrijkst.

Ik zit nu met situatie 3 als ik een e2fsck simuleer krijg ik massa error's (het laatste stuk hieronder):
Suppress messages? no

Illegal block #39845865 (3119126256) in inode 35323908. IGNORED.
Illegal block #39845867 (431804821) in inode 35323908. IGNORED.
Illegal block #39845868 (2142078216) in inode 35323908. IGNORED.
Illegal block #39845869 (3885554910) in inode 35323908. IGNORED.
Illegal block #39845870 (2730268430) in inode 35323908. IGNORED.
Illegal block #39845871 (1904764182) in inode 35323908. IGNORED.
Illegal block #39845872 (1034193638) in inode 35323908. IGNORED.
Illegal block #39845873 (644694830) in inode 35323908. IGNORED.
Illegal block #39845874 (1093045600) in inode 35323908. IGNORED.
Illegal block #39845875 (2151618905) in inode 35323908. IGNORED.
Illegal block #39845876 (1880251150) in inode 35323908. IGNORED.
Illegal block #39845877 (1895586475) in inode 35323908. IGNORED.
Too many illegal blocks in inode 35323908.
Clear inode? no

Suppress messages? no

Illegal block #39845878 (2659000202) in inode 35323908. IGNORED.
Illegal block #39845879 (732143331) in inode 35323908. IGNORED.
Illegal block #39845880 (3167915394) in inode 35323908. IGNORED.
Illegal block #39845881 (2773413869) in inode 35323908. IGNORED.
Illegal block #39845882 (3476339241) in inode 35323908. IGNORED.
Illegal block #39845883 (3252703836) in inode 35323908. IGNORED.
Illegal block #39845884 (85387487) in inode 35323908. IGNORED.
Illegal block #39845885 (496296070) in inode 35323908. IGNORED.
Illegal block #39845886 (616164039) in inode 35323908. IGNORED.
Illegal block #39845887 (1838484131) in inode 35323908. IGNORED.
Illegal block #39845888 (1527166979) in inode 35323908. IGNORED.
Illegal block #39845889 (114256872) in inode 35323908. IGNORED.
Too many illegal blocks in inode 35323908.
Clear inode? no

Suppress messages? no

Illegal block #39845890 (694677919) in inode 35323908. IGNORED.
Illegal block #39845891 (2209569336) in inode 35323908. IGNORED.
Illegal block #39845892 (887408665) in inode 35323908. IGNORED.
Illegal block #39845893 (4167381774) in inode 35323908. IGNORED.
Illegal block #39845894 (3140258844) in inode 35323908. IGNORED.
Illegal block #39845895 (4063764954) in inode 35323908. IGNORED.
Illegal block #39845896 (4038058446) in inode 35323908. IGNORED.
Illegal block #39845897 (3958554729) in inode 35323908. IGNORED.
Illegal block #39845898 (597564670) in inode 35323908. IGNORED.
Illegal block #39845899 (1180619907) in inode 35323908. IGNORED.
Illegal block #-1 (3515703593) in inode 35323908. IGNORED.
Error while iterating over blocks in inode 35323908: Illegal indirect block found
e2fsck: aborted
root@tigger:/home/tom#
Wat doet een e2fsck -> file die in een beschadigd gebied ligt wissen, of gewoon de errors in het fs rechtezetten met een corrupte file erop ?

Zou ik de array kunnen starten met alle disks zonder dat ze een rebuild starten, hoe ?
Zou ik dan meer geluk hebben ?

Copy's geven zo'n errors
cp: reading `rabbit_disk_c.vmdk': Input/output error

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • DDX
  • Registratie: April 2001
  • Laatst online: 22:40

DDX

ik durf het echt niet te zeggen
toen ik met raid5 2 disken eruit heb gehad (2e disk werd eruit gegooit tijden rebuild ivm read error)
kon ik gewoon met mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1 etc -f
de boel weer runnen

https://www.strava.com/athletes/2323035

Pagina: 1