Anda di halaman 1dari 7

Jurnal Informatika, Volume 8 Nomor 2, Desember 2017 ISSN Online 2528-0090

RANCANG BANGUN LOAD BALANCING PADA DATABASE CLUSTER


MENGGUNAKAN HAPROXY

Sandi Ardiansyah, Jabal Nur, Muhammad Mukmin


Dosen Prodi Teknik Informatika
Universitas Dayanu Ikhsanuddin Baubau Sulawesi Tenggara

ABSTRACT
Information is a very important need for the community. Information is required to always be
up to date so that a means is needed in the form of a server that is able to provide services
without experiencing problems. Database clusters are technologies that utilize several
computer resources that then work together so that they look like an integrated system. This
study aims to implement a failover cluster system as a solution to overcome server failure by
using HAProxy as load balancing. The cluster failover built consists of two load balancing
configurations that are actively-passive. As well as the application of multi master
replication techniques in the cluster database to prevent data loss. The research results
obtained are load balancing can work well when the request comes from the client has been
successfully distributed balancer evenly to each cluster node. So that the server does not
experience overload and the multi master replication data recovery capability that is applied
can maintain data consistency between nodes in the database cluster.
Keywords: Load Balancing, HaProxy, Database Cluster, Replication.

ABSTRAK
informasi merupakan kebutuhan yang sangat penting bagi masyarakat. Informasi dituntut
untuk selalu up todate sehingga diperlukan sarana berupa server yang mampu menyediakan
layanan tanpa mengalami masalah. Cluster database merupakan teknologi yang
memanfaatkan beberapa sumber daya komputer yang kemudian bekerja bersama-sama
sehingga tampak seperti satu sistem yang terintegrasi. Penelitian ini bertujuan
mengimplementasikan sistem failover cluster sebagai solusi untuk mengatasi kegagalan
fungsi server dengan menggunakan HAProxy sebagai load balancing. Failover cluster yang
dibangun terdiri dari dua buah load balancing yang di konfigurasi secara aktif-pasif. Serta
penerapan teknik replikasi multi master pada database cluster untuk mencegah kehilangan
data. Hasil penelitian yang didapatkan yaitu load balancing dapat bekerja dengan baik ketika
request datang dari client telah berhasil didistribusikan balancer secara merata kepada setiap
node cluster. Sehingga server tidak mengalami overload dan kemampuan kemampuan
recovery data replikasi multi master yang diterapkan dapat menjaga konseistensi data antar
node pada database cluster.
Kata Kunci: Load Balancing, HaProxy, Database Cluster, Replikasi.

1. PENDAHULUAN
mengakibatkan server mengalami
Data dalam jumlah besar perlu kegagalan (down). Solusi yang dapat
dikelola dengan baik menggunakan sistem dilakukan untuk meningkatkan
pengelolaan database (DBMS) yang kuat kemampuan server database dalam
(strong) dan handal (reliable). Banyaknya melayani permintaan (request) yaitu
client yang mengakses data pada server dengan mengupgrade hardware server.
database secara bersamaan dapat Solusi tersebut masih terdapat kekurangan,
Jurusan Teknik Informatika Universitas Dayanu Ikhsanuddin Baubau
http://ejournal.unidayan.ac.id/index.php/JIU/index
Jurnal Informatika, Volume 8 Nomor 2, Desember 2017 ISSN Online 2528-0090

