Rabu, 03 Desember 2008

Implementasi IPVS & NAT untuk Clustering dan Load Balancing HTTP Server

IP virtual service merupakan fitur yang telah disediakan oleh linux kernel dalam bentuk
modul ataupun terintegrasi dalam kernel.
Untuk memastikan apakah kernel linux anda telah
mendukung IPVS maka jalankan perintah berikut ini:


[root@lp3tnf35 ~]# grep -i ip_vs /boot/config-2.6.17-5mdv
CONFIG_IP_VS=m
CONFIG_IP_VS_DEBUG=y
CONFIG_IP_VS_TAB_BITS=12
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
CONFIG_IP_VS_FTP=m

Jika muncul output seperti diatas maka kernel telah mendukung IPVS.

Untuk memanage/administrasi IP Virtual Service/Server maka kita memerlukan tools,
tool tersebut
adalah ipvsadm. Jika belum terinstall maka sebaiknya Anda instal
terlebih dahulu , jika pada CD/DVD
distro yang Anda gunakan tidak tersedia maka Anda
dapat mendownloadnya di
http://www.linuxvirtualserver.org/software/kernel-2.6/.


Untuk mempersingkat penjelasan kita langsung saja menerapkan IPVS untuk cluster
dan load balance HTTP service.
Skenarionya sbb:

Kita memiliki sebuah Server Public (yang terhubung langsung dgn Internet) yg akan berfungsi
sebagai Load Balancer dan 2 buah Real server (cluster nodes) yang diletakkan pada segement
jaringan local. Spesifikasi IP address untuk masing-masing server sbb:

-Server Public (load balancer) memiliki IP Public 192.168.1.35/24 (eth0),
dan IP localnya 10.0.0.1/24 (eth1)
-Cluster node A memiliki IP local 10.0.0.10/24
-Cluster node B memiliki IP local 10.0.0.20/24


Internet
--------
|
|
|
192.168.1.35/24
=======================
(Load Balancer server)
======================
10.0.0.1/24
|
|
|
------------------------
| |
----------------- -------------------
10.0.0.10/24 10.0.0.20/24
---------------- ------------------
http http

Cluster server http



Langkah-langkah setup Load balancer - cluster hanya dilakuakn disisi server Load Balncer,
sedangkan disisi real sever cukup diaktifkan service httpd nya masing2x dgn asumsi data
atau dokumen webnya disinkronisasi(gunakan rsync).

Server Load balancer diharpakan memasquerade traffic dari Local network, gunakan iptables sbb:
-----------------------------------------------------------------------------------------------
[root@lp3tnf35 ~]# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE


Menambah/membuat virtual service dgn tool ipvsdam, sbb:
---------------------------------------------------------
[root@lp3tnf35 ~]# ipvsadm -A -t 192.168.1.35:80 -s wrr

pada perintah diatas kita akan menambahkan virtual service http(port 80) pada
server load balancer(192.168.1.35) dengan scheduling wighted round robin (wrr).
Untuk lebih jauh mengenai wrr coba lihat "man ipvsadm".


Menambah/membuat real server dgn tool ipvsdam, sbb:
---------------------------------------------------

[root@lp3tnf35 ~]# ipvsadm -a -t 192.168.1.35:80 -r 10.0.0.10:80 -m
[root@lp3tnf35 ~]# ipvsadm -a -t 192.168.1.35:80 -r 10.0.0.20:80 -m -w 2


pada perintah diatas, perintah pertama akan menambahkan real server kedalam cluster
dengan IP 10.0.0.10 dan dengan weight faktor 1.
pada perintah diatas, perintah kedua akan menambahkan real server kedalam cluster
dengan IP 10.0.0.20 dan dengan weight faktor 2. Ini artinya jika ada 3 koneksi ke
load balncer maka 2 koneksi pertama diarahkan ke real server 10.0.0.20 dan 1 koneksi
terakhit ke 10.0.0.10.



Selamat mencoba......

By Henry Saptono






Tidak ada komentar:

Posting Komentar