T1 672008102 Full text

2

1.

Pendahuluan
Server merupakan suatu elemen penting dalam membangun sebuah
jaringan komputer. Server sekarang ini dituntut untuk bisa melayani request
secara bersama-sama dalam jumlah yang banyak. Serta kecepatan pelayanan
merupakan salah satu hal yang harus bisa dilakukan oleh server. Salah satu
penggunaan server yang sering diakses oleh banyak user adalah webserver,
contohnya adalah indowebster. Situs indowebster menurut data dari
Alexa.com adalah situs yang sering dikunjungi oleh pengguna internet
dikarenakan adanya inforrmasi yang dibutuhkan oleh user dengan anggota
berjumlah 1.261.080, dokumen berjumlah 1.202.230, kapasitas berjumlah
130,24 TB dan 19,50% pengunjung aktif harian.[1] Namun pada
kenyataanya, server komputer sering terjadi masalah yang timbul, terutama
pada beban jaringan yang dipakai. Server yang diakses oleh banyak user
secara bersama-sama akan menjadikan server tersebut menjadi lambat atau
bahkan mengalami kegagalan.
Dari permasalahan yang dihadapi, telah banyak solusi yang
digunakan untuk mengatasi masalah pada beban jaringan. Salah satunya

dengan menggunakan cluster server. Dalam hal ini akan diimplementasikan
dengan menggunakan dua layanan cluster sekaligus dan menggabungkannya
dengan istilah cluster switching. Cluster switching adalah sebuah metode
atau teknik yang dipakai untuk menukar fungsi cluster yang berbeda dalam
penanganan kondisi tertentu. Manfaatnya adalah resources dan fungsi dari
kedua cluster dapat digunakan secara maksimal.
Tujuan dari penelitian ini adalah menganalisis sebuah cluster server
dengan menggabungkan dua model cluster sekaligus yaitu high avaibility
dan load balance dengan menggunakan teknik cluster switching. Dengan
menggunakan dua model cluster sekaligus diasumsikan dapat memberikan
sebuah kinerja server yang fleksibel dan mampu mengatasi beban jaringan
dan memberikan kestabilan pada server. Terdapat beberapa jenis cluster
yang dapat digunakan untuk merancang sebuah cluster komputer. Dengan
menggunakan sistem load balancing yang digunakan untuk membagi beban
ke seluruh server yang ada, server akan bekerja bersama-sama untuk
melayani permintaan dari user. Dan sistem high avaibility yang berfungsi
melakukan failover atau perpindahan resources dari satu server ke server
yang lain agar kestabilan server tetap terjaga.
2. Tinjauan Pustaka
Penelitian Sebelumnya

Dalam jurnal yang berjudul “Teknologi Load Balancing untuk
mengatasi beban server” dilakukan penelitian tentang bagaimana
mengatasi dan membagi beban pengaksesan aplikasi berbasis web
kedalam beberapa komputer server agar beban tersebut tidak hanya
terletak pada satu komputer server. Teknologi Load Balancing digunakan
di dalam lingkungan server yang membutuhkan pemrosesan dan
pengelolaan data dalam jumlah besar dengan cepat. Namun,
permasalahan yang bisa muncul dari layanan cluster tersebut berupa
kegagalan yang sering terjadi pada server utama (Primary failure). Hal ini

3

mengakibatkan semua server backend akan mati dan akses user pun akan
mengalami timeout [2].
Salah satu solusi untuk mengatasi permasalahan di atas adalah
dengan menggunakan cluster switching yang digabungkan dengan
teknologi high avaibility cluster, yang akan melakukan failover atau
perpindahan resources dari satu server ke server yang lain secara
otomatis agar kestabilan server tetap terjaga. Pertukaran fungsi cluster ke
high avaibility dilakukan untuk mengatasi kegagalan fungsi server utama

agar server lain yang menjadi backend dapat bekerja secara utuh dengan
resources yang dimiliki. Teknologi ini diharapkan dapat menjadi solusi
dalam mengatasi kegagalan server ketika terjadi gangguan.
Dalam jurnal yang berjudul “High Avaibility MMORPG dalam
lingkungan cloud computing”, dilakukan penelitian berupa penggunaan
cluster high avaibility di dalam sebuah permainan MMORPG (Massive
Multiplayer Online Role Playing Game). Penggunaan cluster tersebut
difungsikan agar sistem yang terpusat pada sebuah server akan terus aktif
untuk terjaganya sesi permainan. Jika terjadi down atau salah satu server
mati, maka koneksi akan tetap berjalan dengan dialihkan ke server yang
berbeda. Kestabilan koneksi akan terjaga, namun beban bandwith untuk
satu server dalam menangani traffic jaringan masih tergolong cukup
lama. Hal ini disebabkan oleh kemampuan sistem pada traffic jaringan
yang telah terimplementasi oleh server dalam mengatasi jumlah
permintaan ke server yang terus bertambah [3].
Sebuah solusi untuk mengatasi permasalahan di atas adalah dengan
menggunakan cluster switching yang digabungkan dengan teknologi load
balance cluster, yang digunakan untuk membagi beban ke seluruh server
yang ada, server akan bekerja bersama-sama untuk melayani permintaan
dari user. Pertukaran fungsi cluster ke load balance dilakukan pada saat

