Beranda > Networking > Membuat clustering load balancing menggunakan ubuntu 10.04

Membuat clustering load balancing menggunakan ubuntu 10.04

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:

– 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.

– Load Balancing, adalah membagi2 beban kerja ke sekumpulan server diluar konteks computing, misalnya membagi beban kerja web server, mail server, dll.

Bagaimana mencapai hal ini?
Ada beberapa software opensource yang dapat kita gunakan:
1. Linux High-Availability (http://www.linux-ha.org)
2. RedHat Cluster Suite dan Piranha (http://www.redhat.com)
3. Linux Virtual Server (http://www.linuxvirtualserver.org)
4. BeoWulf Cluster (http://www.beowulf.org)
5. Openmosix (http://openmosix.sourceforge.net)

Namun solusi-solusi diatas 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:
$ tar zxvf balance-3.40.tar.gz
$ cd balance-3.40
$  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

$ make
$ make install

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 , 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.

Jadi cara pakainya adalah misalnya:
balance -f http 192.168.0.1 192.168.0.2 192.168.0.3

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.
Contoh lain adalah:
balance -f http 192.168.0.1::100 ! 192.168.0.2::100 ! 192.168.0.3

Arti option di atas adalah: koneksi http akan diprioritaskan ke server 192.168.0.1 sampai sebanyak 100 koneksi, bila sudah penuh maka akan dilempar ke 192.168.0.2 sampai sebanyak 100 koneksi juga, sisanya akan ke 192.168.0.3 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 %

Untuk option2 selengkapnya dapat kita lihat di ‘man balance’. 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
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🙂

Regards,

Verrysoon

http://tar-xzvf.web.id

  1. Februari 14, 2011 pukul 8:37 pm

    Manntap…

  2. Purbo
    April 19, 2011 pukul 3:18 pm

    Kalau untuk linux ubuntu, software opensource apa yang competible??

    • Pey
      April 26, 2011 pukul 3:21 am

      Banyak banget pilihannya…googling aja…😀

  1. Februari 15, 2011 pukul 2:36 am

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s