Recents

Saturday, June 20, 2015

GlusterFS di CentOS 7

Assalamu'alaikum.wr.wb.

Halo all, jumpa lagi dengan blog saya, Iman Agus Trianto. Disini saya akan posting mengenai materi storage server, yaitu GlusterFS. Penasaran gimana konfigurasinya? Yuk, langsung saja ke topik.




A. Topologi



Table Addressing



B. Tujuan

  • Dapat mengetahui konsep dari GlusterFS
  • Dapat mengetahui pengertian dari GlusterFS
  • Dapat mengetahui metode kerja dari GlusterFS
  • Dapat mengetahui cara konfigurasi GlusterFS

C. Bahan-bahan

1. VirtualBox
2. GNS3
3. ISO CentOS-7-x86_64-DVD-1503-01
4. Koneksi Internet


D. Konsep Dasar

GlusterFS adalah sebuah software yang digunakan pada server storage yang berfungsi menyediakan layanan penyimpanan di dalam sebuah server. Konsep mengakses dari client pada GlusterFS sama dengan NFS hanya saja GlusterFS menggunakan metode load balancing agar server tersebut lebih stabil.

Pada GlusterFS ada 3 metode kerja, yaitu:

1. Distributed

Metode ini adalah dengan membagi beban ke server yang berbeda. Jadi ketika si client membuat banyak file, file tersebut akan dibagi ke server yang berbeda.

2. Replica

Metode ini adalah dengan membagi beban ke server yang berbeda. Jadi ketika si clien membuat banyak file, file tersebut akan dibuat kedalam beberapa server dengan file yang sama.

3. Striped

Metode ini adalah dengan membagi beban ke server yang berbeda. Metode ini sama seperti metode Replica hanya saja untuk menggunakan metode ini lebih baik jika trafiknya besar dan penggunaan kapasitas lebih besar.


E. Langkah Konfigurasi

- Persiapan Sebelum Konfigurasi

1. Buka VirtualBox, buat virtual hard disk di Server 1. Klik Storage.



2. Pilih Controller: SATA, dan klik Add Hard Disk sebelah kanan gambar CD.



3. Pilih Create New Disk.



4. Berikan nama hard disk dan size harddisk yang digunakan untuk harddisk baru, lalu Create.



