Discussion:
linear raid, is partial recovery possible?
wilsonjonathan
2011-11-28 20:06:35 UTC
Permalink
Quick question regarding linear raid.

If a disk fails on a linear raid I understand how the raid is
non-recoverable, as a whole, as it has lost a chunk of data.

However is it possible to recover the data from the non-failed portion
of the raid as I assume linear works by starting at one end of the array
and slowly progresses to the other?

Or perhaps it is dependent on the file system on the array, eg. ext
works by trying to place files distant to each other to help reduce the
possibility of fragmentation?

Perhaps the filesystem meta data, or some portion, may span between two
physical drives which would corrupt its table?

And obviously if a file spans two disks it would be missing part of its
data?

Does the raid underlying a file system do its own things, re-space,
physical data layout, etc; or does/can a file system impact on the
workings of an array?

The more I look into software raid the more fasinated I become with it
and its inner workings. While its way beyond me in some of the maths and
the fact I am un-proficient in C it has really caught my intrigue, and
all because I wanted to set up a small home server ;-)


--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
NeilBrown
2011-11-28 20:46:37 UTC
Permalink
Post by wilsonjonathan
Quick question regarding linear raid.
If a disk fails on a linear raid I understand how the raid is
non-recoverable, as a whole, as it has lost a chunk of data.
However is it possible to recover the data from the non-failed portion
of the raid as I assume linear works by starting at one end of the array
and slowly progresses to the other?
Or perhaps it is dependent on the file system on the array, eg. ext
works by trying to place files distant to each other to help reduce the
possibility of fragmentation?
Perhaps the filesystem meta data, or some portion, may span between two
physical drives which would corrupt its table?
And obviously if a file spans two disks it would be missing part of its
data?
Yes.
Post by wilsonjonathan
Does the raid underlying a file system do its own things, re-space,
physical data layout, etc; or does/can a file system impact on the
workings of an array?
It is entirely up to the filesystem. The RAID just catenates the spaces
together into one big space. The filesystem decides where in that space to
put all the different things it wants to write.


If you loose one drive from a linear array then recovery would be very
difficult and have no guarantees.
Post by wilsonjonathan
The more I look into software raid the more fasinated I become with it
and its inner workings. While its way beyond me in some of the maths and
the fact I am un-proficient in C it has really caught my intrigue, and
all because I wanted to set up a small home server ;-)
That's just the beginning -- before you know it you will be studying the
maths and learning more C - you won't be able to help yourself!

NeilBrown
Robin Hill
2011-11-28 20:51:00 UTC
Permalink
Post by wilsonjonathan
Quick question regarding linear raid.
If a disk fails on a linear raid I understand how the raid is
non-recoverable, as a whole, as it has lost a chunk of data.
However is it possible to recover the data from the non-failed portion
of the raid as I assume linear works by starting at one end of the array
and slowly progresses to the other?
Or perhaps it is dependent on the file system on the array, eg. ext
works by trying to place files distant to each other to help reduce the
possibility of fragmentation?
It's entirely dependent on the filesystem, yes. You've obviously lost a
chunk of the filesystem, so whatever was on there (data/metadata) is
lost. You should be able to recover what's on the remaining portion of
the RAID (or AID, as there's no redundancy involved) though.
Post by wilsonjonathan
Perhaps the filesystem meta data, or some portion, may span between two
physical drives which would corrupt its table?
Possibly. Ext2/3/4 scatter duplicate superblocks around the filesystem,
so you should be able to access the root metadata anyway, which will
then link in to whatever metadata is left on the remaining drive(s).
Post by wilsonjonathan
And obviously if a file spans two disks it would be missing part of its
data?
Yep.
Post by wilsonjonathan
Does the raid underlying a file system do its own things, re-space,
physical data layout, etc; or does/can a file system impact on the
workings of an array?
The RAID system has no knowledge of the filesystem, and the filesystem
sees the array as simply another block device (no different from a
normal disk partition) so there's no way for the two to affect each
other directly. Some fileystem creation tools do use the array
configuration to control how the filesystem is created initially (stripe
sizes, allocation blocks, etc) but those are just parameters that the
user can specify/override anyway.
Post by wilsonjonathan
The more I look into software raid the more fasinated I become with it
and its inner workings. While its way beyond me in some of the maths and
the fact I am un-proficient in C it has really caught my intrigue, and
all because I wanted to set up a small home server ;-)
Well, I'd recommend against using linear RAID anyway. There's no
redundancy at all, and no performance benefits. You'd be better off
using the separate disks as separate filesystems.

Cheers,
Robin
--
___
( ' } | Robin Hill <***@robinhill.me.uk> |
/ / ) | Little Jim says .... |
// !! | "He fallen in de water !!" |
Stan Hoeppner
2011-11-28 22:08:13 UTC
Permalink
Post by Robin Hill
Well, I'd recommend against using linear RAID anyway. There's no
redundancy at all, and no performance benefits. You'd be better off
using the separate disks as separate filesystems.
Yes. Linear arrays have limited use in very specific scenarios.
Normally one would only use a linear array that consists of hardware or
software RAID constituent devices, such as the example in my previous email.

At minimum a linear array should be composed of multiple mirrored drives
(RAID1). As Robin mentioned, if you can't do redundancy for some
reason, simply format each disk with your favorite filesystem and mount
those filesystems somewhere in your UNIX directory tree.
--
Stan
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Stan Hoeppner
2011-11-28 22:00:57 UTC
Permalink
Post by wilsonjonathan
Or perhaps it is dependent on the file system on the array,
It is.
Post by wilsonjonathan
eg. ext
works by trying to place files distant to each other to help reduce the
possibility of fragmentation?
That's not relevant. What is relevant is where the filesystem metadata
is stored, if any of it was lost when the disk died, and if the
filesystem can recover itself with a repair operation.

I know of one such recovery of a 60TB XFS filesystem residing on a combo
mdraid linear array over 5 hardware RAID6 arrays, after 1 of the 5
constituent arrays suffered complete failure. xfs_repair deleted the
entries from directory structure whose files were missing, allowing
normal access to all other files. This was an extremely lucky outcome
in this case and was only possible due to the specific on disk metadata
layout of this individual filesystem. XFS would likely not be able to
recover from such a failure in all cases.

You're using EXT of some flavor. I suggest you read everything you can
about the EXT version involved here, ask on the respective mailing list.

Good luck.
--
Stan
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Continue reading on narkive:
Loading...