beban bandwith yang ditangani oleh server terlalu padat, dan dengan
menyeimbangkan beban kepada dua server diasumsikan dapat membantu
server dalam mengatasi jumlah permintaan client yang terus bertambah.
Cluster Server
Cluster Computing adalah teknik menghubungkan dua atau lebih
komputer ke dalam jaringan dalam rangka mengambil keuntungan dari
resources yang terdapat pada komputer yang menyediakan redundant
interconnections, sehingga user hanya mengetahui ada satu sistem server
yang tersedia dan komputer client tidak menyadari jika terjadi kegagalan
pada sistem server karena tersedianya server sebagai redundant atau
backup. Clustering computing dapat digunakan untuk load balancing
cluster ataupun failover clustering (high avaibility).
High-availability cluster juga sering disebut sebagai failover
cluster pada umumnya diimplementasikan untuk tujuan meningkatkan
ketersediaan layanan yang disediakan oleh cluster tersebut, yang
kemudian digunakan untuk menyediakan layanan saat salah satu elemen
cluster mengalami kegagalan. Jumlah yang paling umum dari kategori ini
adalah dua node. Konsep konfigurasi membuat satu server sebagai master
server dan server yang lain menjadi slave server dimana saat server
dalam keadaan normal master server menangani semua request dari


4

client. Slave server akan mengambil alih tugas master server apabila
master server tidak berfungsi atau mati.[4]
Load balancing cluster merupakan cluster server dimana anggota
cluster server dikonfigurasikan untuk saling berbagi beban yang
berfungsi mendistribusikan request dari client ke anggota server load
balanced cluster. Secara umum cara kerja load balancer adalah menerima
incoming request dari client dan meneruskan request tersebut pada server
tertentu jika dibutuhkan. Load balancer menggunakan beberapa algoritma
yang berbeda untuk melakukan control traffic network. Tujuan algoritma
load balancer adalah untuk mendistribusikan beban secara pintar atau
memaksimalkan kerja anggota servercluster. Algoritma load balance
meliputi Roundrobin, weighted-roundrobin, least connection, dan load
based.
Heartbeat merupakan perangkat lunak yang umum digunakan
untuk cluster high availability. Heartbeat perlu dikombinasikan dengan
resource yang diperlukan untuk membangun failover yang memiliki
kemampuan menghentikan dan memulai service yang diinginkan seperti

service IP address, webserver, dan mounting blok hard disk. Heartbeat
menjalankan script inisialisasi untuk menjalankan service lain pada saat
Heartbeat dijalankan atau bisa juga mematikan service lain pada saat
Heartbeat dimatikan. Heartbeat juga melakukan perpindahan IP address
dari satu server ke server yang lain (IP floating).
Haproxy merupakan aplikasi open sources untuk load balancer
yang dibuat oleh Willy Tarreau pada tahun 2005 menggunakan bahasa C.
Aplikasi yang merupakan singkatan dari High Availability Proxy
digunakan untuk meningkatkan performa banyak website yang tersebar di
banyak server. Aplikasi ini sangat cocok untuk webserver yang
menangani jumlah traffic yang tinggi. Haproxy sendiri dipasang pada
server front-end. Front-End server umumnya memiliki IP statis yang
terintegrasi dengan DNS.
3. Metode Pengembangan Sistem
Dalam membangun jaringan yang berbasis cluster server dilakukan
dengan menggunakan pendekatan NDLC (Network Development Life Cycle)
yang di dalamnya terdapat beberapa tahap yaitu analysis, design, simulation
prototyping, implementation, monitoring dan management yang dapat dilihat
pada Gambar 1. [5]


5

Gambar 1 Network Delevopment Life Cycle

Tahap Analysis
Pada tahap analisis ini dilakukan analisa permasalahan dan
kebutuhan dengan mencari informasi dari dokumentasi yang mungkin
pernah dibuat sebelumnya. Dengan menelaah setiap data yang didapat
dari data-data sebelumnya, akan muncul suatu kebutuhan serta masalah
yang akan dipecahkan. Permasalahan yang akan dibahas pada topik
penelitian ini adalah terletak pada
bagaimana membuat sebuah
konfigurasi server yang dapat difungsikan sebagai cluster untuk
mengatasi beban jaringan yang disebabkan oleh banyaknya user yang
mengakses suatu webserver dengan menggunakan dua model cluster,
yaitu high Avaibility dan load balance. Penggunaan dua model cluster
sekaligus didasarkan pada fungsi yang terdapat di setiap cluster dan
dimaksudkan agar dapat menutupi kelemahan pada tiap-tiap cluster.
Setelah dilakukannya tahapan tersebut langkah selanjutnya adalah
menganalisa topologi jaringan yang akan dibuat.

