Pool with stripe layout: is it still readable if bad sectors have been detected?

This is a theoretical question:
I know that the stripe layout offers no redundancy at all.

For storing a second or third backup of static data, a single drive could be used as a separate pool: filled with data, the pool exported and the drive put in the closet.

When I attach it later and only some sectors on this harddrive are bad (detected by SMART), will the remaining data be accessible via network share? How will TrueNAS react in a situation like this?

If those bad sectors have data on them, the error will be detected when you try to read that data. So long as enough pool metadata isn’t corrupted, you’ll likely be able to read your remaining data. If the bad sectors happen to take out critical metadata, it’s possible you could lose the whole pool.

1 Like

TrueNAS will issue a message that drive xyz reallocated sectors has increased in value. It will not really do anything else on it’s own. It will not automatically run a SCRUB, however you may want to do that yourself. As I think about it, that would be a nice option to have, run a SCRUB on the pool with the suspect drive. Guess what will be added to Multi-Report today :wink:

I believe that you have two paths you can follow here to validate this:

  1. Run a SCRUB while the drive is attached is the only way to know for certain the data is in-tact, which I suspect it will be.
  2. Run a SMART Extended/Long test and ensure it passes will tell you if the entire platter surface can be read, not if your data is in-tact.

The SCRUB will validate and/or repair any data issues, or tell you something is corrupt.

The SMART Long test will validate it can read all blocks it believes are good, but this is not a data integrity test.

A SCRUB should be faster however SMART would scan the entire disk surface and let you know if you are on the brink of disaster, well as far as SMART can estimate.

A SMART detected Bad Block is not generally a problem as the drive will do what it can to remap the block of data.

So if you run into a situation like this, run a SCRUB first, then run a SMART Long self-test.

My Two Cents

1 Like