In this article, we understand how to build a High Available domain controller and file shared with two open-source product: Zentyal and GlusterFS
GlusterFS is an open-source file system for distributed storage. It is scalable horizontally and master-less, whose capacity can be dynamically expanded by adding new nodes.
GlusterFS is able to manage up to several petabytes, thousands of clients and different data areas (storage volume).

Introduction
In the Gluster terminology, there are some keywords to understand.
- volume: the final shared resource
- translator: is a virtual shared object that extends the features of your file systems
- brick: the original shared file system (ex: a directory)
- server/node: the machine that contains the brick
- client: who use the shared resource
Volume configurations
Similar to RAID setup there is a different way to use a Gluster Volume:
Distributed: this is the default glusterFS volume. Same as raid 0, the data are distributed across various bricks in the volume. There is no redundancy. Same as raid 0, the data are spread to volumes.
gluster volume create devdata home1:/mnt/datastore2 home2:/mnt/datastore2
Creation of test-volume has been successful
Please start the volume to access data
Replicated: same as RAID 1, the data are copied to all volumes immediately
gluster volume create share_home replica 2 transport tcp home1:/mnt/datastore/shared_home home2:/mnt/datastore/shared_home
Creation of share_home has been successful
Please start the volume to access data
Distributed Replicated Volume:
This type of volume is used when high availability, redundancy and scaling storage is required.
The number of bricks must be a multiple of the replica count.
So if there were eight bricks and replica count 2, then the first two bricks become replicas of each other then the next two and so on.
This volume is denoted as 4×2.
https://glusterdocs-beta.readthedocs.io/en/latest/overview-concepts/volume_types.html
gluster volume create share_home replica 2 transport tcp home1:/mnt/dastore2 home2:/mnt/datastore2 home3:/mnt/datastore2 home4:/mnt/datastore2
Creation of share_home has been successful
Please start the volume to access data
Striped Volume: is unusual for us

Distributed Striped Volume:

Installation on Ubuntu/Debian
On each node, install the requirements
apt install install glusterfs-server
On each node, add this line the /etc/hosts w
<ip address> node-1-name
<ip address> node-2-name
<ip address> node-n-name
for example
192.168.1.1 pve-node-1
192.168.1.2 pve-node-2
Real scenario
As you have understood in these examples, a real case for use glusterFS is the datastore for the home users.

Zentyal is an open-source solution to deploy a SAMBA4 domain controller compatible with Microsoft Active Directory.
Zentyal is an alternative for Windows Server Small Business and Windows Server Essentials