As part of the Gestalt IT Tech Field Day got to visit Drobo in the offices at San Jose and received a personal presentation from the CTO and spoke with the Chief Software Architect (I think that was his title). One of the things that really interested me was how the BeyondRAID system did its thing. Why ? Because I think it’s one of the most innovative things to happen to smaller storage systems, and possibly the entire storage industry in quite some time.
The most vital feature of the Drobo storage units, is that you can insert and remove drives without ANY SOFTWARE or CONFIGURATION. Just insert or remove one drive at a time, and wait until the lights go green and you are ready to USE the system.
Populate drives on the fly
Because you can insert drives on the fly, you can scrounge SATA drives from old servers and then pop them in. Once you get some more larger drives, just swap the smaller ones for the bigger drives and the Drobo will reallocate the disks, prepare them in whatever form of RAID that works and then presents the maximum possible drive space to you.
How does this work ?
Drobo created their own algorithm they call Beyond RAID, and while they won’t give too much away, I wanted to go over the impression I got from their CTO during the presentation. The first thing to understand is that their is no configuration software, no drive initialisation, no formatting. As soon as the drive is inserted, the the Drobo initialises the the first few sectors and probably does the rest of the formatting asynchronously. What you see, is that the drive is ready within ten seconds.
Revision on RAID disk arrays
Some quick revision on RAID and disks drives before we start.
There are three key concepts in RAID: mirroring, the writing of identical data to more than one disk; striping, the splitting of data across more than one disk; and error correction, where redundant (“parity”) data is stored to allow problems to be detected and possibly fixed (known as fault tolerance). Different RAID schemes use one or more of these techniques, depending on the system requirements. The purpose of using RAID is to improve reliability and availability of data, ensuring that important data is not harmed in case of hardware failure, and/or to increase the speed of file input/output.
Wikipedia – Redundant Array of Independent Disks
Two Drives
Lets say you put two drives into your Drobo. The software will work out what it can do with two drives to create a redundant copy of your data. Obviously, two drives can only be mirrored.

Now lets say that you get a 750GB drive from a server that has just been retired. In a normal RAID system, all the drives have to be identical, the Drobo software ignores that. Slide it in, wait ten seconds for the initialisation and you’ll get something like this:

When you think about it, a 750MB drive is an “oversized” 500MB drive. So just treat the sectors on the drive like a 500MB unit and have 250MB space left over. That’s better than the alternative.
Reformats on the fly
Even the though the disk architecture has significantly changed, the Drobo software starts moving the sectors around the drives until all your data is striped.
Striping (wikipedia) “data striping is the technique of segmenting logically sequential data, such as a single file, so that segments can be assigned to multiple physical devices. Advantages of striping include performance and throughput. In some RAID configurations (such as a RAID-5 with a parity drive), if one drive fails and the system crashes, the data can be restored by using the other drives in the array.”
The Drobo will re-arrange the data on the drives, regardless of what format or RAID type they were in, to a format that provides the most space and performance. The basic value of the Drobo software is that it will automagically find the
Another 750MB ?
Lets say we got another 750MB drive from somewhere. Lets slot that in there and look at what the architecture might be like:

The Drobo will probably look for four 500MB drive spaces as RAID 5, leaving 2 x 250MB drive spaces that it can mirror. This will roughly give you about 1.75 Gb of usable space.
Remember, you can insert drives and the Drobo software will reliably move your data around until it has it in a redundant configuration.
Two More 1GB drives
You’ve got your hands onto a PAIR of 1GB drives. Here my view on what the Drobo is gonna do:

So for a total RAW drive capacity of
| Drives | Total Capacity |
|---|---|
| 2 x 500MB | 1GB |
| 2 x 750MB | 1.5GB |
| 2 x 1GB | 1GB |
| Raw Capacity | 4.5GB |
| Usable Capacity | 3.2GB |
Space allocation
Note that this available space can now be broken up into pieces and allocated to systems that are attached using iSCSI, Firewire or USB. Not only is this suitable for home use for, but the larger units, especially the Drobo Elite which has dual iSCSI interfaces, are more than perfect for VMware test environments.
Wrap up on the features
That usable capacity is fully redundant, dynamically created and built over time. To my knowledge, no other storage product does this. The ability to change the architecture of the disk drives at all is a major advance in storage, but to change them on the fly, and maintain the integrity of the data during the process is a real advance.
You should note that Drobo software is field proven at time of writing. Some fifty thousand units have been sold and the reviews from people who are professional photographers and videographers have been stunning.
I’m liking this gear and will be out to buy one shortly. Stay tuned for some more information on that.

