Pages

Selasa, 27 November 2012

Load Balancing pada DNS Server


Server Load Balancing (SLB) disini diartikan sebagai sebuah proses dan teknologi yang mendistribusikan trafik pada beberapa server dengan menggunakan perangkat-perangkat networking. Perangkat tersebut menerima sebuah trafik dari tempat tertentu kemudian trafik tersebut diarahkan ke beberapa server lainnya. Gambar berikut ini menunjukkan bagaimana terjadinya SLB :
Server Load Balancing berfungsi sebagai berikut :
  1. menerima trafik dari sebuah network misalnya web traffic dan mengarahkannya ke site tertentu.
  2. melakukan split trafik menjadi individual request dan menentukan server mana yang akan menerima individual request tersebut.
  3. memantau server dengan menyakinkan bahwa server tersebut bertanggung jawab terhadap traffik.
  4. memberikan redudansi dengan mengaktifkan server lebih dari satu unit melalui mekanisme fail-over.
  5. menawarkan distribusi content seperti pembacaan URL, interconnecting cookies, dan XML parsing.
Awal Pemakaian
Internet awalnya digunakan sebagian besar oleh para akademisi dan sangat sedikit digunakan oleh orang umum. Ketika terjadi booming internet di tahun 1995 menjadikan sebuah server tunggal tidak akan mampu mengatasi dan memproses keinginan pengguna setiap harinya apalagi sejak internet digunakan dalam dunia perdagangan dengan e-commerce dan applikasi multimedia lainnya. Disaat seperti inilah orang mulai mencari cara untuk mengatasi redudansi kinerja server terhadap traffik yang terus meningkat.
Perkembangan
Jika sebuah server telah bekerja pada batas limitnya maka seorang administrator biasanya melakukan penambahan RAM atau melakukan upgrading processor untuk mendapatkan hasil yang lebih baik. Namun hal seperti itu tidak dapat terlalu membantu. Ada saatnya walaupun kita telah melakukan setting optimal terhadap hardware dan sistem operasi yang digunakan kegagalan server mesih sering terjadi.
DNS Load Balancing
Sebelum kita mengenal teknologi SLB, seorang server administrator terlebih dahulu harus menerapkan proses Load Balancing yang dikenal dengan DNS round robin. DNS roun robin menggunakan fungsi DNS untuk menggunakan satu IP address digunakan bersama pada sebuah hostname. Setiap entry DNS diketahui sebagai record yang memetakan sebuah hostname (misalnya www.nengnong.net) ke sebuah IP Address misalnya adalah 208.185.43.202. Biasanya hanya satu IP Addresss yang diberikan untuk satu hostname. Dengan ISO DNS server, BIND 8, maka DNS entri untuk www.nengnong.net bisa dilihat seperti berikut :
www.nengnong.net IN 208.185.43.202
Dengan DNS round robin maka dimungkinkan multiple IP address digunakna pada sebuah hostname yang dapat digunakan untuk mendistribusikan trafik sehingga tidak terlalu sibuk seperti halnya hanya menggunakan satu IP Address. Singkatnya disini kita bisa melihat tiga IP Address untuk sebuah web server yakni 208.185.43.202, 208.185.43.203, dan 208.185.43.204 yang di sharing dan di gunakan oleh www.nengnong.net. Konfigurasi DNS server untuk ketiga IP Address tersebut adalah seperti berikut :
www.nengnong.net IN A 202.185.43.202
IN A 202.185.43.203
IN A 202.185.43.204
Kita bisa cek effek dari penggunaan DNS dengan nslookup, seperti berikut :
[n3]# nslookup www.nengnong.net
Server: ns1.nengnong.net
Address: 198.143.25.15
Name: www.nengnong.net
Addresses: 208.185.43.202, 208.185.43.203, 208.185.43.204
Dengan demikian distribusi trafik untuk www.nengnong.net terbagi menjadi tiga seperti pada gambar berikut :
Terlihat bahwa distribusi dengan DNS round robin sederhana, namun menggapa mesti menggunakan SLB? Alasannya adalah DNS round robin masih memiliki keterbatasan, distribusi trafik yang tidak dapat diprediksi, caching isue, dan pengukuran kesalahan yang sulit dilakukan.
DNS 101
DNS berasosiasi dengan IP address dengan sebuah hostname sehingga kita tidak perlu mengingat angka-angka yang rumit. Setiap komputer yang terhubung ke Internet harus memiliki IP Address. Ketika user mengetikan URL sebuah hostname pada Browser, maka sistem operasi akan mengirimkan queri untuk melakukan konfigurasi DNS Server terhadap hostname tersebut. DNS server tersebut biasanya tidak memberikan informasi (kecuali di cached) sehingga domain name server mencari nama domain dengan root server. Root server juga tidak memiliki informasi IP Address tapi mengetahui siapa yang memiliki kemudian memberikan laporan kepada DNS server user. Detail prosesnya dijelaskan seperti berikut :
  1. User mengetikan URL ke dalam browser
  2. Operating System melakukan DNS request untuk mengkonfigurasi DNS server.
  3. DNS server melihat apakah ada IP Address yang di cached. Jika tidak maka melakukan query pada Root Server untuk mencari informasi DNS server yang dimaksudkan.
  4. Root server kemudian membalas dengan authoritative DNS Server terhadap request dari hostname.
  5. DNS server melakukan query terhadap auhoritative DNS server dan menerima respon.
