halo sobat sekolahlinux kali ini saya akan membahas sedikit soal glusterfs, saya menggunakan glusterfs ini dikarenakan nfs tidak support cluster HA & menghindari terjadinya single point of failure, glusterfs sendiri adalah sebuah aplikasi distribute file system yang bersifat opensource yang terdiri dari banyak server dan dapat disatukan hingga support failover.
glusterfs sendiri support
- distribute
- replicated <= (pada tutorial kali ini kita akan membahas type ini)
- stripped
- distribute + replicated
- distribute + stripped
- distribute + replicated + stripped
Implementasi GlusterFS Pada Centos 7
Pada tutorial ini saya akan menggunakan 3 node, dan saya hanya akan menuliskan glusterfs type replicated,
- Node1: 192.168.10.10
- Node2: 192.168.10.20
- Client: 192.168.10.30
sedikit masukan jika kalian nanti ingin mencobanya di production ada baiknya node untuk glusterfs-server berjumlah 3 untuk menghindari terjadinya splitbrain, namun jika budget kalian minim dan tetap ingin menggunakan 2 server maka tidak apa-apa hehehe 😀
Jalankan step dibawah ini pada node1 & node2
Install repo yang dibutuhkan:
yum -y install epel-release yum -y install yum-priorities yum -y install centos-release-gluster
Install GlusterFS
yum -y install glusterfs-server gluster*
Jalankan GlusterFS
systemctl enable glusterd.service systemctl start glusterd.service
Jalankan step dibawah ini pada node1
Buat koneksi antara node1 dengan node2
gluster peer probe node2
Jika sudah coba check apakah node2 sudah terhubung ke node1 dengan perintah dibawah
gluster peer status
Hasilnya
Number of Peers: 1 Hostname: node2 Uuid: bcdd0750-f850-4c16-95b5-5873b4e18666 State: Peer in Cluster (Connected)
Selanjutnya kita akan membuat share vol dengan nama nostra dengan 2 replica atau 2 server, yaitu node1 & node2 pada folder /mnt/data
gluster volume create nostra replica 2 transport tcp node1:/mnt/data node2:/mnt/data force
Jika sudah start volume yang kita buat
gluster volume start nostra
Untuk cek volume yang sudah kita buat bisa menggunakan perintah dibawah ini
gluster volume info
Maka hasilnya akan seperti dibawah
Volume Name: nostra Type: Replicate Volume ID: 0d0fd355-3531-40f4-999d-0b2e1f3976a1 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: node1:/mnt/data Brick2: node2:/mnt/data Options Reconfigured: transport.address-family: inet
Jalankan perintah dibawah ini pada node client
yum -y install glusterfs-client glusterfs glusterfs-fuse attr
Selanjutnya buat folder untuk mount GlusterFS nya
mkdir /opt/data
Jika sudah jalankan perintah dibawah untuk mount gluster volumenya
mount glusterfs node1.com:nostra /opt/data
buka file fstab
vim /etc/fstab
selanjutnya tambahkan baris dibawah ini pada fstab gunanya agar ketika kalian reboot vm client maka gluster akan otomatis mount drive nya
node1:nostra /opt/data glusterfs defaults,_netdev 0 0
Untuk mengeceknya kamu bisa menggunakan perintah dibawah ini
df -h
Hasilnya akan seperti dibawah ini
Filesystem Size Used Avail Use% Mounted on /dev/sda2 31G 1,6G 28G 6% / devtmpfs 911M 0 911M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 8,4M 912M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/sda1 976M 266M 644M 30% /boot tmpfs 184M 0 184M 0% /run/user/0 node1:nostra 31G 1,8G 28G 6% /opt/data
Selanjutnya untuk melakukan pengetesan kalian bisa membuat file dari server client dengan cara seperti dibawah ini
touch /opt/data/nostra1 touch /opt/data/nostra2 touch /opt/data/nostra3 touch /opt/data/nostra4
jalankan perintah dibawah ini pada node1 & node2
coba cek apakah file yang kita tulis di node client ada pada node1 & node2 dengan perintah dibawah
ll /mnt/data
hasilnya file yang kita buat di node client akan ada di node1 & node2
-rw-r--r-- 2 root root 0 Mar 7 08:57 nostra1 -rw-r--r-- 2 root root 0 Mar 7 08:57 nostra2 -rw-r--r-- 2 root root 0 Mar 7 08:57 nostra3 -rw-r--r-- 2 root root 0 Mar 7 08:57 nostra4
untuk test apakah failovernya berjalan dengan baik kalian bisa coba matikan node1, dan lakukan test create file dari client, lalu coba cek apakah file yang tadi dibuat ada di node2, lalu selanjutnya coba jalankan node1 yang tadi dimatikan, tunggu beberapa saat apakah file tersebut ada juga di node1
sekian tutorial kali ini, semoga bermanfaat ya 😀
mau tanya, untuk install ini apa butuh mendisable firewall dan selinux? selain itu. kalau kita bikin misal 4 server nih, nah yg 2 kita istirahatin gantian gt. misal sekarang server A dan B hidup dan server C dan D mati lalu besoknya C dan D yang hidup, A dan B mati apa bisa otomatis menyesuaikan? terima kasih