RAID5 tömb szétesett

Fórumok

Sziasztok!

Van egy gép és egy sata kártya miatt szétesett egy raid5 tömb. 5 hdd-ből állt. És 2 lemez esett ki. A két kiesett hdd-t csak spare-ként teszi vissza a tömbbe. Van valami ötletetek? Mit tudok vele kezdeni?

Előre is köszönöm a segítsgeteket.

/dev/md2:
        Version : 0.90
  Creation Time : Fri Jan 28 13:09:35 2011
     Raid Level : raid5
  Used Dev Size : 1953102272 (1862.62 GiB 1999.98 GB)
   Raid Devices : 5
  Total Devices : 5
Preferred Minor : 2
    Persistence : Superblock is persistent

    Update Time : Fri Jun 10 20:28:05 2011
          State : active, FAILED, Not Started
 Active Devices : 3
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 64K

           UUID : 94d81c14:ee79a2f1:24cbdb74:dd230b11 (local to host *****)
         Events : 0.75453

    Number   Major   Minor   RaidDevice State
       0       8       65        0      active sync   /dev/sde1
       1       0        0        1      removed
       2       8       33        2      active sync   /dev/sdc1
       3       0        0        3      removed
       4       8       49        4      active sync   /dev/sdd1

       5       8       81        -      spare   /dev/sdf1
       6       8       97        -      spare   /dev/sdg1

Hozzászólások

Ennek már annyi. Rebuilding, meg előkapni a backupot és visszamásolni az adatokat.

Ubuntu 10.04, Thinkpad x61s

Egy kicsit azé rá lett arra gányolva kézzel is, hogy removed és nem failed, ugye? :) Ha nem akarsz mentésből visszaállni, akkor csináld újra a tömböt ugyanabba a sorrendbe mint vót, pl:

mdadm -C -n5 -l5 -c64 /dev/mdX /dev/sde1 [/dev/sd?1|missing] /dev/sdc1 [/dev/sd?1|missing] /dev/sdd1

A két kiesett diszkből nemtom melyk volt az 1 illetve 3, azért kérdőjeles. Fontos, hogy csak egyik diszket add be a kettőből, a másik helyére írd hogy missing - így nem kezdi el a sync-et, ami rossz sorrend esetén végleg lerombolja az adataid. A mostani mdadm -E kimenetet mentsd le, mert az első -C felül fogja írni őket, később még kellhet kapaszkodónak.

Ez az egy esélyed maradt. Ha betartod, hogy mindig beteszel egy missing elemet, akkor számtalanszor próbálkozhatsz adatvesztés nélkül és a (szigorúan read-only módban futtatott) fsck el fogja árulni, hogy mikor lett megfelelő a sorrend.

Az biztos, hogy nem szabad kapkodni, mert egy véletlen rebuild/fsck/mount most tönkretehet mindent, ami még simán menthető.

+1, a sync nél kiderülthet, hogy az n-1 en is van valahol bad sector, és újra szétesik az egész. Backupolnám ami a legfontosabb (ill. lehetőleg mindent) és utána mehet be az n. winyó, és sync. Jó lenne tudni miért esett eleve szét, valószínű két lemezen is van hiba, és amiatt.

Igen, már beteheted az utolsó diszket is nyugodtan.

Egy teljes fsck mindenképp kell mielőtt a régi rájlrendszert élesben használod, mert lehetséges, hogy kissé sérült az integritása (dirty-degraded effektus).

Akkor fogod igazán utálni a raid5-öt, ha a rebuildnél kibukik majd egy pending sector az aktív diszkeken és emiatt megint szétesik az egész. :) A raid5 szerintem nem gonosz, csak alaposan ki kell ismerni, mint mindent. Igaz, hogy ehhez nekem ~10 év se volt elég, épp a közelmúltban okozott meglepetést. :)

Ez fura! Nekem mdadm autodetectalja a raid diszkeket, igy pl. ez van a dmesg-ben:


