{"id":5228,"date":"2020-03-20T22:43:14","date_gmt":"2020-03-20T19:43:14","guid":{"rendered":"https:\/\/kifarunix.com\/?p=5228"},"modified":"2022-06-06T19:20:48","modified_gmt":"2022-06-06T16:20:48","slug":"install-and-setup-glusterfs-storage-cluster-on-centos-8","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-and-setup-glusterfs-storage-cluster-on-centos-8\/","title":{"rendered":"Install and Setup GlusterFS Storage Cluster on CentOS 8"},"content":{"rendered":"\n<p>In this guide, we are going to learn how to install and setup GlusterFS storage cluster on CentOS 8. <a rel=\"noreferrer noopener\" aria-label=\"GlusterFS (opens in a new tab)\" href=\"https:\/\/docs.gluster.org\/en\/latest\/\" target=\"_blank\">GlusterFS<\/a> is an opensource distributed and scalable network file system that clusters various disk storage resources into a single global namespace. It is suitable for data-intensive tasks such as cloud storage and media streaming. Some of the common features for GlusterFS include;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Can scale to several petabytes thus can handle thousands of clients.<\/li><li>Provides high availability through data mirroring. It also supports self healing mechanism that&nbsp;restores data to the correct state following recovery with nearly no overhead.<\/li><li>Provides a unified global namespace that clusters disk and memory resources into a single pool that ensures load balanced I\/O.<\/li><li>Uses elastic hash algorithm to locate data in the storage pool hence linear performance scaling.<\/li><li>Provides elastic volume manager in which data is stored in logical volumes that are abstracted from the hardware and logically partitioned from each other. This ensures that storage can be added or removed while data continues to be online with no application interruption.<\/li><li>Gluster is fully POSIX-compliant and does not require any unique APIs for data access.<\/li><li>Supports industry standard protocols like NFS, SMB, CIFS, HTTP and FTP.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Install and Setup GlusterFS Storage Cluster on CentOS 8<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisites<\/h3>\n\n\n\n<p>Ensure that you have at least three storage nodes. Check our deployment architecture below.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"586\" height=\"259\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/03\/glusterfs-architecture.png\" alt=\"\" class=\"wp-image-5229\" title=\"\"><\/figure><\/div>\n\n\n\n<p>Also, ensure that you have an extract virtual disk apart from the root disk where the OS is installed. In our case above, we have an extra disk, <code><strong>\/dev\/sdb<\/strong><\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>lsblk<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\nNAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT\nsda           8:0    0    8G  0 disk \n\u251c\u2500sda1        8:1    0    1G  0 part \/boot\n\u2514\u2500sda2        8:2    0    7G  0 part \n  \u251c\u2500cl-root 253:0    0  6.2G  0 lvm  \/\n  \u2514\u2500cl-swap 253:1    0  820M  0 lvm  [SWAP]\n<strong>sdb           8:16   0    2G  0 disk \n\u2514\u2500sdb1        8:17   0    2G  0 part<\/strong> \nsr0          11:0    1 1024M  0 rom\n<\/code><\/pre>\n\n\n\n<p>If using hostnames, ensure that they are resolvable.<\/p>\n\n\n\n<p>Ensure that time is tightly synchronized between the three nodes. If you need to setup your NTP server on a CentOS 8 system, simply follow the link below;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/setup-ntp-server-using-chrony-on-centos-8\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Setup NTP Server using Chrony on CentOS 8<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Partition and Format the GlusterFS Storage Drives<\/h3>\n\n\n\n<p>On each GlusterFS node, format and create a file system on the storage drive. You can use any partitioning method.<\/p>\n\n\n\n<p>Format and create a primary partition on the disk.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>parted \/dev\/sdb mklabel msdos<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>parted -a opt \/dev\/sdb mkpart primary xfs 0% 100%<\/code><\/pre>\n\n\n\n<p>Create a Filesystem on the disk. XFS is used here.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mkfs.xfs \/dev\/sdb1 -L gfsdisk<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Mount GlusterFS Storage Drives (Bricks)<\/h3>\n\n\n\n<p>On each node, create  a mount point for the GlusterFS storage drive, here in called bricks. A brick is a basic unit of GlusterFS storage.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mkdir -p \/export\/gfsbrick<\/code><\/pre>\n\n\n\n<p>Mount the GlusterFS storage drive on the bricks directory created above.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mount \/dev\/sdb1 \/export\/gfsbrick\/<\/code><\/pre>\n\n\n\n<p>To automount the drive on system boot, simply update the \/etc\/fstab configuration file as follows;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>echo \"\/dev\/sdb1 \/export\/gfsbrick\/ xfs defaults 1 2\" &gt;&gt; \/etc\/fstab<\/code><\/pre>\n\n\n\n<p>Check the mounting;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>df -hTP \/dev\/sdb1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Filesystem     Type  Size  Used Avail Use% Mounted on\n\/dev\/sdb1      xfs   2.0G   47M  2.0G   3% \/export\/gfsbrick<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"installglusterfscentos8\"><a href=\"#installglusterfscentos8\">&nbsp;Install GlusterFS 7 on CentOS 8<\/a><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Install GlusterFS Repo<\/h4>\n\n\n\n<p>Now that the prerequisites part is done, proceed to install GlusterFS on all nodes. GlusterFS is not available on the default repos. Hence, run the command below to create the repo.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf install centos-release-gluster<\/code><\/pre>\n\n\n\n<p>Enable PowerTools repos in order to be able to install other required GlusterFS dependencies.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf config-manager --set-enabled PowerTools<\/code><\/pre>\n\n\n\n<p>Install GlusterFS server package on CentOS 8 by running the command below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf install glusterfs-server<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Running GlusterFS on CentOS 8<\/h4>\n\n\n\n<p>Start and enable GlusterFS daemon to run on system boot by executing the command below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl enable --now glusterd<\/code><\/pre>\n\n\n\n<p>To check the status of GlusterFS daemon;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl status glusterd<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\n\u25cf glusterd.service - GlusterFS, a clustered file-system server\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/glusterd.service; enabled; vendor preset: disabled)\n   Active: active (running) since Fri 2020-03-20 19:51:37 EAT; 12s ago\n     Docs: man:glusterd(8)\n  Process: 2739 ExecStart=\/usr\/sbin\/glusterd -p \/var\/run\/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0\/SUCCESS)\n Main PID: 2740 (glusterd)\n    Tasks: 9 (limit: 5047)\n   Memory: 3.9M\n   CGroup: \/system.slice\/glusterd.service\n           \u2514\u25002740 \/usr\/sbin\/glusterd -p \/var\/run\/glusterd.pid --log-level INFO\n\nMar 20 19:51:37 gfs01.kifarunix-demo.com systemd[1]: Starting GlusterFS, a clustered file-system server...\nMar 20 19:51:37 gfs01.kifarunix-demo.com systemd[1]: Started GlusterFS, a clustered file-system server.\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Allow GlusterFS on Firewall<\/h4>\n\n\n\n<p>In order for the GlusterFS nodes to be able to communicate, you need to open certain GlusterFS ports or services on a firewall. The <code><strong>24007-24008\/TCP<\/strong><\/code> are used for the communication between nodes, while <code><strong>24009-24108\/TCP<\/strong><\/code> are required for client communication. To make this easy, simply use the service, <strong><code>glusterfs<\/code><\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>firewall-cmd --add-service=glusterfs --permanent<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>firewall-cmd --reload<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Configure GlusterFS Trusted Storage Pool<\/h4>\n\n\n\n<p>To configure GlusterFS storage cluster, you first need to create a <strong><code>trusted storage pool (TSP)<\/code><\/strong> which basically is a network of storage servers. TSP can be created by adding storage nodes to the TSP using the <code><strong>gluster peer probe<\/strong><\/code> command as shown below.<\/p>\n\n\n\n<p>To probe other nodes, eg gfs02 and gfs03 <strong>from gfs01<\/strong> in our case, run the command below. Replace the names of the nodes accordingly. <strong>You can probe other nodes from any node<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gluster peer probe gfs02<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gluster peer probe gfs03<\/code><\/pre>\n\n\n\n<p>To verify cluster peering status, run the command below from any node. Eg from node 1, gfs01;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gluster peer status<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\nNumber of Peers: 2\n\nHostname: gfs01.kifarunix-demo.com\nUuid: b2003be4-4bc9-4125-a2a1-0d46e4b2476f\nState: Peer in Cluster (Connected)\n\nHostname: gfs02\nUuid: 6bc3b730-b7bb-4d24-865a-c33a3db4489d\nState: Peer in Cluster (Connected)\n<\/code><\/pre>\n\n\n\n<p>To list all nodes in a TSP, eg from GlusterFS node 02, gfs01;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gluster pool list<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\nUUID\t\t\t\t\tHostname \tState\n6bc3b730-b7bb-4d24-865a-c33a3db4489d\tgfs02    \tConnected \n26cdb6a4-ad15-41e7-bb72-2da0a9906fa6\tgfs03    \tConnected \nb2003be4-4bc9-4125-a2a1-0d46e4b2476f\tlocalhost\tConnected\n<\/code><\/pre>\n\n\n\n<p>You can be able to add more serves or remove servers from the GlusterFS storage pool;<\/p>\n\n\n\n<p>For example, to add a new server, you need to probe it from a node already in the pool. Replace the <strong>server-name<\/strong> accordingly.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gluster peer probe <strong>server-name<\/strong><\/code><\/pre>\n\n\n\n<p>To detach a server from the pool;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gluster peer detach <strong>server-name<\/strong><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Setup GlusterFS Storage Volume<\/h4>\n\n\n\n<p>A GlusterFS storage volume can be created from the bricks that were created above. In this case, we have created bricks mounted on <code><strong>\/export\/gfsbrick<\/strong><\/code> on each node.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">GlusterFS Storage Volume Types<\/h4>\n\n\n\n<p>There are different configuration settings to consider while creating GlusterFS storage volume depending on various operational needs.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong><code>Distributed<\/code><\/strong>: Files are distributed across the bricks in the volume.<\/li><li><strong><code>Replicated<\/code><\/strong>: Files are replicated across the bricks in the volume. It ensures high storage availability and reliability.<\/li><li><strong><code>Distributed Replicated<\/code><\/strong>: Files are distributed across the replicated bricks in the volume. Ensures high-reliability, scalability and improved read performance.<\/li><li><strong><code>Arbitrated Replicated<\/code><\/strong>: Files are replicated across two bricks in a replica set and only the metadata is replicated to the third brick. Ensures data consistency.<\/li><li><strong><code>Dispersed<\/code><\/strong>: Files are dispersed across the bricks in the volume.<\/li><li><strong><code>Distributed Dispersed<\/code><\/strong>: Data is distributed across the dispersed sub-volume.<\/li><\/ul>\n\n\n\n<p>The GlusterFS volume can be created using the command;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gluster volume  create &lt;NEW-VOLNAME&gt; &#91;stripe &lt;COUNT&gt;] &#91;&#91;replica &lt;COUNT&gt; &#91;arbiter &lt;COUNT&gt;]]|&#91;replica 2 thin-arbiter 1]] &#91;disperse &#91;&lt;COUNT&gt;]] &#91;redundancy &lt;COUNT&gt;] &#91;transport &lt;tcp|rdma|tcp,rdma&gt;] &lt;NEW-BRICK&gt; ...&lt;TA-BRICK&gt;<\/code><\/pre>\n\n\n\n<p>Consult <code><strong>man gluster<\/strong><\/code> for more details.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"replicatedglustervolume\"><a href=\"#replicatedglustervolume\">Setup Replicated GlusterFS Storage Volume<\/a><\/h4>\n\n\n\n<p>In this demo, we are going to learn how to setup replicated glusterfs storage volume.<\/p>\n\n\n\n<p>Create a mount point for the volume on the brick <strong>on each cluster node.<\/strong> In our case, our brick is mounted on <code>\/export\/gfsbrick<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mkdir \/export\/gfsbrick\/gfsvol01<\/code><\/pre>\n\n\n\n<p>Next, created a replicated storage volume. For example, to create a replicated GlusterFS storage volume with three nodes called <code><strong>gfsvol01<\/strong><\/code>;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gluster volume create gfsvol01 replica 3 transport tcp gfs01:\/export\/gfsbrick\/gfsvol01 gfs02:\/export\/gfsbrick\/gfsvol01 gfs03:\/export\/gfsbrick\/gfsvol01<\/code><\/pre>\n\n\n\n<p>You can run the command from any node, replacing the names of the other peers and the associated bricks accordingly.<\/p>\n\n\n\n<p>If everything goes well, you should get an output like;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code><strong>volume create: gfsvol01: success: please start the volume to access data<\/strong><\/code><\/pre>\n\n\n\n<p>After that, start the GlusterFS volume. Replace <code><strong>gfsvol01<\/strong><\/code> with the name of your volume.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gluster volume start <strong>gfsvol01<\/strong><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Verify GlusterFS Volumes<\/h4>\n\n\n\n<p>Once you have created and started the volumes, you can verify by running the command below from any node in the cluster.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gluster volume info all<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\nVolume Name: gfsvol01\nType: Replicate\nVolume ID: 9361067e-da82-411c-9c83-2ab1c2b888aa\nStatus: Started\nSnapshot Count: 0\nNumber of Bricks: 1 x 3 = 3\nTransport-type: tcp\nBricks:\nBrick1: gfs01:\/export\/gfsbrick\/gfsvol01\nBrick2: gfs02:\/export\/gfsbrick\/gfsvol01\nBrick3: gfs03:\/export\/gfsbrick\/gfsvol01\nOptions Reconfigured:\ntransport.address-family: inet\nstorage.fips-mode-rchecksum: on\nnfs.disable: on\nperformance.client-io-threads: off\n<\/code><\/pre>\n\n\n\n<p>There you go. You have successfully installed and setup replicated GlusterFS storage cluster.<\/p>\n\n\n\n<p>Want to set a different type of GlusterFS volume? <a rel=\"noreferrer noopener\" aria-label=\"Consult GlusterFS documentation on setting up volume types (opens in a new tab)\" href=\"https:\/\/docs.gluster.org\/en\/latest\/Administrator%20Guide\/Setting%20Up%20Volumes\/\" target=\"_blank\">Consult GlusterFS documentation on setting up volume types<\/a>.<\/p>\n\n\n\n<p>Learn how to setup GlusterFS distributed replicated storage volume by following the link below;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/setup-glusterfs-distributed-replicated-volume-on-centos-8\/\" target=\"_blank\" rel=\"noreferrer noopener\">Setup GlusterFS Distributed Replicated Volume on CentOS 8<\/a><\/p>\n\n\n\n<p>If anything, you can always check the log file, <strong><code>\/var\/log\/glusterfs\/glusterd.log<\/code><\/strong> for any would be issues.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"setupglusterfsclient\"><a href=\"#setupglusterfsclient\">Install and Setup GlusterFS client on CentOS 8<\/a><\/h3>\n\n\n\n<p>Now that you have a GlusterFS storage cluster running, you can setup a client to be able to utilize this storage. Gluster volumes can be accessed using the Gluster Native Client or via NFS v3.<\/p>\n\n\n\n<p>In this demo, we are going to learn how to use the native GlusterFS client on CentOS 8.<\/p>\n\n\n\n<p>Install the GlusterFS repositories on CentOS 8<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf install centos-release-gluster<\/code><\/pre>\n\n\n\n<p>Run system update;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf update<\/code><\/pre>\n\n\n\n<p>Install Gluster Native Client on CentOS 8<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf install glusterfs glusterfs-fuse<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Mounting Gluster Storage Volumes on Client<\/h3>\n\n\n\n<p>To manually mount the Gluster storage volumes on a client, use the command;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mount -t glusterfs HOSTNAME-OR-IPADDRESS:\/VOLNAME MOUNTDIR<\/code><\/pre>\n\n\n\n<p>Where:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong><code>-t glusterfs<\/code><\/strong> specifies the GlusterFS filesystem.<\/li><li><strong><code>HOSTNAME-OR-IPADDRESS<\/code><\/strong> is any gluster node eg, gfs01, gf02 or gfs03. Ensure hostnames are resolvable.<\/li><li><code><strong>\/VOLNAME<\/strong><\/code> is the name of the GlusterFS storage volume e.g <code><strong>gfsvol01<\/strong><\/code> in this demo.<\/li><li><code><strong>MOUNTDIR<\/strong><\/code> is the mount point on the client.<\/li><\/ul>\n\n\n\n<p>Thus, to mount the Gluster storage volume from glusterfs node 01, <strong>gfs01<\/strong>, our mount command would be like;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mkdir \/media\/gfs<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mount -t glusterfs gfs01:\/<strong>gfsvol01<\/strong> \/media\/gfs\/<\/code><\/pre>\n\n\n\n<p>Confirm the mounting;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>df -hT<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\nFilesystem          Type            Size  Used Avail Use% Mounted on\ndevtmpfs            devtmpfs        1.4G     0  1.4G   0% \/dev\ntmpfs               tmpfs           1.4G     0  1.4G   0% \/dev\/shm\ntmpfs               tmpfs           1.4G  9.9M  1.4G   1% \/run\ntmpfs               tmpfs           1.4G     0  1.4G   0% \/sys\/fs\/cgroup\n\/dev\/mapper\/cl-root xfs             8.0G  5.7G  2.4G  71% \/\n\/dev\/sda1           ext4            976M  244M  666M  27% \/boot\n...\n<strong>gfs01:\/gfsvol01     fuse.glusterfs  2.0G   67M  2.0G   4% \/media\/gfs<\/strong>\n<\/code><\/pre>\n\n\n\n<p>To automatically mount the GlusterFS storage volume, you can update the <code><strong>\/etc\/fstab<\/strong><\/code> with the line;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gfs01:\/<strong>gfsvol01<\/strong> \/media\/gfs\/ glusterfs defaults,_netdev 0 0<\/code><\/pre>\n\n\n\n<p>Where <strong><code>_netdev<\/code><\/strong> ensures that the filesystem is not mounted until when the network is enabled and running.<\/p>\n\n\n\n<p>In our next guide, we will discuss how to mount GlusterFS storage volume on a client using NFS.<\/p>\n\n\n\n<p>That marks the end of our guide on how to install and setup GlusterFS storage cluster on CentOS 8.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reference<\/h3>\n\n\n\n<p><a href=\"https:\/\/docs.gluster.org\/en\/latest\/Quick-Start-Guide\/Quickstart\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"GlusterFS Quick Start Guide (opens in a new tab)\">GlusterFS Quick Start Guide<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Related Tutorials<\/h3>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/setup-three-node-ceph-storage-cluster-on-ubuntu-18-04\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Setup Three Node Ceph Storage Cluster on Ubuntu 18.04<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-and-setup-glusterfs-on-ubuntu-18-04\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Install and Setup GlusterFS on Ubuntu 18.04 (opens in a new tab)\">Install and Setup GlusterFS on Ubuntu 18.04<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/kifarunix.com\/how-to-configure-nfs-server-on-ubuntu-18-04-server\/\" target=\"_blank\">How to Configure NFS Server on Ubuntu 18.04 Server<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/kifarunix.com\/how-to-install-and-configure-nfs-server-on-rhel-centos-7\/\" target=\"_blank\">How to Install and Configure NFS Server on RHEL\/CentOS 7<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/kifarunix.com\/install-and-configure-ceph-block-device-on-ubuntu-18-04\/\" target=\"_blank\">Install and Configure Ceph Block Device on Ubuntu 18.04<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this guide, we are going to learn how to install and setup GlusterFS storage cluster on CentOS 8. GlusterFS is an opensource distributed and<\/p>\n","protected":false},"author":1,"featured_media":13046,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[39,345,121],"tags":[1142,1369,1366,1374,1367,1365,1368],"class_list":["post-5228","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-storage","category-glusterfs","category-howtos","tag-centos-8","tag-glusterfs-brick","tag-glusterfs-centos-8","tag-glusterfs-client-centos-8","tag-glusterfs-storage-cluster-centos-8","tag-replicated-glusterfs","tag-replicated-glusterfs-storage-volume","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/5228"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=5228"}],"version-history":[{"count":17,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/5228\/revisions"}],"predecessor-version":[{"id":13073,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/5228\/revisions\/13073"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/13046"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=5228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=5228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=5228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}