View
229
Download
2
Category
Preview:
Citation preview
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 clustering 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
komputer dan komponennya masih dapat bekerja dengan baik.
7
Gambar 2.1 menunjukkan alur kerja cluster konvensional dengan
load balancer.
Gambar 2.1 Alur kerja load balancing
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
perangkat keras, perangkat lunak atau kombinasi dari keduanya.
8
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 layer pada TCP/IP dan OSI
2.2.1 OSI
Open System Interconnection (OSI) adalah suatu
model konseptual yang terdiri atas tujuh layer, yang masing-
masing layer tersebut mempunyai fungsi yang berbeda. OSI
dikembangkan oleh badan Internasional yaitu International
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 layer ini.
Tugas dari application layer adalah berfungsi sebagai
antar muka aplikasi dengan fungsionalitas jaringan.
Mengatur bagaimana aplikasi dapat mengakses
jaringan, dan kemudian membuat pesan-pesan
9
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 Protocol (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 switch layer 3.
Data Link befungsi untuk menentukan bagaimana bit-
bit data dikelompokkan menjadi format yang disebut
sebagai frame. Selain itu, pada level ini terjadi koreksi
10
kesalahan, flow control, pengalamatan perangkat keras
seperti halnya Media Access Control Address (MAC),
dan menetukan bagaimana perangkat-perangkat
jaringan seperti hub, bridge, 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 Protocol / Internet Protocol
(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 Area Network
(WAN). TCP/IP merupakan sebuah standar jaringan terbuka
11
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 Protocol (DHCP), Domain Name
System (DNS), Hypertext Transfer Protocol (HTTP),
File Transfer Protocol (FTP), Telnet, Simple Mail
Transfer Protocol (SMTP), Simple Network
Management Protocol (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 Protocol (TCP) dan User Diagram Protocol
(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 Protocol (IP), Address Resolution Protocol
(ARP), Internet control Message Protocol (ICMP),
dan Internet Group Management Protocol (IGMP).
12
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 Provider (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
kali didesain untuk sistem operasi UNIX. Namun sekarang
13
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 apache :
1. Kontrol Akses.
Kontrol ini dapat dijalankan berdasarkan nama host atau
nomor IP.
2. Common Gateway Interface (CGI)
Yang paling terkenal untuk digunakan adalah Practical
Extraction and Report Language (Perl), yang didukung
oleh apache dengan menempatkannya sebagai modul
(mod_perl)
3. Personal Home Page/PHP Hypertext Processor (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
operasi.
14
4. Mudah mengatur konfigurasinya. Apache hanya
mempunyai empat file konfigurasi.
5. Mudah dalam menambahkan peripheral lainnya ke
dalam platform web 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 request terhadap
peta dan mengirimkannya ke web server. Gambar 2.3
menjelaskan hubungan kerja map server dan web server.
Gambar 2.3. Diagram operasi standar pada map server
15
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
berupa environment sistem yang lengkap dan dapat menjalankan
16
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.1 Virtualisasi penuh, yang mensimulasikan seluruh fitur
perangkat keras sehingga memungkinkan perangkat lunak
berjalan pada VM tanpa modifikasi.
2.4.1.2 Virtualisasi paruh, dimana tidak semua perangkat keras
disimulasikan.
2.4.1.3 Virtualisasi 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.
Dengan begitu downtime dapat dikurangi. Gambar 2.4
17
menunjukkan pembagian beban kerja tiap node sebelum terjadi
kegagalan.
Gambar 2.4 Persentase kerja sebelum kegagalan
Gambar 2.5 menunjukkan pembagian kerja tiap node setelah
terjadi kegagalan di salah satu node.
Gambar 2.5 Persentase kerja setelah kegagalan
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
virtual machine.
18
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
layanan (fail over). Hal ini adalah salah satu kelebihan yang
19
umumnya dimiliki load balancer, 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 balancing
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 (NLB) dari sistem operasi
Windows Server.
3. Dedicated
Dibagi menjadi 3 jenis:
Load balancing dengan hardware.
Load balancing dengan software.
Load balancing dengan perpaduan hardware dan software.
20
2.8 Parallel Computing
Parallel computing adalah salah satu teknik komputasi yang
dilakukan secara bersamaan. Biasanya digunakan untuk mengolah
data dalam jumlah besar atau melakukan proses komputasi yang
banyak. Parallel 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
prototype untuk penelitian.
21
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 algoritma Round Robin
Ratio.
Ratio (rasio) merupakan sebuah parameter yang diberikan untuk
masing-masing server yang akan dimasukkan kedalam sistem
22
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.
Fastest.
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
sedikit akan diberikan beban yang berikutnya akan masuk.
Recommended