Skip to content

Bikin Cluster Storage di Linux dengan GlusterFS

GlusterFS adalah distributed, scalable file sistem, dimana kita bisa membuat kumpulan storage yang bisa diakses dari mana saja.

Keuntungan menggunakan GlusterFS:

  1. Skalabilitas support hingga PetaBytes
  2. Bisa menghandle ribuan klien
  3. Menggunakan perangkat yang umum(server biasa)
  4. Dapat diakses dengan standar protokol lain (NFS,SMB)
  5. Open-source
https://docs.gluster.org/en/latest/images/640px-GlusterFS-Architecture.png

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.

https://docs.gluster.org/en/latest/images/New-DistributedVol.png

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.

https://cloud.githubusercontent.com/assets/10970993/7412379/d75272a6-ef5f-11e4-869a-c355e8505747.png

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.

Published inUncategorized

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *