Skip to main contentSkip to navigation
Lab Operational Since: 17 Years, 7 Months, 24 DaysFacility Status: Fully Operational & Accepting New Cases

RAID 10 Data Recovery Services

RAID 10 combines mirroring and striping to deliver both redundancy and throughput. When a mirror pair fails or a controller loses its metadata, the array goes offline and standard tools cannot read it. We image each member drive through write-blocked channels, reconstruct the stripe-of-mirrors layout from cloned data, and extract your files without writing to the originals. Our RAID data recovery service covers all array levels; this page focuses on RAID 10 specifically. Free evaluation. No data = no charge.

Author01/18
Louis Rossmann
Written by
Louis Rossmann
Founder & Chief Technician
Updated June 2026
15 min read
Recovery Service02/18

What Does RAID 10 Data Recovery Cost and How Does the Service Work?

If we recover no data, you owe nothing. RAID 10 recovery is priced per member drive by each drive's failure type plus an array reconstruction fee. All work is performed in-house at our Austin, TX lab, with nationwide mail-in intake and a free evaluation before any charge.

Pricing at a Glance

  • Per-member imaging runs across the published HDD tiers ($100–$2,000), billed per drive by failure type, since every member is imaged before the array is reconstructed read-only from the clones.
  • RAID 10 is priced as the sum of per-member imaging plus a single array reconstruction fee. The full per-tier and reconstruction breakdown is in the pricing section lower on this page.
  • Faster turnaround is available: +$100 rush fee to move to the front of the queue.

We run a single lab at 2410 San Antonio Street, Austin, TX 78705. No franchises, no outsourcing, no satellite offices, and no diagnostic fee. Your drives are evaluated and imaged by the same engineers who reconstruct the array, and you get a quote before any work begins.

RAID 10 Structure03/18

How Does RAID 10 Combine Mirroring and Striping?

RAID 10 is a nested array that mirrors data within drive pairs first, then stripes those pairs together. This gives read/write performance close to RAID 0 with the redundancy of RAID 1 at the cost of 50% usable capacity.
  • In a 4-drive RAID 10, drives are grouped into two mirror pairs. Drive A1 and A2 hold identical data (mirror pair A). Drive B1 and B2 hold identical data (mirror pair B). Incoming writes are split into stripes and distributed across mirror pair A and mirror pair B.
  • A 6-drive RAID 10 has three mirror pairs; a 12-drive RAID 10 has six. Each pair operates as an independent RAID 1 within the larger striped set. The controller reads from whichever mirror member responds faster, which doubles read throughput.
  • Enterprise deployments commonly run RAID 10 across 8, 12, 16, or 24 drives for database servers (SQL Server, Oracle, PostgreSQL), virtualization hosts (VMware ESXi, Hyper-V), and any workload that demands high IOPS with fault tolerance.
  • RAID 10 differs from RAID 01 in construction order. RAID 01 stripes first and then mirrors the stripe sets. This distinction matters for fault tolerance: in RAID 01, a single drive failure degrades an entire stripe set, and any subsequent failure in the surviving stripe set causes total loss. In RAID 10, a single failure only degrades one mirror pair, and the array survives as long as every pair retains at least one healthy member.
RAID 10 Behavior04/18

When Does a RAID 10 Array Become Unrecoverable?

A RAID 10 array fails when both drives in any single mirror pair are lost. The critical factor is which drives failed relative to the mirror pairs, not the total number of failures. Two drives can fail without data loss when they sit in different mirror pairs, but one dead pair takes the volume offline.
Failure patternArray stateRecovery impact
Two drives failing in different mirror pairsThe array continues operating in a degraded state. Each affected pair still has one surviving member.No data is lost.
Two drives failing in the same mirror pairThat span's data is gone from the stripe set. The controller takes the volume offline.Without at least one readable copy from every mirror pair, the full dataset cannot be assembled.
Controller dies or replacement controller altered the metadataRAID metadata is no longer trusted on the drives or in controller NVRAM.Recovery requires reverse-engineering the original stripe configuration from the raw drive images.

Recovery in the second scenario depends on whether we can restore at least one drive in the failed pair. If a drive failed due to a burned TVS diode, a seized motor, or corrupted firmware, physical intervention (board repair, head swap, PC-3000 firmware reconstruction) can bring it back to a readable state. Once one member per pair is imaging, the array can be reconstructed.

Degraded RAID 10 arrays left running while a rebuild proceeds are at peak risk. If a second drive in the same mirror pair fails during the rebuild, the array drops offline. Power down a degraded array and contact a recovery service before initiating a rebuild on questionable hardware.

Do not rebuild: Forcing a RAID rebuild on aging drives under heavy I/O often triggers a second failure in the same mirror pair. Power down and preserve the current state.

Process05/18

Our RAID 10 Recovery Process

