GlusterFS installation on Ubuntu or Debian enables distributed storage that scales by adding nodes instead of upgrading a single file server. A running GlusterFS server is a prerequisite before forming a trusted pool and creating any replicated or distributed volumes.
On Ubuntu and Debian, GlusterFS is deployed through APT packages that provide the gluster command-line tools and the glusterd management daemon. Server nodes run glusterd and export directories as bricks, while client nodes typically mount volumes through the FUSE stack (fuse3) using the glusterfs client.
Package versions vary by distribution release, so Ubuntu can optionally use a Launchpad PPA when a newer major version is required, while Debian typically relies on the distribution repository (or backports). Cluster nodes must resolve each other by hostname and must permit GlusterFS management and brick ports on the trusted internal network; exposing these ports to untrusted networks risks unwanted cluster control and data access.
Steps to install GlusterFS server on Ubuntu or Debian:
- Open a terminal with sudo privileges.
- List available GlusterFS PPA releases on Launchpad (Ubuntu only, optional).
$ wget -O - --quiet https://launchpad.net/ubuntu/+ppas\?name_filter\=glusterfs | grep "~gluster.*ubuntu/glusterfs" <td><a href="/~gluster/+archive/ubuntu/glusterfs-3.12">glusterfs 3.12</a></td> <td><a href="/~gluster/+archive/ubuntu/glusterfs-4.1">glusterfs-4.1</a></td> <td><a href="/~gluster/+archive/ubuntu/glusterfs-6">glusterfs-6</a></td> <td><a href="/~gluster/+archive/ubuntu/glusterfs-8">glusterfs-8</a></td> <td><a href="/~gluster/+archive/ubuntu/glusterfs-3.10">glusterfs-3.10</a></td> <td><a href="/~gluster/+archive/ubuntu/glusterfs-3.13">glusterfs-3.13</a></td> <td><a href="/~gluster/+archive/ubuntu/glusterfs-4.0">glusterfs-4.0</a></td> <td><a href="/~gluster/+archive/ubuntu/glusterfs-5">glusterfs-5</a></td> <td><a href="/~gluster/+archive/ubuntu/glusterfs-7">glusterfs-7</a></td> <td><a href="/~gluster/+archive/ubuntu/glusterfs-9">glusterfs-9</a></td>
Related: PPA: GlusterFS
- Add the chosen GlusterFS PPA to APT (Ubuntu only, optional).
$ sudo add-apt-repository ppa:gluster/glusterfs-9 [sudo] password for user: Repository: 'deb http://ppa.launchpad.net/gluster/glusterfs-9/ubuntu/ jammy main' Description: GlusterFS 9 More info: https://launchpad.net/~gluster/+archive/ubuntu/glusterfs-9 Adding repository. Press [ENTER] to continue or Ctrl-c to cancel. Adding deb entry to /etc/apt/sources.list.d/gluster-ubuntu-glusterfs-9-jammy.list Adding disabled deb-src entry to /etc/apt/sources.list.d/gluster-ubuntu-glusterfs-9-jammy.list Adding key to /etc/apt/trusted.gpg.d/gluster-ubuntu-glusterfs-9.gpg with fingerprint F7C73FCC930AC9F83B387A5613E01B7B3FE869A9 ##### snipped #####
Replace glusterfs-9 with the required major release.
- Update APT package lists.
$ sudo apt update Hit:1 http://ppa.launchpad.net/gluster/glusterfs-9/ubuntu jammy InRelease Hit:2 http://archive.ubuntu.com/ubuntu jammy InRelease Get:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] Get:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB] Hit:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease Fetched 229 kB in 1s (240 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date.
- Install the glusterfs-server package.
$ sudo apt install --assume-yes glusterfs-server Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: attr fuse3 glusterfs-client glusterfs-common keyutils libaio1 libfuse3-3 libgfapi0 libgfchangelog0 libgfrpc0 libgfxdr0 libglusterd0 libglusterfs0 libnfsidmap2 liburcu6 liburing1 nfs-common python3-prettytable rpcbind xfsprogs Suggested packages: open-iscsi watchdog xfsdump quota The following packages will be REMOVED: fuse The following NEW packages will be installed: attr fuse3 glusterfs-client glusterfs-common glusterfs-server keyutils libaio1 libfuse3-3 libgfapi0 libgfchangelog0 libgfrpc0 libgfxdr0 libglusterd0 libglusterfs0 libnfsidmap2 liburcu6 liburing1 nfs-common python3-prettytable rpcbind xfsprogs 0 upgraded, 21 newly installed, 1 to remove and 3 not upgraded. Need to get 4,752 kB of archives. After this operation, 22.1 MB of additional disk space will be used. ##### snipped #####
- Enable glusterd to automatically start during system boot.
$ sudo systemctl enable glusterd Created symlink /etc/systemd/system/multi-user.target.wants/glusterd.service → /lib/systemd/system/glusterd.service.
- Start the glusterd service.
$ sudo systemctl start glusterd
- Verify glusterd is running and responding.
$ sudo systemctl is-active glusterd active $ sudo gluster peer status Number of Peers: 0
- Allow GlusterFS management and brick ports through UFW (optional).
$ sudo ufw allow from 192.0.2.0/24 to any port 24007 proto tcp Rules updated Rules updated (v6) $ sudo ufw allow from 192.0.2.0/24 to any port 24008 proto tcp Rules updated Rules updated (v6) $ sudo ufw allow from 192.0.2.0/24 to any port 49152:49251 proto tcp Rules updated Rules updated (v6)
Restrict rules to the trusted cluster subnet or specific peer IP addresses, since these ports provide cluster management and brick access.
- Create a cluster for GlusterFS.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