Tahap Design
Setelah melakukan analisis, didapatkan data-data yang sangat
diperlukan dalam melakukan perancangan dari sistem yang akan
dibangun. Dari data-data yang didapatkan sebelumnya, tahap design ini
akan membuat sebuah gambaran simulasi jaringan interkoneksi yang akan
dibangun, diharapkan dengan design ini akan memberikan gambaran
seutuhnya dari kebutuhan yang ada. Dalam membentuk arsitektur
jaringan komputer harus dipertimbangkan bagaimana cara melakukan
konektivitas antar komputer yang akan tergabung dalam jaringan
komputer dengan membuat topologi jaringan. Adapun gambar topologi
jaringan yang dimaksud sebagai berikut:

6

Gambar 2 Topology Jaringan Cluster Server

Dari Gambar 2 perancangan topologi jaringan ini memerlukan 3
buah node / server yang terintegrasi sebagai server cluster. Node 1
memiliki IP 192.168.2.2, node 2 memiliki ip 192.168.2.3, dan node 3
memiliki alamat ip 192.168.2.5. Semua node diberi sebuah virtual ip

192.168.2.6 yang akan digunakan sebagai alamat public yang diakses
oleh client. Node 1 dan node 2 difungsikan sebagai high avaibility cluster
dan node 3 difungsikan sebagai load balance cluster dengan
menggunakan node 1 dan node 2 sebagai backend server. Dibutuhkan
sebuah switch sebagai penjembatan antar server.
Setelah dilakukan perancangan topologi jaringan, diperlukan
sebuah perancangan kinerja dari sebuah sistem yang sedang dibuat
dengan menggunakan penggambaran pada flowchart.

7

Mulai

Cetak / tampilkan total bandwith
(B) pada layar console

Cek total (B)
< 1 Mb

YA


Hidupkan Servis
High Avaibility

Mode Server
menjadi HA

TIDAK

Cetak total bandwith (B) pada
layar console
Cetak total bandwith
(B) pada layar console
TIDAK

Cek total (B)
> 15 Mb
YA

Matikan Servis

High Avaibility

Mode Server
menjadi LB

Selesai

Gambar 3 Flowchart cara kerja cluster switching pada high avaibility

Gambar 3 menggambarkan flowchart tentang cara kerja cluster
switching yang dipakai pada high avaibility, langkah awalnya adalah
mulai. Setelah itu program akan mencetak total bandwith dilayar console
linux pada node 1, dimana total bandwith didapat dari jumlah koneksi
yang dilakukan oleh client. Program akan mengecek apakah total
bandwith kurang dari kapasitas yang sudah diset (1Mb). Jika tidak,
program akan mencetak total bandwith lagi, dan jika ya maka program
akan menghidupkan semua servis high avaibility yang akan membuat
node 1 menjadi high avaibility.
Setelah dua kondisi di atas, program akan mengecek untuk kedua
kalinya total bandwith apakah melebihi kapasitas yang sudah diset
(15Mb). jika melebihi, program akan mematikan semua servis high
avaibility dan membuat node1 menjadi load balance dan selesai.
Program akan dihentikan, namun jika jumlah total bandwith tidak
melebihi kapasitas (15Mb) , maka program akan menampilkan total
bandwith pada console dan akan melakukan pengecekan kembali ke total
bandwith yang pertama (1Mb).

8

Mulai

Cetak / tampilkan total bandwith
(B) pada layar console

Cek total (B) <
1 Mb

YA

Matikan Servis
Load Balance

Mode Server
menjadi HA

TIDAK

Cetak total bandwith (B) pada
layar console
Cetak total bandwith
(B) pada layar console
TIDAK

Cek server HA
mati
YA

Hidupkan Servis
Load Balance

Mode server
menjadi LB

Selesai

Gambar 4 Flowchart cara kerja cluster switching pada load balance

Untuk Gambar 4 menggambarkan cara kerja yang dipakai cluster
switching pada server load balance di node 3. Langkah-langkah ataupun
alur program sama seperti cara kerja pada server high avaibility. langkah
awalnya adalah dengan memulai. Setelah itu program akan mencetak
total bandwith dilayar console linux pada node 3. Program akan
mengecek apakah total bandwith kurang dari kapasitas yang sudah diset
(1Mb). Jika tidak, program akan mencetak total bandwith lagi, dan jika
ya maka program akan mematikan semua servis load balance pada node
3 yang kemudian akan membuat servis high avaibility pada node 1 dan
node 2 mengambil alih kinerja webserver.
Namun perbedaan mendasar dari kedua cluster ini terdapat pada
saat pengecekan kedua dimana pada server load balance akan mengecek
apakah server high avaibility pada node 1 mati atau tidak. Diasumsikan
node 1 mengalami timeout karena servis high avaibility yang telah mati
diakibatkan oleh jumlah beban yang melebihi batas. Jika tidak, maka
program akan kembali ke pengecekan total bandwith awal (1Mb). Dan
bila ya, maka program akan menghidupkan semua servis load balance
dan mengambil alih kinerja webserver dari server high avaibility.

