17
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.

Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/6468/2/T1... · Bab 2 Tinjauan Pustaka 2.1 Penelitian Sebelumnya ... Pada tingkatan yang terendah,

  • Upload
    vothu

  • View
    238

  • Download
    2

Embed Size (px)

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.