karena sebuah server memiliki batasan load balancing cluster bekerja ketika
hardware yang bisa terpasang pada satu server menangani permintaan, semua
server. permintaan akan dibagi secara merata ke
Solusi lain yang dapat dilakukan semua node pada cluster sehingga server
untuk memenuhi permintaan dari client tidak akan mengalami kelebihan kapasitas
dengan menambah unit server baru dan (overload).
menerapkan metode clustering, dimana Pada penelitian sebelumnya, yang
beberapa server melayani permintaan telah dilakukan diantaranya oleh Gautam
client secar merata sehinga jumlah current dkk (2015) dan Aditya & Juhana (2016),
connection bisa meningkat dan Hanya menerapkan sebuah load balancing
ketersediaan server lebih tinggi. Cluster sehingga ketika load balancing tersebut
adalah sekelompok mesin yang bertindak mengalami masalah maka database cluster
sebagai sebuah entitas tunggal untuk tidak dapat melayani permintaan data oleh
menyediakan sumber daya dan layanan ke client. Untuk mengatasi permasalahan
jaringan. Pada metode clustering server ini pada penelitian sebelumya, maka pada
terdapat dua fungsi yaitu sebagai failover penelitian ini dibuat dua buah load
cluster dan load balancing cluster. Fungsi balancing serta menerapkan teknik
failover bekerja ketika salah satu server replikasi multimaster pada database cluster
bagian dari cluster (node) mengalami untuk menghindari terjadi missing file,
kerusakan maka akan digantikan oleh karena setiap client akan mengakses node
server yang lain, sehingga layanan tidak server yang berbeda setiap kali mereka
mengalami gangguan. Sedangkan fungsi melakukan request pada server cluster

2. METODE PENELITIAN
Penelitian dilakukan dengan berdasarkan tujuan, fasilitas, dan
metode PPDIOO (Prepare, Plan, Design, kebutuhan pengguna.
Implement, Operate, Optimize) yang
merupakan standar pengembangan siklus
hidup pengelolaan jaringan yang diinisiasi
oleh Cisco. Pada metode ini cisco
membagi fase pengembangan jaringan
menjadi enam fase: Prepare (persiapan),
Plan (Perencanaan), Design (Desain),
Implement (Inplementasi), Operate
(Operasi) dan Optimize (Optimasi). Alur
PPDIOO dapat dilihat pada gambar 3.1.
Fase Prepare (persiapan)
menetapkan kebutuhan organisasi, Gambar 3.1. PPDIOO Methodology
mengembangkan strategi jaringan, dan
mengusulkan konsep arsitektur dengan Fase ini mendeskripsikan
level tingkat tinggi, untuk mendukung karakteristik suatu jaringan, yang
suatu strategi, yang didukung dengan bertujuan untuk menilai jaringan tersebut.
kemampan keuangan pada organisasi atau Melakukan analisis pada perancangan
perusahaan tersebut. terbaik sebuah arsitektur, dengan melihat
Fase Plan (perencanaan) perilaku dari lingkungan operasional.
mengidentifikasi persyaratan jaringan Sebuah perencanaan proyek
dikembangkan untuk mengelola tugas -
Jurusan Teknik Informatika Universitas Dayanu Ikhsanuddin Baubau
http://ejournal.unidayan.ac.id/index.php/JIU/index
Jurnal Informatika, Volume 8 Nomor 2, Desember 2017 ISSN Online 2528-0090

tugas (tasks), pihak - pihak yang memenuhi persyaratan teknis dan bisnis
bertanggung jawab dan semua sumber saat ini. Jaringan tersebut haruslah
daya untuk melakukan desain dan menyediakan ketersediaan, kehandalan,
implementasi. skalabilitas dan kinerja.
Berdasarkan permasalahan yang Pada fase implement, dilakukan
dikemukakan pada fase prepare, maka instalasi dan konfigurasi, sesuai spesifikasi
perlu dilakukan penerapan load balancing desain. Perangkat-perangkat ini akan
pada server database untuk dapat mengganti infrastruktur yang ada.
menangani permintaan dari pengguna yang Perubahan kebutuhan juga harus diikuti
terus meningkat. Untuk melakukan selama fase ini, jika ada perubahan
implementasi clustering server pada server seharusnya disampaikan dalam pertemuan
dibutuhkan 5 server. Dimana dua server (meeting), dengan persetujuan yang
difungsikan sebagai load balancing dan diperlukan untuk dilanjutkan.
tiga server sebagai database cluster. Fase optimalisasi, memungkinkan
Fase Desain, Desain jaringan untuk memodifikasi desain jaringan, jika
dikembangkan berdasarkan persyaratan terlalu banyak masalah jaringan yang
teknis, dan bisnis yang diperoleh dari timbul, kemudian juga untuk memperbaiki
kondisi sebelumnya. Spesifikasi desain masalah kinerja, atau untuk menyelesaikan
jaringan adalah desain yang bersifat masalah-masalah pada aplikasi (software).
komprehensif dan terperinci, yang

