Call us — 0161 871 0788
Mon–Fri · 9am–5:30pm · No fix, no fee
Start a free diagnostic →
RAID · after a rebuild

A failed rebuild is information, not a setback.

Rebuild operations can only fail when something in the array cannot be read. Running another rebuild will apply exactly the same amount of total I/O load on those disks as before, but will likely produce a worse outcome than the first run. If you have a parity-based RAID array such as RAID 5, this ends in one place: a second disk failure. RAID 5 data recovery provides complete coverage of the second disk failure.

Why rebuilds fail
What a rebuild overwrites
From £500 +VAT
// the short version

A rebuild reads absolutely everything.

A rebuild does not just read whatever it needs to in order to continue rebuilding; it also reads every single block of data from all of the remaining active disks (if they survive long enough). It writes as it goes, and on disks already carrying unreadable sectors that is the likeliest moment for a second failure and the point at which wrong data gets committed.

100%
Of members read
Write
What a rebuild does
48 hr
Free diagnostic
£500
From, +VAT
×If a rebuild has failed, do not start another one. A second rebuild attempts to read every single item off the same weak disks and write each back out. The second attempt is typically the one that uses up the remaining margin. Turn power off to the array and do nothing further to it.
// what a rebuild actually does

Reads everything, writes everything.

Once you understand how much of a load a rebuild places upon your disks, you should be able to identify each of the failure modes discussed below.

With parity based RAID arrays, the rebuild process calculates what was stored on the bad drive using calculations performed across every sector of every good drive. In other words, the rebuild is calculating what the bad drive had by performing its own version of "maths" across every good drive's data. Mirrors work slightly differently — during a rebuild, if a drive fails and has a mirrored copy available, then all of the good drives' data will simply be copied over into the new replacement drive. No matter whether you are working with a parity-based array or a mirror, the rebuild operation loads each individual disk as heavily as possible for an extended period of time (hours/days) as it attempts to build/recover the failed drive(s).

This makes sense because most of the time when the last drive fails, all the drives are the same age and purchased together. They have been exposed to the exact same usage for their entire lifespan since being installed. The rebuild will be a complete surface stress test on hardware that has the same cumulative amount of wear as the device that failed.

// four ways it fails

Each means something different.

Determine which one you see — the approach will vary based upon what you see.

⚠

Stalls at a percentage and stops

One of the remaining members can no longer read a specific sector. Without that sector the rebuild cannot calculate the missing data, so it cannot continue. Retrying hits the same sector.

Bad sectors
◉

A second disk drops out mid-rebuild

The stress of rebuilding finished off a member that was already marginal. The array is now beyond its redundancy limits and therefore offline.

Most serious
▤

It completes but the volume will not mount

The array built to completion but the file system is broken — often due to the rebuild writing reconstructed data from stripes which were already inconsistent.

Logical
∅

It restarts endlessly

Typically a controller that can't get a consistent picture of what's in the set, or a member that drops out and then comes back periodically.

Controller
// what not to do next

Three responses that make it worse.

These are all the obvious things to do.

Do not run it again. The same read that you couldn't reach last time will fail again. The disks will have spent another few hours at full throttle trying to get there. If your marginally good member made it through the first pass, it may not survive the second.

Do not swap in more replacement disks. Adding another new disk will add even more to your writing and therefore the stress. The original data now sits behind two incomplete reconstructions.

Do not force a member online. Controllers offer to force-import or force-online disks they've rejected. That accepts a member whose contents the controller doesn't trust into an array they are about to write to.

// what to do instead

Image first, reconstruct later.

You've now been told by the failed rebuild attempt that you can't fix the array where it sits. And that's useful.

01

Power down and leave the disks in their bays

This includes those which were ejected by the controller as well as those replacements that have been inserted.

02

Note exactly how the rebuild failed

What percentage did it reach, was another disk lost, and what did any errors say? This will help narrow down what could have gone wrong with the array before anything is opened.

03

Send every disk, labelled by bay

All disks including the one that has failed and the replacement that was only partly written. Both will tell us what happened during the rebuild.

04

Expect the timescale to follow member count

Each of your disks is copied (imaged), prior to any work being done on them. Therefore, a large array takes days before reconstruction even starts.

// questions

Your questions, answered.

No. Rebuilds do not fail randomly. They fail because some of the members in the array can't be read and you'll get the same error applying the same max amount of I/O stress to those same failing disk(s) until the same failure occurs again. A marginally good member that survives one rebuild attempt may not survive another rebuild attempt.

A surviving member hit a bad sector it cannot read. Without that sector, the rebuild cannot compute the missing data. The percentage tells you approximately where the unreadable area lives. That's good to know.

Frequently. Rebuild stress caused a disk to fail. However, if the disk has simply been under too much pressure during a rebuild, the disk may still have a lot of life left. It just failed a prolonged read test, as opposed to failing dead. In many cases, such disks will image substantially after being treated gently.

That would be no. This option takes a member that your controller doesn't believe and puts it into an array you're about to write to. If the member's content is either out-of-date or only partially written, putting it online with force may allow that to spread through the entire set.

Your array built successfully; however, your file system appears to be damaged. Often the damage results from reconstructed data being computed from stripes that were already inconsistent. Thus this is typically a logical repair job versus an array repair issue.

All disks — every one identified by bay — including the failed original and any replacement that was partially written. Each carries information related to how things ended up, and the replacement occasionally holds usable reconstructed data.