Rozpadnutý mdadm RAID 10

Rozpadnutý mdadm RAID 10
« kdy: 22. 03. 2021, 20:42:38 »
Dobry vecer priatelia.

Prosim Vas obraciam sa na Vas s prosbou ohladom rozmrveneho raidu10. Long story short: Qnap hrozne stary a v nom 4x1TB hdd v raid10. Druhy disk (sdb) failol. Vymenil sa a syncol raid a volume fungovalo dalej. Po kratkom case (cca tyzden) disk sdb opat failol ( ten vymeneny) a zrejme sa este nieco udialo ( mam pocit ze tam shuflovali disky hore dole)  a cely volume je prec. (nie som tam admin, len ma kamos poprosil o pomoc). Investigaciou som zistil nasledovne. Mam 2 ok disky sdc a sdd ( maju aj rovnake events v mdadm --examine. Disk sdb sa da cely precitat avsak jeho events  je nizsie. Mam aj funkcny sda disk ktory sa da cely precitat. ( akurat cez vsetky disky bezi dd a odkladam to na ine pole kde s tym budem cez losetup dalej pracovat.  co je problem , ze neviem prist na to ci sdc a sdd su akurat jeden mirror alebo je cez nich spraveny stripe.

A nasledne k sda netusim ako ho dostat naspat do raidu nakolko spadol do spare status. vid nasledujuce riadky.

Kód: [Vybrat]
# mdadm --examine /dev/sda3
/dev/sda3:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 5d82389e:9ab27c29:5792660e:d96bc8b5
  Creation Time : Wed Apr 24 18:15:59 2013
     Raid Level : raid10
  Used Dev Size : 975193600 (930.02 GiB 998.60 GB)
     Array Size : 1950387200 (1860.03 GiB 1997.20 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0

    Update Time : Tue Mar  9 07:04:36 2021
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 1
       Checksum : be40d9a6 - correct
         Events : 74976

         Layout : near=2
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     4       8        3        4      spare

   0     0       0        0        0      removed
   1     1       0        0        1      faulty removed
   2     2       8       35        2      active sync
   3     3       8       51        3      active sync
   4     4       8        3        4      spare

Je prosim Vas nejako mozne zistit a nejako zdvyhnut sdc a sdd? pripadne zmenit status sda ?

Skusal som zatial vsetky neinvazivne metody s assemble atd kym to bolo v tom qnape, ale bol som tam dost obmedzeny rychlostou odkladania dat plus nemoznostou navratu kedze qnap ma len 4 volne sloty. Padlo rozhodnutie vybrat hdd spravit dd zalohy a pokracovat potom nad kopia zaloh.  Viac dat ku kazdemu disku budem mat hned ako dobehne dd.
Dakujem za akekolvek rady pripadne nasmerovanie vopred dakujem.

S pozdravom Stano
« Poslední změna: 22. 03. 2021, 21:15:59 od Petr Krčmář »


RDa

  • *****
  • 2 911
    • Zobrazit profil
    • E-mail
Re:Rozpadnuty mdadm Raid10
« Odpověď #1 kdy: 22. 03. 2021, 21:12:51 »
Klasicne navody na obnodu radi:

1) assemble s force (to ignoruje rozdil eventu)
2) create s nejakou specialni optionou, aby se zachovali data (pokud jsou ztracene superbloky/metadata)

Ja bych zkusil to assemble force s 2 ze 3-4 imagu ktere mas - samozrejme pri pokusu o sestaveni z mirroru to failne, ale pokud se ti povede vybrat ty dva co jsou ve stripu, mohl bys s tim pokrocit.

Pro detekci zda je to mirror nebo striped par, bych image rozkouskoval na 1M bloky a udelal nad tim md5.. pokud to bude mirror, uvidis vetsinou stejne checksumy, pokud to bude stripe, tak budou vzdy ruzne.

A pak jeste existuje metoda si slozit metadata-less pole skrze DM, ze tomu reknes opravdu organizaci nad block devices.. a pokud to odhadnes/nastavis spatne, tak se k FS nedostanes, protoze bude hodne zkorupteny.

Mas +1 ode me, za dd images!

Re:Rozpadnutý mdadm RAID 10
« Odpověď #2 kdy: 23. 03. 2021, 21:34:26 »
Zdravim.

Tak situacia je asi nasledovna.
Mam zatial ddcknute 2hdd - sdc a sdd.

povodny /dev/sdc sa tvari nasledovne
mdadm --examine /dev/mapper/loop0p3

Kód: [Vybrat]

/dev/mapper/loop0p3:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 5d82389e:9ab27c29:5792660e:d96bc8b5
  Creation Time : Wed Apr 24 18:15:59 2013
     Raid Level : raid10
  Used Dev Size : 975193600 (930.02 GiB 998.60 GB)
     Array Size : 1950387200 (1860.03 GiB 1997.20 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0

    Update Time : Tue Mar  9 07:04:36 2021
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 1
       Checksum : be40d9c8 - correct
         Events : 74976

         Layout : near=2
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     2       8       35        2      active sync

   0     0       0        0        0      removed
   1     1       0        0        1      faulty removed
   2     2       8       35        2      active sync
   3     3       8       51        3      active sync
   4     4       8        3        4      spare

povodny /dev/sdd sa tvari nasledovne
Kód: [Vybrat]
mdadm --examine /dev/mapper/loop1p3
/dev/mapper/loop1p3:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 5d82389e:9ab27c29:5792660e:d96bc8b5
  Creation Time : Wed Apr 24 18:15:59 2013
     Raid Level : raid10
  Used Dev Size : 975193600 (930.02 GiB 998.60 GB)
     Array Size : 1950387200 (1860.03 GiB 1997.20 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0

    Update Time : Tue Mar  9 07:04:36 2021
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 1
       Checksum : be40d9da - correct
         Events : 74976

         Layout : near=2
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     3       8       51        3      active sync

   0     0       0        0        0      removed
   1     1       0        0        1      faulty removed
   2     2       8       35        2      active sync
   3     3       8       51        3      active sync
   4     4       8        3        4      spare



sda sa zatial este len ddckuje a sdb tiez.

v kazdom pripade sda vyzera nasledovne, tvari sa ako spare.

Kód: [Vybrat]
mdadm --examine /dev/sda3
/dev/sda3:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 5d82389e:9ab27c29:5792660e:d96bc8b5
  Creation Time : Wed Apr 24 18:15:59 2013
     Raid Level : raid10
  Used Dev Size : 975193600 (930.02 GiB 998.60 GB)
     Array Size : 1950387200 (1860.03 GiB 1997.20 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0

    Update Time : Tue Mar  9 07:04:36 2021
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 1
       Checksum : be40d9a6 - correct
         Events : 74976

         Layout : near=2
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     4       8        3        4      spare

   0     0       0        0        0      removed
   1     1       0        0        1      faulty removed
   2     2       8       35        2      active sync
   3     3       8       51        3      active sync
   4     4       8        3        4      spare




snaha o assemble este pred dd zvysku dopadla takto

Kód: [Vybrat]
mdadm --assemble /dev/md4 /dev/mapper/loop0p3 /dev/mapper/loop1p3 /dev/sda3
mdadm: /dev/md4 assembled from 2 drives and 1 spare - not enough to start the array.


stale nerozumiem preco sa sda tvari ako spare a ako ho prinutit byt castou raidu.

mam aj sdb. tam tiez bezi momentalne dd, md raid examine tam vykazuje ale trosku nizsie events.

Kód: [Vybrat]
mdadm --examine /dev/sdb3
/dev/sdb3:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 5d82389e:9ab27c29:5792660e:d96bc8b5
  Creation Time : Wed Apr 24 18:15:59 2013
     Raid Level : raid10
  Used Dev Size : 975193600 (930.02 GiB 998.60 GB)
     Array Size : 1950387200 (1860.03 GiB 1997.20 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0

    Update Time : Sat Mar  6 10:24:29 2021
          State : active
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1
       Checksum : be3beedb - correct
         Events : 74867

         Layout : near=2
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     1       8       19        1      active sync

   0     0       0        0        0      removed
   1     1       8       19        1      active sync
   2     2       8       35        2      active sync
   3     3       8       51        3      active sync
   4     4       8        3        4      spare



Ako to postavit na nohy? je moznost presvedcit nejako sda aby sa tvaria ako raid member?

vsetky dalsie invazivnejsie metody ako raid recreation podla parametrov co mam budem robit az po uspesnych zalohach. Stalo sa niekomu nieco poodobne? akym smerom sa vydat prosim Vas?
dakujem

edit: vyzera ze sdb s nizsim event je na tom dost biedne a nebude mozne ho precitat a ak tak s vela vela chybami je mozne to postavit s tymi 3 diskami?
« Poslední změna: 23. 03. 2021, 21:43:02 od StanoTmavy »

RDa

  • *****
  • 2 911
    • Zobrazit profil
    • E-mail
Re:Rozpadnutý mdadm RAID 10
« Odpověď #3 kdy: 23. 03. 2021, 22:02:55 »
hledej neco s assemble --force nebo --run ... ale pokud to rika ze to nejde spustit s 2 diskama.. tak mas mirrorovanej par - a potrebujes jeste jeden, ktery byl ten stripped

Re:Rozpadnutý mdadm RAID 10
« Odpověď #4 kdy: 23. 03. 2021, 22:05:50 »
jop
podla toho co som si z tych loopov precital sdc aj sdd bol mirror.
data vyzeraju byt vsetko na tom sda.. len je ako spare a teda pregooglil som uz vsetko ale nepresvedcil som ho aby sa stal sucastou raidu. :-(


Re:Rozpadnutý mdadm RAID 10
« Odpověď #5 kdy: 24. 03. 2021, 12:19:51 »
Zdravím,

vyzkoušel jste nějaký specializovaný SW.  Něco ukazoval kdysi Linus Sebastian na youtube.
Možná to byl tento SW, https://www.diskinternals.com/raid-recovery/raid-10-recovery/
Zajímalo by mě jestli to něco najde.

MK

Re:Rozpadnutý mdadm RAID 10
« Odpověď #6 kdy: 24. 03. 2021, 13:03:55 »
Dobry den,

zatial to mam stale na linux environmente.. pravdu povediac kopirujem uz par diskov aj na windows a presne dany soft mam v plane vyskusat.. v kazdom pripade jedna sa o niekolko TB dat tak to chvilku trva. Podla stringsu atd vyzera ze data su vsetky. Uz len ich zlepit.. idem sa vydat cestou recreate array avsak vzhladom na takmer historicky build mdadm ktorym bolo to pole vyrobene bude to narocnejsie asi "trafit"

a 2 riesenie bude prave cez nejaky soft.
ak by kohokolvek napadlo cokolvek budem vdacny za akekolvek smerovanie vdaka.

RDa

  • *****
  • 2 911
    • Zobrazit profil
    • E-mail
Re:Rozpadnutý mdadm RAID 10
« Odpověď #7 kdy: 24. 03. 2021, 13:22:51 »
Ja bych to nekomplikoval - udelej si skrze DM bezhlavickovy raid:
https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/striped.html

64KB stripe size znas z --examine. Co ti schazi je: poradi disku - protoze je to R0 tak mas jen 2 moznosti - A,B a B,A.
A pak je podstatna informace o offsetu kde ty data zacinaj - to by slo vykoumat nalezenim EXT superbloku.

Po slozeni muzes udelat mount -o ro .. a find /mnt/pokus ... pro overeni zda to chodi.



Pro bezpecnost - ze to neposkodis - muzes puvodni image loopovat jako RO, s offsetem rovnou do te partisny s raidem.
« Poslední změna: 24. 03. 2021, 13:24:39 od RDa »

Re:Rozpadnutý mdadm RAID 10
« Odpověď #8 kdy: 24. 03. 2021, 13:35:35 »
Zdravim

to by mohlo fungovat.
podla dat z diskov vyzera ze raid 10 je postaveny A,A B,B
musim dokopirovat vsetky disky spravit snapshot a idem na to.
rozhodne nam vediet. vdaka

Re:Rozpadnutý mdadm RAID 10
« Odpověď #9 kdy: 25. 03. 2021, 11:40:57 »
Zdravim

tak moc daleko som sa zatial nedostal.
Skusim som UFS explorer na windowse.. a ten mi pri nastaveni spravnych parametrov pole zlozil v sekunde dokonca je cele citatelne aj fs je clean.
avsak rozbehnut to na linuxe sa mi nedari.
aj ked pole ako tak zlozim stale neviem namonstovat fs. Asi mi chyba spravny offset alebo nieco . Toto hovori dumpe2fs

Kód: [Vybrat]
[root@recovery-dom copy]# dumpe2fs /dev/loop0 | less
Filesystem volume name:   Volume1
Last mounted on:          /share/MD0_DATA
Filesystem UUID:          2e1db40f-5fb1-410e-bcac-3accaf4e8d29
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              60952576
Block count:              487596800
Reserved block count:     131072
Free blocks:              1065434
Free inodes:              60943935
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      907
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         4096
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Wed Apr 24 18:16:48 2013
Last mount time:          Sat Mar  6 05:28:36 2021
Last write time:          Sat Mar  6 05:28:36 2021
Mount count:              17
Maximum mount count:      -1
Last checked:             Wed Apr 24 18:16:48 2013
Check interval:           0 (<none>)
Lifetime writes:          2356 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       37355654
Default directory hash:   half_md4
Directory Hash Seed:      03e92ca1-dc2f-4216-a932-0a67d6b7c9f5
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x01ea68ef
Journal start:            1



ako s tym prosim pohnut dalej?

EXT4-fs (loop0): bad geometry: block count 487596800 exceeds size of device (487583296 blocks)

RDa

  • *****
  • 2 911
    • Zobrazit profil
    • E-mail
Re:Rozpadnutý mdadm RAID 10
« Odpověď #10 kdy: 25. 03. 2021, 12:17:40 »
ako s tym prosim pohnut dalej?

EXT4-fs (loop0): bad geometry: block count 487596800 exceeds size of device (487583296 blocks)

Tohle se me delo (cca o 1 sektor) v pripade zprasene implementace GPT v Ubuntu LTS. Proste disk s GPT nejde klonovat skrze DD, protoze GPT ma rezervovany sektor na konci pro backup tabulku. Priserna nedomyslenost, co to udela..

Pokud ti jde jen o to, obejit tenhle error - mas dve varianty:
 A) editovat EXT superblock, a nastavit tam mensi device size (a doufat ze nebudou data uplne na tom konci)
nebo
 B) zvetsit block device - v tvem pripade tedy na konec disk image zapsat nejake data, a pak pri slozeni pole tomu vnutit vetsi velikost (vetsi nez byla puvodni partisna).

Jak skladas to pole v Linuxu?
« Poslední změna: 25. 03. 2021, 12:20:08 od RDa »

Re:Rozpadnutý mdadm RAID 10
« Odpověď #11 kdy: 25. 03. 2021, 13:06:14 »
Mno
nakoniec som to zlozil uplne jednoducho az mi je to divne.


vyrobil som si to na linuxe nasledovne
Kód: [Vybrat]

truncate -s1G overlay-sda3
truncate -s1G overlay-sdc3
truncate -s1G overlay-sdd3


losetup /dev/loop0 overlay-sda3
losetup /dev/loop1 overlay-sdc3
losetup /dev/loop2 overlay-sdd3


kpartx -a -v ../sda.new.img
kpartx -a -v ../sdc.img
kpartx -a -v ../sdd.img


size1=$(blockdev --getsize /dev/loop3); ( sda.new.img ma len particiu sda3)

size2=$(blockdev --getsize /dev/mapper/loop4p3);  ( sdc.img je cely disk takze som musel vybrat korektnu particiu)

size3=$(blockdev --getsize /dev/mapper/loop5p3);


echo 0 $size1 snapshot /dev/loop3 /dev/loop0 P 8 | dmsetup create diska
echo 0 $size2 snapshot /dev/mapper/loop4p3 /dev/loop1 P 8 | dmsetup create diskc
echo 0 $size3 snapshot /dev/mapper/loop5p3 /dev/loop2 P 8 | dmsetup create diskd




a odtialto som skusal vsetky mozne kombinacie s missing na raid10 , chunk aj metadata som mal a teda veru nic ale nic to nevedelo zlozit poriadne.

nakoniec som vyskusal simple len raid0 a vsetko hra.

Kód: [Vybrat]
mdadm -C -l 0 -c 64K --metadata=0.9 /dev/md0 --raid-devices=2 /dev/mapper/diska /dev/mapper/diskc --assume-clean



teraz mam zabavku na pokracovnie.. netusite niekto ako robi qnap iscsitarget.

ja poznam teda len targetcli a ten ma uplne iny config ako ta zalezitost v qnape.

Kód: [Vybrat]

[iSCSIPortal]
targetIQNPrefix=iqn.2004-04.com.qnap:ts-469u-rp:iscsi.
bServiceEnable=TRUE
servicePort=3260
initiatorBitmap00=00000001
targetBitmap00=00000001
LUNBitmap00=00000001
bSupportMultiACL=1
log=TRUE
logFlags=1

[init0Info]
initiatorIndex=0
initiatorIQN=iqn.2004-04.com.qnap:all:iscsi.default.ffffff
initiatorAlias=Default Policy
initiatorTargetBitmap00=00000001
initiatorLUNBitmap00=00000001

[InitiatorKey]
iqn.2004-04.com.qnap:all:iscsi.default.ffffff=0

[TargetKey]
target_iqn.2004-04.com.qnap:ts-469u-rp:iscsi.company.d48e82=0

[LUNKey]
LUN_storage=0

[target0Info]
targetIndex=0
targetName=server
targetIQN=iqn.2004-04.com.qnap:ts-469u-rp:iscsi.company.d48e82
targetAlias=storageqnap01
bTargetDataDigest=FALSE
bTargetHeaderDigest=FALSE
targetStatus=0
targetInitBitmap00=00000001
targetLUNNumBitmap00=00000001
targetLUNBitmap00=00000001
bTargetClusterEnable=TRUE

[target0Init0Info]
targetIndex=0
initiatorIndex=0
bCHAPEnable=FALSE
bMutualCHAPEnable=FALSE
CHAPUserName=
CHAPPasswd=
mutualCHAPUserName=
mutualCHAPPasswd=

[LUN0Info]
LUNIndex=0
LUNName=storage
LUNPath=/share/MD0_DATA
LUNMetaPath=/share/MD0_DATA/.@iscsi.img/iSCSI-storage-517a7d86:002
LUNCapacity=1885102
LUNFileCount=2
LUNThinAllocate=FALSE
LUNStatus=2
LUNBackupStatus=0
LUNBackupPid=-1
LUNBackupJob=-1
LUNInitBitmap00=00000001
LUNAttachedTarget=-1
LUNEnable=FALSE
FBNumber=0
LUNSerialNum=a87ad731-252c-4e86-8b69-dc0f959700b4
bRemoving=FALSE
LUNTargetBitmap00=00000001
LUNAllocated=1976678060032
WCEnable=0
FUAEnable=1

[LUN0Init0Info]
LUNIndex=0
initiatorIndex=0
initiatorLUNNumber=-1
accessMode=1

[LUN0Target0Info]
LUNIndex=0
targetIndex=0
LUNNumber=0
LUNEnable=TRUE



Btw dakujem velmi pekne RDa