Sie sind auf Seite 1von 5

Install and Configure GlusterFS on CentOS

7 / RHEL 7
RAJ SEPTEMBER 29, 2016 0 COMMENTS CENTOS 7, GLUSTERFS, UBUNTU 16.04

Configure GlusterFS on CentOS 7

In the technology world, it is always crucial to keep the data highly available to ensure it is
accessible to the application/user. High availability is achieved here by distributing the data
across the multiple volumes/nodes.
Client machines/users can access the storage as like local storage. Whenever the user
creates data on the Gluster storage, the data will be mirrored/distributed to other storage
nodes.

What is GlusterFS?
GlusterFS is an open-source, scalable network filesystem suitable for high data-intensive
workloads such as media streaming, cloud storage, and CDN (Content Delivery Network).
GlusterFS was developed initially by Gluster Inc, and then by Redhat, as a result of the
acquisition.

Terminologies:
Below are the important terminologies we use throughout this article.
Brick is basic storage (directory) on a server in the trusted storage pool.

Volume is a logical collection of bricks.


Cluster is a group of linked computers, working together as a single computer.
Distributed File System A filesystem in which the data is spread across the multiple
storage nodes and allows the clients to access it over a network.
Client is a machine which mounts the volume.
Server is a machine where the actual file system is hosted in which the data will be
stored.
Replicate Making multiple copies of data to achieve high redundancy.
Fuse is a loadable kernel module that lets non-privileged users create their own file
systems without editing kernel code.
glusterd is a daemon that runs on all servers in the trusted storage pool.
RAID Redundant Array of Inexpensive Disks (RAID) is a technology that provides
increased storage reliability through redundancy.

Volumes:
As said earlier, the volume is the collection of bricks, and most of the gluster operations
such as reading and writing happen on the volume. GlusterFS supports different types of
volumes based on the requirements; suitable for scaling the storage size or improving the
performance or for both.
In this article, we will configure a replicated GlusterFS volume on CentOS 7 / RHEL 7.
Replicated Glusterfs Volume is like a RAID 1, and volume maintains exact copies of the
data on all bricks. You can decide the number of replicas while creating the volume, so you
would need to have atleast two bricks to create a volume with two replicas or three bricks to
create a volume of 3 replicas.
This volume provides better data reliability and data redundancy.
Why not read about remaining types of GlusterFS volumes.

Requirements:
Here, we are going to configure GlusterFS volume with two replicas. Make sure you have
two 64bit systems (either virtual or physical) with 1GB of memory, and one spare hard disk
on each system.
HOST NAME

IP ADDRESS

OS

MEMORY

DISK

PURPOSE

gluster1.itzgeek.local

192.168.12.16

CentOS 7

1GB

/dev/sdb (5GB)

Storage Node 1

gluster2.itzgeek.local

192.168.12.17

RHEL 7

1GB

/dev/sdb (5GB)

Storage Node 2

client.itzgeek.local

192.168.12.8

Ubuntu 16.04

NA

NA

Client Machine

For a demonstration, I am using different Linux distribution for each storage node here. I
recommend you to use a single Linux distribution across the cluster which will be easier
for you to troubleshoot the issues that arise in production.

Configure DNS:

GlusterFS components use DNS for name resolutions, so configure either DNS or set up a
hosts entry. If you do not have a DNS on your environment, modify /etc/hosts file and
update it accordingly.
sudo vi /etc/hosts
192.168.12.16 gluster1.itzgeek.local gluster1
192.168.12.17 gluster2.itzgeek.local gluster2
192.168.12.20 client.itzgeek.local client

Add GlusterFS Repository:


Before proceeding to the installation, we need to configure GlusterFS repository on both
storage nodes. Follow the instruction to add the repository to your system.

RHEL 7:
Add Gluster repository on RHEL 7.
vi /etc/yum.repos.d/Gluster.repo
[gluster38]
name=Gluster 3.8
baseurl=http://mirror.centos.org/centos/7/storage/$basearch/gluster-3.8/
gpgcheck=0
enabled=1

CentOS 7:
Install centos-release-gluster package, it provides you the required YUM repository files.
This RPM is available from CentOS Extras.
yum install -y centos-release-gluster

Install GlusterFS:
Once you have added the repository on your systems, we are good to go for the installation
of GlusterFS. Install GlusterFS package using the following command.
yum install -y glusterfs-server

Start the glusterd service on all gluster nodes.


systemctl start glusterd

Verify that the glusterfs service is running fine.


[root@gluster1 ~]# systemctl status glusterd
glusterd.service - GlusterFS, a clustered file-system server
Loaded: loaded (/usr/lib/systemd/system/glusterd.service; disabled; vendor
preset: disabled)
Active: active (running) since Tue 2016-09-27 16:00:19 EDT; 1s ago
Process: 4072 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --loglevel $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 4073 (glusterd)
CGroup: /system.slice/glusterd.service
4073 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

Sep 27 16:00:19 gluster1.itzgeek.local systemd[1]: Starting GlusterFS, a


clustered file-system server...
Sep 27 16:00:19 gluster1.itzgeek.local systemd[1]: Started GlusterFS, a
clustered file-system server.

Enable glusterd to start automatically on system boot.


systemctl enable glusterd

Configure Firewall:
You would need to either disable the firewall or configure the firewall to allow all
connections within a cluster.
By default, glusterd will listen on tcp/24007 but opening that port is not enough on the
gluster nodes. Each time you will add a brick , it will open a new port (that youll be able
to see with gluster volumes status)
# Disable FirewallD
systemctl stop firewalld
systemctl disable firewalld
OR
# Run below command on a node in which you want to accept all traffics comming
from the source ip
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source
address="<ipaddress>" accept'
firewall-cmd --reload

Add Storage:
Assuming that you have one spare hard disk on your machine, /dev/sdb is the one I will
use here for a brick. Create a single partition on the spare hard disk shown like below.
You would need to perform the below steps on both nodes.
fdisk /dev/sdb

Configure GlusterFS on CentOS 7 Partition Creation

Format the created partition with the filesystem of your choice.


mkfs.ext4 /dev/sdb1

Mount the disk on a directory called /data/gluster.


mkdir -p /data/gluster
mount /dev/sdb1 /data/gluster

Add an entry to /etc/fstab for keeping the mount persistent across reboot.
echo "/dev/sdb1 /data/gluster ext4 defaults 0 0" | tee --append /etc/fstab

PAGES: 1 2

Das könnte Ihnen auch gefallen