Pencarian

Custom Search

Apa Itu Linux Virtual Server (LVS)

Linux Virtual Server (LVS) merupakan salah satu layanan open source yang dapat digunakan untuk membuat cluster server yang memiliki tujuan dalam meningkatkan performansi respon dari server secara terstruktur dan tersekala. Linux Virtual Server (LVS) menerapkan proses pemilihan pada layer 4 (Layer Transport) dari kernel linux.
LVS meneruskan session TCP dan UDP untuk menyeimbangkan beban melalui beberapa real server yang telah disiapkan. LVS berjalan pada Linux, dan dapat menyeimbangkan beban dari end-user dengan system operasi apapun kepada real-server dengan system operasi apapun, selama koneksi yang dilakukan menggunakan TCP atau UDP.


Mengapa Virtual Server
Akhir-akhir ini pertumbuhan internet sangat cepat sekali, hal ini juga diikuti oleh naiknya trafik internet secara dramatis dengan rata-rata pertumbuhan lebih dari 100%. Beban kerja pada sebuah server juga naik secara cepat, sehingga server akan mudah overload dalam waktu yang singkat, hal ini terjadi khususnya pada sebuah web site yang popular dengan jumlah request atau permintaan yang sangat besar.
Setidaknya terdapat dua solusi yang dapat digunakan untuk menanggulangi masalah overloading pada server tersebut. Pertama single server dengan meng-upgrade server menjadi server dengan performa yang tinggi, tetapi cara ini akan membuat server akan segera overload ketika permintaan bertambah kembali, sehingga kita harus meng-upgrade ulang ke spesifikasi yang lebih tinggi lagi dan begitu seterusnya. Proses upgrade membutuhkan dana yang tinggi dan sangat komplex. Cara yang kedua adalah dengan adanya banyak server (multiple server), yaitu dengan cara membangun sebuah jaringan dengan skalabilitas yang tinggi dan membuat sebuah cluster dari beberapa server.  Ketika beban meningkat, secara sederhana dapat ditambahkan satu atau lebih server baru ke dalam cluster, cara ini akan mampu memenuhi peningkatan permintaan dan peningkatan komoditas server untuk masalah perbandingan kecepatan dengan harga.

Cara Kerja Virtual Server
Untuk mengimplementasikan Virtual server dapat dilakukan dengan tiga cara, yaitu :
  1. Network Address Translation (NAT) : metode ini diimplementasikan dengan cara memanipulasi alamat ip dan nomor port baik sumber maupun tujuannya. Alamat ip public disamarkan untuk digunakan oleh alamat ip private agar bisa berhubungan dengan dunia luar (internet). Semua proses masuk  (end-user) dan keluarnya (real-server) paket harus melalui satu alamat ip public saja (director/load balancer/virtual server).
  2. Direct Routing : paket dari end-user di-forward-kan secara langsung ke real-server. IP paket tidak dimodifikasi, jadi real-server harus dikonfigurasi untuk menerima trafic dari alamat ip director.
  3. IP Tunneling : melewatkan alamat paket kepada alamat ip untuk diarahkan kepada alamat yang lain, hal ini mungkin dilakukan pada jaringan yang berbeda. Pada proses pemilihan di layer 4, cara ini hampir sama dengan Direct Routing, hanya saja ketika paket diteruskan, paket tersebut dibungkus pada paket ip, kemudian memanipulasi frame ethernet.
 
Arsitektur LVS
LVS memiliki arsitekture seperti dalam Gambar di bawah ini yang terdiri dari sebuah komputer director dan komputer real server. Komputer director berfungsi untuk menerima paket yang ditujukan ke director dan meneruskannya ke server yang sudah ditentukan sesuai dengan metode pem-forward-an atau algoritma yang digunakan. Director terhubung ke real server melalui jaringan LAN atau WAN.
Arsitektur LVS
LVS via NAT (Network Address Translation)
Network Address Translation (NAT) adalah sebuah metode pada mesin load balancing yang memetakan IP address (Internet Protocol) dan nomor port dari sebuah group (private) ke group (public) lainnya. Paket yang datang ditulis ulang oleh director baik ip address maupun nomor port-nya untuk memberikan ip address dan nomor port tujuan dari real server dan mem-forward-nya ke real server yang dituju. Seluruh proses masuknya paket dari cilent ke real-server dan keluarnya hasil pengolahan paket dari real-server ke client harus melalui director. Arsitektur dari LVS via NAT adalah seperti gambar dibawah ini:
Arsitektur LVS via NAT
Metode NAT banyak digunakan dengan adanya beberapa alasan, di antara adalah:
  • Real server dapat menggunakan alamat IP private
  • Hanya dibutuhkan satu alamat IP public
 
Cara kerja dari LVS via NAT adalah ketika client melakukan request ke server, director akan menerima paket kemudian menulis ulang alamat dan nomor port pada client dan meneruskan paket ke salah satu real server. Setelah real server menerimanya request tersebut akan diproses dan dikembalikan lagi ke director. Dari director request tersebut dikembalikan lagi ke client.

