Skip to content

RAID 5 ukon RAID 6 Degraded Array With Second Drive Failing During Rebuild (Why Never Run Run CHKDSK or fsck, ddrescue Sector Cloning, and mdadm Read-Only Assembly)

Ang mga numero sang emerhensya nagalainlain sa kada pungsod. Ini nga pahina nagagamit sang 911, ang numero para sa Estados Unidos kag Canada. Madamo nga iban pa nga pungsod ang nagagamit sing 112, 999, ukon iban pa nga numero. Pangitaa ang numero para sa imo pungsod.

Pag-ilis sang isa ka napaslawan nga hard drive sa isa ka degraded RAID 5 ukon RAID 6 storage server, Synology DiskStation, QNAP NAS, Linux mdadm array, ukon Dell PERC / HP Smart Array / LSI MegaRAID hardware controller lamang sa pagtan-aw sang ikaduha nga nabilin nga miyembro nga drive throw UNC (Indi Matadlong nga Sayop sa Pagbasa) malain nga mga sektor, Pending Sectors, ukon ihulog sa offline sa 42% sang parity rebuild isa sa pinakadelikado nga mga emerhensya sa pagtipig sa enterprise kag home-lab computing. Sa isa ka single-parity RAID 5 array (N - 1 fault tolerance), ang mathematical XOR reconstruction sang replacement disk nagakinahanglan sang pagbasa sang tagsa ka sektor (LBA 0 sa katapusan nga LBA) sa bug-os nga 100 porsyento sang nabilin nga N - 1 ang miyembro nagamaneho sing dungan. Kon ang moderno nga mataas nga kapasidad 8 TB sa 24 TB ang mga helium drive (nga ginbakal gikan sa pareho nga manufacturing batch kag ginpaidalom sa pareho nga thermal kag vibration hours) nagaagi sa isa ka multi-terabyte sequential rebuild read, isa ka latent media defect (URE) ukon ang maluya nga read head sa ikaduha nga drive nagaresulta sa RAID controller nga mag-untat sa pagtukod liwat, sipaon ang ikaduha nga drive bilang Faulty / Crashed, kag markahan ang bug-os nga storage pool Offline / Crashed / Superblock Event Count Mismatch.

Indi magpanic, kag indi pagpilita ang ikaduha nga pagtukod liwat ukon magpadalagan sang mga utility sa pagkay-o sang filesystem (fsck, e2fsck, xfs_repair, ukon Windows CHKDSK). Bisan pa kon ang ikaduha nga pagmaneho sa RAID 5 (ukon ikatlo nga pagmaneho sa RAID 6) nagauswag 50 sa 5,000 malain nga mga sektor kag ginapahalin sa array, 99.9999 porsyento sang mga sektor sa "napaslawan" nga ikaduha nga drive 100 porsyento gihapon nga mabasa. Paagi sa gilayon nga pag-untat sang array, pag-clone sang tagsa ka indi malig-on nga miyembro nga disk sektor-sa-sektor sa mapagros nga mga ekstra nga drive gamit ang GNU ddrescue, kag pagtipon sang mga gin-clone nga mga laragway sa Read-Only / --assume-clean overlay mode (mdadm + dmsetup Copy-on-Write loop overlays), mahimo mo ma-mount ang filesystem sing luwas kag makopya ang halos tanan nga file nga wala sing kasawayan. Para sa mga detalye sang NAS appliance kag mga kapaslawan sang hardware controller, basaha ang amon mga kaupod nga mga giya sa RAID 5 ukon RAID 6 Synology, QNAP, ukon TrueNAS multiple drive drop, RAID controller card death kag foreign configuration import, kag NAS RAID array naguba kag ZFS/Btrfs recovery. Kon ang kapaslawan sang imo server nagaapektar sa mga sistema sang kaluwasan sa kabuhi ukon imprastraktura sa medisina, kontaka ang imo lokal nga numero sang emerhensya (911 sa Estados Unidos kag Canada, 112 sa bug-os nga European Union, 999 sa United Kingdom) ukon tan-awa ang amon direktoryo sang mga numero sang emerhensya.