We recover RAID 10 arrays by imaging every member through write-blocked hardware, identifying the mirror pair assignments and stripe layout, and reconstructing the virtual array offline from cloned images. Each member is labeled with its original bay number before imaging so the mirror pairs and stripe interleave can be rebuilt in the right order.
  1. Free evaluation and intake: Document the array configuration: member count, controller model (Dell PERC, HP Smart Array, LSI MegaRAID, software mdadm), RAID level confirmation, stripe size, and slot positions. Drives are labeled with their original bay numbers.
  2. Write-blocked forensic imaging: Each member drive is cloned individually using PC-3000 and DeepSpar hardware with conservative retry settings and head-map optimization. For a 12-drive RAID 10, this means 12 sequential imaging sessions. No writes touch the original drives.
  3. Physical intervention (when needed): Members with mechanical failures (clicking, seized motor, head crash) receive donor head transplants or motor repair on a 0.02 micron ULPA-filtered clean bench before imaging. Electrically damaged PCBs are diagnosed and repaired at the component level under microscope.
  4. Controller metadata analysis: Proprietary RAID metadata from the controller is extracted from member drive reserved areas. For hardware controllers like Dell PERC H755 or HP P816i, the metadata encodes mirror pair assignments, stripe block size, and member ordering. When the original controller is unavailable, we reverse-engineer these parameters from the raw data layout across member images.
  5. Offline array reconstruction: Data Extractor Express RAID Edition, running on the PC-3000, assembles the virtual RAID 10 from cloned images. Mirror pairs are mapped, the stripe interleave is validated against known filesystem structures, and mirror pair consistency is cross-checked. The reconstructed volume is mounted read-only.
  6. Filesystem extraction and delivery: R-Studio or UFS Explorer extracts files from the reconstructed volume (NTFS, EXT4, XFS, ZFS, VMFS). Priority data such as database files, virtual machine images, and shared folders are verified first. Recovered data is delivered on your target media and all working copies are purged on request.
Typical timing: 4-drive RAID 10 arrays with healthy reads complete in 2-4 days. Arrays with 8+ members or drives needing mechanical work: 4-8 weeks depending on donor availability and imaging stability. Rush fee available (+$100 rush fee to move to the front of the queue).
Chunk-Size Detection06/18

How Do We Detect Chunk Size and Mirror Pairing From Imaged Members?

When the original controller is dead and no surviving configuration export exists, chunk size and mirror pairing must be inferred from the raw drive images themselves. We run sector-by-sector entropy analysis, search for filesystem boundary signatures at controller-typical chunk boundaries (64 KiB, 128 KiB, 256 KiB, 512 KiB, 1 MiB), and cross-validate against repeating magic numbers in the on-disk layout.
  • Entropy delta scanning: Compressed and encrypted regions show near-uniform Shannon entropy. Plaintext database files, log structures, and filesystem metadata show characteristic non-uniform distributions. Chunk boundaries become visible where the entropy distribution shifts at exactly the same LBA on two members. Mirror partners show byte-identical entropy at the same LBA; striped partners do not.
  • Filesystem boundary alignment: NTFS $MFT records are 1024 bytes each and chunk-aligned writes produce a clean break at every chunk boundary. The ext4 primary superblock sits at byte offset 1024, and on sparse_super layouts backup copies land at the start of block group 1 and every block group that is a power of 3, 5, or 7 (with the default 4 KiB block size, block group 1 begins at block 32768). XFS allocation group headers sit at the start of each AG and contain a self-referential AG number. ZFS uberblock arrays sit in the second half of each 256 KiB vdev label, after the boot block and nvlist configuration, and contain a TXG counter that monotonically increases across the label set. VMFS heartbeats occupy a fixed region near the start of the volume. Each anchor lands at the same offset on mirror partners and at chunk-spaced offsets on striped partners.
  • mdadm software RAID 10: mdadm --examine /dev/sdX against each cloned image reports the superblock version (v0.90 trailer near the end of the device, v1.0 at the end, v1.1 at offset 0, v1.2 at 4 KiB from the start), the layout code (n2 near, f2 far, o2 offset), the chunk size in KiB, and the device role within the array. With those five fields we can reassemble the array on a vanilla Linux workstation with mdadm --assemble --readonly.
  • Hardware controller anchors: On hardware RAID 10, the controller writes metadata to known locations on each member. LSI MegaRAID and Dell PERC use a DDF variant anchored at the last LBA of each drive, with a reserved region of roughly 32 MB growing inward from the end. HP Smart Array uses a Reserved Information Sector in reserved physical sectors at the start of each drive, independent of any OS partitioning. We parse those structures off the cloned images before falling back to entropy and filesystem-anchor inference.
Stripe Mapping07/18

How Is the RAID 10 Stripe Map Rebuilt Across the Surviving Mirrored Pairs?

Reconstruction reduces a stripe-of-mirrors to a virtual RAID 0 by selecting one readable member from each mirror pair, then interleaving those members at the detected chunk size and member order. The hard part is picking the correct member of each pair, because the two halves of a mirror are not guaranteed to be byte-identical at the moment of the crash.

Once the array is offline and every surviving member has been imaged through a write-blocker, the layout is solved from the raw images, not from the dead controller. Mirror partners are identified by byte-identical content at the same LBA.

Stripe order and chunk size are recovered by locating a known filesystem anchor (the NTFS $MFT, an ext4 superblock backup, or an XFS allocation group header) and measuring where successive chunks land across the candidate members. With the mirrors collapsed to one member each, the remaining members interleave as a standard RAID 0 stripe.

Mirror failover is not a bit-identical hardware sync

The common assumption is that the two drives in a mirror pair are always exact copies, so either one can be used interchangeably. Under the write-back caching that database and virtualization workloads drive, the two members flush to platter milliseconds apart. An ungraceful shutdown, a power event, or a controller crash mid-write leaves one member with writes the other never received. One member is fresh; the other is stale.

Mirror failover keeps the volume serving reads from whichever member is alive; it does not guarantee both members hold the same last transaction.

If the stale member of one pair is interleaved with the fresh member of another pair, the assembled stripe carries mismatched generations: filesystem headers misalign, database consistency checks fail, and VMDK or VHDX containers refuse to mount. This is why every surviving member is imaged rather than just one per pair. We compare per-member state to pick the freshest copy of each pair before assembly:

  • Software arrays: mdadm --examine /dev/sdX against each cloned image reports the event counter and update time of the superblock. The member with the highest event count was last in sync; a member with a lower count fell out of the array before the crash and must not be treated as current.
  • NTFS volumes: the $LogFile and the $MFT update sequence numbers reveal which member committed the most recent metadata transactions.
  • ext4 and XFS volumes: the journal state and superblock mount/write counters identify the member that was last written before the array dropped.

None of this requires writing to the original drives, and none of it requires a live rebuild. Because the reconstruction runs against cloned images, a wrong chunk-size guess or a wrong member selection can be redone without consuming any of the surviving members. A degraded hardware rebuild does the opposite: it writes to the survivors at the moment they are most fragile, which is why we never use it as a recovery step.

Fault Tolerance Math08/18

What Are the Survival Odds When Multiple Drives Fail in RAID 10?

A RAID 10 with N drives has K = N/2 mirror pairs. The array survives only if every pair retains at least one healthy member. Once a second failure lands in any single pair, the stripe set goes offline. The number of failure patterns the array survives depends only on whether any two failures collide in the same pair.
Configuration2 random failures3 random failures4 random failures
4 drives, 2 mirror pairs4 of 6 patterns survive (both failures must land in different pairs).Cannot survive. With only 2 pairs, three failures guarantee at least one dead pair.Cannot survive.
8 drives, 4 mirror pairs24 of 28 patterns survive.32 of 56 patterns survive (all three must land in three different pairs).16 of 70 patterns survive (each pair must lose exactly one member).
12 drives, 6 mirror pairs60 of 66 patterns survive.160 of 220 patterns survive.240 of 495 patterns survive. This pattern count is a worst-case upper bound that assumes independent, uniformly random failures.
24 drives, 12 mirror pairs264 of 276 patterns survive.1760 of 2024 patterns survive.7920 of 10626 patterns survive.

These pattern counts assume failures are independent and uniformly random. Production failures rarely behave that way. Drives from the same manufacturing batch share firmware, head stack, and motor lots, which raises the probability of correlated failures within hours of each other. When two drives in the same mirror pair come from the same batch, the survival odds in this table are optimistic.

Rebuild Physics09/18

What Are the URE Risks During a RAID 10 Rebuild?

A RAID 10 rebuild reads only the surviving mirror member of the affected pair, not every member of the array. This is different from RAID 5 or RAID 6 parity rebuilds, which read every surviving member end-to-end. A single unrecoverable read error (URE) on the surviving mirror member during rebuild corrupts the new mirror copy at that LBA, and depending on controller firmware behavior the corruption may not be flagged to the host.
  • Consumer SATA URE probability: Manufacturer specifications list one URE per 10^14 bits read as a probabilistic upper bound, which corresponds to an expected value of one URE per 12.5 TB of sustained reads. A full read of a 4 TB consumer member during rebuild is a statistically meaningful fraction of that expected interval on aging hardware. Real-world fleet error rates can exceed the published spec.
  • Enterprise SAS URE probability: Enterprise drives spec one URE per 10^15 bits, an expected value of one URE per 125 TB. The ten-times-lower error rate is the dominant reason enterprise arrays last longer in service, not the spindle speed or the interface.
  • Silent corruption window: If the surviving mirror member returns a bad sector during rebuild and the controller does not surface the error to the host, the new mirror inherits the corruption. The array then reports healthy while data is wrong. Some controllers issue a medium error and abort the rebuild; others retry, succeed on a random read, and proceed. Behavior is firmware-specific and must be characterized per controller model before any live rebuild.
  • SMR drive eviction during rebuild: Shingled magnetic recording (SMR) consumer drives stall during sustained sequential writes when the CMR cache zone overflows. The kernel or the controller interprets a 30 to 60 second stall as a dead drive and ejects it, taking the rebuild offline mid-flight. SMR drives must never be placed into a RAID 10 array.