(2 votes, average: 9.00 out of 10)


Good try, but I don’t think that this is how Drobo’s BeyondRAID works. It’s how some other RAID-ish systems work, but not Drobo!
It breaks the data into chunks and protects and striped them on disk independently. It also runs a process to re-lay-out data after a drive is added. The effect is similar (500+500+750=~1000 and 500+500+1000+1000=~2000) but the mechanism is very different. In fact, it appears that ALL of the data in the mirror set created at first (500+500=500) would become a RAID5-ish stripe-plus-parity set once the third drive is added. It would then be extended to a wider stripe with drive number 4. The “original” data is no longer mirrored – it’s all now striped with parity.
Some clues are the quick rebuild time when little data is present (indicating it’s doing it on a used block basis not as a whole set) and the uniform performance as drives are added. The extremely long rebuild time when adding a larger disk to an existing set of smaller disks is another hint – they’re redoing ALL of the data, not just adding a new RAID set.
I do wish they would just come out and explain it. Maybe when the patents come through…
In fact, the RAID is probably being done at the sector level, with algorithms that use RAID concepts, but instead of attempting to simply mirror or run stripe algorithms and match those across identical spindle configurations, they are probably using a meta allocation table that tracks the redundant locations of sectors. That Meta Allocation Table is itself probably maintained on every drive to ensure integrity and the update of that is what would take the time for large volumes of data. Well, that and the moving of data between spindles to find redundancy and optimal performance.
I would guess that the algortihm doesn’t look for drive performance, but will in the near future.
But all of these things are quite hard to explain, and this covers at least the concept of how BeyondRAID works. i hope.
I’ve had very good luck on my home POS (not point of sale) server I use for storing all of my digital goodies. I have an Adaptec Raid controller with 6 400GB drives RAID5. It’s been in service years and through all of the power failures and random drive deaths i have never had an issue. It appears that Drobo isn’t so robust.
Not spam- just shortened…
http://tinyurl.com/kudfad
http://www.billstreeter.net/2008/03/do-not-buy-a-drobo/
and
http://www.newegg.com/Product/ProductReview.aspx?Item=N82E16822240010
Not sure I’d trust it with all of the poor feedback.
Mike
http://etherealmind.com/wp-content/uploads/2009/11/drobo-workings-1.jpg
should be raid 1 not raid 0 if the available space is 500Mb… otherwise should be 1Gb
My concern has always been what happens if the Drobo dies? Systems using software RAID I can just pull the disk(s) and put them in another computer. Hardware RAID requires a matching card, but often you’ve got a spare server with matching cards, or you put a spare card on the shelf. Not sure I want to buy two Drobos just so I can trust one.
I asked a question like this. Provided you take note of the position of the drives, you can insert them into another Drobo (maybe even any Drobo since they all use the same software) and the system will work the same as before. The new Drobo may want to reallocate data around the place, but your data should be safe. Even if you lose a drive.
Actually, you do not need to remember where the drive positions are. This is one thing Data Robotics says somewhere on the website. They call the sets of hard drives “packs” that you can store offsite if needed. Just be sure the Drobo is off when removing the drives otherwise you will lose everything if you pull too many drives out. To use the “pack” again, just insert the drives in any order in the Drobo and all your data is back (again only when the Drobo is off should you add all the drives again, and be sure it’s an empty Drobo).
Guys
I tested the move of disks to a new Drobo as I installed my DroboPro. The disks were inserted in a different order and in any case, the ‘Pro is an 8-bay unit so doesn’t have the same layout. After a little “thinking” time, the DroboPro showed my drives all green, so no problem moving between devices. In fact, I didn’t insert one drive as it appeared to have failed. The other 3 had sufficent data to rebuild the ‘RAID” sets. http://thestoragearchitect.com/2009/11/20/personal-computing-drobo-replacement/
Now that is undeniably awesome. Different order and a failed disk and it still managed to rebuild.
Drobo may have other problems, but that is a great feature.
What was undeniably un-awesome for me and drobo (current model), was a single power failure a few days ago, and subsequent mac osx / hfs / firewire / reboot presented the mac with a totally corrupted volume.
All the data was gone. What is more, all the data the drobo utilities said was “used” (not free) and “safe” prior to the power failure, is now marked “unused” and “free”.
The chunks of the files are there on the raw device but the file system is completely mangled. No issue with the physical drives, they are all green green green. Short files can be recovered using photorec to a random file name and extension. Longer ones are fragmented.
So a simple power cut caused a spectacular loss of 1TB of data. Just like that. And since the way the data is laid out on the drives is secret, there is no way to determine what happened or to recover the file system with all its meta data (file names, directories, time stamps, etc).
So my experience was BackwardRAID.
I have met with the Drobo people, and this seems surprising. Have you contacted Drobo ? Was their technical support able to offer any assistance ?
So far the response to the online trouble ticket I created is to send, a day later, a form letter reply listing some common FAQ entries and something saying if this doesn’t solve the problem dump the diagnostic file (which is binary) and send it to them.
Which I will do, but from reading past experiences it seems the best they might offer is to have me ship the whole unit to them and they will do what I am doing .. recovering file and file fragments from a raw partition.
Anyway it doesn’t really matter what their response is at this point. Because the 3 physical drives I have in it are not noted as having any issues, even if they offer to send me a new unit, I can’t trust their software (firmware) again.
Here is the assistance drobo support gave me:
“You will need a 3rd party recovery software. The power failure might have caused the issue.
Uchenna P.
Technical Support Agent
Data Robotics, Inc.
866-426-4280 ”
Here is the log from DiskWarrior ($99):
Dec 15 14:16:24 brooks-computer [0x0-0x173173].com.alsoft.diskwarrior[5414]: DiskWarrior App: Rebuilding disk device: disk1s10
Dec 15 14:16:25 brooks-computer [0x0-0x173173].com.alsoft.diskwarrior[5414]: DiskWarrior App: disk1s10 Extents, Catalog and Attributes tree sizes total 1.35 GB.
Dec 15 14:19:02 brooks-computer [0x0-0x173173].com.alsoft.diskwarrior[5414]: DiskWarrior App: Attributes file is severely damaged.
DiskWarrior gives up trying to fix the disk after chewing on this for 10 minutes.
Oh and for kicks, here is the log so far of photorec
photoRec 6.11.3, Data Recovery Utility, May 2009
Christophe GRENIER
http://www.cgsecurity.org
Disk /dev/disk1 – 2199 GB / 2047 GiB (RO)
Partition Start End Size in sectors
10 P HFS 263968 4226792639 4226528672
Pass 1 – Reading sector 118505855/4226528672, 6156 files found
Elapsed time 11h04m02s – Estimated time for achievement 383h38m48
jpg: 4512 recovered
mp3: 681 recovered
txt: 516 recovered
mov: 199 recovered
dv: 121 recovered
tx?: 28 recovered
gif: 23 recovered
png: 22 recovered
mpg: 16 recovered
ogg: 11 recovered
others: 27 recovered
See the “Estimated time for achievement” ?
383 hours. So almost 2 weeks.
just to create a huge collection of 90% rubbish files and part-file fragments.
I feel like I entrusted a digital archive to a drobo threshing machine.
And note: disks all green. No alerts from drobo after it came up after the power outage. Everything, according to the drobo control panel, is just perfect.
(Where you write RAID 0 in the diagrams above you should have RAID 1. RAID 0 has no redundancy.)
The data scrambling that happens after some crashes with Drobo isn’t surprising when you consider what the Drobo has to be do in order to work the way it does. Drobo has to know which blocks are used and which are free as far as the filesystem (NTFS, HFS+, etc.) is concerned. There’s no other way it could make a 2TB filesystem available if you only have 2 250GB drives in it. The operating system and Drobo must agree about what blocks are free AT ALL TIMES or chaos will ensue.
Note that this is quite different from how tradition RAID works. In traditional RAID, the array performs a simple block device and it needs no special knowledge about the filesystem stored in it. Traditional RAID does not lie about the amount of space available in the array nor does it try to move blocks around behind the OS’s back, so it doesn’t need to carefully keep track of the filesystem’s free list of blocks.
If the Drobo and the OS can always agree about which blocks are used and which blocks are free then things work fine. But what happens if Apple or Microsoft change their filesystem code so that it doesn’t layout metadata or allocate blocks in the way Drobo expects. Chaos. What if Drobo got an edge case wrong? Chaos.
I can’t believe Drobo can stay in perfect sync with operating system changes, so I can’t trust their arrays.