9

Tahap Simulation prototype
Dalam perancangan sebuah jaringan, dibutuhkan sebuah software
khusus di bidang jaringan untuk membuat simulasi dari topologi jaringan
yang akan dibuat. Hal ini digunakan untuk melihat design dari jaringan
yang akan dibangun dan sebagai bahan presentasi. Tetapi dalam
penerapannya, tools yang digunakan dalam membuat simulasi dari
topologi jaringan menggunakan Packet tracer dari Cisco
Tahap Implementation
Selanjutnya tahap implementasi akan diterapkan semua yang telah
direncanakan dan didesain sebelumnya. Implementasi merupakan tahapan
yang sangat menentukan berhasil atau gagalnya perancangan yang
dibangun. Analisis ini meliputi instalisasi linux ubuntu server beserta
konfigurasinya, pembuatan clusterserver, pengujian clusterserver,
pembuatan shell script untuk cluster switching, dan pengujian kinerja
cluster server dengan menggunakan cluster switching.
Tahap Monitoring
Tahapan monitoring merupakan tahapan yang penting agar
jaringan dan komunikasi dapat berjalan sesuai dengan keinginan dan
tujuan awal pada tahap awal analisa, maka perlu dilakukan kegiatan
monitoring. Pada tahapan ini dilakukan beberapa percobaan untuk
memastikan perangkat yang digunakan bekerja dengan baik. Percobaan
yang dilakukan antara lain memastikan semua komponen server
terhubung dengan baik terhadap client sehingga dapat diakses oleh user,
dan cara yang dilakukan dengan melakukan ping dari komputer client ke
semua node Memastikan pula seluruh service cluster dapat bekerja
dengan baik sehingga saat pengujian berlangsung segala macam
kesalahan yang terjadi dapat diminimalisir.
Tahap Management
Pada tahapan manajemen ini salah satu yang menjadi perhatian
khusus adalah masalah
policy (kebijakan). Kebijakan ini dibuat
berdasarkan dari hasil uji coba yang dilakukan pada cluster switching.
Cluster switching yang dibuat menggunakan shell script dan dirancang
secara manual, ini dilakukan untuk menghindari terjadinya error ataupun
kesalahan yang diakibatkan servis bentrok pada saat perpindahan fungsi
cluster terjadi. Admin berperan dalam menghidupkan ataupun mematikan
fungsi shell script yang dibutuhkan, serta melakukan pengawasan setiap
konektivitas yang terjadi pada tiap cluster server yang aktif. Perbaikan
shell script juga diperlukan agar lebih efisien digunakan, sehingga
nantinya cluster server dapat beroperasi secara otomatis tanpa campur
tangan admin.

10

4.

Hasil Dan Pembahasan