Himua ini subong

  1. I-abort ang bisan ano nga aktibo nga parity rebuild ukon scrub gilayon kag i-down ang array sing matinlo (ukon i-disconnect ang SATA/SAS backplane power kon ang isa ka drive nagahimo sang mekanikal nga pag-klik ukon pag-scrape nga mga gahod):
  2. Ngaa ang pagtugot sa isa ka stalling rebuild nga magpadayon nagaguba sang array: Kon ang isa ka miyembro nga drive nagaigo sa isa ka malain nga sector patch (LBA read timeout) ukon may makahuluya nga read/write head (media scratch), nga nagabilin sa RAID controller nga nagatinguha liwat sang mga sektor sa sulod sang mga inoras nga nagagaling sang mikroskopiko nga magnetic platter coating sa yab-ok sa bug-os nga track cylinder, nga nagahimo sang isa ka recoverable 20-sector depekto sa isa ka makahalalit nga pagbunggo sang ulo nga bug-os nga pinggan.
  3. INDI GID magdalagan CHKDSK /f, fsck -y, e2fsck, btrfs check --repair, ukon xfs_repair sa isa ka degraded, out-of-sync, ukon tunga-tunga nga gintukod liwat nga RAID array:
  4. Ngaa CHKDSK kag fsck kabangdanan sang 100% nga permanente nga pagkaguba sang data sa out-of-sync RAID: Kon ang Drive 2 nag-untat sang Martes kag ang Drive 3 nag-untat sa tion sang pagtukod liwat sang Huwebes, ang mdadm ukon hardware RAID Event Counter (Update Time) sa sinang duha ka drive nagalainlain sa linibo ka mga transaksyon. Kon piliton mo nga magtipon sang isa ka array nga may indi nagakaigo nga mga henerasyon sang drive ukon nadula nga mga stripe kag tugutan fsck ukon CHKDSK sa pagsulat sa array, ang filesystem checker nakakita sang nabali nga mga inode tree nga gintuga sang misaligned RAID stripes, nagadula sang minilyon ka balido nga mga entry sa direktoryo sa lost+found, kag naga-overwrite sang maayo nga mga data stripe nga may corrupt nga parity sa tagsa ka disk sa array.
  5. INDI GID mag-klik "Create Array", "Initialize", ukon "Clear Configuration" sa isa ka hardware RAID BIOS, kag INDI GID magdalagan mdadm --create nga wala --assume-clean kag isa ka Kopya-sa-Pagsulat (COW) loop overlay:
  6. Pagpadalagan sang isa ka sulundan mdadm --create (nga wala --assume-clean kag pag-anggid sang eksakto nga kadakuon sang chunk, layout, kag data offset) gilayon nga nagasugod sa pagsulat sang bag-o nga mga parity stripes sa tanan nga mga disk, nga nagaguba sang filesystem superblock kag B-trees kon may isa ka parameter (512K vs. 64K chunk, left-symmetric vs. left-asymmetric, ukon 2048s vs. 262144s data offset) sayop bisan sa isa ka sektor.
  7. Ibutang ang label sa tagsa ka pisikal nga hard drive slot (Bay 0 / Bay 1 / Bay 2 / Bay 3 kag serial number) nga may permanente nga marker ukon tape ANTES magkuha sang isa ka drive gikan sa chassis:
  8. Isulat ang eksakto nga numero sang bay kag numero sang serye sa ibabaw nga label sang tagsa ka drive. Ang paghibalo sang pisikal nga bay order kag pag-usisa mdadm --examine ang metadata nagatipig sang mga inoras sang pagtukod liwat sang stripe-order sa ulihi.
  9. I-clone ang mga napaslawan nga drive(s) sektor-por-sektor sa mapagros nga bag-o nga mga drive gamit ang GNU ddrescue (nga may mapfile) sa ibabaw sang direkta nga motherboard SATA/HBA ports ANTES magtinguha sang bisan ano nga RAID assembly:
  10. Indi gid pagtinguhai nga magtipon ukon mag-mount sang RAID array gamit ang physically dying drive mismo. Ikonektar ang napaslawan nga drive sa isa ka non-RAID SATA/AHCI ukon LSI IT-Mode HBA port sa isa ka Linux rescue workstation, i-disable ang OS auto-mounting, kag padalagana ang ddrescue -f -n /dev/sdX /dev/sdY rescue_driveX.map gani ang mga healthy fast sectors gina-evacuate sa pass one antes magtandog sa mga bad sector zones.
  11. Itipon ang mga gin-clone nga mga drive sa Read-Only mode (mdadm --assemble --readonly ukon gamit ang dmsetup / losetup RAM/file overlays):
  12. Paagi sa pagbutang sang isa ka disposable Copy-on-Write (COW) overlay file sa ibabaw sang tagsa ka gin-clone nga miyembro nga disk, mahimo mo i-test-mount ang array, i-replay ang isa ka ext4 ukon XFS journal, ukon bisan testingan ang isa ka virtual nga pagtukod liwat samtang ginagarantiyahan nga ang zero bytes ginabag-o sa imo mga clone sang disk sa idalom.

Danger

Ang "Out-of-Order Drive Force" Trap (Stale Drive Overwriting Fresh Drives): Ibutang ta nga may 4-drive ka RAID 5 (Disk 1, Disk 2, Disk 3, Disk 4). Disk 3 napaslawan 6 ka bulan na ang nagligad, kag wala mo gid ini gin-islan (naga-degrade sa sulod sang 6 ka bulan). Subong nga adlaw, Disk 2 nagapauswag sang 100 ka malain nga sektor kag nagauntat sa pag-eskwela. Indi gid pagpilita ang 6-ka-bulan nga bata Disk 3 balik online para magtukod liwat Disk 2. Kon gamiton mo Disk 1 + Disk 3 (6 months stale) + Disk 4 sa pagtukod liwat ukon pag-mount sang array, ang tagsa ka file nga ginhimo ukon ginbag-o sa nagligad nga 6 ka bulan maguba sa indi mabasa nga binary garbage. Kinahanglan mo nga mag-clone Disk 2 (ang drive nga napaslawan karon) nga may ddrescue kag magtipon Disk 1 + Cloned Disk 2 + Disk 4.


Desisyon nga kahoy: pagluwas sang RAID 5 ukon RAID 6 nga array kon ang ikaduha nga drive mapaslawan sa tion sang pagtukod liwat

Sunda ining forensic storage recovery workflow agud mabawi ang imo array nga wala madula ang isa ka nabilin nga stripe:

flowchart TD
    Start["Ang RAID 5 (2nd Drive) ukon RAID 6 (3rd Drive) Napaslawan / Nadula sa Offline sa Tion sang Pagtukod Liwat"] --> StopNow["STEP 1: I-abort ang Rebuild Immediately & Power Down Array (Likawan ang Platter Scoring sa Failing Drive)"]

    StopNow --> SoundCheck{"Ang Napaslawan Bala nga Drive Naghimo sang Mabaskog nga Pag-klik, Pag-beep, ukon Paggaling nga mga Tunog?"}

    SoundCheck -->|"OO: Mekanikal nga Pagbunggo sang Ulo / Pag-ipit"| CleanRoom["STOP: Indi Pag-i-Power On Liwat ang Drive. Ipadala LAMANG ang Mechanically Failed Drive (Plus 1 Healthy Drive para sa Stripe Reference) sa isa ka Cleanroom Lab para sa Imahe sa isa ka Clone"]

    SoundCheck -->|"INDI: Nagatuyok sing Matalunsay, Napaslawan Bangod sang Malain nga mga Sektor (UNC / Pending / Timeout)"| LabelDrives["STEP 2: Ibutang ang Label sa Kada Drive nga may Eksakto nga Bay Number kag Serial Number -> Magkonektar sa Linux Workstation paagi sa Direct SATA / IT-Mode HBA"]

    LabelDrives --> InspectMeta["Ipadalagan ang 'mdadm --examine /dev/sd*' kag 'smartctl -a /dev/sd*' sa Tanan nga mga Drive (Record Update Time, Events Counter, Role, Chunk Size, Layout, Data Offset)"]

    InspectMeta --> CloneDrives["STEP 3: I-clone ang tagsa ka Degraded / Bad-Sector Drive sa isa ka Healthy Spare Drive Gamit ang 'ddrescue -f -n' (Fast Pass Una, Dayon Scrape Pass Upod ang Mapfile)"]

    CloneDrives --> PickFreshest["Hibalua ang N-1 (RAID 5) ukon N-2 (RAID 6) nga mga Drive nga may PINAKAMATAAS / PINAKABAG-O nga 'Mga Hitabo' nga Konter (Indi Gid Pag-isagol ang Daan nga Nahulog nga Drive sa Bag-o nga mga Drive)"]

    PickFreshest --> CowOverlay["TIKANG 4: Maghimo sang Read-Only Loop / 'dmsetup' Copy-on-Write (COW) nga mga Overlay sa Ibabaw sang mga Cloned Drive Gani Ang Orihinal nga mga Clone Indi Mabag-o"]

    CowOverlay --> AssembleRO["Padalagana ang 'mdadm --assemble --force --readonly' sa Overlay Devices -> Mount Filesystem Read-Only ('mount -o ro,noload') -> Kopyaha ang Tanan nga Kritikal nga Data sa External Storage"]

Phase 1: Paghangop kon ngaa ang ikaduha nga drive napaslawan sa tion sang RAID rebuild (XOR Parity Math & Event Counters)

Para mahangpan kon ngaa ang imo array nag-crash sa tunga-tunga sang pag-rebuild kag kon ngaa ang imo data mabawi pa, usisaa kon paano RAID 5 kag RAID 6 nagatrabaho gid sa disk.

1. Paano XOR ang pagtukod liwat sang parity nagatrabaho kag kon ngaa 1 ang malain nga sektor nagadula sang bug-os nga pagtukod liwat

Sa 4-drive RAID 5 array (Drive A, Drive B, Drive C, Drive D), ang datos ginatunga sa fixed-size chunks (kasagaran 64 KB ukon 512 KB) nga may mga stripe sa mga disk, sa diin ang isa ka chunk sa tagsa ka laray nagahupot sang XOR Parity (P): $\(\text{Parity } P = A \oplus B \oplus C\)$ Kon Drive C napaslawan sing bug-os kag nagsulod ka sing blangko Replacement Drive C_new, ang RAID controller dapat magtukod liwat sang tagsa ka stripe sa C_new paagi sa pagkalkulo: $\(C_{\text{reconstructed}} = A \oplus B \oplus P\)$ - Ano ang matabo kon Drive B naigo ang isa ka indi mabasa 4 KB sektor (UNC sayop) sa 42% sang pagtukod liwat: - Sa pagkalkulo nga single 4 KB bloke sa C_new, ang controller dapat may balido nga pagbasa gikan sa Drive A, Drive B, kag Drive D. - San-o Drive B nagabalik sang isa ka hardware Read Error (Sense Key 03h / 11h Unrecovered Read Error) pagkatapos sang 7 ka segundo (TLER / ERC timeout), ang mga RAID controller sang konsumidor kag negosyo masami nga ginaprograma nga may makahalalit nga default nga pamatasan: sa baylo nga laktawan ina nga isa 4 KB sektor, pag-log sang isa ka zero block, kag pagtapos sang isa pa 99.9999% sang pagtukod liwat, ang RAID controller nagamarka Drive B subong FAILED / OFFLINE kag ginadula ang bug-os nga pagtukod liwat. - Sa sina nga tion, ang imo array may duha ka drive nga may marka nga "Napaslawan" (Drive C nga amo lamang ang 42% gintukod liwat, kag Drive B nga sa pagkamatuod may 99.99998% mapagros nga mga sektor kag lamang 12 malain nga mga sektor).

