apa itu glusterfs? glusterfs adalah sistem penyimpanan klaster yang bersifat open source yang dapat beroperasi hingga kapastitas petabyte. menggabungkan disk manajemen data dari beberapa server menjadi sebuah volume storage. berfungsi untuk kebutuhan network storage yang berskalabilitas, glusterfs ini adalah alternatif dari NFS.
Topologi dibawah ini dipersiapkan untuk bagian model distributed, untuk replicated nanti kita akan coba membuat
Topik
- Instalasi
- konfigurasi
- distributed
- replicated
- distributed + replicated
Instalasi
pada server 1 dan server 2 install layanan glusterfs dan nyalakan secara daemon
$ apt install glusterfs-server -y
$ systemctl enable –now glusterd
konfigurasi
pada setiap server isi konfigurasi seperti dibawah ini untuk mempermudah ketimbang kita mengingat IP saat konfigurasi nanti.
$ nano /etc/hosts
172.23.1.58 server1
172.23.1.61 server2
disarankan menggunakan partisi yang bukan dibawah sistem “/” biasanya “sda”. misalkan disini saya menambah hardisk tambahan sebesar 5gb yaitu “sdb” dan membuat partisi sdb1 sebesar 1gb lalu mount ke direktori yang akan menjadi titik poin. contoh disini adalah mount ke direktori “glusterfs” teman teman bisa menyesuaikan atau pun ikut seperti dicontoh dengan membuat direktori glusterfs tersebut dengan perintah mkdir glusterfs.
$ mount /dev/sdb1 glusterfs
Distributed
lalu lanjut ke konfigurasi distributed, kita buat dahulu titik yang akan menjadi tujuan distribusi file nya nanti
$ mkdir -p /glusterfs/distributed
koneksikan antar server atau bisa disebut membuat klaster dengan perintah dibawah ini, jika berhasil akan ada tulisan success.
$ gluster peer probe server2
cek status koneksi, untuk melihat status dari koneksi antar server dan juga jumlah peer server yang ada didalam klaster.
$ gluster peer status
buat volume dari disk di dalam klaster,”user” isi sesuai user dimesin masing masing
$ gluster volume create vol_distributed transport tcp \
server1:/home/user/glusterfs/distributed\
server2:/home/user/glusterfs/distributed
jalankan volume yang sudah dibuat agar bisa digunakan
$ gluster volume start vol_distributed
cek info volume, berisi mulai dari Nama Volume, Type Volume, ID, Status dan lainnya.
$ gluster volume info
semua konfigurasi diatas dari awal di eksekusi diserver 1 dan server 2, karena kita akan menggabungkan nya menjadi satu klaster.
Klien
untuk menggunakan volume yang telah dibuat, disisi klien kita harus menginstall glusterfs versi client nya.
$ apt -y install glusterfs-client
lalu mounting ke direktori tujuan yang diinginkan
$ mount -t glusterfs server1:/vol_distributed /mnt
validasi bahwa volume telah termounting ke direktori mesin dari klien.
$ df -hT
pengujian coba buat 30 file di dalam direktori mounting
$ touch /mnt/{1..30}
file yang dibuat di server 3 atau di klien akan didistribusikan secara acak atau terbagi dua dimana setengah di server 1 dan setengah nya lagi server 2, ini adalah konsep distributed.
Replicated
Sedangkan untuk Konfigurasi Replicated , seperti tadi kita buat terlebih dahulu titik poin direktorinya.
$ mkdir -p /glusterfs/replica
kemudian kita hubungkan sebelum membuat volume, tetapi karena sebelumnya jika sudah terhubung maka langsung saja membuat volume. jika sebelumnya kita sudah ada volume kita bisa menghapusnya terlebih dahulu. untuk memastikan koneksi kembali kita bisa ketikan perintah dibawah ini
$ gluster peer probe server2
cek status kembali, untuk melihat status koneksi antar server
$ gluster peer probe server2
jika sudah aman, maka langsung saja buat volume replica nya
$ sudo gluster volume create vol_replica replica 2 transport
tcp server1:/home/yudi/glusterfs/replica
server2:/home/yudi/glusterfs/replica
jalankan volume nya jika sudah terbuat
$ gluster volume start vol_replica
untuk melihat status dan informasi volume
$ gluster volume info
tahap akhir, untuk mounting di sisi klien
$ sudo mount -t glusterfs server1:/vol_replica /mnt
tahap pengujian volume replica ini kita bisa membuat misalkan beberapa file di klien, berbeda dengan metode distributed tadi dimana file tersebut terpecah terbagi dua sedangkan replica ini file akan di replika dari klien ke server 1 dan server 2.
jika salah satu server mati misalkan server 1 dan terjadi proses replika dari klien, maka hanya server 2 lah yang akan menampung replika tersebut, nanti disaat server 1 hidup kembali maka server 1 akan mereplika sinkronisasi file yang sama dengan klien atau server 2 ini adalah High Available dari glusterfs dan replika.
selebihnya untuk menjamin ketersediaan data kita bisa menggunakan fitur arbitter yaitu fitur spesial yang ada di model replika yang dimana satu server akan dijadikan core agar tidak terjadi split-brain yang merusak data. arbitter ini menyediakan konsistensi garansi yang sama seperti replika dengan penggunaan storage yang lebih hemat.
Replicated + Distributed
demo pada model ini menggunakan 7 mesin, yang dimana 6 menjadi server dan 1 menjadi klien.
model ini adalah penggabungan dari replika dan distribusi, seperti biasa pada awalnya kita membuat titik direktori yang akan di bagikan.
$ sudo mkdir -p /glusterfs/replica
kemudian membuat klaste
$ gluster peer probe server1
$ gluster peer probe server2
$ gluster peer probe server3
$ gluster peer probe server4
$ gluster peer probe server5
$ gluster peer probe server6
jika sudah cek status nodes yang ada di klaster
Number of Peers: 5
Hostname: server2
Uuid: 8cbb296d-069a-4964-abfe-2c42a9894c74
State: Peer in Cluster (Connected)
Hostname: server3
Uuid: a2da6b5c-055c-49b8-95fc-b4ae5a032ddc
State: Peer in Cluster (Connected)
Hostname: server4
Uuid: 3939268d-cbac-451f-8c78-52a88faab9bf
State: Peer in Cluster (Connected)
Hostname: server5
Uuid: 0847e7ae-e4e8-477f-a057-0bdbba4ddd4d
State: Peer in Cluster (Connected
Hostname: server6
Uuid: ce249723-25f6-4848-8e6d-c123fca6b6a1
State: Peer in Cluster (Connected)
jika semua node telah ada dan status nya aman, barulah membuat volume
$ gluster volume create vol_dist-replica replica 3 arbiter 1 transport tcp \
server1:/home/yudi/glusterfs/dist-replica \
server2:/home/yudi/glusterfs/dist-replica \
server3:/home/yudi/glusterfs/dist-replica \
server4:/home/yudi/glusterfs/dist-replica \
server5:/home/yudi/glusterfs/dist-replica \
server6:/home/yudi/glusterfs/dist-replica
apabila sudah terbuat biasanya akan ditandai tulisan success, lalu jalankan volume nya agar bisa digunakan
$ gluster volume start vol_dist-replica
untuk melihat informasi dari volume
$ gluster volume info
Volume Name: vol_dist-replica
Type: Distributed-Replicate
Volume ID: 58b31806-35ac-40b1-963b-a14cd8bfd40f
Status: Starte
Snapshot Count: 0
Number of Bricks: 2 x (2 + 1) = 6
Transport-type: tcp
Bricks:
Brick1: server1:/home/yudi/glusterfs/dist-replica
Brick2: server2:/home/yudi/glusterfs/dist-replica
Brick3: server3:/home/yudi/glusterfs/dist-replica (arbiter)
Brick4: server4:/home/yudi/glusterfs/dist-replica
Brick5: server5:/home/yudi/glusterfs/dist-replica
Brick6: server6:/home/yudi/glusterfs/dist-replica (arbiter)
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
performance.client-io-threads: off
tahap akhir adalah mounting ke klien, sebelumnya jangan lupa untuk install glusterfs-client terlebih dahulu barulah mounting ke direkori tujuan. perintah dibawah ini dieksekusi disisi klien
$ mount -t glusterfs server1:vol_dist-replica mnt/
validasi cek disk yang sudah termounting
$ df -hT
pengujian dengan membuat beberapa file di sisi klien
$ touch {1..10}
di server 1, 2 dan server 3
$ ls
1 5 7 8 9
di server 4,5 dan server 6
$ ls
2 3 4 6 10
Tertarik untuk mengupgrade skillmu dibidang IT? Kami menyediakan berbagai pilihan training klik disini.
Penulis : Yudi Putra Wiratama