Setelah tahapan perancangan sistem, maka selanjutnya adalah
implementasi sistem yang dibangun. Pada perancangan sistem ini meliputi
beberapa tahap antara lain instalisasi linux Ubuntu server beserta
konfigurasinya, pembuatan clusterserver, pengujian clusterserver, pembuatan
shell script untuk cluster switching, dan pengujian kinerja cluster server
dengan menggunakan cluster switching.
Tahap awal dengan menginstal linux Ubuntu server dan
mengkonfigurasinya. Pembuatan cluster server ini menggunakan sistem
operasi Ubuntu server 12.04 (32 bit). Sistem operasi ini di-install pada ketiga
komputer yang akan dijadikan server. Pembuatan server ini tidak hanya
meliputi instalasi server akan tetapi juga meliputi konfigurasi jaringan dari
ketiga server sehingga dapat diakses dengan komputer client melalui Local
Area Network sesuai dengan topologi jaringan. Pembuatan jaringan ini
meliputi konfigurasi IP address dari tiap – tiap server, netmask, dan
pemberian hostname (DNS) di setiap server.[6]
Tahap pembuatan cluster server ditujukan kepada 3 buah server /
node. Instalasi cluster dilakukan melalui console linux Ubuntu dari tiap – tiap
node. Pada node 1 dan node 2 difungsikan sebagai server high avaibility,
sedangkan untuk node 3 difungsikan sebagai server load balance. Hubungan
antara node 1 dan node 2 adalah master dan slave, yang dikarenakan
menggunakan tehnik cluster failover yang nantinya dapat saling berinteraksi
antara node 1 dan node 2 untuk dapat saling mem-backup kinerja dari sistem
server. Dan untuk node 3 berfungsi sebagai penyeimbang beban pada saat
terjadi kepadatan pada jaringan.
Pembuatan cluster high avaibility dimulai dengan menginstal aplikasi
Heartbeat pada node 1 dan node 2. Tahap berikut dengan mengkonfigurasi
tiga file berupa ha.cf, haresources dan authkeys yang terdapat pada direktori
/etc/ha.d/ di kedua node. Kemudian melakukan pendeklarasian DNS hosts di
node 1 dan 2 agar tiap-tiap node yang terhubung mampu mengenali hostname
di setiap node. File ini berisi keterangan tentang beberapa node yang akan
dipakai oleh service Heartbeat.[7]
Pembuatan cluster load balance dimulai dengan menginstal aplikasi
Haproxy pada node 3. Setelah itu, dilakukan pengkonfigurasian pada file
/etc/haproxy/haproxy.cfg. dan file /etc/default/haproxy. Tahap terakhir dengan
membuat virtual ip public pada tiap-tiap node agar kedua server high
avaibility dan load balance dapat diakses oleh user dan tidak bentrok saat
memberikan servis secara bergantian dengan menghidupkan dan mematikan
virtual ip yang dijadikan sebagai alamat public.[8]
Pengujian cluster high avaibility dilakukan dengan cara simulasi
kegagalan yang terjadi pada server utama dengan cara mematikan servis
Heartbeat pada server master agar server slave mampu melakukan backup
resources. Kemudian menghidupkan kembali servis pada server master untuk
melihat apakah server utama dapat mengambil resources kembali.

11

Gambar 5 pengujian Heartbeat pada client dengan perintah curl

Pengujian cluster load balance dapat dilakukan melalui browser dari
client dengan mengakses halaman statistik Haproxy pada http:
://192.168.2.5/haproxy?stats. Pengujian
dapat juga dilakukan dengan
mengakses alamat IP dari node 3, secara otomatis client akan diarahkan pada
salah satu alamat dari node 1 ataupun 2.

Gambar 6 pengujian Haproxy pada client dengan perintah curl

Penggunaan dari shell scripting adalah mengotomasi perintah2 yang
sudah biasa digunakan sehingga tidak perlu menuliskan setiap kali dengan
cara yang berulang dan lengkap, tapi cukup dengan fungsi yang telah
dibuat.[9] Pembuatan shell script high avaibility dibuat pada node 1 dengan
nama brushup.sh dan ditujukan untuk menukar fungsi cluster server dari high
avaibility ke load balance ataupun sebaliknya pada saat server yang
menangani public IP telah mengalami kepadatan jaringan.

12

Source Code 1 Program shell script pada high avaibility pada node 1
#!/bin/bash
while true
bb=`bash /var/www/getbytes.sh`
if [ “$bb” –gt 15000000 ] && [ “$lb”
== 1 ]
then
echo “Load Balance Cluster”
echo “Total Active Connection : $bb”
else
if [ “$bb” –gt 15000000 ]
then
echo “Active Connection : $bb”
echo “Load Balancing Cluster Active”
ifconfig eth5:1 down
service apache2 start
lb=1
ha=0
exit 1
else
if [ “$bb” –le 1000000 ] &&
[
“$ha”
== 1 ]
then
echo “High Avaibility Cluster”
echo “Active Connection : $bb”
else
if [ “$bb” –le 1000000 ]
then
echo “High Avaibility Active”
/etc/init.d/networking restart
service apache2 start
service heartbeat start
ha=1
lb=0
else
echo “Active Connection : $bb”
fi
fi
fi
fi
do
sleep 2
done

Alur kerja dari Source Code 1 ini bermula dari sebuah kondisi dimana
setiap 3 detik server akan mengecek total dari jumlah bandwith dengan
menampilkan ke dalam console agar admin dapat melihat secara langsung
total bandwith yang masuk kedalam server. Perintah yang digunakan untuk
mengecek total bandwith menggunakan “ bash /var/www/getbytes.sh” yang
dimasukkan kedalam variabel bernama “bb”. [10] Perintah tersebut digunakan
untuk memanggil script lain yang memang difungsikan untuk mengambil data
bandwith jaringan dengan menggunakan satuan byte. Total byte yang
dihasilkan akan dijadikan patokan pada setiap kondisi dimana saat
menghidupkan atau mematikan servis.
Proses script dilanjutkan pada penggunaan if untuk membuat suatu
kondisi, bila total dari bandwith yang diterima server tidak lebih dari 1Mb
maka server akan memulai memasuki mode high avaibility dengan
menghidupkan virtual IP yang dijadikan sebagai IP public tempat client
mengkases fungsi dari Heartbeat, dan mengaktifkan servis Heartbeat dan
Apache2. Dalam kondisi seperti ini, cluster yang dipakai dalam keadaan mode
high avaibility cluster.