2. Ngaa Event Counters (Update Time) hibalua kon ano nga mga drive ang dapat mo gamiton para sa pagbawi

Sa kada tion nga ang RAID 5 ukon RAID 6 ang array nagasulat sang datos ukon nagabag-o sang estado (subong sang pag-untat sang drive), ang RAID metadata (mdadm superblock ukon hardware DDF metadata) nagadugang sang 64-bit Events counter sa tanan nga aktibo nga mga drive subong.

Ipaanggid ang mdadm --examine output sang isa ka kinaandan nga 4-drive RAID 5 kalamidad sa diin sdb napaslawan kahapon (Events: 10450) kag sdc nag-untat sa tion sang pagtukod liwat subong nga adlaw (Events: 10892):

Pisikal nga Pagmaneho Papel sa Array Update Time Events Kontra Pisikal nga Panglawas kag Kon Ano ang Kaundan Sini
/dev/sda (Bay 1) Active device 0 Today 14:22:10 10892 100% Healthy & Current: Nagaunod sang tagsa ka pagsulat tubtob sa eksakto nga segundo nga ang rebuild nag-crash subong nga adlaw.
/dev/sdb (Bay 2) spare / faulty (Gin-islan sang bag-o nga disk) Yesterday 09:15:00 10450 (Stale) Napaslawan Kahapon: Nadula ang 29 ka oras nga pagsulat sa database, UKON gin-islan sang bag-o nga disk nga 42% gintukod liwat (Reshape/Rebuild Pos).
/dev/sdc (Bay 3) faulty (Ginhulog sa 42% pagtukod liwat) Today 14:22:09 10890 (Off by 2) 99.999% Healthy & Current: Ginpalayas lang 1 segundo antes /dev/sda kag /dev/sdd tungod kay naigo ini sa 8 ka malain nga sektor sa tion sang rebuild read.
/dev/sdd (Bay 4) Active device 3 Today 14:22:10 10892 100% Healthy & Current: Nagaunod sang tagsa ka pagsulat tubtob sa eksakto nga segundo nga ang rebuild nag-crash subong nga adlaw.
  • Ang Bulawanon nga Pagsulundan sang RAID Recovery gikan sa lamesa sa ibabaw:
  • Talupangda nga /dev/sda (10892), /dev/sdc (10890), kag /dev/sdd (10892) tanan may halos pareho Events mga counter halin sa Today 14:22.
  • Sa tion nga mag-clone kita /dev/sdc sa isa ka mapagros nga pagmaneho gamit ang ddrescue (nagabawi sang 99.9999% sang iya mga sektor kag naga-zero-fill sang 8 ka indi mabasa nga mga sektor), mahimo naton piliton nga magtipon /dev/sda + Cloned /dev/sdc + /dev/sdd (wala ginasapak ang katunga nga gintukod liwat /dev/sdb sing bug-os). Ina nga 3-drive nga kombinasyon nagahatag sa aton sang 100 porsyento nga makanunayon, tubtob-sa-segundo nga naubos RAID 5 array nga may zero nga paggisi sang stripe.

Phase 2: Tikang-sa-tikang nga pag-clone sang sektor sang napaslawan nga drive nga may GNU ddrescue

Antes ka magtandog mdadm ukon bisan ano nga gamit sa pagtipon sang RAID, dapat mo i-clone ang (mga) drive nga naghaboy sang mga sayop sa pagbasa sa mapagros nga mga drive nga may pareho ukon mas daku nga kapasidad sang byte.

Tikang 1: Ihanda ang Linux rescue environment kag i-disable ang auto-assembly

  1. Mag-boot sang Linux workstation (ukon mag-boot sang imo server gikan sa isa ka live USB stick pareho sang SystemRescue system-rescue.org ukon Ubuntu Live Server) nga may mga drive nga konektado sa standard motherboard SATA ports ukon isa ka LSI HBA sa IT Mode (Non-RAID pass-through).
  2. Punggan ang Linux nga awtomatiko nga magtinguha sa pagtipon ukon pag-mount sang imo guba nga RAID array sa boot:
  3. Kon naga-boot sang SystemRescue ukon Ubuntu Live, tan-awa cat /proc/mdstat. Kon ang Linux nag-auto-assemble sang isa ka partial md device sa background, pauntata ini gilayon sa read-only safe mode antes mag-imaging:
    mdadm --stop /dev/md*
    
  4. Kilalaha ang tagsa ka drive paagi sa eksakto nga modelo, numero sang serye, kag kadakuon sang byte (indi gid pag-isipa /dev/sdX mga letra, bangod ang Linux naga-reassign sang mga letra sang drive sa mga reboot):
    lsblk -o NAME,SIZE,MODEL,SERIAL,TYPE,FSTYPE
    
    Isulat kon diin /dev/sdX nagasanto sa imo Napaslawan nga Source Drive (halimbawa, /dev/sdc, serial WCC4E12345) kag diin /dev/sdY amo ang imo Brand-New Blank Target Drive (halimbawa, /dev/sdf, serial ZGG9988776).

Tikang 2: Padalagana ang 2-Stage GNU ddrescue protocol sa pag-clone (Maggamit pirme sang Mapfile)

