Greyhole – Drive Extender for Linux

Love Windows Home Server’s Drive Extender file technology, but want it on your Linux box? Why not write your own implementation using Samba?

That’s exactly what Guillaume Boudreau decided to do, and the result is the open source Greyhole – Easily Expandable & Redundant Storage Pool. Okay, it’s not a direct implementation of DE, but Guillaume is seeking to create similar features, namely a single storage pool created from all of your hard drives and the creation of redundant copies of files that you store on secondary hard drives.

The first public beta has been posted, and Guillaume is looking for experienced Linux users willing to test Greyhole. It’s an ambitious project, and if you’d like to find out more, check out the beta and background to the project.

More Info: PommePause


  1. I did look at unRaid before I started this. But I really wanted to be able to choose the redundancy level per share. Something that can't be done with unRaid.

    I have a lot of recorded TV that I don't care that much about, so I don't protect that.
    I don't protect CrashPlan and TimeMachine backups either, as those can easily be re-created if a hard drive fails and take some files with it.
    Having redundancy on those would cost me 2-3 TB more than what I currently have.

    Plus, with my own system, I can now 'super-duplicate' certain shares, like the Photos share, which contains 60k+ photos we took of our family since 2000. I really don't want to loose those, so Greyhole now makes sure those files are on all my hard drives.
    I can unplug one of them, and mount it anywhere ext3 partitions can be mounted, and I'll be able to see my files without requiring any rebuilding / processing.

    1. I'm a big fan of the fused filesystem products and appreciate more options, especially ones running on an open source OS.

      I do have to comment on the following not being true with unRaid however. "Having redundancy on those would cost me 2-3 TB more than what I currently have." It would in fact be protected for "free" as the parity information protects all attached storage at the cost of one drive.

      1. Well, I does depend on the drives you have, and the amount of data you have, and the percentage you want to protect…

        Say you have one 2TB, and three 1TB (so total 5TB unprotected space).
        Say I have 3TB of recordings I don't care about, and 1TB of stuff I really care about.

        With UnRAID: 2TB HDD is used for parity, giving me 3TB of space = less than the 4TB of data I have, so I need to buy another 1TB HDD.

        With DE or Greyhole: The 3TB of recording takes 3TB, and th 1TB of stuff I care about takes 2TB. Total 5TB = fits on my current drives.

  2. Sounds awesome. Ive heard of unRaid before, and everything ive heard has been negative.

    Are there plans to or does this already support ext4? What is configuration like…is it something a novice/lax linux user can implement or does it take alot of linux know-how and command line stuff to accomplish…aka is there a GUI and does it integrate into the OS?

    Best of luck on the project, sounds good.

    1. It does support ext4. In fact, it supports any file system you can mount in Linux.
      You can even mount a remote NFS file system, and include it in your storage pool, if you'd like!

      There's currently a lot of command-line instructions to install; it's not very easy for novice. No GUI. Might change when we get near 1.0.

      1. You should highly consider working on something like a GUI in the future. I understand that you need to get it working before that, but the biggest reason i use WHS instead of Linux is because a monkey could setup WHS. Even though i have some general know-how in linux i just cant be bothered with the commands and attention linux would need from me.

        If you eliminate that learning curve by giving it an intuitive interface, it will open up the demographic of people who will use and implement it.

        Just a suggestion.

  3. Are there any reasons why it is not implemented in Java (or C#)?

    Don’t know on which level you work with your implementation, but with some workarounds it should be possible to implement a cross platform DE which can be used on any system… but may be i forgot any problem… 🙂

    1. Mike,
      Linux doesn't support C#, it is a Windows only language that is dependent on the .NET Framework. Well, you could use Mono with C# but not for something like this. Due to what the project does, Java would not be appropriate (even though it is cross platform).

    2. It's implemented in PHP, so it is cross platform.
      The reason I mention it's for Linux at the moment is that it requires Samba logs to work.
      All files operations on the storage pool needs to be logged in a file, so that Greyhole can then work it's magic using this operations log.
      I didn't look for a Windows equivalent (since I don't plan to use this on Windows), but I'm pretty sure this could at least work on many Unix and maybe Mac, with some know-how.

      1. Hi,

        hm i had no realised that it’s written in php! That’s a good news!

        Can you mail me the syntax of the log files? I think with the .net component “filesystem.watcher” and a .net service it should be possible to provide such a log file.


        @ brent

        I know the problems of Mono, but a can’t found a general disqualification for Mono and/or Java.

  4. 3 reasons only I use WHS : DE, SIS backups, TV card supported

    Actually I can manage a small TV card farm in my WHS with light and free 3rd part software but I fear that v2 will be crippled with tons of crappy drm and blocked codecs like W7.

    I hope linux will be ready in time.

  5. This is scary. Written in PHP and most of the source is in a single file. It may work, but that doesn't make me feel all warm and cozy

    1. This is indeed not for everybody.
      It's more targeted to power users who don't feel all warm and cozy to have to pay a WHS license to Microsoft to get (about) the same features, but on a Windows kernel.
      If that's not your case, I see no reason why you'd switch from WHS to Greyhole.

      And in it's current state, Greyhole is not ready to store important files for anybody (except maybe mine).
      At this time, I'd compare it to the first version of WHS, which sometimes 'ate' users files…

      PS I don't see why a simple problem needs a complicated solution. A simple Samba VFS module to create logs, and a simple PHP program to eat the logs, and execute cp / ln / rm / etc. commands to move / replicate the files, when necessary. It could have been shell script, and it would have worked as well.

      1. Sorry, I'm not meaning to be offensive, but PHP is not normally considered as the best option for system level scripting like this. I've done my fair share of apps with PHP and quickly moved on to ruby or python for projects that are just a bit too complex for bash.

        I'm also not a big fan of WHS. geez, it seems like I'm pretty negative, eh? Anyway, I'm just saying I think clean code and separation would go a long way in furthering possible use/contrib to your project. And unfortunately that's pretty difficult with PHP

Leave a Reply