5. Atur network pada masing-masing server maupun client, disini saya menggunakan subnet /24.
[root@server1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@server2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@client ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Server 1.
Server 2.
Client.


6. Restart network di server maupun client setelah dikonfigurasi dan masukkan perintah apabila mesin dinyalakan maka akan otomatis network akan jalan dengan chkconfig.
[root@server1 ~]# service network restart
[root@server2 ~]# service network restart
[root@client ~]# service network restart
[root@server1 ~]# chkconfig network on
[root@server2 ~]# chkconfig network on
[root@client ~]# chkconfig network on

7. Inialisasi masing-masing alamat hostname di server maupun di client agar lebih mudah konfigurasi GlusterFS.
[root@server1 ~]# vi /etc/hosts
[root@server2 ~]# vi /etc/hosts
[root@client ~]# vi /etc/hosts

Server 1.
Server 2.
Client.


8. Disable SELinux di masing-masing server maupun client agar tidak di proteksi policy, biar bisa masuk ke sistem.
[root@server1 ~]# vi /etc/sysconfig/selinux 
[root@server2 ~]# vi /etc/sysconfig/selinux 
[root@client ~]# vi /etc/sysconfig/selinux 

Server 1. 
Server 2.
Client.


9. Hentikan sekaligus martikan beberapa layanan yang sedang aktif seperti, firewall, iptables di masing-masing server maupun client.
[root@server1 ~]# systemctl stop firewalld 
[root@server1 ~]# systemctl stop iptables
[root@server1 ~]# systemctl stop ip6tables
[root@server1 ~]# systemctl disable firewalld 
[root@server1 ~]# systemctl disable ip6tables
[root@server1 ~]# systemctl disable iptables 

[root@server2 ~]# systemctl stop firewalld 
[root@server2 ~]# systemctl stop iptables
[root@server2 ~]# systemctl stop ip6tables
[root@server2 ~]# systemctl disable firewalld 
[root@server2 ~]# systemctl disable ip6tables
[root@server2 ~]# systemctl disable iptables

[root@client ~]# systemctl stop firewalld 
[root@client ~]# systemctl stop iptables
[root@client ~]# systemctl stop ip6tables
[root@client ~]# systemctl disable firewalld 
[root@client ~]# systemctl disable ip6tables
[root@client ~]# systemctl disable iptables 


10. Download EPEL (Extra Packages for Enterprise Linux) Repository agar bisa menginstall GlusterFS. Masing-masing versi CentOS/RHEL/Fedora berbeda EPELnya, untuk CentOS 7 EPEL releasesnya 7.5. Setelah di download pada masing-masing server maupun client, install EPEL tersebut.
[root@server1 ~]# wget -c http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
[root@server1 ~]# rpm -ivh epel-release-7-5.noarch.rpm
[root@server2 ~]# wget -c http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
[root@server2 ~]# rpm -ivh epel-release-7-5.noarch.rpm
[root@client ~]# wget -c http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
[root@client ~]# rpm -ivh epel-release-7-5.noarch.rpm

Server 1.
Server 1.
Server 2.
Server 2.
Client.
Client.


11. Masuk ke direktory yum.repos.d, kemudian download repository GlusterFS.
[root@server1 ~]# cd /etc/yum.repos.d
[root@server1 ~]# wget -c http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
[root@server1 ~]# cd /etc/yum.repos.d
[root@server2 ~]# wget -c http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
[root@server1 ~]# cd /etc/yum.repos.d
[root@client ~]# wget -c http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo

Server 1.
Server 2.
Client.


12. Install package GlusterFS yang sudah di download pada masing-masing server maupun client.
[root@server1 ~]# yum install glusterfs glusterfs-server -y
[root@server2 ~]# yum install glusterfs glusterfs-server -y
[root@client ~]# yum install glusterfs glusterfs-fuse -y

Server 1.

Server 2.

Client.


13. Lihat hard disk yang sudah dibuat sebelumnya di VirtualBox, biasanya harddisk tersebut adalah /dev/sdb. Terlihat masih belum di partisi.
[root@server1 ~]# fdisk -l /dev/sdb 



14. Buat partisi hard disk /dev/sdb, ketik n untuk memilih primary atau extended. Pilih p untuk menjadi primary. Ketik 1 untuk menjadi nomor satu partisi hard disk. Tekan Enter untuk first sector dan last sector karena disini saya menggunakan semua kapasitas hard disk yang telah dibuat. Ketik w untuk menyimpan hasil konfigurasi tersebut.
[root@server1 ~]# fdisk /dev/sdb 
[root@server1 ~]# n, p, w



15. Format sistem hard disk yang telah dibuat. Saya menggunakan ext3.
[root@server1 ~]# mkfs.ext3 /dev/sdb1



16. Buat direktory kemudian di mount partisi yang sudah dibuat.
[root@server1 ~]# mkdir /server-gluster
[root@server1 ~]# mount /dev/sdb1 /server-gluster/



17. Masukkan mountingan partisi ke dalam file /etc/fstab yang berfungsi agar ketika server direstart, maka harddisk tersebut akan memounting otomatis.
[root@server1 ~]# vi /etc/fstab 
/dev/sdb1       /server-gluster ext3    defaults,users  0       0



18. Restart dan aktifkan GlusterFS setelah dikonfigurasi di server 1.
[root@server1 ~]# systemctl restart glusterd
[root@server1 ~]# systemctl restart rpcbind
[root@server1 ~]# systemctl enable glusterd
[root@server1 ~]# systemctl enable rpcbind



19.  Restart dan aktifkan juga GlusterFS setelah dikonfigurasi di server 2.
[root@server2 ~]# systemctl restart glusterd
[root@server2 ~]# systemctl restart rpcbind
[root@server2 ~]# systemctl enable glusterd
[root@server2 ~]# systemctl enable rpcbind



- Konfigurasi GlusterFS Distributed

1. Hubungkan dari server 1 ke server 2 agar saling sinkronisasi antara server.
[root@server1 ~]# gluster peer probe server2
[root@server1 ~]# gluster peer status



2. Cek di server 2 apakah sudah tersinkron dengan server 1. Terlihat hostname merupakan IP Address server 1.
[root@server1 ~]# gluster peer probe server2
[root@server1 ~]# gluster peer status



3. Buat direktori untuk dibuatkan GlusterFS volume di Distributed.
[root@server1 ~]# mkdir /server-gluster/distrib



4. Buat GlusterFS volume sebagai brick  untuk dishare ke client dalam bentuk mountingan.
[root@server1 ~]# gluster volume create distributed-vol server1:/server-gluster/distrib server2:/server-gluster/distrib force



5. Aktifkan volume tersebut.
[root@server1 ~]# gluster volume start distributed-vol



6. Cek volume GlusterFS yang telah dibuat apakah sudah berjalan atau belum. Terlihat volume status GlusterFS Distributed sudah berjalan.
[root@server1 ~]# gluster volume info
[root@server1 ~]# gluster volume status




- Pengujian di Client dan Testing di Server (Distributed)

1. Buat direktori sebagai tempat mountingan dari server kemudian di mount hasil volume yang sudah dibuat sebelumnya di server.
[root@client ~]# mkdir -p /distribute
[root@client ~]# mount -t glusterfs server1:/distributed-vol /distribute/



2. Cek hasil moutingan di df ataupun di mount.
[root@client ~]# df -h
[root@client ~]# mount




3. Masuk ke direktori tempat mountingan di client, kemudian buatkan file untuk testing di server.
[root@client ~]# cd /distribute/
[root@client distribute]# touch gan1 gan2 gan3 gan4 gan5 gan6 gan7 gan8



4. Lihat hasilnya file yang dibuat di client, di server 1 maupun server 2. Terlihat file ada, dan konsep Distributed sendiri yaitu, membagi beban ke server yang berbeda kemudian dibagi file ke masing-masing server (server 1 dan server 2).
[root@server1 ~]# ls -l /server-gluster/distribute/
[root@server2 ~]# ls -l /server-gluster/distribute/



- Konfigurasi GlusterFS Replica

1. Buat direktori untuk dibuatkan GlusterFS volume di Replica.
[root@server1 ~]# mkdir /server-gluster/replica



2. Buat GlusterFS volume untuk Replica, karena disini menggunakan 2 server, tambahkan angka 2 di perintah pada saat membuat volume.
[root@server1 ~]# gluster volume create replica-vol replica 2 server1:/server-gluster/replica server2:/server-gluster/replica force



3. Aktifkan volume tersebut.
[root@server1 ~]# gluster volume start replica-vol



4. Cek volume GlusterFS yang telah dibuat apakah sudah berjalan atau belum. Terlihat volume status GlusterFS Replica sudah berjalan.
[root@server1 ~]# gluster volume status replica-vol



- Pengujian di Client dan Testing di Server (Replica)

1. Buat direktori sebagai tempat mountingan dari server kemudian di mount hasil volume yang sudah dibuat sebelumnya di server.
[root@client ~]# mkdir -p /repli
[root@client ~]# mount -t glusterfs server1:/replica-vol /repli/



2. Cek hasil moutingan di df.
[root@client ~]# df



3. Masuk ke direktori tempat mountingan di client, kemudian buatkan file untuk testing di server.
[root@client ~]# cd /repli/
[root@client repli]# touch gan1 gan2 gan3 gan4 gan5 gan6 gan7 gan8



4. Lihat hasilnya file yang dibuat di client, di server 1 maupun server 2. Terlihat file ada, dan konsep Replica sendiri yaitu, membagi beban ke server yang berbeda kemudian file tersebut akan dibuat kedalam beberapa server dengan file yang sama.
[root@server1 ~]# ls -l /server-gluster/replica/
[root@server2 ~]# ls -l /server-gluster/replica/



- Konfigurasi GlusterFS Striped

1. Buat direktori untuk dibuatkan GlusterFS volume di Striped.
[root@server1 ~]# mkdir /server-gluster/stripped



2. Buat GlusterFS volume untuk Striped, karena disini menggunakan 2 server, tambahkan angka 2 di perintah pada saat membuat volume.
[root@server1 ~]# gluster volume create strip-vol strip 2 server1:/server-gluster/stripped server2:/server-gluster/stripped force



3. Aktifkan volume tersebut.
[root@server1 ~]# gluster volume start strip-vol



4. Cek volume GlusterFS yang telah dibuat apakah sudah berjalan atau belum. Terlihat volume status GlusterFS Striped sudah berjalan.
[root@server1 ~]# gluster volume info strip-vol
[root@server1 ~]# gluster volume status strip-vol




- Pengujian di Client dan Testing di Server (Striped)

1. Buat direktori sebagai tempat mountingan dari server kemudian di mount hasil volume yang sudah dibuat sebelumnya di server.
[root@client ~]# mkdir -p /stripp
[root@client ~]# mount -t glusterfs server1:/strip-vol /stripp/



2. Cek hasil moutingan di df.
[root@client ~]# df



3. Masuk ke direktori tempat mountingan di client, kemudian buatkan file untuk testing di server.
[root@client ~]# cd /stripp/
[root@client stripp]# touch gan1 gan2 gan3 gan4 gan5 gan6 gan7 gan8



4. Lihat hasilnya file yang dibuat di client, di server 1 maupun server 2. Terlihat file ada, dan konsep Replica sendiri yaitu, membagi beban ke server yang berbeda sama dengan Replica namun lebih baik jika trafiknya besar dan penggunaan kapasitas lebih besar.
[root@server1 ~]# ls -l /server-gluster/stripped/
[root@server2 ~]# ls -l /server-gluster/stripped/



Semoga Bermanfaat

Terima kasih

Wassalamu'alaikum.wr.wb.

0 komentar:

Post a Comment