Indi gid paggamita ang sulundan dd (dd if=/dev/sdc of=/dev/sdf) sa isa ka napaslawan nga RAID drive: sulundan dd naga-abort sa una nga malain nga sektor ukon nagabalhin sang mga offset sang output kon sync sayop ang pag-configure, kag wala ini sing memorya kon ano nga mga sektor ang nagmadinalag-on. GNU ddrescue (gddrescue package) nagagamit sang isa ka intelihente nga multi-pass state mapfile:

  1. Pass 1: Madasig nga Non-Scraping Clone (-n flag) sa Pagluwas sang 99.99% sang Healthy Sectors Una:
    ddrescue -f -n -b 4096 /dev/sdc /dev/sdf /root/raid_bay3_sdc.map
    
  2. -f: Nagatugot sang pagsulat sing direkta sa pag-block sang device /dev/sdf (triple-check nga /dev/sdc amo ang ginhalinan kag /dev/sdf amo ang blangko nga target).
  3. -n (--no-scrape): Nagasugid ddrescue sa gilayon nga paglumpat sa bisan ano nga mahinay ukon malain nga rehiyon sang sektor nga wala ginagaling ang ulo sang pagbasa, nga nagaluwas sang tanan nga mapagros nga mga gigabyte sa pinakamataas nga kadasigon (150 to 250 MB/s) antes maglala ang panglawas sang drive.
  4. /root/raid_bay3_sdc.map: Nagatipig sang eksakto nga pag-uswag sang sektor kada 30 segundos. Bisan pa ang napaslawan nga drive naga-lock kag nagakinahanglan sang power cycle, ang pagpadalagan liwat sang eksakto nga pareho nga sugo gamit ang .map ang file nagapadayon sa eksakto nga sektor kon diin ini nag-untat.
  5. Pass 2: Targeted Reverse/Trimming Scrape (-d -r1) sa Pagbawi sang Marginal Bad Sectors:
  6. Sa tion nga matapos ang Pass 1 (pct rescued: 99.99%), panubuan ang kernel SCSI command timeout agud ang tagsa ka malain nga sektor madasig nga mapaslawan (5 seconds sa baylo nga maghulat 30 to 180 seconds kada sektor):
    echo 5 > /sys/block/sdc/device/timeout
    
  7. Padalagana ang Pass 2 nga may direkta nga pag-access sa disk (-d) kag 1 ka pagtilaw liwat (-r 1):
    ddrescue -f -d -r 1 -b 4096 /dev/sdc /dev/sdf /root/raid_bay3_sdc.map
    
  8. Pauntaton, utdon ang orihinal nga napaslawan /dev/sdc magmaneho, kag ibutang ini sing luwas sa isa ka estante: Sugod sa sini nga punto, magatrabaho ka sing eksklusibo upod sa imo mapagros nga clone (/dev/sdf) kag ang imo iban pa nga mapagros nga mga miyembro nagamaneho.

Phase 3: Safe Read-Only RAID assembly gamit ang Copy-on-Write (COW) mga overlay kag mdadm

Karon nga may yara ka sang mapagros nga mga clone sang disk, indi gid magdalagan mdadm --assemble --force direkta sa mga hilaw nga drive nga wala sing proteksyon nga Copy-on-Write (COW) overlay ukon --readonly bandera. Ngaa? Bangod --force nagasulat liwat sang RAID superblocks sa mga drive, kag kon ang isa ka filesystem journal (ext4 / XFS) naga-replay sing awtomatiko sa pag-mount gamit ang sayop nga kombinasyon sang drive, ini permanente nga nagabag-o sang imo mga clone.

Tikang 1: Usisaa ang RAID metadata sa tanan nga mga miyembro nga drive (mdadm --examine)

Dalagan mdadm --examine sa tagsa ka miyembro nga drive (ukon partisyon, halimbawa, /dev/sda1 ukon /dev/sda3 sa Synology/QNAP NAS drives) kag i-save ang output sa isa ka text file:

mdadm --examine /dev/sd[a,b,d,f]* > /root/raid_metadata_audit.txt
cat /root/raid_metadata_audit.txt
Tan-awa ang apat ka kritikal nga mga patag para sa tagsa ka pagmaneho: 1. Array UUID: I-verify nga ang tanan nga mga drive iya sang eksakto nga pareho nga RAID pool. 2. Device Role: Nagapakita sang eksakto nga indeks sang stripe (Active device 0, Active device 1, Active device 2, Active device 3). 3. Update Time & Events: Hibalua ang N - 1 mga drive (para sa RAID 5) ukon N - 2 mga drive (para sa RAID 6) nga nagapaambit sang pinakamataas/pinakamalapit Events pag-isip. 4. Raid Level, Layout, Chunk Size, kag Data Offset: Irekord ining eksakto nga mga numero (halimbawa, Raid Level : raid5, Layout : left-symmetric, Chunk Size : 512K, Data Offset : 262144 sectors).

Tikang 2: Maghimo sang indi makahalalit nga Copy-on-Write (COW) Device-Mapper overlays (overlay-create)

Para masiguro ang 100 porsyento nga kaluwasan agud bisan pa nga piliton mo nga i-assemble ang array kag magdalagan mount, zero bytes ang ginasulat sa imo pisikal nga mga hard drive, maghimo sang loop-backed dm-snapshot Mga overlay sa Pagkopya-sa-Pagsulat sa /tmp (ukon sa isa ka eksternal nga scratch drive):

