May 2024
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031  

Categories

May 2024
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031  

Setting up a 2-node GlusterFS file-system

This will be a quick howto on how you would set up a 2-node GlusterFS filesystem. You may look up more information at http://www.gluster.org/.

Volume types for GlusterFS

– Distributed. Distributed volumes distributes files throughout the bricks in the volume
– Replicated. Replicated volumes replicates files across bricks in the volume
– Striped. Striped volumes stripes data across bricks in the volume
– Distributed Striped. Distributed striped volumes stripe data across two or more nodes in the cluster
– Distributed Replicated. Distributed replicated volumes distributes files across replicated bricks in the volume
– Distributed Striped Replicated. Distributed striped replicated volumes distributes striped data across replicated bricks in the cluster
– Striped Replicated. Striped replicated volumes stripes data across replicated bricks in the cluster

The high level overview of how the process will be is as follows
•Installing the required software
•Disable or add proper firewall rules
•Adding nodes into the cluster
•Preparing “bricks” for use on each server
•Creating and starting the actual GlusterFS volume
•Mounting the GlusterFS volume

Installing the required software

I will be providing examples for CentOS, Fedora, Debian and Arch Linux. The examples for CentOS will work for RHEL and Scientific Linux as well.
CentOS
The following command will install all dependencies.
# yum install glusterfs

Fedora
The following command will install all dependencies.
# yum install glusterfs-server

Debian
The following command will install all dependencies.
# apt-get install glusterfs-server

Arch Linux
The following command will install all dependencies.
# pacman -S glusterfs

Disable or add proper firewall rules

You will need to open the following ports for GlusterFS.
24007 – GlusterFS Daemon
24008 – Management
24009 – Each brick for every volume on your host requires it’s own port. For every new brick, one new port will be used starting at 24009. (For GlusterFS versions earlier than 3.4)
49152 – Each brick for every volume on your host requires it’s own port. For every new brick, one new port will be used starting at 49152 (GlusterFS 3.4 and later)
38465:38467 – This is required if you use the GlusterFS NFS service.

CentOS
Disabling the default firewall
# chkconfig iptables off
# service stop iptables

Fedora
systemctl disable firewalld
systemctl stop firewalld

Debian
There are no default firewall installed on Debian.
Arch Linux
There are no default firewall installed on Arch Linux.

Adding nodes into the cluster

This is incredibly easy. You may do the following command from either server. In my example I am on server1. If you don’t have a solid DNS you should add each server to each others hosts file.
# gluster peer probe server2
Probe successful

Preparing “bricks” for use on each server

Nothing fanzy, you just need to create folders. It’s also important to note that you will need to use a folder, even if you intended to use a single disk.
Execute the following on both of your servers
# mkdir -p /data/brick>

Creating and starting the actual GlusterFS volume

Creating the GlusterFS volume
Syntax:
gluster volume create NEW-VOLNAME [replica COUNT] [transport [tcp | rdma | tcp,rdma]] NEW-BRICK…

Example:
# gluster volume create test-volume replica 2 transport tcp server1:/data/brick server2:/data/brick
Creation of test-volume has been successful
Please start the volume to access data.

Starting the GlusterFS volume
# gluster volume start test-volume

Mounting the GlusterFS volume

It’s important to note that you will need to mount the GlusterFS to use it. WARNING: Adding files directly to a brick will not be included in a GlusterFS volume.
Syntax:
# mount.glusterfs servername:volumename /mnt/mountpoint

Examples:
# mount.glusterfs server1:test-volume /mnt/glusterfs/

OR
# mount -t glusterfs server1:test-volume /mnt/glusterfs/

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>