GlusterFS adalah distributed, scalable file sistem, dimana kita bisa membuat kumpulan storage yang bisa diakses dari mana saja.
Keuntungan menggunakan GlusterFS:
- Skalabilitas support hingga PetaBytes
- Bisa menghandle ribuan klien
- Menggunakan perangkat yang umum(server biasa)
- Dapat diakses dengan standar protokol lain (NFS,SMB)
- Open-source

Tipe Volume yang bisa kita buat di GlusterFS:
- Distributed Volume
Disini kita bisa membuat file dan folder yang akan disimpan secara terdistribusi. Misalkan ada 2 server, file akan di distribusikan secara acak di setiap server. Di distributed volume tidak ada redudancy ataupun backup jika salah satu penyimpanan rusak otomatis file akan hilang.

Contoh Lab:

Konfigurasi di Server1
Mengatur nama hostname dan hosts di server1
hostnamectl set-hostname srv1
vim /etc/hosts
172.23.0.36 srv1.local srv1
172.23.0.37 srv2.local srv2
Instal GlusterFS-Server di kedua server
apt install glusterfs-server -y
Buat direktori sebagai lokasi distributed file system, disarankan menggunakan eksternal disk seperti /dev/sdb , /dev/sdc lalu di mount ke direktori. Sebagai contoh disini saya menggunakan disk /dev/sdb. Pastikan sudah membuat partisi di disk, dan melakukan format di partisi.(Lakukan di kedua server)
#Buat Direktori Baru
mkdir -p /storage/glusterfs
#Mount partisi ke direktori
mount /dev/sdb1 /storage/glusterfs
Lalu buat cluster (Lakukan di server1)
root@srv1:~# gluster peer probe srv2
peer probe: success.
root@srv1:~# gluster peer status
Number of Peers: 1
Hostname: srv2
Uuid: 2a502e69-5485-41b9-b5eb-7c6bb6aee43f
State: Peer in Cluster (Connected)
Lalu buat volume baru, dan aktifkan volume(Lakukan di server1)
root@srv1:~# gluster volume create vol1 transport tcp srv1:/storage/gluster/distributed srv2:/storage/gluster/distributed force
volume create: vol1: success: please start the volume to access data
root@srv1:~# gluster volume start vol1
volume start: vol1: success
root@srv1:~# gluster volume info
Volume Name: vol1
Type: Distribute
Volume ID: d3a90e17-a7e9-4ebe-a90d-d81be616341d
Status: Started
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: srv1:/storage/gluster/distributed
Brick2: srv2:/storage/gluster/distributed
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
Akses Gluster Volume dari Klien
Install GlusterFS-Client
apt -y install glusterfs-client
Konfigurasi hosts
vim /etc/hosts
172.23.0.36 srv1.local srv1
172.23.0.37 srv2.local srv2
Lalu lakukan mounting dari server ke klien
Pertama kita buat dulu direktorinya
mkdir /home/user/gluster-client
Lalu lakukan mount
mount -t glusterfs srv1:/vol1 /home/user/gluster-client
Lalu cek apakah berhasil di mounting
df -hT
srv1:/vol1 fuse.glusterfs 30G 7,0G 22G 25% /home/arya/gluster-clien
Untuk mounting permanen bisa menambahkan konfigurasi tadi ke /etc/fstab
vim /etc/fstab
srv1:/vol1 /home/arya/gluster-client glusterfs defaults,_netdev 0 0
Selanjutnya kita coba test membuat file sebanyak 20, apakah akan terdistribusi di kedua server
cd /home/user/gluster-client
touch file{1..20}
Lalu kita cek di kedua server
Server1: Jumlah file 8

Server2: Jumlah file 12

- Replicated Volume
Berbeda dengan distributed volume, di replicated file akan di mirroring antar brick, jadi bisa digunakan untuk High Avaibility storage. Misalkan ada salah satu brick rusak maka di brick lain file tetap utuh.

Contoh Lab:

Buat Volume baru
gluster volume create vol2 replica 2 srv1:/storage/gluster/replica srv2:/storage/gluster/replica force
Lalu kita aktifkan volumenya, dan cek statusnya pastikan sudah running
gluster volume start vol2
gluster volume status

Lalu kita mount di klien dan melakukan pengujian
mkdir repl
mount -t glusterfs srv1:/vol2 repl
cd repl
sudo touch file{1..5}
Cek file di kedua server


Terlihat di kedua server, file1 sampai file5 akan di replikasi. Jika salah satu server mati, maka file akan tetap aman, jika server yang mati hidup lagi maka GlusterFS akan melakukan sinkronisasi file.