# Create a small sparse COW file + loop device for each member partition (e.g., sda3, sdf3, sdd3)
mkdir -p /root/cow
for dev in sda3 sdf3 sdd3; do
    truncate -s 20G /root/cow/${dev}.cow
    loop_base=$(losetup --find --show --read-only /dev/${dev})
    loop_cow=$(losetup --find --show /root/cow/${dev}.cow)
    sz=$(blockdev --getsz /dev/${dev})
    echo "0 $sz snapshot $loop_base $loop_cow P 8" | dmsetup create ovl_${dev}
done
- Ano ang ginahimo sini: May ara ka na karon sang mga virtual block device /dev/mapper/ovl_sda3, /dev/mapper/ovl_sdf3, kag /dev/mapper/ovl_sdd3. Ang nagapaidalom nga pisikal nga mga pagmaneho (sda3, sdf3, sdd3) naka-lock --read-only sa kernel block layer. Ang bisan ano nga mga pagsulat nga ginhimo sang mdadm --force, LVM, ukon filesystem journal replay nagakadto nga wala sing halit sa disposable /root/cow/*.cow mga file. Kon may maglain, ginapanas mo lang ang mga overlay kag himuon ini liwat sa sulod sang 2 ka segundo.

Tikang 3: I-force-assemble ang array sa mga overlay devices kag i-mount ang Read-Only

  1. Tipuna ang pinakapresko N - 1 mga gamit sa pag-overlay gamit ang --assemble --force:
    mdadm --assemble --force --verbose /dev/md99 /dev/mapper/ovl_sda3 /dev/mapper/ovl_sdf3 /dev/mapper/ovl_sdd3
    
  2. Ngaa ginabayaan naton ang stale/half-rebuilt drive (sdb3): Pagpilit mdadm sa pagtipon upod sa 3 ka bag-o nga mga drive (sda3, gin-clone sdf3, kag sdd3) nagadala /dev/md99 online sa matinlo nga degradado nga mode ([U_UU]) gamit ang eksakto nga pinakabag-o Events estado, samtang ddrescue naluwas na ang datos gikan sa sdf3.
  3. I-aktibo ang LVM (vgchange) kon ang imo NAS ukon server nagagamit sang LVM sa ibabaw sang RAID (Synology SHR, QNAP, Proxmox, Ubuntu):
    pvscan
    vgscan
    vgchange -ay
    lvs
    
    (Kon ang imo Synology NAS nagagamit Btrfs sa LVM ukon Synology Hybrid RAID, makita mo na karon /dev/vg1000/lv ukon /dev/vg1/volume_1 magpakita.)
  4. Ibutang ang filesystem sa estrikto nga Read-Only mode kag i-evacuate gilayon ang imo mga importante nga mga file:
    mkdir -p /mnt/raid_rescue
    # For ext4:
    mount -o ro,noload /dev/md99 /mnt/raid_rescue
    # (Or if noload refuses due to dirty journal, mount the COW overlay normally so the journal replays into the disposable COW file)
    mount -o ro /dev/md99 /mnt/raid_rescue
    # For Btrfs (Synology NAS):
    mount -t btrfs -o ro,usebackuproot,nologreplay /dev/vg1000/lv /mnt/raid_rescue
    
  5. Kopyahon anay ang imo pinakakritikal nga mga folder gamit ang rsync sa isa ka eksternal nga backup drive:
    rsync -avP --ignore-errors /mnt/raid_rescue/ /mnt/external_backup_usb/
    

Phase 4: Pagluwas sang mga Hardware RAID Controllers (Dell PERC, LSI MegaRAID, HP Smart Array, Adaptec) kag ZFS / Btrfs Pools

Ano abi kon ang imo array gindumalahan indi sang Linux mdadm, apang paagi sa isa ka Hardware RAID Controller Card (Dell PERC H730/H740/H755, Broadcom / LSI MegaRAID, ukon HP Smart Array) nga karon nagareport Virtual Disk Offline ukon Foreign Configuration Found pagkatapos sang ikaduha nga pagmaneho nga nag-hiccup sa tion sang pagtukod liwat?

1. Hardware RAID Cards (Dell PERC, LSI MegaRAID, HP Smart Array)

  1. INDI GID mag-klik "Clear Foreign Configuration" ukon "Initialize Virtual Disk":
  2. Sa Dell PERC / LSI MegaRAID BIOS (Ctrl+R ukon HII UEFI Configuration Utility), Clear nagapanas sang RAID metadata gikan sa mga drive, kag Initialize naga-overwrite sang mga data stripes.
  3. Kon ang isa ka mapagros nga drive makadali nga nahulog sa offline bangod sang isa ka maluwag nga backplane cable ukon timeout, Import Foreign Configuration nagatinguha nga ibalik ang drive; apang, kon ang isa ka drive nahulog sang nagligad nga mga semana kag ang ikaduha nahulog subong nga adlaw, ang pag-import sang duha ukon pagpilit sang stale drive online paagi sa controller BIOS mahimo nga makaguba sang array.
  4. Ang Luwas nga Pamaagi sa Pagtukod Liwat sang Software para sa Hardware RAID (DDF Metadata / dmraid / R-Studio / UFS Explorer):
  5. Hardware RAID cards store standard SNIA DDF (Disk Data Format) metadata sa katapusan nga mga sektor sa katapusan sang tagsa ka hard drive, kag stripe data sa mga drive nga nagasugod sa sektor 0 (ukon pagkatapos sang gamay nga header offset) gamit ang sulundan 64 KB, 128 KB, 256 KB, ukon 512 KB mga kadakuon sang chunk (Left-Asymmetric ukon Left-Symmetric).
  6. Sa baylo nga magsugal gamit ang makahalalit nga hardware RAID card BIOS:
    1. Ibutang ang label sa tanan nga mga drive paagi sa numero sang slot kag ikonektar ini sa isa ka standard SATA / non-RAID IT-Mode HBA sa isa ka workstation sa pagbawi.
    2. I-clone ang bad-sector drive gamit ang GNU ddrescue subong sang ginapakita sa Phase 2.
    3. Buksi ang mga gin-clone nga mga drive sa UFS Explorer RAID Recovery ukon R-Studio Technician, ukon tipunon sila nga read-only sa Linux gamit ang dmsetup / mdadm --build: ini nga mga gamit awtomatiko nga nagatukib sang LSI / PERC / HP stripe order, chunk size (64K/512K), kag parity rotation sa 100 porsyento nga read-only memory nga wala gid ginatugutan ang hardware RAID card nga magsulat sang isa ka byte sa imo mga drive.

2. TrueNAS / ZFS (RAID-Z1 / RAID-Z2) kag Synology Btrfs Mga Kapakyasan sa Scrub/Resilver

Kon ang imo pool nagagamit sang OpenZFS (RAID-Z1 ukon RAID-Z2) sa TrueNAS ukon Proxmox kag ang ikaduha nga drive nagahaboy CKSUM / READ mga sayop sa tion sang isa ka zpool replace pilak: 1. Ngaa ang ZFS naga-uyat sang malain nga mga sektor sa tion sang resilvering sing mas maayo sangsa hardware RAID, kag kon ini naga-lock gihapon: - Indi pareho sa mga naive hardware RAID card nga nagahulog sang bug-os nga disk sa isa ka malain nga sektor, ang ZFS padayon nga naga-resilver sang nagligad nga lokal READ mga sayop kag mga log lamang ang partikular nga nahalitan nga mga alagyan sang file sa zpool status -v. - Apang, kon ang ikaduha nga napaslawan nga drive nagabitay sang SATA/SAS bus (I/O timeout / pagbunal sang ulo) ukon nagahulog sing bug-os nga offline (UNAVAIL / FAULTED), ang pool nagasulod sa SUSPENDED estado (pool I/O is currently suspended). 2. Paano luwason ang isa ka SUSPENDED ukon FAULTED ZFS RAID-Z1 / RAID-Z2 pool: - Pauntaton sing matinlo ang kuryente, i-clone ang napaslawan nga drive sa isa ka mapagros nga tal-us nga disk gamit ang GNU ddrescue -f -n (Ang mga label sang partisyon sang ZFS nagalakip sang eksakto vdev GUID sa umpisa kag katapusan sang disk, gani ang isa ka hilaw nga sektor nga clone awtomatiko nga ginakilala sang ZFS bilang orihinal vdev miyembro). - I-disconnect ang pisikal nga nagakapatay nga drive, ibilin ang ddrescue clone nga konektado, kag i-import ang ZFS pool sa strict Read-Only mode (readonly=on) nga wala nagasugod sang isa ka transaksyon sa pagsulat ukon nagapadayon sang resilver:

zpool import -o readonly=on -f -R /mnt/zfs_rescue tank
- Pag-import gamit ang -o readonly=on nagapugong sa ZFS sa pagsulat sang bag-o nga mga uberblocks ukon pagtinguha sa pagsulat sang pag-ayo sa background, nga nagatugot sa imo nga kopyahon ang tagsa ka dataset sing luwas paagi sa zfs send ukon rsync antes tukuron liwat ang pool halin sa umpisa.


Masami nga ginapamangkot

Ngaa nagsiling ka nga INDI GID magdalagan CHKDSK ukon fsck kon ang akon RAID array naga-mount nga may mga sayop sa filesystem pagkatapos sang paghulog sang drive?

Sa isa ka nagaisahanon nga hard drive, nagadalagan CHKDSK ukon fsck nagakay-o sang magagmay nga mga indi pag-alalangay sa direktoryo. Sa isa ka multi-drive RAID 5 ukon RAID 6 array nga nag-antos sang double-drive drop ukon na-interrupt nga pagtukod liwat, ang mga sayop sa filesystem halos pirme ginatuga sang RAID stripe misalignment ukon isa ka stale member drive nga ginapilit online (buot silingon kada ika-3 ukon Ika-4 64 KB ang bahin sang datos ginabasa gikan sa sayop nga henerasyon sang drive). Kon tugutan mo CHKDSK /f ukon fsck -y magdalagan sa isa ka misaligned ukon out-of-sync RAID array, gina-misinterpret sini ang minilyon ka balido nga mga file bilang corrupted metadata, gina-utod ang mga directory tree, gina-dump ang wala ginhingadlan nga mga fragment sa nadula+nakita, kag nagasulat sang bag-o nga mga bloke sang parity sa tanan nga mga drive, nga nagahimo sini nga imposible sa matematika nga ma-reassemble ang husto nga kombinasyon sang drive pagkatapos. Pirme mag-mount paagi sa Read-Only Copy-on-Write (BAKA) mga overlay una.

Ano abi kon ang partially rebuilt replacement drive (42% kompleto) KAG ang ikaduha nga drive nga napaslawan sa 42% PAREHO nga may kinahanglanon nga datos? Mahimo ko bala ini tingbon?

Huo. Isa ini ka klasiko nga "Split-Horizon / Hybrid Clone" RAID rescue. Ibutang ta Magmaneho 2 napatay sing bug-os sang Lunes, ginbutang mo Bag-o nga Drive 2, kag ang pagtukod liwat nakahimo sini sa 42% (LBA 3,500,000,000) antes Magmaneho 3 nag-antos sang makamamatay nga pagbunggo sa ulo sa LBA 3,500,000,000. Talupangda kon ano gid ang imo: para sa una nga 42% sang array (0% sa 42%), Bag-o nga Drive 2 100 porsyento na nga gintukod liwat. Gani para sa una 42% sang LBA range, may ara ka sang kompleto nga hugpong sang mga stripes gamit ang Drive 1 + Bag-o nga Drive 2 + Drive 4 (nagabulong nga naaksidente Magmaneho 3 bilang ang nadula nga disk). Kag kon Magmaneho 3 may yara lamang sang isa ka lokal nga patch sang malain nga sektor sa 42% (kag mabasa gikan sa 43% sa 100% paagi sa ddrescue), ginagamit mo Drive 1 + Cloned Drive 3 + Drive 4 para sa nabilin 58% sang array.

Ngaa ang mga ikaduha nga drive masami nga nagakapaslawan sa tunga mismo sang RAID 5 nga pagtukod liwat?

Duha ka realidad sa enhinyero ang nagtingob sa paghimo RAID 5 nagatukod liwat nga kilala sa mga kapaslawan sa doble nga pagmaneho: (1) Pareho nga Pagtigulang sang Batch: Ang kalabanan nga mga user nagabakal sang 4 tubtob 8 ka pareho nga hard drive gikan sa pareho nga retailer sa pareho nga adlaw (pareho nga firmware, pareho nga lote sang pabrika, pareho nga batch sang spindle motor) kag padalaganon ini sing magkatupad sa eksakto nga pareho nga temperatura sa sulod sang 35,000 ka oras; kon ang Drive 1 mag-ubos, ang Drive 2 kag Drive 3 pila ka adlaw ang kalayuon sa pareho nga mechanical wear threshold. (2) Latent Indi Matadlong nga mga Sayop sa Pagbasa (UREs): Sa idalom sang normal nga adlaw-adlaw nga operasyon, 95% sang mga mabugnaw nga sektor sang archival sang isa ka hard drive wala mabasa sa sulod sang mga binulan sa isa ka tion, gani ang mga natago nga malain nga mga sektor wala matukiban. A RAID 5 ang pagtukod liwat nagapuwersa sang padayon 100% surface read sang tagsa ka sektor sa tagsa ka nakalampuwas nga drive (40 tubtob 100 ka terabyte sang padayon nga pagbasa), gilayon nga nagabuyagyag sang bisan ano nga natago nga malain nga sektor nga natipon sa nagligad nga tuig.

Paano ko mahibaluan kon ano nga mga file ang naapektuhan sang pila ka indi mabasa nga malain nga mga sektor nga ddrescue kinahanglan nga zero-fill?

GNU ddrescue nagalakip sang isa ka built-in forensic utility nga ginatawag ddrescuelog kag ddru_ntfsfindbad / debugfs nga naga-mapa sang eksakto nga wala mabawi nga sektor LBA halin sa imo .mapa file (status = '-' malain nga mga sektor) paagi sa RAID stripe math direkta sa filesystem inode table. Kon mahibaluan mo na kon diin 4 KB ang mga bloke zero-filled sa tion sang pag-clone, mahimo ka magpamangkot debugfs (icheck kag tsek sa ext4) ukon btrfs inspect-internal logical-resolve sa pag-imprinta sang eksakto nga listahan sang 2 ukon 3 ka mga ngalan sang file nga nag-overlap sa mga malain nga sektor, nga nagapamatuod nga may 100 porsyento nga kapat-uran sa matematika nga ang tagsa ka iban pa nga file sa imo multi-terabyte server wala gid sing kadaot.


May kaangtanan nga mga giya


Mga ginhalinan kag opisyal nga giya

  • Linux Raid Wiki (raid.wiki.kernel.org/index.php/Linux_Raid & Recovering_a_failed_software_RAID): Opisyal nga Kernel mdadm Recovery Protocol, Device-Mapper Copy-on-Write (dm-snapshot) Mga overlay, kag Events Kontra nga Pagpasag-uli.
  • GNU ddrescue Opisyal nga Manwal sa Inhenyeriya (gnu.org/software/ddrescue/manual/ddrescue_manual.html): Multi-Phase Non-Scraping (-n) kag Direkta nga Pag-access (-d) Mga Algoritmo sa Pagbawi sang Sektor para sa Napaslawan nga Magnetic Media.
  • Synology Opisyal nga Base sang Kahibalo (kb.synology.com/en-global/DSM/tutorial/How_can_I_recover_data_from_my_DiskStation_using_a_PC): Pagsakay mdadm + LVM2 + Btrfs / ext4 NAS Volumes Read-Only sa Ubuntu Rescue Systems.
  • Storage Networking Industry Association (SNIA): Common RAID Disk Data Format (DDF) Espesipikasyon para sa Hardware RAID Controller Metadata Portability.