RAID5 (mdadm) + diskkrasch

Permalänk
Medlem

RAID5 (mdadm) + diskkrasch

Hej!

Så här ligger det till:

Jag kör Ubuntu 8.04 och mdadm på min server. Jag kör en mjukvaru-RAID5 i den med 5 stycken hårdddiskar. Ovanpå det kör jag kryptering med dm-crypt och sedan ext3 som filsystem. Jag kör 4 av diskarna på moderkortets SATA-kontroller och en av diskarna på ett separat kontrollerkort.

Jag hade tidigare 4 st Seagate 1TB-diskar i den. Jag köpte sedan en Samsung 1 TB-disk och utökade min RAID5 till att även innehålla denna disk. Så långt allt väl. Allt fungerade bra i månader, tills den nya Samsung-disken efter en reboot dök upp som spare. Det gick att assembla arrayen med de 4 övriga diskarna utan problem, som degraded, eller vad det kallas. Kikade runt lite grann men kom fram till att jag nog var tvungen att lägga till den nya disken igen som active och köra en reshape.

Det tuggade på i en dag tills jag hux flux såg att en av de 4 äldre Seagate-diskarna verkade helt död. Den hittades inte igen över huvud taget efter en reboot. Detta skedde innan reshapen var färdig.

Senare identifierades disken av datorn igen, och har gjort det sedan dess. Den klarar en SMART short self test OK. Kör jag ett extended self test får jag dock read error på disken, enligt följande:

Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Completed: read failure 90% 6066 2920998

Jag provade testa disken i SeaTools i servern med samma resultat, read error vid extended self test. Jag har även provat disken i min WS med SeaTools for Windows där ett extended self test också misslyckas.

Så det här är väl mina slutsatser:

1. Disken har gått sönder, det går inte att läsa vissa block från disken.
2. Det skedde under en reshape av min RAID5, vilket gör att jag inte kan återskapa arrayen. :'(

Då det är flera lager involverat med först mjukvaruraid, sedan kryptering och sedan filsystem så är jag väl rädd att all data på min RAID5 är förlorad. Då jag hade backup på det viktigaste är det ingen katastrof, men jag vill såklart göra vad jag kan för att försöka återskapa det som fanns på arrayen.

Då jag inte har jättebra koll på mdadm och RAID5, samt såna här hårddiskbekymmer i stort så vill jag gärna ha lite input

Då diskkraschen skedde under en reshape så vet jag inte riktigt vad man kan prova för nåt. Det jag har tänkt göra är väl att försöka läsa ut all data som går från disken och skriva det till en ny, fungerande disk.
För att sedan lägga till denna disk till arrayen och se om det går att fortsätta på reshapen med mdadm. Jag vet inte om detta är möjligt över huvud taget, någon som har koll på det? Kommer det att gå att återskapa arrayen även om vissa block från den här disken inte finns med?

Jag har inte full koll på hur en reshape går till, finns det någon chans att jag kan återskapa arrayen med bara de diskar som fortfarande fungerar, som degraded?

Disken ska väl mappa om bad blocks automatiskt, så om den inte gjort det nu så har den väl slut på lediga blocks?

Jag tar tacksamt emot alla förslag. Skiter det sig så får jag väl skicka in disken på garantin och bygga om min RAID5 och inse att jag förlorat all data på den.

Visa signatur

Intel Core i7 920, Gigabyte GA-EX58-UD5, 6x2 GB Corsair XMS3 Twin3X DDR3 1333 MHz, XFX GeForce GTX 280 1 GB, Gigabyte GeForce 8600 GT 512 MB, Corsair TX650 650W
NileCity 105,6 Playlist

Permalänk

problemet med mdadm (och alla andra RAID-system som inte pratar med ovanliggande filsystem) är att allt måste vara intakt för att ovanliggande system ska kunna fungera. mdadm pratar ju bara block och har ingen aning om vilket filsystem eller vilka filer som ligger ovanpå.

den här tråden kanske kan vara något att titta på? http://www.mail-archive.com/linux-raid@vger.kernel.org/msg096...

Visa signatur

Arbetsstation: Macbook Pro Retina 15", Core i7 2,6 GHz, 16 GB RAM, 512 GB SSD
NAS: Synology 1812+ har numera ersatt min filserver
Blog: http://www.nickebo.net/
Twitter: @linuxprofessor
Övrigt: Linux/UNIX/OpenVMS, ZFS, lagring och systemövervakning

Permalänk
Medlem

