Replicating the Drobo FS
Apr. 3rd, 2011 05:44 pmArs Technica posted a "How the Drobo does it's thing" article some time ago. And it got me thinking...
How would we, FLOSS-ish folk that we are, replicate that?
Well, the Drobo analyzes what file system you're using. A Drobo FS has a bit easier because it knows that the file system will be Linux's ext3. It then splits the file out into chunks and spreads those out. How hard would that be?
Well, not too hard at all. Linux has a user-based filesystem API, called FUSE, and a global notification system pairing called DBus and HAL. Coding up a user-based system similar to what Drobo does is no problem (save for one, which I'll get to later). I'll call this the "infinityfs". A daemon that controls it would be "infinityfsd"
Thus, the problem gets reduced down to:
1. Top/network layer: Samba/NFS/NetAtalk-afs. All the servers.
2. Shared File system layer: /share directory FUSE-mounted as "infinityfs".
3. Drive File system layer: /media/xxxx directories, auto-mounted and auto-managed by "infinityfsd".
4. Operating system layer: Linux on ARM (for cheap hardware and security).
There's one big huge problem: Data Robotics, the owner of the Drobo, has patented the original "BeyondRAID" approach. This is a similar approach and will gather a lawsuit if not licensed or vetted.
How would we, FLOSS-ish folk that we are, replicate that?
Well, the Drobo analyzes what file system you're using. A Drobo FS has a bit easier because it knows that the file system will be Linux's ext3. It then splits the file out into chunks and spreads those out. How hard would that be?
Well, not too hard at all. Linux has a user-based filesystem API, called FUSE, and a global notification system pairing called DBus and HAL. Coding up a user-based system similar to what Drobo does is no problem (save for one, which I'll get to later). I'll call this the "infinityfs". A daemon that controls it would be "infinityfsd"
Thus, the problem gets reduced down to:
1. Top/network layer: Samba/NFS/NetAtalk-afs. All the servers.
2. Shared File system layer: /share directory FUSE-mounted as "infinityfs".
3. Drive File system layer: /media/xxxx directories, auto-mounted and auto-managed by "infinityfsd".
4. Operating system layer: Linux on ARM (for cheap hardware and security).
There's one big huge problem: Data Robotics, the owner of the Drobo, has patented the original "BeyondRAID" approach. This is a similar approach and will gather a lawsuit if not licensed or vetted.