363.1 GlusterFS Storage Clusters (weight: 5)

Tech Tutorial: 363.1 GlusterFS Storage Clusters (weight: 5) #

Introduction #

In this tutorial, we’ll cover the essentials of setting up and managing GlusterFS storage clusters. GlusterFS is a scalable network filesystem suitable for data-intensive tasks such as cloud storage and media streaming. GlusterFS clusters together storage building blocks over Infiniband RDMA or TCP/IP interconnect, aggregating disk storage resources and managing data in a single global namespace.

Key Knowledge Areas: #

  • Installation of GlusterFS
  • Basic configuration of GlusterFS
  • Creation and management of volumes
  • Data replication
  • Fault tolerance and recovery

Utilities: #

  • gluster
  • glusterd
  • glusterfs
  • glusterfsd

Step-by-Step Guide #

1. Installation of GlusterFS #

GlusterFS can be installed on various Linux distributions using their package management systems. Below are the commands to install GlusterFS on Ubuntu and CentOS:

For Ubuntu:

sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:gluster/glusterfs-9
sudo apt-get update
sudo apt-get install -y glusterfs-server

For CentOS:

sudo yum install -y centos-release-gluster
sudo yum install -y glusterfs-server

After installation, enable and start the GlusterFS service:

sudo systemctl enable glusterd
sudo systemctl start glusterd

2. Basic Configuration of GlusterFS #

Initially, you need to add the servers that will form the GlusterFS cluster.

sudo gluster peer probe server1.example.com
sudo gluster peer probe server2.example.com

Check the status of the peer:

sudo gluster peer status

3. Creation and Management of Volumes #

Create a distributed GlusterFS volume:

sudo gluster volume create gv0 server1.example.com:/data/brick1/gv0 server2.example.com:/data/brick1/gv0
sudo gluster volume start gv0

Check the volume info:

sudo gluster volume info

4. Data Replication #

To create a replicated volume:

sudo gluster volume create gv1 replica 2 server1.example.com:/data/brick1/gv1 server2.example.com:/data/brick1/gv1
sudo gluster volume start gv1

5. Fault Tolerance and Recovery #

GlusterFS handles server failures by replicating data across multiple nodes. To simulate and check recovery, you can bring down a server and check if the data is still available:

# Simulate server failure
sudo systemctl stop glusterd

# On another server
sudo gluster volume info

Restart the glusterd service:

sudo systemctl start glusterd

6. Mounting GlusterFS Volumes #

Mounting a GlusterFS volume on client machines:

sudo mount -t glusterfs server1.example.com:/gv0 /mnt/glusterfs

Detailed Code Examples #

Here are more detailed examples of managing GlusterFS:

Adding a Brick to a Volume:

sudo gluster volume add-brick gv0 server1.example.com:/data/brick2/gv0

Remove a Brick:

sudo gluster volume remove-brick gv0 server1.example.com:/data/brick2/gv0 start
sudo gluster volume remove-brick gv0 server1.example.com:/data/brick2/gv0 status
sudo gluster volume remove-brick gv0 server1.example.com:/data/brick2/gv0 commit

Replace a Faulty Brick:

sudo gluster volume replace-brick gv0 server1.example.com:/data/brick1/gv0 server1.example.com:/data/brick2/gv0 commit force

Conclusion #

In this tutorial, we have covered the fundamentals of setting up and managing a GlusterFS cluster. From installation to data replication and fault tolerance, GlusterFS provides a robust solution for handling large volumes of data across networked resources. With the examples provided, you should be able to set up a basic GlusterFS cluster and explore its features.