3. HASIL DAN PEMBAHASAN

Load Balancing ke komputer atau program komputer dan


memiliki fungsi sebagai tempat
Load balancing adalah teknik penyimpanan data, seperti yang ditetapkan
untuk mendistribusikan beban trafik pada oleh model klien-server. Istilah ini juga
dua atau lebih jalur koneksi secara merujuk kepada sebuah komputer yang
seimbang, agar trafik dapat berjalan didedikasikan untuk menjalankan program
optimal, memaksimalkan throughput, server database. Salah satu contoh aplikasi
memperkecil waktu tanggap dan database adalah MySQL, Oracle, MariaDB
menghindari overload pada salah satu jalur dan lain sebagainya.
koneksi. Load balancing digunakan pada
saat sebuah server telah memiliki jumlah Perancangan Arsitektur
user yang telah melebihi maksimal Perancangan server database
kapasitasnya. Load balancing juga clustering yang akan dibangun yaitu
mendistribusikan beban kerja secara menggunakan dua server sebagai server
merata di dua atau lebih komputer, link load balancing, tiga server sebagai server
jaringan, CPU, hard drive, atau sumber database. Server load balancing berfungsi
daya lainnya, untuk mendapatkan untuk mengatur pembagian beban antar
pemanfaatan sumber daya yang optimal. server database dapat seimbang dan ketiga
Salah satu teknik load balancing adalah server terhubung menjadi sebuah sistem
HaProxy. server database clustering. Desain atau
perancangan server clustering dapat dilihat
Database Server pada Gambar 4.1
Database server adalah aplikasi
komputer yang menyediakan layanan data
Jurusan Teknik Informatika Universitas Dayanu Ikhsanuddin Baubau
http://ejournal.unidayan.ac.id/index.php/JIU/index
Jurnal Informatika, Volume 8 Nomor 2, Desember 2017 ISSN Online 2528-0090

replication. Konfigurasi replikasi multi


master pada MariDB 10 dan galera cluster
dilakukan dengan melakukan konfigurasi
file my.cnf pada MariaDB untuk
menghubungkan ketiga database server
sehingga terjadi proses replikasi dan
sinkronisasi data.
$ service mysql start
Gambar 2. Rancangan Arsitektur Sistem $ mysql –u root p
Diantara kedua server load mysql> delete from mysql.user where
balancing terdapat sebuah virtual ip yang user='';
bertujuan untuk melakukan sistem failover mysql> grant all on *.* to
'root'@'%' identified by
yaitu ketika load balancing utama '12qwaszx';
mengalami kegagalan makan virtual ip mysql> grant usage on *.* to
mengaktifkan load balancing yang kedua repl@'%' identified by
'securepass';
sehingga sistem selalu dapat melayani mysql> grant all privileges on *.*
request dari client. Berikut merupakan to repl@'%';
konfigurasi ip address pada sistem: mysql> flush privileges;
mysql> exit;
Tabel 1. Daftar Alamat Ip Sistem
Perangkat Ip Address $ vi /etc/my.cnf.d/server.cnf
Database Server 1 192.168.56.221 [mariadb-10.0]
Database Server 2 192.168.56.222 user=mysql
Database Server 3 192.168.56.223 binlog_format=ROW
default-storage-engine=innodb
Load Balancing 1 192.168.56.211 innodb_autoinc_lock_mode=2
Load Balancing 2 192.168.56.212 innodb_locks_unsafe_for_binlog=1
query_cache_size=0
query_cache_type=0
Kebutuhan Hardwere dan Softwere bind-address=0.0.0.0
Kebutuhan hardwere dan sofwere wsrep_provider=/usr/lib64/galera/li
bgalera_smm.so
pada penelitian ini dipaparkan pada tabel wsrep_cluster_address="gcomm://192.
4.2 berikut: 168.56.222,192.168.56.223"
Tabel 2. Kebutuhan Hardwere dsan wsrep_cluster_name='galera_cluster'
wsrep_node_address='192.168.56.221'
Softwere wsrep_node_name='dbcluster1'
Deskripsi Fungsi wsrep_sst_method=rsync
CentOS 6.5 Sistem operasi pada wsrep_sst_auth=repl:passdb

