Load Blncing
Load Blncing
org
Selama ini orang selalu menganggap bahwa membuat cluster load balancing adalah hal yang rumit dan memusingkan.
Dan.. memang benar pendapat ini. Tapi sebenarnya ada satu cara mudah untuk mencapainya dengan menggunakan
yang namanya balance.
Sebelumnya kita bahas dahulu sedikit mengenai konsep Clustering. Secara prinsip clustering mempunyai 2 buah
pendekatan:
1. High Availability (Failover), adalah bila satu server gagal melayani service tertentu, maka tugas server tersebut
otomatis akan dilempar ke server lainnya.
2. High throughput (Performance), disini yang diinginkan adalah performance yang tinggi yang dicapai dengan
"membagi2" tugas yang ada ke sekumpulan server. Contohnya adalah:
2a. High-performance Computing (HPC), adalah sekumpulan server yang bekerja bersama-sama pada saat yang
bersamaan untuk mengerjakan sesuatu tugas tertentu, biasanya dalam bentuk tugas perhitungan yang berat2, seperti
simulasi bumi, me-render film animasi, dll.
2b. Load Balancing, adalah membagi2 beban kerja ke sekumpulan server diluar konteks computing, misalnya membagi
beban kerja web server, mail server, dll.
Namun solusi2 di atas kadang kala terlalu "canggih" atau "overkill" untuk mencapai tujuan clustering kita. Disinilah
'balance' masuk. Apa yang dapat ia sediakan?
1. Merupakan user-space program. Tidak perlu compile kernel dll. Langsung jalan secara command line.
2. Load balancing secara tcp. Cukup menyebutkan protocol atau port tcp berapa yang ingin kita load balancing.
Cara setup:
1. Download paketnya dari http://www.inlab.de/balance.html
wget http://www.inlab.de/balance-3.40.tar.gz
2. Extract, compile dan install:
2a. tar zxvf balance-3.40.tar.gz
2b. cd balance-3.40
2c. vi Makefile
Ubah baris ini: MANDIR=${BINDIR}/../man/man1
Menjadi: Untuk Ubuntu: MANDIR=/usr/share/man/man1
Untuk RedHat: MANDIR=/usr/local/share/man/man1
2d. make
2e. make install
Done! :)
Cara pakai:
Sebelumnya kita misalkan skenario seperti ini:
Kita mempunyai sebuah website yang ingin kita bagi beban kerjanya ke 3 buah server web. Maka kita perlu
mensetupnya seperti terlihat di gambar (Oya, gambarnya adalah foto PC zaman dulu, tapi itu hanya ilustrasi yah, nanti
servernya jangan pakai PC zaman dulu juga. Hehe...). Tiga buah server web yaitu www1 (192.168.0.1), www2
(192.168.0.2), dan www3 (192.168.0.3). Di depan mereka kita install sebuah server (192.168.0.254) yang bertugas
membagi2 bebas kerja para server www tersebut. Jadi IP yang akan diakses oleh user adalah IP 192.168.0.254, jangan
ke masing2 server www.
usage:
balance [-b addr] [-B addr] [-t sec] [-T sec] [-adfpHM] \
port [h1[:p1[:maxc1]] [!%] [ ... hN[:pN[:maxcN]]]]
balance [-b addr] -i [-d] port
balance [-b addr] -c cmd [-d] port
examples:
balance smtp mailhost1:smtp mailhost2:25 mailhost3
balance -i smtp
balance -b 2001:DB8::1 80 10.1.1.1 10.1.1.2
balance -b 2001:DB8::1 80
Option -f itu artinya balance jalan di foreground, berguna untuk kita debug dan cancel. Kalau misalnya sudah ok, bisa
kita jalankan tanpa option -f, maka balance akan jalan di background.
Untuk melihat cara bekerja balance adalah dengan membuka sebuah terminal dan meload website 192.168.0.254
secara berulang2. Untuk mudahnya dapat kita gunakan text browser seperti elinks:
watch elinks --dump http://192.168.0.254
Untuk kebutuhan testing, dapat kita atur agar isi website di 192.168.0.1, 192.168.0.2, dan 192.168.0.3 berbeda, jadi
command di atas akan menampilkan isi website yang berbeda, tanda bahwa balance sudah meload balancing traffik
web ke tiga buah server tersebut.
Bagaimana jika kita ingin menghandle koneksi yang memerlukan session seperti website dynamic pakai php? Hal ini
bisa dicapai dengan option '%' yaitu mengaktifkan session seperti ini:
balance -f http 192.168.0.1 192.168.0.2 192.168.0.3 %
Apakah hanya dapat digunakan untuk akses http? Tentu tidak, dengan sedikit eksplorasi kita dapat pula
menggunakannya untuk keperluan lain seperti load balancing akses internet, email, proxy, dll.
Penutup
http://linux2.arinet.org Powered by Joomla! Generated: 25 June, 2010, 09:51
Linux@Arinet.org
Program balance ini menyediakan sebuah solusi praktis dan mudah untuk membuat sebuah cluster load balancer.
Performance yang dihasilkan cukup bagus. Namun bila kita ingin menggunakan solusi yang lebih handal, kita dapat
menggunakan LVS (linux virtual server) dengan kombinasi linux-ha. Namun tentu saja settingannya akan jauh lebih
rumit. Kita akan membahasnya di lain kesempatan. Selamat mencoba :)
Tutorial ini dapat di download dari menu Download sebelah. Jangan lupa register dulu yah untuk mendownload.
Download > Artikel > Linux Admin > Sort berdasarkan Submit Date > adm_cluster_loadbalancing_mudah.
Fajar Priyanto
Bukit Sentul, 17 February 2008
Merdeka!
Ilmu Pengetahuan adalah Milik Bersama
Penulis adalah Microsoft Certified Professional yang jatuh cinta kepada Linux. Ia kini RedHat Certified Engineer (RHCE)
with Clustering.