...
[    3.023797]  sda: sda1 sda2 sda3
[    3.040354] sd 1:0:0:0: [sda] Attached SCSI disk
[    5.240045] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
[    5.246459] ata4.00: ATA-7: SAMSUNG HD154UI, 1AG01113, max UDMA7
[    5.246462] ata4.00: 2930277168 sectors, multi 16: LBA48 NCQ (depth 31/32)
[    5.252972] ata4.00: configured for UDMA/100
[    5.253072] scsi 3:0:0:0: Direct-Access     ATA      SAMSUNG HD154UI  1AG0 PQ: 0 ANSI: 5
[    5.253284] sd 3:0:0:0: Attached scsi generic sg1 type 0
[    5.253600] scsi 4:0:0:0: Direct-Access     ATA      SAMSUNG HD154UI  1AG0 PQ: 0 ANSI: 5
[    5.253717] sd 4:0:0:0: Attached scsi generic sg2 type 0
[    5.253925] sd 4:0:0:0: [sdc] 2930277168 512-byte logical blocks: (1.50 TB/1.36 TiB)
[    5.253975] sd 4:0:0:0: [sdc] Write Protect is off
[    5.253979] sd 4:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[    5.254004] sd 4:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    5.254114] sd 3:0:0:0: [sdb] 2930277168 512-byte logical blocks: (1.50 TB/1.36 TiB)
[    5.254200] sd 3:0:0:0: [sdb] Write Protect is off
[    5.254203] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    5.254229]  sdc:
[    5.254313] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    5.254435]  sdb: sdb1 sdb2 sdb3
[    5.265850] sd 3:0:0:0: [sdb] Attached SCSI disk
[    5.267171]  sdc1 sdc2 sdc3
[    5.271174] sd 4:0:0:0: [sdc] Attached SCSI disk
[    5.580033] ata6: SATA link down (SStatus 0 SControl 300)
[    5.590851] async_tx: api initialized (async)
[    5.760025] raid6: int64x1   1498 MB/s
[    5.930035] raid6: int64x2   1939 MB/s
[    6.100030] raid6: int64x4   1316 MB/s
[    6.270026] raid6: int64x8   1323 MB/s
[    6.440031] raid6: sse2x1    2223 MB/s
[    6.610027] raid6: sse2x2    3001 MB/s
[    6.780012] raid6: sse2x4    3188 MB/s
[    6.780014] raid6: using algorithm sse2x4 (3188 MB/s)
[    6.795423] xor: automatically using best checksumming function: generic_sse
[    6.840014]    generic_sse:  5926.400 MB/sec
[    6.840017] xor: using function: generic_sse (5926.400 MB/sec)
[    6.850768] md: raid6 personality registered for level 6
[    6.850771] md: raid5 personality registered for level 5
[    6.850774] md: raid4 personality registered for level 4
[    6.859735] md: raid10 personality registered for level 10
[    6.971103] md: bind<sda1>
[    7.001131] md: bind<sda3>
[    7.017220] md: bind<sdc1>
[    7.025693] md: bind<sdc3>
[    7.055790] md: bind<sdb3>
[    7.058411] raid5: device sdb3 operational as raid disk 2
[    7.058416] raid5: device sdc3 operational as raid disk 0
[    7.058419] raid5: device sda3 operational as raid disk 1
[    7.058939] raid5: allocated 3230kB for md3
[    7.059220] 2: w=1 pa=0 pr=3 m=1 a=2 r=3 op1=0 op2=0
[    7.059223] 0: w=2 pa=0 pr=3 m=1 a=2 r=3 op1=0 op2=0
[    7.059227] 1: w=3 pa=0 pr=3 m=1 a=2 r=3 op1=0 op2=0
[    7.059229] raid5: raid level 5 set md3 active with 3 out of 3 devices, algorithm 2
[    7.059232] RAID5 conf printout:
[    7.059233]  --- rd:3 wd:3
[    7.059236]  disk 0, o:1, dev:sdc3
[    7.059238]  disk 1, o:1, dev:sda3
[    7.059240]  disk 2, o:1, dev:sdb3
[    7.059280] md3: detected capacity change from 0 to 2999233019904
[    7.061458]  md3: unknown partition table
...

Sima ubuntu-s initrd-s mdadm. Nem is foglalkoztam sose, hogy melyik diszk hanyadik a tombben. Ez most akkor hogyan is van?

raid5 egy diszk kiesesere van tervezve. 2 diszk kiesesekor kiesik a komplett raid5 tomb. Felejtsd el, formazd ujra. Es javaslom a wikipedia vagy egyeb szakirodalom bongeszeset raid5 es raid6 kategoriaban.

raid5 egy diszk kiesesere van tervezve. 2 diszk kiesesekor kiesik a komplett raid5 tomb. Felejtsd el, formazd ujra. Es javaslom a wikipedia vagy egyeb szakirodalom bongeszeset raid5 es raid6 kategoriaban.

Ha egyszerre esik ki ket diszk, akkor az md driver failed statuszra allitja a raid tombot es nem enged tobb irast/olvasast.

allitsd le a raid tombot
mdadm -S /dev/md2

probald meg osszerakni 5 diszkbol
mdadm -Af /dev/md2 /dev/sd[cdefg]1

ha nem sikerul, akkor probald meg osszerakni n-1 diszkkel
mdadm -Af /dev/md2 /dev/sd[cdef]1 vagy
mdadm -Af /dev/md2 /dev/sd[cdeg]1

Ezzel a következő üzenetet kapom:

# mdadm -Af --verbose /dev/md2 /dev/sd[cdefg]1
mdadm: looking for devices for /dev/md2
mdadm: /dev/sdc1 is identified as a member of /dev/md2, slot 2.
mdadm: /dev/sdd1 is identified as a member of /dev/md2, slot 4.
mdadm: /dev/sde1 is identified as a member of /dev/md2, slot 0.
mdadm: /dev/sdf1 is identified as a member of /dev/md2, slot 5.
mdadm: /dev/sdg1 is identified as a member of /dev/md2, slot -1.
mdadm: no uptodate device for slot 1 of /dev/md2
mdadm: added /dev/sdc1 to /dev/md2 as 2
mdadm: no uptodate device for slot 3 of /dev/md2
mdadm: added /dev/sdd1 to /dev/md2 as 4
mdadm: failed to add /dev/sdf1 to /dev/md2: Invalid argument
mdadm: failed to add /dev/sdg1 to /dev/md2: Invalid argument
mdadm: added /dev/sde1 to /dev/md2 as 0
mdadm: /dev/md2 assembled from 3 drives - not enough to start the array.
root@:~#

Én úgy látom hogy a slot-oknál van a hiba. Nem tudja hogy hova kell besorolni a két spare-nak feltételezett hdd-t.

az assemble-nel a devicen tarolt superblock informaciot hasznalja az md driver. valoszinuleg mar ezt megelozoen az n-2 diszkes tombhoz probaltad visszatenni mdadm -a -val a kiesett diszkeket, emiatt modosultak a superblockok. a create-t javaslom en is n-1 diszkkel es missing -el, ahogy fentebb irtak.

subs.

------------------------------------------
"Nincs ez el**szva, csak másra lesz jó!"

Újrarakni, és mentésből visszaállni a legbiztosabb megoldás.