6
Bab 2
Tinjauan Pustaka
2.1
Penelitian Sebelumnya
Kebutuhan akan proses komputasi yang lebih cepat sangat
diperlukan untuk menangani permintaan dalam sebuah web server.
Salah satu cara yang ditawarkan adalah dengan supercomputer, yaitu
komputer yang didesain khusus dengan spesifikasi yang tinggi
sehingga dapat memberikan proses komputasi yang lebih baik. Salah
satu kekurangannya adalah harganya yang sangat mahal.
Cluster adalah jawaban untuk komputer-komputer dengan
spesifikasi menengah kebawah agar dapat menghasilkan proses
komputasi dengan lebih baik. Cluster memberikan kemudahan untuk
menggunakan sumber daya yang tersebar. Dengan cluster ing proses
komputasi dapat dibagi ke beberapa komputer sehingga dapat
dihasilkan proses komputasi yang lebih baik.
Pada penelitian sebelumnya telah dilakukan penerapan
teknologi clustering dengan skema load balancing untuk
menganalisis kinerja web server (Pamungkas, 2011) dan juga
penelitian tentang clustering dan virtualisasi dengan sistem operasi
linux menggunakan Haproxy dan KVM (Saputro, 2012). Kelebihan
sistem cluster adalah tidak diharuskan menggunakan komputer
server atau komputer dengan spesifikasi yang tinggi. Dengan
komputer desktop pun dapat dilakukan clustering, dengan catatan
Gambar 2.1 menunjukkan alur kerja cluster konvensional dengan
load balancer.
Gambar 2.1 Alur kerja loa d bala ncing
Load balancer membagi beban kerja ke beberapa komputer
yang ada untuk menjalankan tugas yang sama. Hal ini
memungkinkan pekerjaan dilakukan dengan lebih cepat
dibandingkan apabila dikerjakan oleh hanya satu komputer saja dan
dapat meringankan beban kerja komputer, serta mempercepat waktu
respons. Load balancer juga bertindak sebagai penengah antara
cluster dan pengguna, dimana cluster merupakan sekumpulan server
yang siap melayani banyak pengguna.
Yang membedakan penelitian ini dan penelitian sebelumnya
adalah :
1. Perangkat lunak virtualisasi dan load balancer.
2. Sistem operasi.
3. Arsitektur jaringan.
2.2
Konsep Jaringan Komputer
Protokol adalah sebuah aturan standar yang mengatur atau
mengijinkan terjadinya hubungan, komunikasi, dan perpindahan
data antara dua atau lebih komputer. Protokol dapat diterapkan pada
Pada tingkatan yang terendah, protokol mendefinisikan
koneksi perangkat keras. Prinsip dalam membuat protokol ada tiga
hal yang harus dipertimbangkan, yaitu efektivitas, kehandalan, dan
kemampuan dalam mengatasi kegagalan di jaringan. Protokol
distandarisasi oleh beberapa organisasi yaitu IETF, ETSI, ITU, dan
ANSI. Gambar 2.2 menunjukkan model layer pada TCP/IP dan OSI.
Gambar 2.2 Model la yer pa da TCP/IP da n OSI
2.2.1 OSI
Open System Interconnection (OSI) adalah suatu
model konseptual yang terdiri atas tujuh layer, yang
masing-masing la yer tersebut mempunyai fungsi yang berbeda. OSI
dikembangkan oleh badan Internasional yaitu Internationa l
Organization for Standardization (ISO) pada tahun 1977.
Definisi masing- masing layer pada model OSI:
Application adalah layer paling tinggi dari model OSI, seluruh layer dibawahnya bekerja untuk la yer ini.
Tugas dari application layer adalah berfungsi sebagai
antar muka aplikasi dengan fungsionalitas jaringan.
Mengatur bagaimana aplikasi dapat mengakses
kesalahan. Protokol yang berada dalam lapisan ini
adalah HTTP, FTP, SMTP, NFS.
Presentation berfungsi untuk mentranslasikan data yang hendak ditransmisikan oleh aplikasi ke dalam
format yang dapat ditransmisikan melalui jaringan.
Protokol yang berada dalam level ini adalah perangkat
lunak redirektor (redirector software), seperti layanan
Workstation (dalam Windows NT) dan juga Network
shell (semacam Virtual Network Computing (VNC)
atau Remote Dekstop P rotocol (RDP).
Session berfungsi untuk mendefinisikan bagaimana koneksi dapat dibuat, dipelihara, atau dihancurkan.
Selain itu, di level ini juga dilakukan resolusi nama. Transport berfungsi untuk memecah data ke dalam
paket-paket data serta memberikan nomor urut ke
paket-paket tersebut sehingga dapat disusun kembali
pada sisi tujuan setelah diterima. Selain itu, pada level
ini juga dibuat sebuah tanda bahwa paket diterima
dengan sukses, dan mentransmisikan ulang terhadap
paket-paket yang hilang di tengah jalan.
Network berfungsi untuk mendefinisikan alamat-alamat IP, membuat header untuk paket-paket, dan
kemudian melakukan routing melalui internetworking
dengan menggunakan router dan switchlayer 3. Data Link befungsi untuk menentukan bagaimana
bit-bit data dikelompokkan menjadi format yang disebut
kesalahan, flow control, pengalamatan perangkat keras
seperti halnya Media Access Control Address (MAC),
dan menetukan bagaimana perangkat-perangkat
jaringan seperti hub, br idge, repeater, dan switch layer
2 beroperasi.
Spesifikasi IEEE 802, membagi level ini menjadi dua
level anak, yaitu lapisan Logical Link Control (LLC)
dan lapisan Media Access Control (MAC).
Physical adalah layer paling bawah dalam model OSI, berfungsi untuk mendefinisikan media transmisi
jaringan, metode pensinyalan, sinkronisasi bit,
arsitektur jaringan (seperti halnya Ethernet atau Token
Ring), topologi jaringan dan pengkabelan.
Selain itu, level ini juga mendefinisikan bagaimana
Network Interface Card (NIC) dapat berinteraksi
dengan media kabel atau radio.
2.2.2 TCP/IP
Transmission Control P rotocol / Internet P rotocol
(TCP/IP) adalah standar komunikasi data yang digunakan
oleh komunitas internet dalam proses tukar- menukar data
dari satu komputer ke komputer lain di dalam jaringan
internet.
Protokol TCP/IP dikembangkan pada akhir dekade
1970-an hingga awal 1980-an sebagai sebuah protokol
standar untuk menghubungkan komputer-komputer dan
jaringan untuk membentuk sebuah Wide Ar ea Network
yang bersifat independen terhadap mekanisme transport
jaringan fisik yang digunakan, sehingga dapat digunakan di
mana saja.
Definisi masing- masing layer pada model TCP/IP:
Application merupakan layer paling atas pada model TCP/IP, yang bertanggung jawab untuk menyediakan
akses kepada aplikasi terhadap layanan jaringan
TCP/IP. Protokol ini mencakup protokol Dynamic
Host Configuration P rotocol (DHCP), Domain Name
System (DNS), Hypertext Transfer P rotocol (HTTP),
F ile Transfer P rotocol (FTP), Telnet, Simple Ma il
Transfer P rotocol (SMTP), Simple Network
Management P rotocol (SNMP), dan masih banyak
protokol lainnya.
Transport berguna untuk membuat komunikasi menggunakan sesi koneksi yang bersifat
connection-oriented atau broadcast yang bersifat connectionless.
Protokol dalam lapisan ini adalah Transmission
Control P rotocol (TCP) dan User Diagram P rotocol
(UDP).
Internet berfungsi untuk melakukan pemetaan
(routing) dan enkapsulasi paket-paket data jaringan
menjadi paket-paket IP.
Protokol yang bekerja dalam lapisan ini adalah
Internet P rotocol (IP), Address Resolution P rotocol
(ARP), Internet control Message P rotocol (ICMP),
Network Interface berfungsi untuk meletakkan frame-frame jaringan di atas media jaringan yang digunakan.
2.3
Web Server
Web server adalah komputer yang dikhususkan untuk
menaruh data website dan diharuskan dapat bekerja secara terus
menerus. Semua komputer logikanya bisa dijadikan server, namun
server yang khusus untuk website punya spesifikasi khusus. Hal ini
untuk menjaga agar kecepatan server stabil dan memenuhi kriteria
yang diharapkan. Selain bergantung pada spesifikasi hardware dan
software, kecepatan web server juga bergantung pada akses internet
di tempat server berada atau juga tergantung pada kecepatan Internet
Service P rovider (ISP) yang digunakan.
Web server memberikan layanan data yang berfungsi
menerima permintaan HTTP atau HTTPS dari pengguna yang
dikenal dengan web browser dan mengirimkan kembali hasilnya
dalam bentuk halaman- halaman web yang umumnya berbentuk
dokumen HTML.
Walaupun pada umumnya web server adalah untuk
menempatkan situs web, tetapi pada perkembangannya digunakan
juga sebagai tempat penyimpanan data ataupun untuk menjalankan
beberapa aplikasi.
2.3.1 Apache
Apache merupakan web server yang paling banyak
digunakan di internet. Hal ini dikarenakan sifatnya yang
opensource dan kemudahan kostumisasinya. Apache pertama
ini telah tersedia apache yang dapat digunakan untuk sistem
operasi Windows.
Apache memiliki program pendukung yang cukup
banyak, hal ini memberikan layanan yang cukup lengkap
bagi penggunanya. Beberapa dukungan apa che :
1. Kontrol Akses.
Kontrol ini dapat dijalankan berdasarkan nama host atau
nomor IP.
2. Common Gateway Interface (CGI)
Yang paling terkenal untuk digunakan adalah P ractica l
Extraction and Report Language (Perl), yang didukung
oleh apache dengan menempatkannya sebagai modul
(mod_perl)
3. P ersonal Home P age/P HP Hypertext P rocessor (PHP)
Program dengan metode semacam CGI, yang
memproses teks dan bekerja di server. Apache
mendukung PHP dengan menempatkannya sebagai salah
satu modulnya (mod_php). Hal ini membuat kinerja PHP
menjadi lebih baik.
4. Server Side Includes (SSI)
Web server Apache mempunyai kelebihan dari
beberapa pertimbangan di atas :
1. Apache termasuk dalam kategori freeware.
2. Apache mudah sekali proses instalasinya jika dibanding
web server lainnya seperti NCSA, IIS, dan lain- lain.
3. Mampu beroperasi pada berbagai platform sistem
4. Mudah mengatur konfigurasinya. Apache hanya
mempunyai empat file konfigurasi.
5. Mudah dalam menambahkan periphera l lainnya ke
dalam platformweb servernya.
2.3.2 Map Server
Map server merupakan aplikasi opensource yang
memungkinkan sebuah data peta diakses melalui web.
Teknologi ini pertama kali dikembangkan oleh Minesotta
University. Pengguna dapat dengan mudah melihat dan
mengubah tampilan peta seperti zoom, rotate, dan
menampilkan informasi (seperti menampilkan info jalan) dan
analisis (seperti menentukan rute perjalanan) pada
permukaan peta geografi.
Map server bekerja secara berdampingan dengan
aplikasi web server. Web server menerima request peta
melalui Map server. Map server merespon r equest terhadap
peta dan mengirimkannya ke web server. Gambar 2.3
menjelaskan hubungan kerja map server dan web server.
Secara sederhana map server menjalankan executable
aplikasi Common Gateway Interface (CGI) pada web server
yang secara teknis merupakan proses stateless berbasis pada
HTTP. Stateless adalah sebuah proses permintaan yang
dilanjutkan dengan stop running. Aplikasi CGI menerima
permintaan dari web server, kemudian proses dilakukan dan
mengembalikan respons atau data ke web server. Map server
CGI executable bekerja sebagai perantara antara file peta
dengan program web server yang meminta peta. Permintaan
di lewatkan dalam bentuk CGI parameter dari web server
menuju map server. Gambar yang di buat oleh map server
selanjutnya memberikan hasil ke web server dan selanjutnya
menuju pengguna melalui web browser.
2.4
Virtual Machine
Virtual Machine (VM) adalah suatu environment, biasanya
adalah sebuah program atau sistem operasi yang tidak ada secara
fisik tetapi dapat dijalankan dalam environment lain. Virtual
machine pada mulanya didefinisikan oleh Gerrard J. Popek dan
Robert P. Goldberg pada tahun 1974 sebagai sebuah duplikat yang
efisien dan terisolasi dari suatu mesin asli.
Ide dasar dari VM adalah mengabtraksi perangkat keras dari
suatu komputer ke beberapa environment eksekusi, sehingga
menciptakan ilusi bahwa masing- masing environment menjalankan
komputernya sendiri. VM terdiri dari dua kategori besar, dipisahkan
menurut cara penggunaan dan tingkat keterhubungannya dengan
mesin- mesin aslinya. Sebuah VM sistem adalah perangkat yang
sebuah sistem operasi yang lengkap pula. Sebaliknya, VM proses
didesain untuk menjalankan sebuah program komputer tertentu
(tunggal), yang berarti VM ini mendukung proses tertentu juga.
Dengan virtualisasi sebuah komputer fisik dapat menjalankan
beberapa VM, masing- masing dengan OS yang berbeda dan aplikasi
yang berbeda pula. VM dibagi berdasarkan tingkat virtualisasinya
menjadi beberapa bagian, yaitu:
2.4.1.1Virtualisasi penuh, yang mensimulasikan seluruh fitur
perangkat keras sehingga memungkinkan perangkat lunak
berjalan pada VM tanpa modifikasi.
2.4.1.2Virtualisasi paruh, dimana tidak semua perangkat keras
disimulasikan.
2.4.1.3Virtualisasi asli, yang merupakan virtualisasi penuh
digabungkan dengan bantuan perangkat keras yang mendukung
virtualisasi.
2.5
Cluster
Cluster adalah sekumpulan komputer (umumnya komputer
server) yang bekerja bersama-sama tetapi dilihat dari sisi pengguna
adalah satu buah unit komputer. Proses menghubungkan komputer
agar dapat bekerja seperti itu disebut clustering.
Cluster didesain agar dapat meningkatkan kemampuan
sebuah server, yakni dengan meningkatkan hal- hal berikut:
Toleransi kesalahan (fail over), server lainnya akan mengambil alih kerja server utama ketika server utama mengalami
kegagalan. Pengguna tidak akan melihat pergantian peran ini.
menunjukkan pembagian beban kerja tiap node sebelum terjadi
kegagalan.
Gambar 2.4 Persenta se kerja sebelum kega gala n
Gambar 2.5 menunjukkan pembagian kerja tiap node setelah
terjadi kegagalan di salah satu node.
Gambar 2.5 Persenta se kerja setela h kega gala n
Penyerataan beban (load balancing), pendistribusian beban ke semua node. Dengan begitu, kinerja dan skalabilitas server
menjadi lebih baik.
Karena menggunakan lebih dari satu buah server, maka
manajemen dan perawatan sebuah server cluster jauh lebih rumit
dibandingkan dengan manajemen server tunggal, meskipun lebih
murah. Cluster virtual dibangun dari node-node server yang berupa
2.7
Load Balancing
Load balancing adalah teknik untuk mendistribusikan beban
trafik pada dua atau lebih jalur koneksi secara seimbang, agar trafik
dapat berjalan optimal, memaksimalkan throughput, memperkecil
waktu tanggap dan menghindari overload pada salah satu jalur
koneksi. Load balancing digunakan pada saat sebuah server yang
telah memiliki jumlah pengguna yang telah melebihi maksimal
kapasitasnya. Load balancing juga mendistribusikan beban kerja
secara merata di dua atau lebih komputer, jalur jaringan, CPU, hard
drive, atau sumber daya lainnya untuk mendapatkan pemanfaatan
sumber daya yang optimal.
Node-node dalam cluster merespon permintaan pengguna
secara bersama-sama. Bahkan beberapa permintaan yang datang dari
satu pengguna dapat direspon oleh beberapa node. Hal ini
mempercepat pengolahan dan mempersingkat waktu respon kepada
pengguna. Beban kerja tiap node dapat dibagi prioritasnya
tergantung dengan kemampuannya atau beban dapat dibagi secara
merata ke semua host.
Load balancer adalah software atau hardware yang bertugas
membagi beban kerja ke node-node yang terhubung dalam satu
cluster. Disaat load balancer menerima permintaan layanan dari
pengguna, maka permintaan tersebut akan diteruskan ke node-node.
Load balancer dapat menentukan node mana yang memiliki load
yang lebih rendah dan respon yang lebih cepat. Bahkan load
balancer bisa menghentikan akses ke node yang sedang mengalami
masalah dan hanya meneruskannya ke node yang dapat memberikan
umumnya dimiliki load ba lancer, sehingga layanan seolah-olah
tidak ada gangguan di mata pengguna.
Teknologi load balancing dapat menjadi salah satu solusi yang efektif dan efisien untuk menciptakan sistem yang handal dengan tingkat ketersediaan tinggi (high availability), khususnya
sebagai web server.
Sistem load balancing dapat dibuat dengan banyak cara.
Pembuatannya tidak terikat oleh sebuah sistem operasi saja, atau
sebuah perangkat saja. Secara garis besar sistem load ba lancing
terbagi menjadi tiga kategori, yaitu:
1. DNS Round Robin.
Pembagian kerja load balancing berdasarkan nama domain
yang diakses oleh pengguna. Alamat ip dari server-server yang
diwakili oleh nama domain akan diberikan kepada pengguna
secara bergiliran sesuai dengan algoritma round robin.
2. Integrated
Merupakan solusi load balancing dari sebuah aplikasi atau
sistem operasi. Biasanya aplikasi atau sitem operasi yang
memiliki kemampuan beroperasi sebagai server.
Contoh: Network Load Balancing (N LB) dari sistem operasi
Windows Server.
3. Dedicated
Dibagi menjadi 3 jenis:
Load balancing dengan hardware. Load balancing dengan software.
2.8
Parallel Computing
P arallel computing adalah salah satu teknik komputasi yang
dilakukan secara bersamaan. Biasanya digunakan untuk mengolah
data dalam jumlah besar atau melakukan proses komputasi yang
banyak. P ara llel computing terdiri dari banyak komputer yang
dihubungkan dalam jaringan dan mampu bekerja secara paralel
untuk menyelesaikan suatu masalah. Diperlukan middleware yang
bertugas mengatur pembagian pekerjaan antar node dalam satu
mesin paralel.
Berikut ini adalah klasifikasi arsitektur parallel computing
berdasarkan aliran instruksi oleh Michael J. Flynn:
2.8.1 SISD (Single Instruction – Single Data Stream)
Suatu tipe komputer yang mengerjakan instruksi
secara terurut satu demi satu. Biasanya merupakan
komputer dengan satu unit pemroses (single
processor).
2.8.2 SIMD (Single Instruction – Multiple Data Stream)
Tipe komputer yang mengerjakan instuksi yang sama
dengan himpunan data yang berasal dari aliran data
yang berbeda.
2.8.3 MISD (Multiple Instruction – Single Data Stream)
Komputer ini memiliki banyak unit pemroses yang
masing- masing mengerjakan instruksi yang berbeda
terhadap aliran data yang sama. Belum ada bentuk
nyata komputer jenis ini. Kecuali dalam bentuk
2.8.4 MIMD (Multiple Instrruction – Multiple Data
Stream)
Tipe komputer yang memiliki banyak unit pemroses
dan dapat mengerjakan banyak instruksi terhadap
banyak aliran data yang berbeda. Model ini adalah
dasar pemikiran pengembangan parallel computing.
2.9
Algoritma Penjadwalan
Load balancing menggunakan algoritma dalam proses
pembagian beban kerja. Beberapa jenis algoritma yang ada antara
lain:
Round Robin.
Algoritma Round Robin merupakan algoritma yang paling
sederhana dan banyak digunakan oleh perangkat load
balancing. Algoritma ini membagi beban secara bergiliran dan
berurutan dari satu server ke server lain sehingga membentuk
putaran.
Gambar 2.6 Alur kerja a lgoritma Round Robin Ratio.
Ratio (rasio) merupakan sebuah parameter yang diberikan untuk
load balancing. Dari parameter Ratio ini, akan dilakukan
pembagian beban terhadap server-server yang diberi rasio.
Server dengan rasio terbesar diberi beban besar, begitu juga
dengan server dengan rasio kecil akan diberi beban lebih
sedikit. F astest.
Algoritma ini melakukan pembagian beban dengan
mengutamakan server-server yang memiliki respon yang paling
cepat. Server di dalam jaringan yang memiliki respon paling
cepat merupakan server yang akan mengambil beban pada saat
permintaan masuk. Least Connection.
Algoritma Least Connection akan melakukan pembagian beban
berdasarkan banyaknya koneksi yang sedang dilayani oleh
sebuah server. Server dengan pelayanan koneksi yang paling