Caching
Salah satu keterbatasan pada DNS round robin adalah DNS caching. Untuk mengindari DNS Server dari banyaknya request yang sama dan menjaga utilisasi bandtwith maka DNS Server melakukan DNS caching. Selama informasi pada DNS mengalami perubahan yang tidak berarti maka akan berfungsi seperti biasa. Namun jika DNS server memberikan masukan baru pada DNS maka sistem akan mencaching entri tersebut sampai entri tersebut expired.
Distribusi Trafik
Distribusi trafik juga merupakan salah satu masalah pada DNS round robin. DNS round robin akan mendistribusikan trafik pada IP Address yang telah diberikan pada sebuah hostname. Jika ada tiga IP Address yang diberikan maka trafik akan di distribusikan ke masing-masing ketiga IP tersebut. Jika ada empat IP address yang diberikan maka trafik akan didistribusikan pada keempat IP tersebut. Namun permasalahannya distribusi trafik sangat signifikan dan tidak selalu stabil. Gambar berikut menunjukan scenario failure pada DNS berbasis load balancing.
Evolusi
Sangat jelas bahwa SLB digunakan untuk mengatasi masalah redudansi, skalabiliti, dan manajemen yang diinginkan. Web Sites saat ini terus tumbuh semakin banyak. Saat ini downtime adalah asosiasi dengan sebuah ukuran rupiah. Beberapa situs kehilangan jutaan rupiah setiap menitnya hanya karena server mengalami down. SLB dibutuhkan untuk mengatasi hal ini. Load Balancing bekerja dengan trafik yang diarahkan pada situs. Satu URL, satu IP Address, dan load lancing digunakan untuk mendistribusikannya dengan baik. SLB memiliki beberapa keuntungan diantaranya adalah :
Fleksibel
dengan SLB kita dapat menambah atau mengurangi jumlah server pada site kita setiap saat. Keuntungan dari sistem ini adalah perawatan pada mesin dapat dilakukan dengan benar. SLB juga dapat mengarahkan trafik pada cookies, URL parsing, algoritma statik dan dinamis dan masih banyak lagi.
Availability Tinggi
SLB dapat melakukan pengecekan status available sebuah server, mengontrol server yang tidak merespon rotasi dan mengembalikannya pada rotasi sehingga berfungsi kembali. Dilakukan secara otomatis tanpa memerlukan intervensi dari administrator.
Load balancer dimulai dari perangkat berbasis PC, tapi sekarang fungsi loadbalancing juga dapat dilakukan pada switch atau router.
Teknologi Lainnya
SLB bekerja dengan melakukan manipulasi tujuan paket jaringan untuk server. Ada beberapa teknologi lain yang dapat digunakan sama dengan SLB diantaranya adalah sebagai berikut :
Firewall Load Balancing (FWLB)
Firewall Load Balancing (FWLB) dikembangkan untuk mengatasi beberapa keterbatasan pada teknologi Firewall. Sebagian besar Firewall adalah berbasis CPU seperti mesin SPARC atau mesin x86 based. Karena prosesor memiliki keterbatasan, throughput firewall pun menjadi terbatas.Kecepatan prosesor, konfigurasi, dan beberapa metric menjadi factor kinerja firewall. Seperti pada SLB, FWLB memungkinkan implementasi beberaa firewall di sharing dan di load sama halnya seperti SLB. Namun karena trafik yang berbeda maka konfigurasi dan teknologinya pun sedikit berbeda. Konfigurasi umumnya adalah seperti berikut :
Global Server Load Balancing
Global Server Load Balancing (GSLB) juga memiliki konsep yang sama dengan SLB hanya saja digunakan untuk distribusi pada lokasi yang lebih luas. SLB bekerja pada LAN (Local Area Network), sedangkan GSLB bekerja pada Wide Area Network (WAN). Ada beberapa cara untuk mengimplemetasikan GSLB seperti DNS based dan BGP based (Border Gateway Protocol). Berikut ini adalah contoh konfigurasi dasar GSLB :
Clustering
Clustering memberikan yang sama seperti halnya pada SLB yakni memberikan availability yang tinggi dan skalabiliti dengan sedikit perbedaan. Clustering melibatkan software protocol (proprietary dari masing-masing vendor) yang berjalan pada beberapa server dengan tujuan untuk melakukan sharing load (seperti pada gambar dibawah). Cluster berada didepan beberapa server kemudian melakukan manipulasi paket pada network device dan menerima trafik kemudian membaginya pada server lainnya. Ada integrasi yang kuat dengan software server.
Referensi : Tony Bourke, Server Load Balancing, O’Rielly, 2001

Source : Denny Charter Blog

0 comments:

Posting Komentar