Avi Kivity wrote:
Ric Wheeler wrote:
You want to have spare capacity, enough for one or two (or fifteen)
drives' worth of data. When a drive goes bad, you rebuild into the
spare capacity you have.
That is a different model (and one that makes sense, we used that in
Centera for object level protection schemes). It is a nice model as
well, but not how most storage works today.
Well, btrfs is not about duplicating how most storage works today.
Spare capacity has significant advantages over spare disks, such as
being able to mix disk sizes, RAID levels, and better performance.
Sure, there are advantages that go in favour of one or the other
approaches. But btrfs is also about being able to use common hardware
configurations without having to reinvent where we can avoid it (if we
have a working RAID or enough drives to do RAID5 with spares or RAID6,
we want to be able to delegate that off to something else if we can).
When you replace the drive, the filesystem moves data into the new
drive to take advantage of the new spindle.
When you buy a storage solution (hardware or software), the key here
is "utilized capacity." If you have an enclosure that can host say
12-15 drives in a 2U enclosure, people normally leave one drive as
spare. RAID6 is another way to do this. You can do a 4+2 and 4+2
with 66% utilized capacity in RAID 6 or possibly a RAID5 scheme using
like 5+1 and 4+1 with one global spare (75% utilized capacity).
That gives you the chance to do rebuild your RAID group without
having to physically visit the data center. You can also do fancy
stuff with the spare (like migrate as many blocks as possible before
the RAID rebuild to that spare) which reduces your exposure to the
2nd drive failure and speeds up your rebuild time.
In the end, whether you use a block based RAID solution or an object
based solution, you just need to figure out how to balance your
utilized capacity against performance and data integrity needs.
In both models (spare disk and spare capacity) the storage utilization
is the same, or nearly so. But with spare capacity you get better
performance since you have more spindles seeking for your data, and
since less of the disk surface is occupied by data, making your seeks
shorter.
True, you can get more performance if you use all of the hardware you
have all of the time.
The major difficulty with the spare capacity model is that your recovery
is not as simple and well understood as RAID rebuilds. If you assume
that whole drives fail under btrfs mirroring, you are not really doing
anything more than simple RAID, or do I misunderstand your suggestion?
I don't see the point about head seeking. In RAID, you also have the
same layout so you minimize head movement (just move more heads per IO
in parallel).
ric
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html