Instalasi GlusterFS pada Ubuntu 16.04

Seri Membangun Web Server Terdistribusi #1

GlusterFS adalah scalable network file-system. GlusterFS dapat digunakan sebagai alternatif dari Network File System (NFS). GlusterFS memiliki berbagai jenis arsitektur yang dapat anda gunakan sesuai dengan kebutuhan anda, yaitu:

  1. Distributed GlusterFS Volume,
  2. Replicated GlusterFS Volume,
  3. Distributed Replicated GlusterFS Volume,
  4. Striped GlusterFS Volume, dan
  5. Distributed Striped GlusterFS Volume.

Ilustrasi dari kelima arsitektur tersebut dapat dilihat pada Gambar 1 s.d. Gambar 5. Penjelasan lebih detail dapat anda pelajari melalui dokumentasi GlusterFS dalam tautan berikut ini.

Gambar 1. Distributed GlusterFS Volume
Gambar 2. Replicated GlusterFS Volume
Gambar 3. Distributed Replicated GlusterFS Volume
Gambar 4. Striped GlusterFS Volume
Gambar 5. Distributed Striped GlusterFS Volume

Instalasi GlusterFS menggunakan Replicated Volume

Arsitektur Replicated GlusterFS Volume cocok digunakan ketika kita memerlukan backup data. Dalam artikel ini saya akan menuliskan langkah-langkah dalam melakukan instalasi GlusterFS menggunakan Replicated Volume. Sebelum dapat melakukan instalasi anda perlu menyiapkan hal-hal berikut ini:

  1. 3 buah perangkat server;
  2. Sebuah partisi disk pada masing-masing yang khusus digunakan sebagai GlusterFS brick, misalnya /dev/sda5; dan
  3. Pastikan anda mengijinkan protokol yang digunakan GlusterFS untuk melalui firewall ketiga server tersebut. Bila anda tidak mengetahui caranya, maka silahkan mematikan saja firewall ketiga server tersebut.

Topologi dari ketiga server tersebut adalah sebagai berikut:

o---------------- LAN ----------------o
| | |
+---------+ +---------+ +---------+
| server1 | | server2 | + server3 |
+---------+ +---------+ +---------+
10.0.0.1 10.0.0.2 10.0.0.3

Konfigurasi Domain

Kita perlu memberi domain untuk ketiga server tersebut. Bila anda memiliki DNS server atau memiliki domain yang dapat anda alokasi untuk ketiga server tersebut maka dapat melakukan konfigurasi melalui Control Panel DNS yang anda miliki. Namun bila anda tidak memilikinya, maka anda dapat modifikasi file /etc/hosts pada masing-masing server.

Tambahkan baris berikut ini pada bagian akhir file /etc/hosts masing-masing server:

10.0.0.1   gfs1
10.0.0.2 gfs2
10.0.0.3 gfs3

Simpan perubahan tersebut. Untuk memastikan perubahan tersebut telah bekerja, maka cobalah ping ke domain tersebut melalui masing-masing server, misal:

$ ping gfs1
$ ping gfs2
$ ping gfs3

Pastikan bahwa ping tersebut berhasil.

Konfigurasi Disk

Pastikan anda memiliki disk khusus yang digunakan sebagai brick GlusterFS, misal /dev/sda5. Langkah-langkah yang perlu anda lakukan adalah:

  1. Format partisi tersebut dengan format ext4. Perintah ini akan menghapus semua data dalam partisi tersebut;
  2. Buatlah folder /nodirectwritedata/brick1 di server1, /nodirectwritedata/brick2 di server2, dan /nodirectwritedata/brick3 di server3;
  3. Tambahkan perintah untuk me-mounting directory tersebut dalam file /etc/fstab;
  4. Mount hasil perubahan file /etc/fstab tersebut; dan
  5. Buatlah folder /nodirectwritedata/brick1/gvol0 di server1, /nodirectwritedata/brick2/gvol0 di server2, dan /nodirectwritedata/brick3/gvol0 di server3;

