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:

  1. Open a terminal with sudo privileges.
  2. 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

  3. 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.

  4. 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.
  5. 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 #####
  6. 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.
  7. Start the glusterd service.
    $ sudo systemctl start glusterd
  8. Verify glusterd is running and responding.
    $ sudo systemctl is-active glusterd
    active
    $ sudo gluster peer status
    Number of Peers: 0
  9. 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.

  10. Create a cluster for GlusterFS.