HTTP Load Balancer
Menggunakan HAPROXY di CentOS 6.5
Project Magang pada PLN DISJAYA Divisi TI Sub Bidang Perencanaan..
Sebelum masuk ke tahapan membuat load balancer ini, ada baiknya anda memahami apa itu load balancing..
Load balancing adalah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi. Load balancing digunakan pada saat sebuah server telah memiliki jumlah user yang telah melebihi maksimal kapasitasnya.
Berikut algoritma dalam load balancing :
a) Round Robin and Random Algorithms
Pada algoritma Round Robin and Random proses dibagi secara merata antara semua prosesor. Setiap proses baru yang ditugaskan untuk prosesor baru untuk putaran robin. Urutan proses alokasi dipertahankan pada setiap prosesorlokal independen dari alokasi dari prosesor. Dengan algoritma round robin sama beban kerja diharapkan untukbekerja dengan baik. Round Robin dan skema Acak bekerja dengan baik dengan jumlah proses lebih besar dari jumlah prosesor .
b) Algorithm Middle Manager
Dalam algoritma ini , prosesor pusat memilih host untuk proses baru. Prosesor minimal dimuat tergantung pada beban keseluruhan yang dipilih ketika proses dibuat. Load manajer memilih host untuk proses baru sehingga beban prosesor menegaskan ke tingkat yang sama sebanyak mungkin. Dari informasi tangan di manajer sistem pembebanan beban negara pusat membuat load balancing penghakiman. Informasi ini diperbarui oleh prosesor remote, yang mengirim pesan setiap kali beban pada mereka perubahan. Informasi ini dapat bergantung pada menunggu proses induk penyelesaian proses anak-anaknya, akhir eksekusi paralel Manajer load load balancing membuat keputusan berdasarkan informasi beban sistem, sehingga keputusan terbaik ketika proses dibuat. Tingginya tingkat komunikasi antar-proses yang bisa membuat negara bottleneck. Algoritma ini diharapkan untuk melakukan lebih baik daripada aplikasi paralel, terutama bila kegiatan dinamis diciptakan oleh host yang berbeda.
c) Threshold Algorithm
Menurut algoritma ini, proses ditugaskan segera setelah penciptaan ke host. Host untuk proses baru dipilih secara lokal tanpa mengirim pesan jarak jauh. Setiap prosesor menyimpan salinan pribadi dari beban sistem. Beban prosesor bisa mencirikan oleh salah satu dari tiga tingkatan: underloaded, medium dan Overloaded. Dua parameter ambang tunder dan Tupper dapat digunakan untuk menggambarkan level.
d) Central Queue Algorithm
Central Queue Algorithm bekerja pada prinsip distribusi dinamis. Ini pusat kegiatan baru dan permintaan yang tidak terpenuhi sebagai antrian FIFO pada host utama. Setiap aktivitas baru tiba di queue manager dimasukkan ke dalam antrian. Kemudian, setiap kali permintaan untuk kegiatan diterima oleh manajer antrian, ia bisa menghilangkan kegiatan pertama dari antrian dan mengirimkannya ke pemohon. Jika tidak ada kegiatan siap dalam antrian, permintaan buffer, sampai aktivitas baru tersedia. Jika aktivitas baru tiba di queue manager sementara ada terjawab permintaan dalam antrian, permintaan pertama yang akan dihapus dari antrian dan kegiatan baru yang ditugaskan untuk itu.
e) Local Queue Algorithm
Fitur utama dari algoritma ini adalah dukungan proses migrasi dinamis. Ide dasar dari algoritma antrian lokal alokasi statis dari semua proses baru dengan proses migrasi yang diprakarsai oleh tuan rumah pada saat beban yang berada di bawah ambang batas, adalah parameter yang ditetapkan pengguna dari algoritma.
Kalau sudah mengerti pengertian load balancing, langsung saja saya lanjut ke cara pembuatan load balancer di centOS 6
Topologi untuk membuat HTTP Load Balancer
menggunakan HAPROXY:
Dalam 1 VMWare Workstation, install 3 CentOS
dengan ketentuan:
VM1 - Load
Balancer HAProxy
Hostname :
lbproxy
IP Address :
192.168.227.10
Operating System : Centos 6.5
VM2 – WEB 1
Hostname :
mysql1
IP Address
: 192.168.227.20
Operating System : Centos 6.5
VM2 - WEB 2
Hostname :
mysql2
IP Address
: 192.168.227.30
Operating System : Centos 6.5
1. INSTALASI DI LBPROXY:
dalam VM LBPROXY, masuk ke
super user centos dengan perintah su -, dan masukkan password sesuai dengan
password root anda.
(dalam password root ini, kami menggunakan 12345
sebagai password root)
a. yum install haproxy setelah masuk kedalam super user di VM LBproxy,install haproxy sebagai
loadblancer dengan perintah :
- yum install haproxy
b. vim /etc/haproxy/haproxy.cfg masukkan script hproxy di bawah ini di dalam vi
/etc/haproxy/haproxy.cfg. - vi /etc/haproxy/haproxy.cfg
tambahkan scrip ini dibawah:
server webdb1 192.168.227.20:80 weight 1 maxconn 512 check
#backend server
server webdb2 192.168.227.30:80 weight 1 maxconn 512
check
#backend server
#server
web4-srv 192.168.0.124:80 check backup \
listen mysql cluster
bind
127.0.0.1:3306
mode
tcp
option
mysql-check user haproxy_check
balance roundrobin
server
mysql1 192.168.227.20:3306 check fastinter 1000
server
mysql2 192.168.227.30:3306 check fastinter 1000
Catatan.. Algoritma yang dipakai disini adalah Round Robin.
Keuntungan dari algoritma Round Robin adalah bahwa hal itu tidak memerlukan komunikasi antarproses. Round Robin dan algoritma Acak keduanya bisa mencapai kinerja terbaik di antara semua algoritma load balancing untuk aplikasi tertentu tujuan khusus. Dalam Robin Round umum dan Acak tidak diharapkan untuk mencapai kinerja yang baik dalam kasus umum.
c. /etc/init.d/haproxy start lakukan perintah haproxy start untuk menjalankan
haproxynya di LBproxy sebagai loadbelencer. dengan perintah :
- /etc/init.d/haproxy start
atau service haproxy start
d. chkconfig haproxy on kemudian tuliskan perintah tersebut untuk
mengaktifkan haproxynya. dengan perintah:
- chkconfig haproxy on
2. INSTALASI WEBLB MYSQL1
dalam VM MYSQL1, masuk ke
super user centos dengan perintah su -, dan masukkan password sesuai dengan
Instalan root anda.
(dalam password root ini, kami menggunakan 12345
sebagai password root)
a. yum install httpd kemudian install httpdnya sebagai web server di weblb mysql1. dengan
perintah - yum install httpd
b. vim /var/www/html/index.html kemudian masukan script index.html berikut
sebagai output di browser. Tuliskan
script berikut :
- vi /var/www/html/index.html
Tambahkan script ini:
<!DOCTYPE html>
<html>
<body>
<h1>This is WEB1</h1>
</body>
c. /etc/init.d/httpd start kemudian tuliskan perintah tersebut untuk
menjalankan httpd, dengan perintah:
- /etc/init.d/httpd start atau
service httpd start
d. chkconfig httpd on kemudian tuliskan perintah tersebut untuk mengaktifkan httpd, dengan
perintah:
- chkconfig httpd on atau
service httpd restart
3. INSTALASI DI MYSQL2
dalam VM MYSQL2, masuk ke
super user centos dengan perintah su -, dan masukkan password sesuai dengan
Instalan root anda.
NB: (dalam password super
user ini, kami menggunakan 12345 sebagai password super user)
a. yum install httpd kemudian install httpdnya sebagai web server di weblb mysql1. dengan
perintah: - yum install httpd
b. vim /var/www/html/index.html kemudian masukan script index.html berikut
sebagai output di browser.
- vim /var/www/html/index.html
Tambahkan script ini:
<!DOCTYPE html>
<html>
<body>
<h1>This is WEB2</h1>
</body>
</html>
c. /etc/init.d/httpd start kemudian
tuliskan perintah tersebut untuk menjalankan httpd, dengan perintah:
- /etc/init.d/httpd start atau service httpd start
d. chkconfig httpd on kemudian
tuliskan perintah tersebut untuk mengaktifkan httpd, dengan perintah:
- chkconfig httpd on atau
service httpd restart
CARA NGETES :
Buka web browser di salah satu VM, trus gunakan
IPAddress LB nya dan di refresh terus halamannya. Kalo dari contoh
192.168.227.10
Outputnya antara 2 :
This is web1
atau
atau
This is web2
Tahapan ini belum menggunakan database, untuk yang menggunskan database akan diupload di blog selanjutnya.. :)



















