[geeks] Impressive...

Joshua Boyd jdboyd at jdboyd.net
Mon Mar 9 13:53:15 CDT 2009


On Mon, Mar 09, 2009 at 03:48:28PM -0400, nate at portents.com wrote:
> > So, how do you think that Drobo is pulling off that trick?  They appear
> > (if their file system space estimator is to be trusted) to go from a
> > mirror to a raid5 transparently, and claim to be able to grow or shrink
> > the raid5 seemlessly.
> >
> > I've been trying to figure out how they do it.
> 
> I haven't read anything technical about Drobo, but I've always assumed
> since they don't require you to use the same type or even *size* drives
> that the thing is not any type of traditional RAID at all, but something
> proprietary - which is *exactly* why I've steered clear of it (because if
> the Drobo hardware goes south, you'd have to buy another Drobo to get your
> data back!)

I haven't bought a Drobo for similar reasons.  Still, it would be a cool
software trick to add to Linux, NetBSD, or Solaris (or others).

Take a 1U box with 4 drive bays.  Boot from internal flash of some sort,
and give that sort of flexibility to adding and removing disks.

Anyway, one thing I've heard is that the Drobo maxes out at 2Tb (despite
larger drives being available) and that it always advertises itself as a
2Tb drive to the OS.

BTW, each drives looses a fairly large chunk (1-2 gigs) to overhead,
which I take to mean that they use a large area on each drive to map the
contents of the entire system, presumably this section is duplicated
across all drives.

My theory is that you could slice each drive up into small pieces, so 10
gig slices (or 50 or 25 or some number).  Each slice is either mirrored
or raid5'd.  

So, if I started with 250+250, I would have 25 mirrored slices.  If I
then added a 500 gig disk, it would start migrating from 25 mirrored
slices to 25 raid5'd slices across the three disks, and 25 unused slices
on the 500g did. If I then swapped a 250 for a 750, the unit would first
rebuild the first 25 slices on the first 3rd of the new drive.  It would
then set up 25 slices mirrored between the 750 and 500, and there would
still be 25 slices unused on the 750.  If I then added in another 500 in
the fourth slot, it would convert to 50 raid5 slices, then 25 mirror
slices.

So in the final configuration, of 250 + 500 + 500 + 750, a traditional
raid5 would give ~600 gigs.  Manually slicing the disk up and mirroring
the slices would give 1 TB.  My solution gives 1.25 TB.

I think that disks could be removed from such a system.  Someday I
should at least write a software simulation.



More information about the geeks mailing list