13

Kemudian bila jumlah dari total bandwith melebihi batas, dalam script
telah diset 15Mb dan diasumsikan kondisi ini server mengalami kepadatan
jaringan, maka script akan menyuruh server untuk mematikan virtual IP yang
berada di node 1. Jika virtual IP dalam kondisi mati , maka secara otomatis
koneksi yang tersambung dari client akan mengalami timeout karena kedua
cluster servis tidak sedang merespon. Namun, justru ini yang menjadi tujuan
utama dari mematikan virtual IP, dikarenakan agar pada saat virtual IP di
node 3 dihidupkan, dapat mengambil alih peran dari node 1 dengan status
menjadi load balance.
Source Code 2 Program shell script pada high avaibility pada node 2
#!/bin/bash
while true
a=`curl http://192.168.2.2`
bb=`bash /var/www/getbytes.sh`
if [ “$bb” –gt 15000000 ] && [ “$lb”
== 1 ]
then
echo “Load Balance Cluster”
echo “Total Active Connection : $bb”
else
if [ “$bb” –gt 15000000 ] && [-z “$a”]
then
echo “Active Connection : $bb”
echo “Load Balancing Cluster Active”
ifconfig eth5:1 down
service apache2 start
lb=1
ha=0
exit 1
else
if [ “$bb” –le 1000000 ] &&
[
“$ha”
== 1 ]
then
echo “High Avaibility Cluster”
echo “Active Connection : $bb”
else
if [ “$bb” –le 1000000 ] && [-z “$a”]
then
echo “High Avaibility Active”
/etc/init.d/networking restart
service apache2 start
service heartbeat start
ha=1
lb=0
else
echo “Active Connection : $bb”
fi
fi
fi
fi
do
sleep 2
done

Alur kerja dari source code 2 sama dengan source code 1, namun
perbedaan dari script ini terletak pada penambahan script untuk melakukan
pengecekan keaktifan terhadap node 1. apakah node 1 yang menangani alamat
public tersebut sedang dalam status hidup atau mati. Jika mati, maka node 2
akan menggantikan peran dari node 1 sehingga proses switching tetap bisa
dilakukan dan servis dari kedua cluster tidak mengalami overlapping.
Pembuatan shell script load balance dibuat pada node 3 dengan nama
carl.sh dan secara alur kerja program hampir sama dengan shell script high
avaibility. Shell script load balance ini juga menggunakan total bandwith
sebagai patokan di dalam setiap kondisi dimana saat menghidupkan atau

14

mematikan servis load balance nantinya. Namun pada shell script ini
ditambahkan perintah “curl”. “Curl” sendiri biasanya digunakan untuk
mengecek isi dari halaman HTML dari alamat yang dituju. Akan tetapi
perintah “curl http://192.168.2.6” dalam shell script ini difungsikan untuk
mengetahui status dari alamat public yang telah dideklarasikan, apakah server
yang menangani alamat public tersebut sedang dalam status hidup atau mati.
Source Code 3 Program shell script pada load balance server
#!/bin/bash
while true
ss=` bash /var/www/getbytes.sh`
a=`curl http://192.168.2.6`
clear
if [-z “$a”]
then
echo “Load Balance Cluster Active”
/etc/init.d/networking restart
Service haproxy start
ha=0
lb=1
exit 1
else
if [ “$ss” –le 10000000 ] &&
[
== 1 ]
then
echo “High Avaibility Cluster”
echo “Active Connection : $ss”
else
if [ “$ss” –le 1000000 ]
then
service haproxy stop
ifconfig eth3:1 down
ha=1
lb=0
echo “High Avaibility Active”
else
echo “Active Connection : $ss”
fi
fi
fi
do
sleep 14
done

“$ha”

Source Code 3 merupakan program dari Shell script load balance.
Program ini akan mengecek kondisi status dari server yang sedang membawa
IP public mengalami error atau timeout, maka secara otomatis server load
balance akan segera menggantikan peran untuk menangani IP public dengan
menghidupkan servis Haproxy dan virtual IP yang menjadi dasar dari fungsi
dari load balance agar dapat diakses oleh client. Kondisi yang sama dengan
shell script high avaibility terjadi pada saat script load balance mendeteksi
bahwa total bandwith kurang dari 1 Mb, maka servis Haproxy dan virtual IP
akan dimatikan. Dengan ini server dalam kondisi mode high avaibility.
Kemudian dilakukan pengujian fungsi cluster switching saat menerima
jumlah request secara berkala pada semua node yang aktif. Pengujian ini
bertujuan untuk melihat proses switching yang terjadi dari kedua cluster
server. Pengujian ini juga dilakukan untuk mengukur tingkat performa tiaptiap server dalam menangani jumlah request dalam jaringan. Diuji coba
menggunakan aplikasi Nload telah didapat data sebagai berikut.