En vän till mig hamnade i en identisk situvation som dig för bara någon månad sedan. En av hans diskar hoppade plötsligt ur, vid resync så visade det sig att en av hans andra diskar var trasiga och avbröt hela processen. Jag antar att du inte längre kan göra --assemble. Mitt tips till dig är att skriva över dina gamla superblock, använda flaggan --assume-clean och hoppas på det bästa.

Var noga med att se till att diskarna kommer i rätt ordning och missing på den trasiga disken. Försäkerhetsskull kör --examine på diskarna, du bör se detta under "RaidDevice" tabellen. Glöm inte att om du specificerat några andra inställningar (chunk?) ta med dom.

Exempel:

mdadm --create /dev/md0 --assume-clean --level=5 --raid-devices=8 /dev/sdc /dev/sdd /dev/sde missing /dev/sdg /dev/sdh /dev/sdi /dev/sdj

Det kan vara en bra idé att ta kopia på första delen av varje hårddisk med dd om du vill kunna återställa dom i efterhand. Då du kör dm-crypt (LUKS?) kan det vara känsligare för fel. Om du använder LUKS, har du kopia på din header som fil?

Min vän fick tillbaka allt sitt data, men det hela bygger på din resync inte ändrade så mycket på disken som hoppade ur.

Du kan ju också pröva är att göra en klon av disken med trasiga blocks med hög retry tröskel. Om man har tur kanske det går att läsa datat efter flera försök.

Permalänk
Medlem

Gör först en avbild av den trasiga disken med ddrescue (borde finnas i Ubuntus förråd).

Visa signatur

Fagerja

Permalänk
Medlem

Tack för alla bra svar!

Jag kikade på första länken, där självaste Neil Brown som utvecklat mdadm svarat. Det verkar ju inte vara exakt samma problem som jag har, men var ju ändå lite nyttig info. Arrayen var ju okej med alla 5 diskar innan jag började reshapea. Jag hade inte filsystemet monterat något efter att den femte disken blev spare och jag började reshapea/resynca, vad det då kallas. Så förhoppningsvis kanske den inte ändrat så mkt på diskarna utan bara kontrollerat att allt stämde, och jag därmed kan tvinga igång den i degraded.

Jag ska börja med att försöka klona disken som är trasig och se hur det går. Om jag inte lyckas med det så får jag nog prova att försöka assembla den som degraded med de 4 diskar som är kvar.

Visa signatur

Intel Core i7 920, Gigabyte GA-EX58-UD5, 6x2 GB Corsair XMS3 Twin3X DDR3 1333 MHz, XFX GeForce GTX 280 1 GB, Gigabyte GeForce 8600 GT 512 MB, Corsair TX650 650W
NileCity 105,6 Playlist

Permalänk
Medlem

Jag har aldrig haft behov av att köra raid>=1. Främst för att jag bara jobbat med hemma och småföretags serverar. Men när man återskapar arrayn, kan man ha filsystemet fastkopplat (mounted) samtidigt?

Permalänk
Skrivet av warzo:

Jag har aldrig haft behov av att köra raid>=1. Främst för att jag bara jobbat med hemma och småföretags serverar. Men när man återskapar arrayn, kan man ha filsystemet fastkopplat (mounted) samtidigt?

det rekommenderas generellt sett inte

Visa signatur

Arbetsstation: Macbook Pro Retina 15", Core i7 2,6 GHz, 16 GB RAM, 512 GB SSD
NAS: Synology 1812+ har numera ersatt min filserver
Blog: http://www.nickebo.net/
Twitter: @linuxprofessor
Övrigt: Linux/UNIX/OpenVMS, ZFS, lagring och systemövervakning

Permalänk
Medlem

Varför inte? Tillgänglighet är vad RAID egentligen är till för.

Permalänk

ja, alltså. i normala fall är det inga problem, men jag tänkte mer i detta "specialfallet" som tråden behandlar.

men du har rätt, under normala förhållanden ska ju såklart RAID-systemet klara det.

Visa signatur

Arbetsstation: Macbook Pro Retina 15", Core i7 2,6 GHz, 16 GB RAM, 512 GB SSD
NAS: Synology 1812+ har numera ersatt min filserver
Blog: http://www.nickebo.net/
Twitter: @linuxprofessor
Övrigt: Linux/UNIX/OpenVMS, ZFS, lagring och systemövervakning

Permalänk
Medlem

Det gick tyvärr inte att läsa ut allt från disken med dd_rescue Disken dör helt när man försöker. Så det blir plan B, att försöka få igång arrayen med de diskar som är kvar enligt tipsen från linuxprofessor och Fyxim. Återkommer med hur det gick.

