GlusterFS adalah sistem berkas terdistribusi dan sumber terbuka yang dapat mengukur skala hingga beberapa petabyte dan mengelola ribuan client. GlusterFS mengelompokkan blok-blok pembangun penyimpanan di Infiniband RDMA atau interconnect TCP/IP, penggabungan disk dan sumber daya memori, serta mengelola data dalam satu namespace global. GlusterFS berbasis pada desain ruang pengguna yang dapat disusun dan dapat memberikan kinerja luar biasa untuk beban kerja yang beragam.
Persyaratan
2 instance yang dijadikan node1 dan node2 telah ter-attach volume minimal 5GB dan 1 instance client. Dalam panduan ini menggunakan contoh instance dengan OS Ubuntu 16.04.
Langkah-langkah
node1, node2 & client
apt-get update –y
Konfigurasi Hostname Resolution
Sebelum memulai, Anda perlu mengatur /etc/hosts file pada setiap instance. Jadi setiap instance dapat berkomunikasi satu sama lain menggunakan nama host.
nano /etc/hosts
tambahkan baris berikut:
192.168.100.150 node1.example.com
192.168.100.207 node2.example.com
192.168.100.247 client1.example.com

Test ping ke setiap hostname
ping node1.example.com
ping node2.example.com
ping client1.example.com
Install GlusterFS
Sebelum memulai Anda harus menginstal GlusterFS Server di instance node1 dan node2, GlusterFS tidak tersedia di repositori default Ubuntu 16.04. Jadi, Anda perlu menambahkan repositori untuk itu. Anda dapat melakukan ini dengan menjalankan perintah berikut pada kedua instance:
apt-get install software-properties-common -y
add-apt-repository ppa:gluster/glusterfs-3.10
Output :

Setelah repositori ditambahkan, perbarui repositori dan instal GlusterFS dengan menjalankan perintah berikut:
apt-get update -y
apt-get install glusterfs-server -y
Selanjutnya, mulai GlusterFS dan aktifkan untuk memulai saat boot dengan perintah berikut:
systemctl start glusterfs-server
systemctl enable glusterfs-server
Cek Status GlusterFS dengan perintah berikut:
systemctl status glusterfs-server

Konfigurasikan Penyimpanan GlusterFS
Anda harus membuat partisi pada HDD eksternal (/dev/sdb) pada kedua instance GlusterFS (node1 & node2).
Anda dapat membuat partisi dengan menjalankan perintah berikut di kedua instance:
fdisk /dev/sdb

Format partisi dengan perintah berikut:
mkfs.ext4 /dev/sdb1

Selanjutnya, buat direktori penyimpanan untuk GlusterFS dan mount partisi (/dev/sdb1)
mkdir /glusterfs
mount /dev/sdb1 /glusterfs
Tambahkan mount point pada /etc/fstab agar ketika di reboot volume tersebut masih ter mounting
nano /etc/fstab
/dev/sdb1 /glusterfs ext4 defaults 0 0

Konfigurasikan Pool Penyimpanan GlusterFS
Anda juga perlu membuat trusted storage pool pada instance node1 dengan menambahkan node2 di dalamnya dan sebaliknya. Anda dapat melakukan ini dengan menjalankan perintah berikut.
Instance Node1:
gluster peer probe node2.example.com
Instance Node2:
gluster peer probe node1.example.com
Instance Node1 & Node2:
gluster peer status
gluster pool list

Konfigurasikan Volume GlusterFS
Selanjutnya, Anda perlu membuat brick directory dengan nama gvol0 di sistem file yang terpasang pada Node1 dan Node2:
mkdir /glusterfs/gvol0
Buat volume “gvol0” menjadi dua replika dengan menjalankan perintah berikut pada instance Node1:
gluster volume create gvol0 replica 2 node1.example.com:/glusterfs/gvol0 node2.example.com:/glusterfs/gvol0
Start volume dengan perintah berikut
gluster volume start gvol0
Pemeriksa status volume yang dibuat dengan perintah berikut:
gluster volume info gvol0

Konfigurasikan GlusterFS Client
Pertama, Anda perlu menginstal paket glusterfs-client pada instance GlusterFS-Client. Secara default, paket GlusterFS Client tidak tersedia di repositori default Ubuntu 16.04. Jadi, Anda perlu menambahkan repositori untuk itu. Anda dapat melakukan ini dengan menjalankan perintah berikut:
apt-get install software-properties-common -y
add-apt-repository ppa:gluster/glusterfs-3.10
Setelah repositori ditambahkan, perbarui repositori dan instal GlusterFS CLient dengan menjalankan perintah berikut:
apt-get update -y
apt-get install glusterfs-client –y
Selanjutnya, buat direktori untuk memasang sistem file GlusterFS:
mkdir /glusterfs
Sekarang, mount sistem file GlusterFS di direktori /glusterfs dengan perintah berikut:
mount -t glusterfs node1.example.com:/gvol0 /glusterfs
Anda dapat memverifikasi sistem file GlusterFS yang terpasang dengan perintah berikut:
cat /proc/mounts | grep glusterfs

Tambahkan mount point pada /etc/fstab agar ketika di reboot volume tersebut masih ter mounting
nano /etc/fstab
node1.example.com:/gvol0 /glusterfs glusterfs defaults,_netdev 0 0

Test GlusterFS
GlusterFS Storage telah di konfigurasi dan untuk melakukan test replikasinya dapat mengikuti langkah berikut
Node1:
mount -t glusterfs node1.example.com:/gvol0 /mnt
Node2:
mount -t glusterfs node2.example.com:/gvol0 /mnt
Buka instance GlasterFS Client dan buat beberapa file di sistem file yang terpasang:
touch /glusterfs/test1
touch /glusterfs/test2
verifikasi kedua instance GlusterFS (node1 dan node2) dengan menjalankan perintah berikut:
ls –l /mnt


Untuk melakukan test high-availability, poweroff instance node1. Buat beberapa file pada instance GlasterFS client
touch /glusterfs/test3
touch /glusterfs/test4
touch /glusterfs/test5
touch /glusterfs/test6
Jalankan command ls -l /mnt pada node2, maka dapat dilihat semua file sudah tersimpan di node2.

Setelah itu coba poweron kembali instance node1, jalankan perintah
mount -t glusterfs node1.example.com:/gvol0 /mnt
ls –l /mnt
