In this video, I'll introduce you to the Gluster file system and provide a demonstration of
Gluster Storage on Oracle Linux 8. Future videos will demonstrate installation
of necessary software packages, configuration steps using the gluster command-line interface,
and advanced features of GlusterFS. GlusterFS is often referred to as a distributed
file system but it is important to understand that GlusterFS isn’t really a filesystem
in and of itself. Gluster aggregates XFS filesystems from multiple
servers into one or more big chunks of storage. Data being written into or read out of Gluster
gets distributed across these multiple hosts simultaneously.
To demonstrate this distributed file system, I have created 3 Oracle Linux 8 cloud instances,
each with an XFS file system on /dev/sdb. My 3 Oracle Linux 8 instances are named ol8-node01,
ol8-node02, and ol8-node03. I'll run a couple of commands on ol8-node01
to show that the XFS file system on /dev/sdb is mounted on /data/gluster/fs/myvolume/mybrick.
I won't show it, but the same XFS file system configuration exists on our other 2 nodes.
If you are not familiar with or need a refresher using XFS, please check out our XFS video
for details. After seeing how our 3 Oracle Linux 8 servers
are configured with XFS file systems, now is a good time to introduce some Gluster terminology.
The first term is Trusted storage pool. This is defined as a collection of nodes in
a cluster. I've created the Trusted storage pool as shown
by the output of the sudo gluster pool list command.
The output shows our 3 Oracle Linux 8 cloud instances.
The ol8-node01 node shows up as localhost since I'm running this command from ol8-node01.
Bricks are storage on a server that is made available as an exported directory.
GlusterFS is a scalable file system meaning you can add bricks by adding servers when
your space requirements change. Bricks are the basic building blocks of volumes.
I've created a gluster volume as shown by the output of the sudo gluster volume info
command. Gluster volumes are the exported file systems
from the Trusted storage pool grouped together in different ways to distribute files across
the servers. Note that the 3 bricks are the mounted XFS
file systems on each of the 3 nodes in my trusted storage pool.
Also note that the volume type is "Replicate". You can create different types of volumes
depending upon your needs and requirements. In a Replicated Gluster Volume, exact copies
of the data are maintained on all bricks. If one brick fails, the data can still be
accessed from its replicated bricks. A Distributed Volume is the default cluster
volume type. Files are distributed randomly across the
various bricks in the volume. This type of volume does not provide any redundancy,
but there is also no loss of available space in the file systems.
However, a disk or server failure can result in data loss.
Another volume type is a Distributed Replicated Volume.
In this volume type, files are distributed across replicated sets of bricks.
You can use distributed replicated volumes when there is a requirement for high-availability
and high-reliability. Dispersed volumes are based on erasure codes.
This volume type stripes the encoded data of files, with some redundancy added, across
multiple bricks in the volume. You can use dispersed volumes to have a configurable
level of reliability with minimum space waste. The final volume type is a Distributed Dispersed
Volume. This volume type has the same advantages of
distributed replicated volumes, but uses dispersed subvolumes instead of replicated ones to store
the data to bricks. There are a number of options available to
access Gluster volumes from a remote Oracle Linux or Microsoft Windows client system.
You can set up a Gluster volume as an iSCSI backstore to provide block storage.
You can expose volumes using NFS-Ganesha. NFS-Ganesha is a user space file server for
the NFS protocol. You can access volumes using the Gluster Native
Client. The native client takes advantage of the File
System in Userspace (FUSE) software interface that allows you to mount a volume without
requiring a kernel driver or module. And you can also expose volumes using the
Common Internet File System (CIFS) or Server Message Block (SMB) by using Samba.
This file sharing service is commonly used on Microsoft Windows systems.
I've used option number 3, the Gluster Native Client (FUSE), in this video demonstration.
I've created another Oracle Linux 8 cloud instance named gluster-client and I've mounted
the gluster volume on /mydata. To test the Gluster setup from my client,
I'll create a file on this gluster file system. Then I'll view the brick directories on each
of the nodes in the trusted storage pool. Here is the file on ol8-node01, and the file
on ol8-node02, and the file on ol8-node03. Since the volume I created is a Replicated
Gluster Volume, exact copies of the data are maintained on all bricks.
If one brick fails, the data can still be accessed from its replicated bricks.
This concludes this video. Thank you for watching, and be sure to check
out future videos in this series. For additional information on Oracle Linux
8, access the Oracle Linux 8 Documentation or Oracle Linux Learning Library.