Our policy on a degraded RAID 10 with anything more than a clean single-drive failure is to refuse the live rebuild path. We power down the array, image every member with ddrescue or PC-3000 Portable III or PC-3000 Express through a write-blocker, then reconstruct the virtual array offline from the cloned images.

The original drives are never written to during recovery, which means a failed reconstruction can be redone with a different chunk-size guess or a different mirror-pair assumption without burning any of the surviving members.

Single-Leg Mirror Depletion10/18

What Happens When the Last Surviving Mirror Member Develops Bad Sectors?

A mirror pair that has already lost one member has no twin left to fall back on. If the lone surviving leg hits unrecoverable read errors during imaging, those specific LBAs have no second copy anywhere in the array, so they are lost while the rest of the volume reconstructs. We image the failing leg multi-pass through a write-blocker to pull the maximum readable sectors before the heads degrade further.

This is a different failure than a dead pair, where both members are gone, and different than a URE on a member whose twin is healthy. When a twin survives, the controller or our offline reconstruction reads the lost LBA off the good member, and nothing is lost. When the pair is already down to one drive, the surviving leg is the only copy of that span, so a single bad sector in user data has no fallback. The math is the same one in our RAID array recovery work: redundancy is gone the moment a span drops to one member, and every read after that point is unprotected.

The trap is leaving that degraded pair powered and serving I/O while a rebuild runs against it. A consumer SATA member specs one URE per 10^14 bits, an expected one error per 12.5 TB of sustained reads; an enterprise SAS member specs one per 10^15 bits, one per 125 TB. A full read of the lone surviving leg during a rebuild is a meaningful fraction of that interval on aging hardware, and every retry the controller forces accelerates head wear on the one drive you cannot afford to lose.

How we triage a depleted mirror

  1. Power down immediately. A degraded pair under live rebuild I/O is the worst place the surviving leg can be. We stop reads to the original drive before it degrades further.
  2. Write-blocked multi-pass imaging. The lone leg is cloned with DeepSpar Disk Imager and PC-3000 Portable III or PC-3000 Express through a write-blocker. The first pass grabs every easily readable sector fast; later passes return to the bad regions with adjusted timeouts and head-map selection to recover the maximum LBAs around damaged sectors before the heads wear out.
  3. Selective head-map recovery. Imaging is ordered to read the most valuable regions first and to skip and revisit bad zones, so a head that fails partway through has already pulled the priority data rather than dying on a slow linear sweep.
  4. Virtual reconstruction from the best image. PC-3000 and DeepSpar image and extract sectors; the array is then assembled in software from the best clone, with the surviving mirrors of every healthy pair filling their spans normally.

We state the limit plainly. If the only surviving member of a span has unreadable LBAs inside user data, those exact LBAs are gone; no twin and no parity exists to regenerate them. The rest of the volume still reconstructs from the readable sectors and from the healthy pairs, so a depleted mirror is rarely a total loss, but the affected span is read to the limit of the one drive that remains. There is no diagnostic fee, and if we recover no data you owe nothing.

NVRAM vs On-Disk Authority11/18

What Happens When the Controller Loses Its NVRAM Config but the Drives Still Hold the DDF?

Controller NVRAM is a cache; the authoritative array geometry lives on the member drives in the DDF or RIS. A controller that boots with cleared NVRAM raises a Foreign Configuration and reads the on-disk metadata back. Accepting that import is normally safe, but on a desynchronized array it can promote a stale member's geometry, and clearing the foreign config wipes the on-disk map entirely.

A dead cache battery, a replaced controller, or a cleared config wipes the NVRAM copy of the array layout, but the real map is still on the drives. Dell PERC and LSI MegaRAID anchor a DDF record at the last LBA of each member; HP Smart Array writes a Reserved Information Sector near the start of each drive. When the on-disk metadata survives and NVRAM does not, recovery is a matter of reading the surviving on-disk record, not reconstructing geometry from scratch.

The danger is the inverse case. A cleared-NVRAM controller flags the members as Foreign Config and offers to import them. Accepting the import rewrites NVRAM from the on-disk DDF, which is fine when every member carries the same DDF sequence number. It is destructive when the members are desynchronized, because the import can promote a stale member's geometry or sequence number and write that back as the array of record.

Clearing the foreign config is worse: it wipes the DDF off the drives and destroys the only map that remained. Either action taken on a divergent array can convert a recoverable state into an unrecoverable one.

Our procedure on a cleared-NVRAM array

  1. Photograph the BIOS config screen. The boot-time controller interface records member positions and foreign-config status. We capture it before touching anything.
  2. Do not accept-import or clear on a desynced array. Neither action is run against the live members when the DDF sequence numbers across drives disagree. Both can promote a stale member or erase the map.
  3. Pull the drives and clone every member write-blocked. Each member is imaged with PC-3000 and DeepSpar hardware through a write-blocker, so nothing the controller does later can reach the originals.
  4. Parse the DDF off the clones and reconstruct offline. The on-disk DDF or RIS is read from the cloned images, sequence numbers are compared in software, and the array is assembled with Data Extractor Express RAID Edition on the PC-3000, never by a live foreign import.