Visa signatur

Intel Core i7 920, Gigabyte GA-EX58-UD5, 6x2 GB Corsair XMS3 Twin3X DDR3 1333 MHz, XFX GeForce GTX 280 1 GB, Gigabyte GeForce 8600 GT 512 MB, Corsair TX650 650W
NileCity 105,6 Playlist

Permalänk
Avstängd

RAID 5 är ingen bra lösning. http://www.baarf.com/

Om en disk gav sig nu så får du räkna med att de andra kommer att ryk snart de med. Särskilt om de är tagna i drift samtidigt.

Permalänk
Medlem
Skrivet av Electronic:

RAID 5 är ingen bra lösning. http://www.baarf.com/

Om en disk gav sig nu så får du räkna med att de andra kommer att ryk snart de med. Särskilt om de är tagna i drift samtidigt.

Det är möjligt att de andra diskarna som togs i drift samtidigt som denna är på väg att gå också, om det är pga slitage. Jag har dock 5 års garanti på de, så ekonomiskt gör det mig inget. Jag har dock kört lite tester på dom och dom verkar OK. 50% av de diskar som hör till arrayen nu har dock satts in vid olika tidpunkter och är av olika modell.

Sen om RAID5 är en bra lösning eller inte beror väl på tillämpning. I mitt fal är det mest passiv datalagring där jag inte skriver särskilt ofta till arrayen. När jag väl skriver är det mest långa sekventiella skrivningar av större filer.

I mitt fall blir kostnaden per byte väldigt viktig, samtidigt som prestandan inte är särskilt viktig. Samtidigt vill jag ha någon form av redundans då det är stora mängder data. Jag behöver inte ha jättehög säkerhet då datan inte är jätteviktig och jag har backup på andra ställen på allt viktigt. Så för min tillämpning tycker jag att RAID5 är en bra lösning. RAID1, RAID10/RAID01 eller RAID6 tycker jag hade blivit för dyrt och gett onödigt mycket redundans i mitt fall, samtidigt som eventuella prestandavinster vore ointressanta.

EDIT: Men tack för ett intressant perspektiv på det hela, även om det väl är mer riktat till industriella tillämpningar.

Visa signatur

Intel Core i7 920, Gigabyte GA-EX58-UD5, 6x2 GB Corsair XMS3 Twin3X DDR3 1333 MHz, XFX GeForce GTX 280 1 GB, Gigabyte GeForce 8600 GT 512 MB, Corsair TX650 650W
NileCity 105,6 Playlist

Permalänk
Medlem

Det gick över förväntan \o/

Jag gjorde precis som Fyxim föreslog nedan, kollade noga upp vilken "position" i arrayen de olika diskarna haft med "mdadm -E", lade även till chunksize.

Skrivet av fyx:

Mitt tips till dig är att skriva över dina gamla superblock, använda flaggan --assume-clean och hoppas på det bästa.

Var noga med att se till att diskarna kommer i rätt ordning och missing på den trasiga disken. Försäkerhetsskull kör --examine på diskarna, du bör se detta under "RaidDevice" tabellen. Glöm inte att om du specificerat några andra inställningar (chunk?) ta med dom.

Exempel:

mdadm --create /dev/md0 --assume-clean --level=5 --raid-devices=8 /dev/sdc /dev/sdd /dev/sde missing /dev/sdg /dev/sdh /dev/sdi /dev/sdj

Jag lyckades sedan assembla arrayen, avkryptera den och monterade filsystemet read-only. Katalogstrukturen var intakt och alla filer jag provade läsa ur den likaså. Jag kopierade ur lite grejer jag hade inte hade backup på och ville ha kvar, sedan gjorde jag en backup på LUKS-headern och nyckeln vilket jag hade inte hade gjort tidigare. Nu får diskarna som ingår i arrayen vila tills de får en kompis, ska fixa med garantinärendet för den trasiga disken ikväll.

Så är det bara att hoppas att det går bra att lägga till den nya disk sedan.

Tack för hjälpen!

Visa signatur

Intel Core i7 920, Gigabyte GA-EX58-UD5, 6x2 GB Corsair XMS3 Twin3X DDR3 1333 MHz, XFX GeForce GTX 280 1 GB, Gigabyte GeForce 8600 GT 512 MB, Corsair TX650 650W
NileCity 105,6 Playlist

Permalänk
Medlem

Det var så lite, roligt att allt löste sig