What is GlusterFS?
GlusterFS(Which was developed by Gluster inc and acquired by Redhat in 2011) is a distributed network file system characterized by:
- Scalability,
- High availability
A a lot of applications needing shared storage are using it including:
- CDN : content delivery networks,
- Media streaming,
- Cloud computing,
- Web cluster solutions
High availability is ensured by the fact that storage data is redundant if a node goes down another will cover it without service interruption.
How does it work?
To get GlusterFS up and running, these are the strictly necessary steps:
For those wha are nor familiar with GlusterFS, I recommend that you start by choosing your preferred setup method such as AWS, virtual machines or bare metal (you can do this after step 4 when you will add an entry to fstab). Otherwise, you can get started with the steps below:
You will need to have at least:
- Two X86 machines with a 64 bit OS and a working network connection,
- At least 1GB of RAM is the bare minimum recommended for testing,
- At least 8GB in any system you plan on doing any real work on,
- A single CPU is fine for testing, as long as it is 64 bit.
- “Bricks” are the nodes for GlusterFS. Each node should have a dedicated disk. One of these nodes will be serving the Gluster volume to clients: this will be called “node01”, the other one will be called “node02”, and so on.
Step1: Partition, Format and mount the bricks
Assuming you have a brick at /dev/sdb
sudo fdisk /dev/sdb
Create a single partition on the brick that uses the whole capacity.
Format the partition
sudo mkfs.xfs -i size=512 /dev/sdb1
Note: XFS is a high-performance 64-bit journaling file system and that is the reason we taken this filesystem to format the disk.
Step2: Mount the partition as a GlusterFS “brick”
sudo mkdir -p /srv/sdb1 sudo mount /dev/sdb1 /srv/sdb1 sudo mkdir -p /srv/sdb1/brick
Add an entry to /etc/fstab
echo "/dev/sdb1 /srv/sdb1 xfs defaults 0 0" | sudo tee -a /etc/fstab
Step3: Install GlusterFS packages on both nodes
sudo yum install glusterfs{,-server,-fuse,-geo-replication}
Note: This example assumes Fedora 18 or later, where gluster packages are included in the official repository
Step4: Run the gluster peer probe command
Note: From node01 to the other node(s)
sudo gluster peer probe node02
Note: You can use IP addresses instead of hostnames, but it’s not recommended.
Configure your GlusterFS volume
sudo gluster volume create VOLUME_NAME replica NUMBER_OF_NODES NODE1:PATH1 ... NODEX:PATHX
The volume name here is testvol and the replication is between 2 nodes:
sudo gluster volume create testvol replica 2 node01:/srv/sdb1/brick node02:/srv/sdb1/brick
Start your GlusterFS volume
sudo gluster volume start testvol
Mount your GlusterFS volume
sudo mkdir /mnt/gluster sudo mount -t glusterfs node01:/testvol /mnt/gluster
Test using the volume
sudo cp -r /var/log /mnt/gluster sudo mkdir /mnt/gluster/hello_world df -h
Hope this blog helped you setting up GlusterFS file system. Please comment and share your thoughts on this.
Latest posts by ZIADI Mohamed Ali (see all)
- How to show mounted devices in Linux? - July 25, 2017
- How to use Positional parameters and special variables in Linux - June 28, 2017
- Linux: Connect to your WiFi network through CLI? - June 25, 2017
- How to find a file in Linux? - March 19, 2017
- Mysql: How to find table and database size? - January 9, 2017