The rule holds across every hardware controller we recover from in our enterprise server recovery work: the on-disk DDF is authoritative over NVRAM, so we read it from clones and never let a controller with cleared NVRAM write a stale geometry back onto a desynchronized array.

Desynchronized Members12/18

How Do We Arbitrate Members With Mismatched Event Counts or DDF Sequence Numbers?

Members can carry different mdadm Event counters or different DDF sequence numbers when a patrol read, background initialization, consistency check, or staggered hot-spare promotion advanced one leg while another was offline. The freshest member is the one with the highest Events count or sequence number. A live auto-rebuild or a forced assemble that ignores the gap promotes the stale leg and overwrites current data, which is irreversible on the live array.

Split-generation members are common after an interrupted rebuild. A background initialization, a consistency check, a patrol read, or a hot spare that was promoted late can advance one member's metadata while another sat offline; an auto-rebuild that started, stalled, and restarted against a moving target leaves the same divergence. The result is a pair whose two halves disagree about which one holds the last committed transaction.

For software RAID, mdadm --examine /dev/sdX against each cloned image reports the Events count and Update Time per member. The highest Events count was last in sync; a lower count fell out of the array earlier and must not be promoted as current. For hardware RAID, the DDF carries a sequence number the controller compares to decide which member is authoritative. The conceptual fields we arbitrate on look like this when read off a clone:

mdadm --examine /dev/sdc   # member A (cloned image)
          Events : 184273
     Update Time : last in sync

mdadm --examine /dev/sdd   # member B (cloned image)
          Events : 184019    # lower count: fell out earlier, do NOT promote
     Update Time : stale

The hazard is automation. A live auto-rebuild or a mdadm --assemble --force that ignores the event-count gap promotes the stale leg and overwrites the current data with the old generation. On the live array that write is irreversible. This is the same destructive path a RAID 5 forced assembly takes when it readmits a dropped member without checking its generation first.

How we select the freshest member safely

  1. Arbitrate on cloned images first. Event counts and DDF sequence numbers are read from the clones, never from the live drives, so the comparison itself writes nothing to the originals.
  2. Select the freshest copy per pair. The member with the highest Events count or sequence number is chosen for each pair; the stale one is set aside rather than readmitted.
  3. Assemble read-only. Software arrays are brought up with mdadm --assemble --readonly; hardware arrays are assembled with Data Extractor Express RAID Edition reading the raw sequence fields off the clones.
  4. Redo without cost when a guess is wrong. Because every step runs against clones, a wrong member selection can be reversed and re-run without consuming any of the surviving members.
Pricing13/18

How Much Does RAID 10 Recovery Cost?

