bab ii dasar teori

advertisement
BAB II
DASAR TEORI
2.1. Pengenalan Sistem Operasi Linux
Linux adalah salah satu jenis sistem operasi yang sering dipakai oleh jutaan orang
di dunia. Linux pertama kali diciptakan oleh Linus Torvalds pada tahun 1991. Linux
merupakan sistem operasi yang mengadopsi dari unix maka linux sangat stabil sebagai
server. Dengan ketersediaan source code Linux maupun program-program yang berlisensi
GPL (General Public Lisence), setiap orang memiliki keleluasaan tinggi untuk melakukan
optimisasi terhadap server Linux yang dibuat sehingga tidak ada ketergantungan kepada
suatu vendor tertentu.
Berbagai aplikasi seperti web server, firewall, dan database dapat berjalan dengan
baik di linux. Linux juga dapat dijadikan sebagai node pada sistem cluster. Sistem highavailability (HA) yang hampir menjadi keharusan untuk perusahaan-perusahaan besar juga
telah tersedia perangkat lunaknya.
2.2. Dasar Sistem Cluster
Saat ini dapat dikatakan bahwa sumber utama perubahan teknologi komputer
adalah Internet. Banyak sekali masalah yang terjadi dalam lingkup internet dan harus
dijawab dengan efisien dan efektif. Masalah utama yang terjadi bukan lagi cara transfer
data dalam jumlah besar, tetapi masalah utama yang terjadi adalah cara menganalisa dan
memproses data tersebut.
Terdapat beberapa metode untuk menjawab masalah untuk menganalisa dan
memproses data yang besar dengan optimal. Super komputer yang embedded seperti
BlueGene dan Sun Fire banyak sekali digunakan sebagai solusi, tetapi solusi tersebut
membutuhkan biaya yang tinggi. Clustering adalah solusi yang cukup ekonomis untuk
membuat sistem komputer yang digunakan untuk menganalisa dan memproses data dengan
optimal dan efisien.
Dalam dunia komputasi, clustering adalah gabungan dari beberapa komputer yang
bekerja sama untuk menghasilkan output dari masalah tertentu yang diberikan (input)
dimana developer sistem tersebut diharuskan membagi kerja ke setiap anggota gabungan
komputer secara manual.
Secara umum, salah satu karakteristik utama komputer cluster adalah konsep single
entity dimana kumpulan banyak komputer yang menjadi komputer cluster dipandang
BAB II DASAR TEORI
sebagai satu kesatuan sistem tunggal. Hal ini berarti bahwa developer tidak perlu lagi
mengatur pembagian proses yang diberikan untuk didistribusikan ke masing-masing mesin
dalam sistem cluster tersebut, tetapi developer cukup mendapatkan gambaran bahwa hasil
dari proses yang diberikan si user dikerjakan oleh single sistem. Bagaimana pun juga,
developer perlu mengetahui informasi pengolahan data oleh sistem cluster tersebut.
Dari definisi umum di atas, banyak sekali macam konfigurasi untuk sistem cluster.
Berdasarkan konsep tersebut penulis dalam tugas akhir ini akan mengimplementasikan
load balancing dan MySQL Cluster
2.3. Load Balancing
Load balancing adalah suatu metode untuk mendistribusikan beban kepada
beberapa server sehingga beban kerja menjadi lebih ringan. Ini bertujuan agar waktu ratarata mengerjakan tugas akan rendah dan menaikkan utilitas prosesor.
Load balancing dapat diimplementasikan dengan hardware khusus, software
maupun gabungan keduanya. Konfigurasi standar yang ada memberi gambaran bahwa satu
mesin ditempatkan diantara client dan server, mesin ini disebut sebagai director karena
tugasnya adalah memberikan balancing pada request dari client ke server.
Sebuah load balancer adalah perangkat jaringan yang dipasang diantara client dan
server, bekerja sebagai gerbang untuk melayani request dari client. Load balancer
mengimplementasikan beberapa metode penjadwalan yang akan menentukan ke arah
server mana request dari client akan diteruskan.
Gambar 2.1 Skema Sistem Load balancing
Beberapa keuntungan yang diperoleh dari teknik load balancing sebagai berikut:
a. Flexibility : Server tidak lagi menjadi inti sistem dan resource utama, tetapi menjadi
bagian dari banyak server yang membentuk cluster. Hal ini berarti bahwa performa per
unit dari cluster tidak terlalu diperhitungkan, tetapi performa cluster secara
5
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
keseluruhan. Sedangkan untuk meningkatkan performa dari cluster, server atau unit
baru dapat ditambahkan tanpa mengganti unit yang lama.
b. Scalability : Sistem tidak memerlukan desain ulang seluruh arsitektur sistem untuk
mengadaptasikan sistem tersebut ketika terjadi perubahan pada komponen sistem.
c. Security : Untuk semua trafik yang melewati load balancer, aturan keamanan dapat
dimplementasikan dengan mudah. Dengan private network digunakan untuk real
servers, alamat IP nya tidak akan diakses secara langsung dari luar sistem cluster.
d. High-availability : Load balancer dapat mengetahui kondisi real server dalam sistem
secara otomatis, jika terdapat real server yang mati maka akan dihapus dari daftar real
server, dan jika real server tersebut kembali aktif maka akan dimasukkan ke dalam
daftar real server. Load balancer juga dapat dikonfigurasi redundant dengan load
balancer yang lain.
2.4. Linux Virtual Server
2.4.1. Pengertian Linux Virtual Server
Linux virtual server (LVS) adalah alternatif utama open-source yang
menyediakan solusi untuk membuat sistem load balancing. Seperti yang ditulis
di home site linux virtual server Project, Linux virtual server (LVS) adalah “a
highly scalable and highly available server built on a cluster of realservers,
with the load balancer running on the Linux operating sistem”
Maksud dari real servers adalah mesin komputer yang benar-benar
melayani request yang ada. Real server dapat dihubungkan menggunakan LAN
maupun WAN yang berkecepatan tinggi. Dan mesin yang menjadi ujung
tombak cluster server adalah director, yaitu berupa single server yang
menghubungkan real server dengan client dari intranet maupun internet
(sistem di luar cluster).
2.4.2. Komponen Linux Virtual Server
Linux virtual server terdiri dari tiga komponen utama yang
menyusunnya, yaitu
a. Director
Dalam tugas akhir ini terdapat dua komputer yang dijadikan director yang
terdiri dari aktif director dan standby director. Director berfungsi sebagai
load balancer. Dimana load balancer merupakan komputer paling depan
6
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
pada sistem server cluster yang terhubung secara langsung dengan client.
Load balancer menjalankan IPVS yang mengimplementasikan teknik IP
load balancing di dalam kernel linux. Untuk menjamin high availability,
pada director harus diinstall aplikasi heartbeat. Heartbeat akan selalu
memonitor keadaan aktif director, ketika aktif director mengalami
kegagalan heartbeat akan langsung menggantikan aktif director dengan
standby director. Untuk dapat menambahkan layanan-layanan apa saja
yang mampu diberikan oleh sistem cluster dan meneruskan request kepada
real server yang aktif pada director harus diinstall aplikasi IP Virtual
Server Administrator (IPVSADM). Director atau load balancer juga
berfungsi untuk memonitor keadaan real server sehingga bisa diketahui
status setiap real server sedang hidup atau mati. Untuk memonitor real
server tersebut aplikasi yang digunakan adalah ldirectord. Selain itu
ldirectord juga berfungsi untuk menentukan algoritma penjadwalan yang
digunakan oleh sistem cluster.
b. Real Server
Real server adalah beberapa server aktual yang menjalankan layanan pada
sistem cluster. Dalam tugas akhir ini diimplementasikan dua real server
dengan layanan yang diberikan adalah http. Aplikasi yang harus diinstall
pada kedua real server adalah webserver. Webserver berfungsi untuk
melayani http request dari client. Jumlah komputer pada real server dapat
ditambah sesuai dengan kebutuhan.
c. Shared Storage
Ada dua metode penyimpanan data pada sistem cluster. Metode shared
disk cluster dan metode shared nothing cluster. Pada metode shared disk
cluster data disimpan pada hard disk yang sama. Sedangkan pada metode
shared nothing cluster data disimpan pada masing-masing real server
dimana kedua node melakukan sinkronisasi. Untuk metode shared disk
cluster aplikasi yang bisa digunakan adalah NFS (Network Filesystem
Sharing). Aplikasi yang dapat digunakan untuk metode shared nothing
cluster adalah MySQL Cluster.
7
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
2.4.3. Cara Kerja Linux Virtual Server
Gambar 2.2 Skema Sistem Linux Virtual Server
Saat request A datang dari client ke director, request tersebut akan di
teruskan ke salah satu real-server tertentu. Dan semua paket yang ada
hubungan dengan request A akan diproses oleh virtual server sampai
sinkronisasi FIN dari koneksi TCP atau connection timeout, tergantung pada
idle time maksimum untuk sebuah koneksi. Pemilihan real server untuk
melayani request baru dari client ditentukan oleh aturan yang diterapkan dan
algoritma penjadwalan yang ada.
Perangkat lunak LVS diimplementasikan di kernel Linux yang sudah
ter-patch pada mesin yang akan dijadikan director untuk memperoleh performa
yang optimal. Walaupun patch dilakukan, LVS akan berfungsi jika dikompilasi
ulang dalam kernel maupun dikompilasi sebagai modul kernel.
Director yang digunakan umumnya adalah sebuah router dengan table
routing yang diatur khusus untuk kegunaan LVS. Tabel routing tersebut
mengijinkan request dari banyak client untuk mengakses layanan yang
disediakan oleh LVS dan meneruskan request tersebut ke real server. Perlu
diketahui bahwa director tidak memiliki socket listener untuk service port yang
berasosiasi dengan layanan yang diredirect ke real server.
2.5. Network Address Translation
Pengalamatan menggunakan IPv4 yang terbatas menjadi permasalahan dalam
jaringan internet. Apabila setiap orang masuk pada jaringan internet dan setiap orang
8
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
memiliki lebih dari satu buah perangkat yang dapat digunakan seperti telepon genggam,
PC, maupun laptop. Masing-masing perangkat tersebut membutuhkan identitas atau alamat
yang unik. Sehingga dengan perkembangan internet yang sangat pesat, tidak mustahil
dalam waktu dekat alokasi alamat IPv4 akan habis. Salah satu cara sementara yang dapat
digunakan untuk mengatasi masalah tersebut yaitu dengan menerapkan teknologi NAT
(Network Address Translation).
NAT merupakan suatu mekanisme translasi yang memetakan satu alamat IP
publik menjadi beberapa alamat IP lokal, sehingga meski terdapat banyak perangkat dalam
jaringan lokal tetapi akan tampak sebagai satu alamat IP publik. Untuk itu perlu suatu
gateway yang akan menghubungkan jaringan lokal dengan jaringan internet.
Proses pertukaran data antara jaringan lokal dan jaringan internet pada metode
NAT dapat dilihat pada ilustrasi berikut :
Client dalam jaringan lokal
membuat koneksi dengan host
B yang berada di jaringan
internet.
Gateway akan menerima data
dari client kemudian mengecek
translasi alamat publik/global
pada tabel NAT. Jika terdapat
beberapa client yang datang
bersamaan
masing
maka
akan
masing-
ditranslasikan
pada alamat global yang sama
tetapi berbeda alamat port.
9
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
Gateway
akan
mengganti
alamat IP client lokal, misal
10.1.1.1 menjadi alamat IP
global
192.168.2.2
meneruskan
paket
dan
kepada
tujuan, yakni Host B.
Host B pada jaringan internet
menerima paket dan merespon
client dengan alamat yang
diketahui yaitu 192.168.2.2
Ketika paket balasan kembali
diterima oleh gateway, lalu
akan dicari pada tabel NAT
alamat IP global dan alamat
port
yang
sesuai
dengan
catatan saat pengiriman paket.
Kemudian
gateway
mentranslasikan
alamat
akan
IP
global tersebut menjadi alamat
IP lokal, misal 10.1.1.1, sesuai
dengan catatan pada tabel NAT,
dan meneruskan paket kepada
client. Client akan menerima
paket dan memprosesnya.
Hal-hal sebagai pertimbangan dalam implementasi NAT yaitu keuntungan dan
kerugian metode NAT yang dapat dilihat pada Tabel 2.2 berikut.
10
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
Tabel 2.1 Keuntungan dan Kerugian Menggunakan NAT
Keuntungan
Kerugian
Menghemat alamat IP global yang legal
Translasi memerlukan delay switching
Meminimalisir terjadinya bentrok alamat IP
Aplikasi tertentu tidak dapat berjalan
Meningkatkan fleksibilitas
Menghindari proses readdressing saat terjadi
perubahan jaringan
Tidak dapat dilacak end-to-end IP
2.6. Algoritma Penjadwalan
Beberapa jenis algoritma penjadwalan yang dapat diterapkan pada sistem linux
virtual server pada proses distribusi request kepada real server, antara lain yaitu :
1. Round Robin (rr), yaitu algoritma penjadwalan yang memperlakukan semua real
server sama menurut jumlah koneksi atau waktu respon.
2. Weighted Round Robin (wrr), penjadwalan ini memperlakukan real server dengan
kapasitas proses yang berbeda. Masing-masing real server dapat diberi bobot
bilangan integer yang menunjukkan kapasitas proses, dimana bobot awal adalah 1.
3. Least Connection (lc), merupakan algoritma penjadwalan yang mengarahkan
koneksi jaringan pada server aktif dengan jumlah koneksi yang paling sedikit.
Penjadwalan ini termasuk salah satu algoritma penjadwalan dinamik, karena
memerlukan perhitungan koneksi aktif untuk masing-masing real server secara
dinamik.
Metode
penjadwalan
ini
baik
digunakan
untuk
melancarkan
pendistribusian ketika request yang datang banyak.
4. Weighted Least Connection (wlc), merupakan sekumpulan penjadwalan least
connection dimana dapat ditentukan bobot kinerja pada masing-masing real server.
Server dengan nilai bobot yang lebih tinggi akan menerima persentase yang lebih
besar dari koneksi-koneksi aktif pada satu waktu. Bobot pada masing-masing real
server dapat ditentukan dan koneksi jaringan dijadwalkan pada masing-masing real
server dengan persentase jumlah koneksi aktif untuk masing-masing server sesuai
dengan perbandingan bobotnya (bobot awal adalah 1).
5. Locality Based Least Connection (lblc), metode penjadwalan yang akan
mendistribusikan lebih banyak request kepada real server yang memiliki koneksi
11
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
kurang aktif. Algoritma ini akan meneruskan semua request kepada real server
yang memiliki koneksi kurang aktif tersebut sampai kapasitasnya terpenuhi.
6. Destination Hashing (dh), merupakan algortima penjadwalan statik yang dapat
meneruskan request dari client kepada satu real server tertentu sesuai dengan
layanan yang diminta. Terdapat suatu tabel hash berisi alamat tujuan dari masingmasing real server beserta layanan yang tersedia pada setiap real server.
7. Source Hashing (sh), hampir sama dengan metode destination hashing tetapi pada
metode ini tabel berisi mengenai informasi alamat asal paket yang dikirimkan oleh
client.
Menurut Yong Meng Teo dan Rassul Ayani dalam jurnalnya yang berjudul
“Comparation of Load Balancing Strategies on Cluster-based Web Servers” diantara
algoritma penjadwalan tersebut yang memiliki kemampuan paling optimal untuk beban
menengah ke atas adalah weight least connetion. Selain itu algoritma weight least
connection lebih cepat dibanding round robin dan relatif lebih mudah diimplementasikan.
2.7. Database Cluster
Database adalah sebuah koleksi dari data yang saling berelasi, dimana data tersebut
disimpan pada komputer sedemikian hingga sebuah program komputer dapat berinteraksi
dan menggunakan data yang disimpan tersebut untuk menyelesaikan masalah ataupun
menjawab pertanyaan (Elmasri 1994). Data perlu disimpan dalam suatu database untuk
keperluan penyediaan informasi lebih lanjut. Data didalam database perlu diorganisasikan
sedemikian rupa sehingga informasi yang terkandung didalamnya mudah diakses.
Database merupakan komponen utama sistem informasi karena semua informasi
untuk pengambilan keputusan berasal dari data di database. Pengelolaan database yang
buruk dapat mengakibatkan ketidaktersediaan data penting yang digunakan untuk
menghasilkan informasi yang diperlukan dalam pengambilan keputusan.
Database clustering adalah kumpulan dari beberapa server yang berdiri sendiri
yang kemudian bekerjasama sebagai suatu sistem tunggal (Hodges, 2007). Saat ini aplikasi
database semakin berkembang, baik dalam hal kegunaan, ukuran, maupun kompleksitas.
Hal ini secara langsung berdampak pada server database sebagai penyedia layanan
terhadap akses database, konsekuensi dari semua itu adalah beban database server akan
semakin bertambah berat dan mengakibatkan kurang optimalnya kinerja dari server
12
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
tersebut. Oleh karena itu diperlukan perancangan yang tepat dan handal dalam membangun
database server. Database pada masa sekarang ini dituntut agar dapat berjalan dengan
cepat, mempunyai kehandalan dan keseterdiaan yang tinggi, dengan clustering database
yang disimpan dapat terbagi ke beberapa mesin dan pada saat aplikasi berjalan, semua
mesin yang menyimpan data tersebutdianggap sebagai satu kesatuan. Metode clustering
seperti ini sangat baik untuk load-balancing dan penanganan system failure karena
kemampuan tiap mesin akan digunakan dan jika ada salah satu mesin yang mengalami
failure maka sistem tidak akan langsung terganggu karena mesin lain akan menggantikan
fungsi mesin tersebut. Kemampuan clustering memungkinkan sebuah database tetap hidup
dalam waktu yang lama. Berikut ini contoh dari arsitektur database cluster.
a. Shared Disk Clusters
Arsitektur shared disk clusters menggunakan server-server independent dan
berbagi sebuah sistem penyimpanan tunggal. Setiap server mempunyai prosesor dan
memori sendiri, tetapi berbagi disk resources. Implementasi utama dari shared-disk
clustering adalah bukan untuk scalability. Shared-disk clustering ini diimplementasikan untuk
availability dan menambah node cadangan sebagai failover node.
Gambar 2.3 Shared Disk Clusters
b. Shared Nothing Cluster
Dalam arsitetur shared nothing cluster, tiap server dalam cluster menangani
prosesor, memori, storage, record locks dan transaksi yang terpisah dan melakukan
koordinasi dengan server lain melalui jaringan dengan menggunakan high speed, low13
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
latency interconnect technology. Dalam proses permintaan data suatu node harus
mengirimkan pesan ke node yang lain yang memiliki data yang diakses. Hal ini juga
dilakukan saat koordinasi data yang dilakukan pada node yang lain seperti insert, select,
update dan delete. Berbeda dengan shared disk, shared nothing didisain untuk high
availability dan scalability.
Gambar 2.4 Shared Nothing
2.8. MySQL Cluster
MySQL Cluster merupakan sebuah tipe basis data (database) yang dapat
beroperasi dalam ukuran data yang besar. MySQL Cluster adalah sebuah teknologi baru
untuk memungkinkan clustering di dalam memory database dalam sebuah sistem sharenothing.
Arsitektur
share-nothing
mengijinkan
sistem
dapat
bekerja
dengan
hardware/perangkat keras yang sangat murah, dan tidak membutuhkan perangkat keras dan
lunak dengan spesifikasi khusus. Arsitektur tersebut juga handal karena masing-masing
komponen mempunyai memory dan disk tersendiri. MySQL Cluster menggabungkan
MySQL Server biasa dengan sebuah mesin penyimpanan in-memory tercluster yang
dinamakan NDB. NDB berarti bagian dari suatu rangkaian yang dikhususkan sebagai
mesin penyimpanan, sedangkan MySQL Cluster diartikan sebagai kombinasi atau
gabungan dari MySQL dan mesin penyimpanan yang baru tersebut. Sebuah MySQL
Cluster terdiri dari sekumpulan komputer, masing-masing menjalankan sejumlah proses
mencakup beberapa MySQL server, node-node penyimpanan untuk cluster NDB, serverserver manajemen dan program-program pengakses data yang khusus. Semua programprogram tersebut bekerja bersama-sama untuk membentuk MySQL Cluster. Ketika data
disimpan di dalam mesin penyimpan media NDB Cluster, tabel-tabel disimpan didalam
node-node penyimpanan pada NDB Cluster. Tabel-tabel seperti itu dapat diakses secara
langsung dari semua MySQL server yang lain di dalam cluster tersebut. Data yang
disimpan di dalam node-node penyimpanan pada MySQL Cluster dapat di mirror
(dicerminkan), cluster tersebut dapat menangani kegagalan dari node-node penyimpanan
14
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
BAB II DASAR TEORI
individual dengan tidak ada dampak lain dari sejumlah transaksi dihentikan karena
kegagalan proses transaksi.
Di dalam konfigurasi mysql cluster itu sendiri terdapat tiga node cluster, ketiga
node cluster itu adalah:
a. Management node (ndb_mgmd process)
b. Data node (ndbd process)
c. SQL node (mysqld process)
Ketiga node tersebut dapat dilihat di gambar berikut
Gambar 2.5 Node dalam MySQL Cluster
2.9. High Availability dan Scalability
High availability dapat diartikan sebuah sistem, komponen atau layanan yang
bersifat kontinu dalam jangka waktu panjang dengan kemampuan untuk menjaga stabilitas
proses dalam sistem ketika salah satu komponen dari sistem rusak. Inti dari high
availability adalah mengeliminasi kesalahan sistem. Sedangkan sistem dengan high
scalability
tidak
memerlukan
desain
ulang
seluruh
arsitektur
sistem
untuk
mengadaptasikan sistem tersebut ketika terjadi perubahan pada komponen sistem.
Berdasarkan definisi tersebut, maka tidak mungkin ada sistem yang hanya
memiliki karakter high availability maupun high scalability. Dua-duanya digunakan pada
sistem load balancing untuk mendapatkan kualitas yang baik.
15
IMPLEMENTASI LOAD BALANCING WEB SERVER DAN
MYSQL CLUSTER UNTUK MENJAMIN HIGH
AVAILABILITY PADA WEBSITE
Download