Load balancing (LB) adalah salah satu technology yang udah cukup lama, namun tidak cukup familiar di kalangan IT itu sendiri,padahal hampir sebagian besar site-site yang memiliki traffic tingkat tinggi pasti menggunakan teknologi LB untuk membagi beban ke server atau cluster yang mereka miliki. berikut ini adalah contohnya:
%host -t a www.detik.com
www.detik.com is an alias for detik.com.
detik.com has address 202.158.66.94
detik.com has address 203.190.241.41
detik.com has address 203.190.241.43
detik.com has address 202.158.66.190
detik.com has address 202.158.66.86
detik.com has address 203.190.241.166
detik.com has address 202.158.66.20
%host -t a www.google.co.id
www.google.co.id is an alias for www.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 66.249.89.104
www.l.google.com has address 66.249.89.147
www.l.google.com has address 66.249.89.99
Okey, 2 contoh diatas cukup memberi gambaran bahwa kedua site tersebut menggunakan teknologi balancing. Untuk definisi LB itu sendiri bisa dibaca disini. LB memiliki beberapa algoritma atau metode dalam membagi beban ke server atau cluster yang mereka miliki:
1. DNS Load Balancing
Metode ini menggunkan sebuah domain name yang menunjuk ke-beberapa IP publik sekaligus, silahkan baca disini untuk keterangan lebih lanjut
2. Random Allocation
Ini adalah algoritma random, tidak ada yang perlu dijelaskan lebih lanjut, karena algoritma ini membagi beban ke server secara random tanpa ada sebuah pola yang jelas.
3. Round Robin
Round robin membagi incoming request secara rotasi, jadi misalkan ada 3 server yang menjadi anggota dari sebuah cluster, ketika ada request pertama, maka server A yang akan menghadle-nya, request kedua Server B, request ketiga server C. Kemudian ketika ada request ke-4 maka itu akan dirotasi lagi ke server A kemudian request ke-lima akan diberikan ke server B, begitu seterusnya. selengkapnya bisa anda baca disini
4. Weighted Round-Robin Allocation
Algoritma ini adalah pengembangan dari algoritma round robin, sedikit perbedaannya adalah algoritma ini bisa membagi beban lebih tinggi ke server atau cluster yang memiliki resource yang lebih besar
Ada banyak aplikasi maupun hardware yang bisa menjalankan teknologi LB. Cisco, F5, Barracuda, dan Juniper adalah beberapa vendor yang menyediakan dedicated hardware untuk service LB. Sementara itu untuk software, anda bisa melihatnya disini
Diantara beberapa aplikasi LB, salah satu yang cukup menarik bagi saya adalah haproxy, karena selain ringan, juga cukup mudah dalam penggunaannya. Mari kita coba menjalankan haproxy dengan kasus sederhana. Saya menggunakan system OpenBSD sebagai mesin load balancer.
Saya mem-build haproxy dari ports:
# uname -a
OpenBSD k-elektronik 4.4 GENERIC#0 i386
# cd /usr/ports/net/haproxy/
# cat distinfo
MD5 (haproxy-1.3.15.2.tar.gz) = pk1/WnRk52n4Z2gCvo6PNg==
RMD160 (haproxy-1.3.15.2.tar.gz) = YHMIoB0/Y/d6x65m00Krml6Ikn8=
SHA1 (haproxy-1.3.15.2.tar.gz) = LRPN8fhog+eFcffPI4qb+MAupC8=
SHA256 (haproxy-1.3.15.2.tar.gz) = YgK8PuWbtVe+WsgMfKQrOUnaBL0plx4395HSdxwOQmQ=
SIZE (haproxy-1.3.15.2.tar.gz) = 501219
# make install clean
# /usr/local/sbin/haproxy -v
HA-Proxy version 1.3.15.2 2008/06/21
Copyright 2000-2008 Willy Tarreau
untuk konfigurasi dengan 2 server farm, minimal file config haproxy terlihat seperti berikut:
# cat haproxy.conf
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 1024
ulimit-n 65536
daemon
nbproc 8 # Number of processing cores
defaults
mode http
log global
option httplog
option dontlognull
clitimeout 180000
srvtimeout 180000
contimeout 100000
retries 15
option redispatch
option httpclose
option abortonclose
option httpchk
listen http_main 11.11.11.11:80 # bukan IP sebenarnya :D
option httpclose
option forwardfor
cookie apaaja insert indirect nocache
option httpchk /http_check.html
balance roundrobin # Load Balancing algorithm
server server01 192.168.1.1:80 check inter 2000 rise 2 fall 5
server server02 192.168.1.2:80 check inter 2000 rise 2 fall 5
sebelum menjalankan haproxy, pastikan bahwa kedua webserver anda telah jalan dengan baik
#/usr/local/sbin/haproxy -f /usr/local/etc/haproxy.conf
# ps xw | grep haproxy | head -n 1
845 ?? Ss 0:52.58 /usr/local/sbin/haproxy -p /var/run/haproxy.pid -f /usr/local/etc/haproxy.conf
banyak sekali hal menarik yang anda bisa lakukan dengan haproxy, silahkan baca disini, dan juga ini untuk pendalaman lebih lanjut. For security..?!hhmm, i will post it again later.
salam,
jackD
pake pf juga bisa boss, malahan lebih gampang
Menurut saya:
Gampang kalau kita punya satu domain dan beberapa back end. yang jadi masalah adalah kalau load balancer kita mengatur banyak domain dan menggunakan beberapa port, tentu manage-nya susah kalo pake PF, bukan berarti ga bisa. Saya malah lebih suka maeinin PF dan Haproxy secara bersamaan agar lebih manageable,.. Haproxy handle loadbalancer, sedangkan PF buat redirect port dan transparent firewall…
kalo algoritma round robin untuk multiple connection (multiple ISP) gimana bos? jadi load balancing digunakan untuk ‘koneksi’-nya… thx b4.
@dion:: disini memang yang dibahas adalah connections load balancing, cuma yang saya bahas diatas itu adalah incoming connection balancing, sedangkan yang mungkin kamu maksud adalah outgoing connections balancing… seperti yang ada di FAQ PF (http://www.openbsd.org/faq/pf/pools.html), outgoing connections (dengan multiple ISP)bisa menggunakan algoritma round robin,dengan menggunakan option PF yaitu route-to. Options tersebut-lah yang membagi koneksi dari internal ke luar jaringan…
nah ini die nih..
Sekarang pegimane cara nye setting di firefox nye
apa http gw isi 11.11.11.11:80 .. entu kaga jalan… bujug dahh.. ade nyang kasi saran ga??
kalo algoritma widget round robin gimana ya caranya setting pada ha proxy di ubuntu ?