RAID 10 recovery is priced per member drive (based on each drive's failure type) plus an array reconstruction fee. If we recover no data, you owe nothing. Large arrays raise the per-drive imaging total because every member still has to be imaged before the reconstructed volume can be mounted read-only.

Per-Member Imaging

  • Logical or firmware-level issues: $250 to $900 per drive. Covers filesystem corruption, firmware module damage requiring PC-3000 terminal access, and SMART threshold failures preventing normal reads.
  • Mechanical failures (head swap, motor seizure): $1,200 to $1,500 per drive with a 50% deposit. Donor parts are consumed during the transplant. Head swaps and platter work are performed on a validated laminar-flow bench before write-blocked imaging.

Array Reconstruction

  • The reconstruction fee depends on member count, filesystem type (NTFS, EXT4, XFS, ZFS, VMFS), and whether mirror pair assignments and stripe parameters must be detected from raw data versus captured from surviving controller metadata.
  • For large RAID 10 arrays (12, 16, 24 members), the per-drive imaging cost scales with member count. The reconstruction process operates on already-imaged data regardless of how many members contributed to it.

No Data = No Charge: If we recover nothing from your array, you owe nothing. Free evaluation, no obligation.

If a 4-drive RAID 10 has two members requiring firmware repair while two are healthy reads, the cost model applies 2 drives at the firmware tier, 2 drives at the logical tier, plus the array reconstruction fee.

Construction Order14/18

Why Does RAID 10 vs RAID 01 Construction Order Matter for Recovery?

RAID 10 and RAID 01 use identical drive counts and deliver similar performance, but their failure behavior and recovery characteristics are different. In RAID 10, a single drive failure only degrades one mirror pair. In RAID 01, a single drive failure degrades an entire stripe set.
AttributeRAID 10RAID 01
Data layoutData is mirrored within pairs, then pairs are striped.Data is striped across sets, then those sets are mirrored.
Single drive failureSingle failure degrades only one mirror pair. The rest of the array remains fully redundant.Single failure degrades an entire stripe set. The surviving mirror holds all data.
Second failure toleranceSurvives multiple failures as long as each mirror pair retains one member.Cannot tolerate two failures in different stripe sets, even if they affect different physical drives.
Recovery requirementRecovery from a failed pair requires restoring just one of the two member drives in that pair.Recovery requires at least one complete, intact stripe set.

Most enterprise controllers default to RAID 10 for this reason. RAID 01 configurations are uncommon but do appear on older HP and IBM hardware. During recovery, correctly identifying whether the array is 10 or 01 is essential because the mirror pair assignments and stripe boundaries differ between the two layouts.

Enterprise RAID Controllers15/18

Enterprise RAID Controllers We Recover From

Hardware RAID controllers store configuration metadata in proprietary formats on the member drives and in onboard NVRAM. Recovery requires parsing this metadata to map mirror pairs and stripe order before the cloned members can be assembled into a readable volume. Software RAID metadata is easier to parse, but the mirror pair groupings and stripe chunk sizes still have to match.

Dell PERC

H730, H740, H755 controllers used in PowerEdge servers. PERC stores DDF (Disk Data Format) metadata and controller-specific configuration data on each member. When a PERC controller fails, importing to a replacement unit sometimes alters member ordering. We read metadata from the raw drive images directly.

HP Smart Array

P408i, P816i controllers in ProLiant servers. HP uses a proprietary metadata format stored in reserved sectors on each member. Cache module battery failures can cause write-back cache data loss on top of the array failure itself.

LSI MegaRAID

9361, 9460, 9560 series controllers found in a wide range of server and workstation platforms. LSI metadata is stored on each member and references virtual drive groups and span definitions. We parse those structures off the cloned images during offline virtual assembly so the live array is never written to during recovery.

Software RAID configurations (Linux mdadm, Windows Storage Spaces, ZFS) store their metadata in standardized superblock locations. These are easier to parse than hardware controller formats but still require correct identification of mirror pair groupings and stripe chunk sizes during reconstruction.

Controller-Specific Metadata Layout

Dell PERC (H730 / H740 / H755): DDF anchored at the last LBA
PERC silicon is rebadged LSI MegaRAID with Dell firmware. It writes a Dell variant of the SNIA DDF (Disk Data Format) record set anchored at the absolute last LBA of each member drive, with the reserved DDF region (roughly 32 MB) growing inward from the end. When a PERC controller fails and the drives are reseated into a replacement PERC of a different generation, the new controller flags the array as Foreign Config in the boot-time BIOS interface. Accepting the import rewrites the controller NVRAM from the on-disk DDF and preserves member ordering across PERC generations as long as the replacement firmware supports the source DDF dialect. Clearing the Foreign Config wipes the DDF from the trailing sectors and destroys the geometry map. If foreign-config status appears, photograph the BIOS screen, shut the server down, and pull the drives for cloning before any further action.
HP Smart Array (P408i / P816i): RIS at the start of each drive, not DDF
HP Smart Array uses a proprietary Reserved Information Sector (RIS) written at the start of each member drive, in reserved physical sectors independent of any OS partitioning. This is not DDF and is not parseable by third-party DDF utilities. The on-drive RIS records member position, stripe size, mirror pairing, and array geometry. Smart Array defaults to a 256 KiB chunk size, not the 64 KiB default seen on Dell PERC. Standard destriping tools that assume 64 KiB will return scrambled data on a Smart Array image. The controller ships with a Flash-Backed Write Cache (FBWC) or Battery-Backed Write Cache (BBWC). If the controller dies with dirty writes in the cache module, those writes never reach the member drives. A degraded BBWC or supercap means in-flight writes are lost; treat the array as a pre-existing-state recovery rather than a current-state recovery.
LSI MegaRAID (9361 / 9460 / 9560): DDF with span definitions
LSI MegaRAID writes a SNIA DDF record on each member that includes virtual drive group definitions, span definitions for RAID 10 / 50 / 60, and mirror-set pairing identifiers. The DDF anchor header sits at the absolute last LBA of each drive, with the reserved region growing inward from the end, which means cloning to a replacement drive even one LBA smaller than the original truncates the metadata. Forensic triage runs against cloned images, not live drives: storcli /c0 show all and MegaCli64 -PDList -aALL executed against a sacrificial test rig populated with the clones reveal the same metadata the live controller would surface, without risking a write to the originals. The DDF on member drives is authoritative; the controller NVRAM is a cache. When the two disagree, the on-disk DDF wins.
Rebuild ordering, in our lab
For every hardware controller above, the rebuild order is the same: clone first, parse second, assemble virtually third. We never run a foreign import on a live array. We never let the original controller write to a degraded member. If the customer has already accepted a foreign import and the result is unstable, we still image the members in their current state and reconstruct offline. The risk surface of a live rebuild on a multi-disk failure exceeds any time savings from skipping the imaging step.
NVMe Cache Dropout16/18

What Happens to an NVMe RAID 10 Array When the Controller Write Cache Loses Power?

When a supercapacitor-backed write cache fails to hold up through a power event, the in-flight stripe writes never reach the NVMe members. In RAID 10 that leaves a torn write: one mirror member took the LBA, the other did not. The media stays healthy; the mirror pair is logically inconsistent.

Modern enterprise controllers run NVMe members on native PCIe transport rather than the SAS path. Broadcom Tri-Mode silicon such as the LSI MegaRAID 9560-16i (SAS3916 RoC) drives NVMe members over PCIe Gen4 alongside legacy SAS and SATA members on their native transports, and it still writes its array geometry to a SNIA DDF record on the trailing sectors of each member drive.

The original controller is not required to read that geometry back, because chunk size, span layout, and mirror-pair assignments live on the drives themselves, not in controller NVRAM.

That is the same on-disk-metadata reality covered across our RAID array recovery work and on the dense enterprise server arrays we image in-house at the Austin, TX lab. HP Smart Array controllers such as the P816i are the exception that proves the rule: they do not use DDF at all, writing a proprietary Reserved Information Sector at the start of each member instead. Either way the geometry is on the disks.

Legacy SAS controllers protected dirty cache with a battery-backed or flash-backed write cache. Modern NVMe controllers protect it with a supercapacitor-backed flash module, the CacheVault design being one example. The physics of the failure are the same: if the server loses power and the supercap is degraded or fails to hold the cache long enough to flush, the uncommitted in-flight stripe writes are gone.

On the next boot the controller reads the dirty consistency flag and reports the array as degraded or needing a consistency check, even though every NVMe member is electronically healthy and present on the PCIe bus. This is a logical problem, not a media problem. No head swap, no clean bench, no platter imaging.

The imaging stage here is a straight clone of healthy media, after which the array is reconstructed virtually in software with Data Extractor Express RAID Edition, which performs a mirror-consistency scan LBA by LBA to determine which member holds the committed data and which holds the stale torn copy.

Before any of that, the controller can be interrogated read-only against cloned images on a test rig to confirm the strip size and the mirror-pair span assignments. This is forensic triage performed in our lab, never a fix run against the live array:

storcli64 /c0 show all

What the forums get wrong about NVMe dirty mirrors

  • "NVMe is too fast to lose writes." The opposite is true. High IOPS means more data is in flight at the instant the supercap fails to hold up the cache, so an NVMe array traps more uncommitted writes during a power event, not fewer.
  • "Just force the array online or accept the consistency check." A consistency check resolves the mirror by copying one member over the other to make them match. The controller has no way to know the committed member from the stale one, so it can overwrite the good LBA with the torn copy. That destroys the committed data permanently. This is the single most common way a recoverable dirty mirror becomes unrecoverable.
  • "The controller will auto-resync correctly." RAID synchronizes for uptime, not for forensic integrity. The resync makes the two members identical again; it does not preserve the last committed transaction. RAID is availability, not a backup.
  • "RAID 10 mirrors are always identical, so pick either member." A torn write guarantees the two members diverge at the exact failure LBA. Selecting the stale member yields misaligned filesystem headers, failed database consistency checks, and VMDK or VHDX containers that refuse to mount. Both members are imaged and compared before assembly precisely because they are not interchangeable.

The same mechanism shows up at the prosumer end of the market. When a Synology NVMe cache device drops off the PCIe bus before its dirty pages flush, the underlying volume is left logically inconsistent in the same way. Abrupt loss of volatile cache equals a torn topology whether the controller is a Broadcom RoC or a consumer NAS.

Because every member is imaged first and the reconstruction runs against the clones, a wrong member selection can be redone without ever writing to the original NVMe drives. There is no diagnostic fee, and if we recover no data you owe nothing.

Terminology17/18

RAID 10 Terminology Reference

The terms below are used throughout this page and across vendor documentation. Mixing them up is the single most common reason a recovery attempt destroys data that could otherwise have been retrieved.

Mirror set
Two member drives that hold byte-identical copies of the same stripe segment. A 4-drive RAID 10 has two mirror sets; a 12-drive RAID 10 has six.
Stripe set
The group of mirror sets that data is interleaved across. In RAID 10 the stripe set contains all mirror pairs, with each successive chunk written to the next mirror set in sequence.
Chunk size
The number of contiguous bytes written to one mirror set before the controller moves to the next. Common values are 64 KiB (default on Dell PERC), 128 KiB, 256 KiB (default on HP Smart Array), and 1 MiB depending on controller and workload tuning.
Foreign config
The status flag a hardware RAID controller raises when it boots and finds member drives carrying a configuration the controller does not recognize as its own. Accepting the import writes the on-disk configuration into controller NVRAM. Clearing or re-initializing destroys it.
DDF (Disk Data Format)
The SNIA-standardized on-disk RAID metadata format. LSI MegaRAID writes a SNIA-compliant DDF with its 512-byte Anchor Header at the absolute last LBA of each member, the reserved region (around 32 MB) growing inward from the end. Dell PERC writes a Dell variant of DDF to the same trailing region.
RIS (Reserved Information Sector)
HP's proprietary RAID metadata layout for Smart Array controllers, written at reserved physical sectors at the start of each member drive, independent of any OS partitioning. Not DDF and not interchangeable with DDF parsers.
Span
A subgroup of drives within a nested RAID configuration. A RAID 10 array is one span per mirror pair; RAID 50 and RAID 60 use span counts to express the parity grouping.
Virtual drive group
The controller-level abstraction that maps a set of physical members to a single logical block device presented to the operating system. The OS sees one device; the controller knows the underlying member layout.
Write-back cache (FBWC / BBWC)
A controller-side memory buffer that acknowledges writes to the host before the data lands on the member drives. A flash-backed (FBWC) or battery-backed (BBWC) cache holds dirty data through power loss until the data is flushed. A failed cache module loses in-flight writes regardless of the array state.
URE (Unrecoverable Read Error)
A sector that returns a read error despite ECC retries. Consumer drives spec one URE per 10^14 bits read; enterprise drives spec one per 10^15. During a RAID 10 rebuild, a URE on the surviving mirror member silently corrupts the new mirror at that LBA.
Faq18/18

RAID 10 Recovery Questions

How many drives can fail in a RAID 10 before data is lost?
RAID 10 can tolerate multiple simultaneous drive failures as long as no single mirror pair loses both of its members. In a 4-drive RAID 10, losing one drive from each mirror pair (two failures total) leaves the array operational. Losing both drives in the same pair takes it offline.
What is the difference between RAID 10 and RAID 01?
RAID 10 is a stripe of mirrors: data is mirrored first within pairs, then those pairs are striped. RAID 01 is a mirror of stripes: data is striped across sets first, then those sets are mirrored. RAID 10 has better fault tolerance because a single drive failure only degrades one mirror pair. In RAID 01, a single drive failure degrades an entire stripe set, and any subsequent failure in the other stripe set causes total data loss.
Can a RAID 10 be recovered if a full mirror pair fails?
If both drives in a mirror pair fail, that span's data is missing from the stripe. Recovery depends on whether we can restore at least one drive in the failed pair through board-level repair, head swap, or firmware reconstruction. If one drive responds after physical intervention, the array can be reconstructed. If both drives are physically destroyed, the data on that span is unrecoverable.
My RAID controller died. Can you rebuild the array without the original hardware?
Yes. We image each member drive and reverse-engineer the controller's proprietary metadata format to identify stripe size, mirror pair assignments, and member ordering. Data Extractor Express RAID Edition, running on the PC-3000, then performs offline virtual array assembly from the cloned member images, which never touches the original drives and does not require the failed controller.
How long does RAID 10 recovery take?
A 4-drive RAID 10 with healthy reads across all members typically completes in 2-4 days. Larger enterprise arrays with 8, 12, or 24 members take longer due to sequential imaging. If any member requires mechanical work (head swap, motor repair), add time for donor sourcing and clean bench intervention. Arrays exceeding 16 members can take 2-3 weeks. Faster turnaround is available: +$100 rush fee to move to the front of the queue.
A mirror pair is already down to one drive and it has bad sectors. Is the data lost?
Not necessarily. When a pair has already lost one member, the surviving leg is the only copy of that span, so there is no twin to read a bad LBA from. We power down, image the failing leg multi-pass through a write-blocker with DeepSpar Disk Imager and PC-3000, and recover the maximum readable sectors before the heads degrade further. The rest of the volume still reconstructs from the readable sectors and the healthy pairs. Only the specific unreadable LBAs inside user data on that lone leg are lost.
My controller lost its config and shows a Foreign Configuration. Should I import it?
Not on a desynchronized array. Controller NVRAM is a cache; the authoritative geometry lives on the drives in the DDF or RIS. Accepting the import rewrites NVRAM from the on-disk metadata, which is safe when every member carries the same DDF sequence number but destructive when members are desynchronized, because it can promote a stale member. Clearing the foreign config wipes the on-disk map. Photograph the BIOS screen, pull the drives, clone every member write-blocked, and reconstruct offline from the clones.

Data Recovery Standards & Verification

Our Austin lab operates on a transparency-first model. We use industry-standard recovery tools, including PC-3000 and DeepSpar, combined with strict environmental controls to maintain drive integrity. This approach allows us to serve clients nationwide with consistent technical standards.

Open-drive work is performed in a ULPA-filtered laminar-flow bench, validated to 0.02 µm particle count, verified using TSI P-Trak instrumentation.

Transparent History

Serving clients nationwide via mail-in service since 2008. Our lead engineer holds PC-3000 and HEX Akademia certifications for hard drive firmware repair and mechanical recovery.

Media Coverage

Our repair work has been covered by The Wall Street Journal and Business Insider, with CBC News reporting on our pricing transparency. Louis Rossmann has testified in Right to Repair hearings in multiple states and founded the Repair Preservation Group.

Aligned Incentives

Our "No Data, No Charge" policy means we assume the risk of the recovery attempt, not the client.

We believe in proving standards rather than just stating them. We use TSI P-Trak instrumentation to verify that clean-air benchmarks are met before any drive is opened.

See our clean bench validation data and particle test video

Need your RAID 10 array recovered?

Free evaluation. No data = no charge. Mail-in from anywhere in the U.S.

(512) 212-9111Mon-Fri 10am-6pm CT
No diagnostic fee
No data, no fee
4.9 stars, 1,837+ reviews