LVS via Tunneling
Tunneling adalah suatu cara untuk meng-enkapsulasi atau membungkus paket IP didalam paket IP yang lain. Dimana titik dibelakang IP Tunnel akan memberikan paket IP melalui tunnel yang dibuat dan mengirimkannya ke sebuah titik dibelakang tunnel yang lain. Intinya tunneling adalah suatu cara membuat jalur private dengan menggunakan infrastruktur pihak ketiga. Ketika sebuah paket IP dapat dicapai oleh masing-masing sisi client dibelakang IP tunnel, maka Tunnel IP Header dan beberapa Tunnel Header tambahan yang membungkus paket IP tersebut akan dilepas dan Paket IP yang asli akan disuntikan ke dalam IP Stack pada titik dibelakang IP Tunnel. Arsitektur dari LVS via NAT adalah seperti gambar dibawah ini:
Arsitektur LVS via Tunneling
Ketika client mengakses layanan yang diberikan oleh server cluster, paket yang ditujukan untuk virtual ip address tiba. Load balancer memeriksa alamat dan port paket tujuan. Jika mereka ditemukan untuk virtual service, maka sebuah real server dipilih dari cluster sesuai dengan algoritma penjadwalan koneksi, dan koneksi ditambahkan kedalam tabel hash. Kemudian load balancer meng-enkapsulasi paket dan meneruskanya ke server yang dipilih. Ketika sebuah paket datang pada koneksi ini dan server yang terpilih dapat ditemukan dalam tabel hash, paket akan dienkapsulasi lagi dan di-forward ke server. Ketika server menerima enkapsulasi paket, paket akan di-dekapsulasi dan diproses, akhirnya server mengembalikan hasil secara langsung ke client. Setelah paket diterima client dan koneksi selesai atau timeout, baris koneksi akan dihapus dari tabel hash.

LVS via Direct Routing
Konsep direct routing pada LVS adalah load balancer dan real server berada dalam satu jaringan. Load balancer mempunyai virtual ip address, yang digunakan untuk menerima paket, dan langsung mengarahkan paket ke server yang terpilih. Semua real server mempunyai interface non-arp alias yang dikonfigurasi dengan virtual ip address atau mengalihkan paket yang ditujukan untuk virtual ip address untuk soket lokal, oleh karena itu real server dapat memproses paket secara lokal. Arsitektur dari LVS via direct routing adalah sesuai gambar.5 :

Arsitektur LVS via Direct Routing
Ketika client mengakses layanan yang diberikan oleh server cluster, paket yang ditujukan untuk virtual IP address tiba. Load balancer memeriksa alamat dan port paket tujuan. Jika mereka ditemukan untuk virtual service, maka sebuah real server dipilih dari cluster sesuai dengan algoritma penjadwalan koneksi, dan koneksi ditambahkan kedalam tabel hash. Kemudian load balancer secara langsung mem-forward ke server yang terpilih. Ketika paket datang di koneksi ini dan server terpilih dapat ditemukan di tabel hash, paket akan secara langsung mengarahkan ke server. Ketika server menerima paket, server menemukan bahwa paket adalah untuk alamat soket lokal, maka alamat ini memproses request dan akhirnya mengembalikan hasil secara langsung kepada client. Setelah koneksi selesai atau timeout, baris koneksi akan dihapus dari tabel hash.

Algoritma Penjadwalan pada LVS 
Untuk mem-forward paket ke realserver, director perlu menerapkan algoritma penjadwalan tertentu pada LVS. Beberapa algoritma penjadwalan dalam LVS, antara lain:
  1. Round-Robin : adalah algoritma yang berfungsi untuk mengarahkan koneksi jaringan pada sebuah model Round-Robin, sebagai contoh adalah RRDNS. Keuntungan menggunakan algoritma ini adalah sangat sederhana dalam mengembangkan beban (load), dan bekerja seperti RRDNS namun tanpa DNS caching problem. Kelemahannya adalah membutuhkan peramalan beban (load) yang akurat untuk setiap request agar algoritma ini bisa berjalan dengan efektif.
  2. Weighted Round-Robin : adalah algoritma yang didasari dari algoritma Round-Robin. Algoritma ini berfungsi untuk mengarahkan beban (load) yang lebih besar ke real server yang mempunyai kemampuan untuk melayani lebih banyak request. Keuntungan dari algoritma ini adalah mudah untuk menambah koneksi ke server-server sehingga dapat melayani lebih banyak request. Kelemahannya adalah tetap membutuhkan peramalan beban (load) yang akurat untuk setiap request.
  3. Least Connection : adalah algoritma untuk mengarahkan koneksi baru ke real server dengan koneksi yang paling sedikit. Keuntungan dari algoritma ini adalah lebih baik dari pada algoritma Round-Robin dalam menjaga beban (load) dari masing-masing server.
  4. Weighted Least Connection : adalah algoritma yang hampir sama dengan Weighted Round-Robin scheduling, namun bisa meng-tune penjadwalan untuk hardware dengan lebih baik.

  Sumber : www.hilmi.us www.linuxvirtualserver.org 

0 Response to " Apa Itu Linux Virtual Server (LVS) "

Post a Comment

Silahkan untuk berkomentar apabila ada yang tidak dimengerti!!
Tapi tetap jaga kesopanan.