Gluster is one of the most amazing storage technologies to hit the Open Source world in quite some time. Since it’s been acquired by Red Hat, it’s growth and adaptation has only been accelerated even more. Some refer to it as software defined storage. I agree with that, if you like to use industry lingo. Gluster allows you to create a pool of storage that can span multiple servers / nodes and grow over time. You can create volumes that mirror or replicate data across multiple servers or you can stripe a volume across multiple servers. You can even strip with redundancy, kind of like a RAID 5 but instead of disks, its servers. Very cool stuff.
Gluster has an NFS server built in. It actually works very well too. This makes it compatible with pretty much every hypervisor there is, such as VMware ESXi, Citrix XenServer, KVM, Proxmox, oVirt, and every other virtualization platform there is. I have yet to come across one that doesn’t support NFS. More so, every OS and server variation also supports NFS. This makes Gluster an excellent choice to build a storage infrastructure on. You can start small and grow it over time, or go all in. Either way, this guide will help you get started.
Today I’m working with four Ubuntu 14.04 LTS servers (virtual machines, actually). Each has a second virtual disk attached, 30GB in size, that will be dedicated to Gluster on each host. I’m going to set up a stripe, with redundancy, across these four nodes, which will be presented as a single NFS share available to a hypervisor for virtual machine storage, or a server for file storage. If you plan on following this guide exactly, go ahead and provision four Ubuntu 14.04 virtual machines with an extra 30GB drive attached to each. 1GB of RAM and 1 CPU will be more than sufficient. Lets get started.
Creating a GlusterFS volume striped + replicated across 4 nodes
FYI, look at the bash prompt label to see which server i’m working on. I.E. mike@gfsu1:~$ is the gfsu1 node. If the bash prompt is a #, that means the instruction needs to be performed on all four nodes.
The four Ubuntu Gluster nodes i’m working with are named:
- gfsu1 (GlusterFS-Ubuntu-1)
So, just keep an eye out for what node I’m working on based on the bash prompt label. First, make sure everything is updated and upgraded.
# sudo apt-get update # sudo apt-get upgrade
Next, make sure software-properties-common is installed.
# sudo apt-get install software-properties-common