server database $ iptables -F


MariaDB Aplikasi database $ service mysql start --wsrep-new-
cluster
Galera Replikasi pada server $ service mysql start
Cluster $ service mysql start
HAProxy Load Balancing
Konfigurasi Load Balancing
Keepalived Failover pada Load
Pada penelitian ini aplikasi load
Balancing.
balancing menggunakan HAProxy dan
Keepalived. Keepalived berfungsi untuk
Konfigurasi Replikasi Database Cluster
mengontrol dua buah server load balancing
Pada penelitian ini sistem basis
jika terjadi gangguan pada salah satu
data menggunakan MariaDB 10 dimana
server maka akan di alihkan ke server yang
telah dilengkapi dengan galera cluster
sedang aktif. Proses konfigurasi dimulai
yang mempunyai fitur multi master
Jurusan Teknik Informatika Universitas Dayanu Ikhsanuddin Baubau
http://ejournal.unidayan.ac.id/index.php/JIU/index
Jurnal Informatika, Volume 8 Nomor 2, Desember 2017 ISSN Online 2528-0090

dengan menginstal aplikasi HAProxy dan Load balancing dikonfigurasi


Keepalived pada kedua server load dengan sistem aktif-pasif dimana ketika
balancing server aktif mengalami kegagalan maka
load balancing yang lainnya akan
$ yum -y install haproxy keepalived
Selanjutnya kembali ke server haproxy mengambil alih pembagian beban ke
untuk melakukan konfigurasi pada file server database cluster. Pengujian pada
haproxy.cfg load balancing bertujuan untuk
$ vi /etc/haproxy/haproxy.cfg mengatahui apakah proses failover pada
load balancing dapat berjalan dengan baik.
global Pengujian dilakukan dengan
log 127.0.0.1 local0
log 127.0.0.1 local1 menonaktifkan salah satu load balancing
notice
maxconn 4096
user haproxy
group haproxy
nbproc 1 Gambar 3. Proses non aktif pada load
pidfile /var/run/haproxy.pid
defaults
balancing
log global Setelah menonaktifkan salah satu server
option tcplog load balancing, kemudian melakukan
option dontlognull
retries 3 monitoring pada fitur statistic report yang
maxconn 4096 ada pa HAProxy seperti pada gambar
timeout connect 50000ms berikut
timeout client 50000ms
timeout server 50000ms
listen mariadb_cluster_writes
0.0.0.0:13304
mode tcp
option httpchk Gambar 4. Monitoring load balancing
server dbcluster1 Dari haril pengamatan terlihat bahwa
192.168.56.221:3306 check port 9200 pendistribusian beban dan proses fail over
server dbcluster2
192.168.56.222:3306 check port 9200 pada server load balancing berjalan dengan
backup baik sehingga proses read/write pada basis
server dbcluster3
192.168.56.223:3306 check port 9200
data tidak berfokus pada salah satu server
backup saja.
listen mariadb_cluster_reads
0.0.0.0:13305
mode tcp
Pengujian Recovery Pada Database
balance roundrobin Cluster
option httpchk Proses pengujian recovery pada
server dbcluster1
192.168.56.221:3306 check port 9200 database cluster dilakukan dengan cara
server dbcluster2 menonaktifkan salah satu node cluster
192.168.56.222:3306 check port 9200 kemudian melakukan update data pada
server dbcluster3
192.168.56.223:3306 check port 9200 database cluster. Setelah melakukan
listen stats 0.0.0.0:9000 update data kemudian mengaktifkan
mode http kembali node yang telah dinonaktifkan
stats enable
stats uri /haproxy_stats sebelumnya. Hasil pengujian seperti pada
stats realm HAProxy\ gambar berikut
Statistics
stats admin if TRUE

