Easily expandable and redundant storage pool for home servers

What is Greyhole?

An application that uses Samba to create a storage pool of all your available hard drives, and allows you to create redundant copies of the files you store, in order to prevent data loss when part of your hardware fails.



Features

JBOD concatenation storage pool

Configure as many hard drives as you'd like to be included in your pool. Your storage pool size will be the sum of the free space in all the hard drives you include. Your hard drives can be internal, external, or even mount of remote file systems, and you can include hard drives of any size in your pool.

Per-share redundancy

For each of your shares that use the space of your storage pool, indicate how many copies of each file you want to keep. Each of those copies will be stored in a different hard drive, in order to prevent data loss when one or more hard drives fail. For very important files, you can even specify you’d like to keep copies on all available hard drives.

Easy migrations

Greyhole file copies are regular files, visible on any machine, without any hardware or software required. If you take out one hard drive from your pool, and mount it anywhere else, you’ll be able to see all the files that Greyhole stored on it. They will have the same filenames, and they’ll be in the same directories you’d expect them to be.



Non Features

Greyhole is not...

A replacement for remote backups

You should always have a backup strategy that includes remote copies of your files. Those backups should not disappear if someone, or something, deletes them from your computer. Greyhole will delete all your file copies if a file is deleted from your shares, and thus isn't a good backup against user-errors.

Greyhole is not...

A replacement for RAID-1

While Greyhole tries hard to keep your files available, if a drive dies, some files could disappear momentarily from your shares, until Greyhole has time to find the extra copies needed to make them re-appear (if you configured enough file copies). Details

Greyhole is not...

Happy with a lot of small files, or often-changing files

Using Greyhole to store a lot of small files (a few kB each) is not-a-good-idea™. If possible, compress into a single archive the small files you have that you don't access often.
Similarly, storing files that change often, especially large files, is asking for trouble. i.e. don't use a Greyhole share for your currently-downloading torrents.
Greyhole, and subsequently you, will be happier from it. Details

Installing Greyhole

Step 1

Using APT (Ubuntu, Debian) or Yum (CentOS, Fedora, RHEL)

curl -Ls https://bit.ly/greyhole-package | sudo bash

Or manually

Just download the latest .tar.gz file from the Github Releases page.
Then follow the instructions from the INSTALL file.

Step 2

Initial configuration using the web UI wizard

sudo php -S 0.0.0.0:8012 /usr/share/greyhole/web-app/index.php

Then point your browser to: http://server_hostname_or_ip:8012/install

Or manually

Follow the instructions from the USAGE file.
There is also a copy of this file in /usr/share/greyhole/USAGE

Documentation

Greyhole is open-source, and hosted on Github.

The wiki on Github is filled with useful information, tips and recommendations.

How to install and configure Greyhole in 10 minutes, a video walkthrough:

Support

RTFM

The wiki on Github is filled with useful information, including a FAQ.

Search the Issues on Github, and the Discussions on Github, to see if someone else had the same problem in the past,
and what the resolution/workarounds were suggested.

Create a new Discussion on Github or Issue on Github.

NetworkingApplication Storage