15

Tabel 1 Pengujian cluster switching pada ketiga node.

Jumlah
Request
510
1530
2550
5100

Data

Node 1

Node 2

Node 3

Income

18.91 Mbit/s 11.35 Kbit/s

10.29 Kbit/s

Outgoing

17.60 Mbit/s 9.52 Kbit/s

6.07 Kbit/s

Income

21.20 Mbit/s 10.21 Kbit/s

7.29 Kbit/s

Outgoing

22.53 Mbit/s 9.88 Kbit/s

10.34 Kbit

Income

16.54 Mbit/s 13.77 Mbit/s

28.04 Mbit/s

Outgoing

27.75 Mbit/s 26.08 Mbit/s

47.93 Mbit/s

Income

24.43 Mbit/s 27.12 Mbit/s

34.67 Mbit/s

Outgoing

28.25 Mbit/s 28.31 Mbit/s

52.89 Mbit/s

Fungsi Server
Cluster
High Avaibility
High Avaibility
Load Balance
Load Balance

35000
30000
25000
20000

node 1

15000

node 2
node 3

10000
5000
0
request 510

request 1530

request 2550

request 5100

Gambar 7 Perbandingan kinerja cluster switching pada node 1, node 2 dan node 3

Dari Tabel 1 maupun gambar 7 menjelaskan tentang bagaimana cluster
switching menukar fungsi antara high avaibility dan load balance saat
menerima request dari client. Tabel di atas juga membandingan performa
antara income dan outgoing pada semua node. Diketahui jumlah data tiap
request adalah 36154 byte yang didapat dari ukuran data dari web yang
diakses.
Pengujian pertama dibebankan sebanyak 510 request atau sekitar
17,43 MB yaitu total data yang dikeluarkan dari client. Pada kondisi tersebut,
server berfungsi sebagai cluster high avaibility. Node 1 bersifat aktif untuk
menangani semua request yang masuk dikarenakan fungsi high avaibility
yang menjadikan node 1 menjadi master. Didapat rata-rata income dari node 1
sekitar 18.91 Mbit/s dan rata-rata outgoing 17.60 Mbit/s. Income dari node 2
berkisar 11.35 Kbit/s dan outgoing berkisar 9.52 Kbit/s. Dan income untuk
node 3 berkisar 10.29 Kbit/s dan outgoing berkisar 6.07 Kbit/s.
Pengujian kedua dibebankan sebanyak 1530 request atau sekitar 52,29
MB. Pada kondisi tersebut, cluster switching masih menjadikan fungsi cluster
server sebagai high avaibility. Semua request yang masuk masih ditangani
oleh node 1 yang bersifat aktif. Didapat rata-rata income dari node 1 sekitar
21.20 Mbit/s dan rata-rata outgoing 22.53 Mbit/s. Income dari node 2 berkisar

16

10.21 Kbit/s dan outgoing berkisar 9.88 Kbit/s. Dan income untuk node 3
berkisar 7.29 Kbit/s dan outgoing berkisar 10.34 Kbit/s.
Pengujian ketiga dibebankan sebanyak 2550 request atau sekitar 87,15
MB. Pada kondisi tersebut, cluster switching menjadikan fungsi cluster server
sebagai load balance. Semua request yang masuk masih ditangani oleh node 3
dan didistribusikan ke semua node yang aktif. Cluster load balance tersebut
menjadikan node 1, node 2, dan node 3 bersifat aktif dalam membantu
mengatasi request dari client. Node 1 dan node 2 memiliki rata-rata income
dan outgoing yang hampir sama, didapat dari pembagian beban node 3. Sifat
load balance terlihat jelas sekali dari pembagian beban secara merata kepada
semua server. Didapat rata-rata income dari node 1 sekitar 16.54 Mbit/s dan
rata-rata outgoing 27.75 Mbit/s. Income dari node 2 berkisar 13.77 Mbit/s dan
outgoing berkisar 26.08 Mbit/s. Dan income untuk node 3 berkisar 28.04
Kbit/s dan outgoing berkisar 47.93 Mbit/s.
Pengujian keempat dibebankan sebanyak 5100 request atau sekitar
174,12 MB. Pada kondisi tersebut, cluster switching menjadikan fungsi
cluster server sebagai load balance. Semua request yang masuk ditangani
oleh ketiga node yang bersifat aktif. Didapat rata-rata income dari node 1
sekitar 24.43 Mbit/s dan rata-rata outgoing 28.25 Mbit/s. Income dari node 2
berkisar 27.12 Mbit/s dan outgoing berkisar 28.31 Mbit/s. Dan income untuk
node 3 berkisar 34.67 Mbit/s dan outgoing berkisar 52.89 Mbit/s.
Kemudian dilakukan pegujian dengan membandingkan kinerja single
server dengan load balance dalam menangani bandwith jaringan. Pengujian
ini dilakukan untuk mengetahui performa dari cluster load balance melalui
client dengan menggunakan aplikasi Siege sebagai benchmark untuk melihat
perbandingan respon time dan juga throughtput antara kedua cluster server
tersebut.[11]
Tabel 2 Perbandingan kinerja antara single server dengan load balance