Berikut adalah contoh perintah yang dapat anda jalankan di server1:

$ sudo mkfs.ext4 /dev/sda5
$ sudo mkdir -p /nodirectwritedata/brick1
$ sudo echo '/dev/sda5 /nodirectwritedata/brick1 ext4 defaults 1 2' >> /etc/fstab
$ mount -a
$ sudo mkdir /nodirectwritedata/brick1/gvol0

Anda harus menyesuaikan beberapa perintah untuk server2 dan server 3. Untuk mematikan bahwa proses tersebut berhasil, anda dapat menjalankan perintah df -h -x tmpfs pada masing-masing server. Bila berhasil, anda akan mendapatkan output seperti ini:

Filesystem       Size  Used Avail Use% Mounted on
...
/dev/sdb1 4.8G 11M 4.6G 1% /nodirectwritedata/brick1
...

Instalasi GlusterFS

Jalankan perintah berikut pada masing-masing server untuk melakukan instalasi GlusterFS .

$ sudo add-apt-repository -y ppa:gluster/glusterfs-5
$ sudo apt-get update -y
$ sudo apt-get install -y glusterfs-server
$ sudo apt-mark hold glusterfs*

Pastikan service GlusterFS aktif saat server di-restart dengan perintah

$ sudo systemctl enable glusterfs-server.service

Membuat GlusterFS Volume

Jalankan perintah berikut pada salah satu server, misal server1, untuk membuat GlusterFS Volume dengan arsitektur replicated 3 brick.

$ sudo gluster volume create gvol0 replica 3 \\
server1:/nodirectwritedata/brick1/gvol0 \\
server2:/nodirectwritedata/brick2/gvol0 \\
server3:/nodirectwritedata/brick3/gvol0

Jalankan perintah berikut pada salah satu server (tidak harus server1) untuk mengecek status GlusterFS volume:

$ sudo gluster volume status

Bila konfigurasi anda berhasil, maka anda akan mendapatkan output seperti berikut:

Status of volume: gvol0
Gluster process TCP Port ...
----------------------------------------------------------------...
Brick server1:/nodirectwritedata/brick1/gvol0 49152
Brick server2:/nodirectwritedata/brick2/gvol0 49152
Brick server3:/nodirectwritedata/brick3/gvol0 49152
Self-heal Daemon on localhost N/A
Self-heal Daemon on dserver2.filkom N/A
Self-heal Daemon on 10.34.216.33 N/A
Task Status of Volume gvol0
-----------------------------------------------------------------...
There are no active volume tasks

Mounting GlusterFS Volume

GlusterFS volume dapat di-mounting di server lain, tidak harus server yang memiliki GlusterFS server di dalamnya. Misalnya, anda dapat memasangnya di server4. Namun anda perlu untuk melakukan instalasi GlusterFS client di server tersebut, misalnya dengan perintah:

$ sudo add-apt-repository -y ppa:gluster/glusterfs-5
$ sudo apt-get update -y
$ sudo apt-get install glusterfs-client

Namun bila anda ingin me-mounting di server tempat anda memasang GlusterFS server maka perintah tersebut tidak diperlukan.

Lalu Anda perlu menambahkan record pada file /etc/hosts seperti pada langkah Konfigurasi domain.

Langkah berikutnya adalah me-mounting GlusterFS tersebut ke directory yang anda inginkan, misal /mnt/backup/, dengan perintah:

$ sudo mkdir -p /mnt/backup/
$ echo 'server1:/gvol0 /mnt/backup glusterfs defaults,_netdev 0 0' >> /etc/fstab
$ sudo mount -a

Anda bisa melakukan proses mounting tersebut ke beberapa server. Bila anda melakukan perubahan dalam directory /mnt/backup pada salah satu server, maka akan terjadi perubahan pada server yang lain.

Selamat mencoba.