Pengujian Failover Pada Load


Balancing
Jurusan Teknik Informatika Universitas Dayanu Ikhsanuddin Baubau
http://ejournal.unidayan.ac.id/index.php/JIU/index
Jurnal Informatika, Volume 8 Nomor 2, Desember 2017 ISSN Online 2528-0090

Gambar 5. Data pada node 1 kembali node 2 dan mengamati apakah


data pada node 2 akan sama dengan node 1
dan node 3. Hasil pengujian terlihat pada
gambar berikut
Gambar 6. Data pada node 2

Gambar 8. Proses recovery node 2


Gambar 7. Data pada node 3 Dari hasil penujian terlihat bahwa proses
Dari hasil pengujian terlihat bahwa recovery pada node 2 berjalan dengan
proses replikasi data hanya terjadi pada baik, dimana semua data pada sama pada
node 1 dan node 3 sedangkan pada node 2 semua node cluster.
yang dinonaktifkan tidak terjadi proses
replikasi. Untuk melihat hasil dari proses
recovery dilakukan dengan mengaktifkan

4. KESEMPULAN DAN SARAN


Kesimpulan data node 1 akan disinkron ke setiap
Berdasarkan penelitian yang telah node 2 dan node 3 pada cluster, begitu
dilakukan maka didapatkan kesimpulan juga sebaliknya karena sinkronisasi file
yaitu: ini bersifat dua arah.
1. Dengan adanya dua buah load
balancing yang dikonfigurasi secara Saran
aktif-pasif, proses failover pada load 1. Pada database cluster sebaiknya
balancing dapat berjalan dengan baik menggunakan server fisik sehingga
sehingga tidak menghambat proses dapat meninggkatkan waktu respon dan
transaksi antara client dan database jumlah client yang dapat dilayani.
cluster. 2. Selain proses sinkronisasi file untuk
2. Penerapan replikasi multi master pada penyimpanan file bisa dengan
server database cluster bekerja dengan menambahkan NAS (Network Attached
baik dimana ketika terjadi parubahan Storage).

DAFTAR PUSTAKA

C. Networking, “Cisco Networking,”


Aditya B, Juhana T.. A High Availability [Online]. Available:
(HA) MariaDB Galera Cluster http://www.dummies.com/
Across Data Center with Optimized programming/networking/cisco/cis
WRR Scheduling Algorithm of conetworkin-design-and-layout-
LVS – TUN. Advanced methodology overview. [Diakses
Information Networking and 20 March 2017]
Applications (AINA) 978-1-4673-
8447-6/15 2016 Gautam B.P, Batajoo A, Wasaki K,
Shrestha S, Kazuhiko S.. Multi-
master Replication of Enhanced
Jurusan Teknik Informatika Universitas Dayanu Ikhsanuddin Baubau
http://ejournal.unidayan.ac.id/index.php/JIU/index
Jurnal Informatika, Volume 8 Nomor 2, Desember 2017 ISSN Online 2528-0090

Learning Assistant System in IoT HaProxy, “HaProxy,” [Online]. Available:


Cluster. IEEE 30th International https://haproxy.org/#docs/.
Conference on Advanced [Diakses 20 March 2017].
Information Networking and
Applications 1550-445X/16 2016 Yani, Ahmad. Panduan Membangun
Jaringan Komputer. Kawan
Pustaka. Jakarta. 2008

Jurusan Teknik Informatika Universitas Dayanu Ikhsanuddin Baubau


http://ejournal.unidayan.ac.id/index.php/JIU/index

Anda mungkin juga menyukai