Beban
1000
Request

Single Server

Perbandingan

Load Balance

Respon Time

0.32 sec

0.25 sec

Throughput

1.61 Mb/sec

2,11 Mb/sec

Respon Time

Throughtput
2,5

0,35
0,3

2

0,25
1,5

0,2

Single Server

0,15

Load balance

0,1

Single Server
1

Load Balance

0,5

0,05
0

0
Respon Time

Throughput

Gambar 8 Grafik kinerja antara single server dengan load balance

17

Dari hasil tabel 2 maupun gambar 8 dapat dilihat bahwa jumlah respon
time atau waktu yang digunakan server untuk merespon request dari client
yang dihasilkan pada single server 0,32 sec lebih lama dibandingkan server
dengan menggunakan load balance 0,25 sec.. Dilihat dari jumlah throughtput
atau kemampuan server untuk melayani client, load balance menghasilkan
jumlah 1,61Mb /sec dan single user menghasilkan 2,11Mb/sec
Hal ini disebabkan kerja server load balance menggunakan dua
komputer sekaligus saat menangani request dari client. Jadi waktu respon
yang dihasilkan lebih cepat karena beban diseimbangkan oleh 2 server
dibandingkan dengan single server yang hanya bekerja secara sendiri.
5. Kesimpulan
Kesimpulan dari hasil skripsi yang membahas tentang perancangan
metode cluster switching menggunakan shell script ini, dengan menggunakan
cluster switching dapat menukar dua fungsi cluster pada saat digunakan dalam
penanganan kondisi tertentu. Penggunaan Cluster load balance mampu
menyeimbangkan beban dari server dan penggunaan failover pada server
mampu menjaga kestabilan server. Dengan menggunakan Shell Script yang
diterapkan pada cluster switching, penukaran dua fungsi cluster dapat
dilakukan secara otomatis tanpa harus mengetikkan perintah-perintah secara
manual.
Kinerja server yang fleksibel dengan menggunakan fungsi 2 cluster
sekaligus telah dibuktikan dengan pengujian kinerja cluster switching yang
mampu menukar cluster high avaibility dan load balance yang dapat
berfungsi secara bergantian dalam menangani jaringan. Serta pengujian
kinerja load balance yang mampu mengatasi beban jaringan yang berlebihan
pada satu server dengan membagi beban ke banyak server sehingga kerja dari
server lebih ringan, hal ini dibuktikan dengan perbandingan kinerja single
server dengan load balance. Diharapkan nantinya penelitian ini dapat
diterapkan pada perusahaan atau instansi dengan pengguna jaringan komputer
yang padat.
Daftar Pustaka
[1] Alexa
Internet,
2014,
How
popular
indowebster.com,
http://www.alexa.com/siteinfo/indowebster.com, diakses tanggal 25 April
2014.
[2] Iwan Rijayana, 2010, Teknologi Load Balance untuk mengatasi beban
pada server. Jurusan Teknik Informatika, Universitas Widyatama Bandung
[3] Danang Haryo Sulaksono, 2012, High Avaibility MMORPG dalam
lingkungan Cloud Computing. Pasca Sarjana Institute Teknologi Sepuluh
November Surabaya.
[4] Ngesti Andik Rimbawanto, 2008, Perancangan dan Implementasi HighAvailability Clustering Server Menggunakan Open Source Software
Sebagai Back-End Database, Fakultas Teknologi Informasi, UKSW.
[5] Deris Stiawan, Fundamental Internetworking Development& Design Life
Cycle. Dosen Jurusan Sistem Komputer FASILKOM UNSRI.

18

Paul Cobbaut, 2013, Linux Fundamentals, GNU Free Documentation.
Craig R Webster, 2012, High Avaibility Apache on Ubuntu 8.04. GNU Free
Documentation.
[8] Craig R Webster, 2012, Load Balanced highly available MySQL on Ubuntu
8.04. GNU Free Documentation.
[9] Machtelt Garrels, 2010, Bash Guide for Beginner, Fultus Corporation,
GNU Free Documentation.
[10] Larsnooden, 2013, Beginner Bash Scripting, https://help.ubuntu.com
diakses tanggal 25 Februari 2014.
[11] Budi Arsyanto, 2011, Perancangan dan pembuatan load balancing . Pasca
Sarjana Institute Teknologi Sepuluh November Surabaya

[6]
[7]