Rabu, 01 Maret 2017

PROJECT 1: HTTP LOAD BALANCER DI CENTOS 6.5

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  
This is web2



Tahapan ini belum menggunakan database, untuk yang menggunskan database akan diupload di blog selanjutnya.. :)

Tidak ada komentar:

Posting Komentar