8
BAB II LANDASAN TEORI
2.1
Arsitektur Virtualisasi Menurut David Marshall (Marshall, A. Reynolds, & McCrory,
Advanced Server Virtualization, 2006), definisi Virtualisasi adalah: “a way of making a physical computer function as if it were tow or more computers, each nonphysical or “virtualized” computer is provided with the same basic architecture as that of a generic physical computer”.Yang apabila diartikan adalah suatu cara membuat komputer fisik menjadi berfungsi seperti 2 komputer atau lebih, yang mana setiap komputer virtual tersebut menggunakan arsitektur dasar yang sama dengan komputer fisik. Sedangkan menurut Amit Singh (Singh, 2004) definisi dari Virtualisasi adalah kerangka kerja atau metodologi dimana membagi sumber daya kedalam beberapa lingkungan dengan cara menerapkan satu atau lebih konsep atau teknologi seperti pembuatan partisi secara software dan hardware, pembagian waktu, simulasi sebagian atau keseluruhan mesin, kualitas layanan dan sebagainya.Sedangkan menurut Jason Nieh dan Ozgur Can Leonard (Nieh, 2000)virtualisasi adalah suatu platform dimana memungkinkan beberapa sistem operasi dan perangkat lunak dapat berjalan bersamaan dalam 1 mesin.Teknik ini bisa digunakan untuk meningkatkan utilisasi dan fleksibilitas hardware. Dengan melakukan implementasi teknik virtualisasi ini seorang administrator pada suatu perusahaan diharapkan mampu menghemat waktu, biaya
9
dan tenaga untuk mengelola berbagai sistem informasi yang dimiliki perusahaan dikarenakan jumlah server yang dibutuhkan dalam suatu perusahaan dapat di minimalisasikan. Konsep dari Virtualisasi adalah membagi sumber daya native server menjadi beberapa komputer secara bersama-sama atau yang dinamakan komputer virtual atau Virtual Machines (VMs). Komputer virtual ini berdiri sendiri tanpa mempengaruhi komputer virtual lainnya walaupun berada dalam 1 native server. Walaupun server virtual ini berada dalam 1 native server namun penggunaan sumber daya nya seperti CPU, RAM dan Harddisk dapat di konfigurasikan sehingga dapat didapat hasil yang lebih efisien dalam penggunaan sumber daya pada setiap layanan.Setiap komputer virtual ini dapat di menjalankan sistem operasi yang berbeda-beda seperti Windows dan Linux secara bersamaan, sistem operasi yang berada pada komputer virtual dinamakan Guest Operating System. Setiap instruksi yang diberikan oleh komputer virtual ini akan langsung diteruskan ke native server sehingga prosesnya sama seperti menjalankan sistem operasi pada native serversecara langsung. Perangkat lunak atau aplikasi untuk menjalankan teknik virtualisasi dapat menggunakan arsitektur hosted maupun bare-metal(Marshall, Vmware ESX Essentials in the Virtual Data Center, 2009). Pada arsitektur hosted aplikasi untuk menjalankan teknik virtualisasi di jalankan diatas sistem operasi, sedangkan pada arsitektur bare-metal perangkat lunak virtualisasi langsung dijalankan diatas perangkat keras. Untuk lebih jelasnya bisa dilihat pada gambar 2.1 , gambar 2.2 dan gambar 2.3
10
Gambar 2.1
Sistem Arsitektur pada Komputer Tradisional
Gambar 2.2
Sistem Arsitektur Hosted
11
Gambar 2.3
Sistem Arsitektur pada Teknik Hypervisor (Bare-Metal)
Berikut beberapa alasan menggunakan teknik virtualisasi : -
Konsolidasi server Konsolidasi server dapat membuat beberapa server fisik untuk dijadikan kedalam sistem virtualisasi dan hanya menjalankan satu server fisik yang didalamnya terdapat beberapa virtual server yang dijalankan diatas satu server fisik.
-
Dukungan terhadap aplikasi Menyediakan upgrade aplikasi dan sistem operasi ke server baru tanpa menimbulkan masalah seperti tidak kompatibel dengan perangkat keras yang baru.
12
-
Dukungan terhadap beberapa sistem operasi Memiliki kemampuan untuk menjalankan beberapa sistem operasi dalam satu native server. Berguna untuk melakukan pengembangan dan pengetesan beberapa sistem operasi.
-
Demonstrasi perangkat lunak Dengan menggunakan teknik virtualisasi maka memudahkan dalam melakukan demonstrasi beta software. Pengguna dapat menyoba terlebih dahulu pada komputer virtual sebelum di jalankan pada native server yang telah menjalankan aplikasi versi lama yang telah stabil. Selain itu seorang penjual dapat mendemonstrasikan perangkat lunaknya dalam beberapa sistem operasi hanya dengan cukup mengoperasikan satunative server.
-
Pengembangan, pengetesan Karena dalam sistem virtualisasi setiap komputer virtual terisolir antara satu dengan yang lainnya maka dapat dilakukan pengembangan dan pengetesan terhadap suatu aplikasi atau sistem operasi tanpa mengganggu layanan yang dijalankan komputer virtual lainnya.
-
Pelatihan teknisi dan e-learning Dengan menggunakan teknik virtualisasi, tempat pelatihan dapat memberikan hak akses administrator pada setiap komputer virtual ke peserta latihan. Peserta dapat melakukan uji coba konfigurasi tanpa mengganggu aplikasi lain yang berjalan pada komputer virtual lainnya.
13
2.2
Keuntungan Teknik Virtualisasi Beberapa keuntungan menggunakan Teknik Virtualisasi menurut David
Marshall (Marshall, A. Reynolds, & McCrory, Advanced Server Virtualization, 2006)dan Dawson Christian (Dawson, 2008)adalah -
Dapat dengan mudah dipindahkan Komputer virtual yang telah dibuat melalui teknik virtualisasi dapat dijalankan di hardware yang berbeda-beda, sebagai contoh, apabila suatu perusahaan ingin melakukan penggantian server maka komputer virtual tersebut dapat dengan mudah dipindahkan ke server yang lebih baru walaupun perangkat keras yang ada pada server tersebut berbeda.
-
Lebih dapat mudah di atur Dengan menggunakan teknik virtualisasi maka proses perawatan setiap komputer virtual akan lebih mudah dilakukan karena seorang administrator tidak perlu melakukan pengecekan sistem pada setiap server yang ada, namun cukup melakukan perawatan melalui 1 komputer klien yang kemudian melakukan remote ke aplikasi virtual yang ada pada komputer server.
-
Lebih efisien Dengan menggunakan teknik virtualisasi tingkat utilitas sumber daya komputer server akan tinggi dibandingkan menggunakan sistem konvensional dimana setiap layanan menggunakan 1 komputer server. Hal ini juga secara otomatis melakukan penghematan biaya perangkat keras,
14
biaya listrik, biaya lingkungan, manajemen dan administrasi infrastruktur server.
2.3
Tantangan Virtualisasi Arsitetur x86 menyediakan empat tingkat privileges yaitu Ring 0, Ring 1,
Ring 2 dan Ring 3. Sistem operasi berjalan pada Ring 0 dikarenakan perlu mengakses sumber daya server secara langsung seperti mengakses memori dan CPU sedangkan aplikasi yang berjalan akan ditempatkan pada Ring 3.(Vmware, 2007) Ada beberapa masalah dalam pengaplikasian teknik virtualisasi yaitu teknik virtualisasi pada arsitektur x86 mengharuskan perangkat lunak virtualisasi berada pada layer sistem operasi yaitu Ring 0 untuk membuat dan melakukan menejemen komputer virtual.Namun dalam beberapa situasi tertentu, suatu instruksi sensitif tidak dapat divirtualisasikan karena harus berada pada Ring 0. Hal ini membuat teknik virtualisasi pada arsitektur x86 tidak dimungkinkan, namun pada tahun 1998 permasalahan ini dapat teratasi dengan mengembangkan teknik pengkodean binarysehingga membuat suatu Virtual Machine Monitors (VMMs)berjalan pada Ring 0.
15
Gambar 2.4
Level privilege tanpa menggunakan teknik virtualisasi
Secara umum Ada 4teknik untuk menangani suatu instruksi sensitif tersebut agar dapat berjalan pada CPU virtual dalam artsitektur x86 yaitu dengan Full Virtualization, Operating System Virtualization, Paravirtualization dan Hardware Assisted Virtualization. (Vmware, 2007)
2.3.1 Full Virtualization Cara ini adalah dengan melakukan kombinasi dari binary translation dan teknik eksekusi secara langsung yaitu dengan menterjemahkan kode kerneluntuk menggantikan insturksi – instruksi yang tidak dapat divirtualisasikan dengan instruksi baru untuk perangkat keras virtual. Sementara itu, instruksi yang diberikan pada tingkat user akan langsung di eksekusi oleh processor agar didapat proses virtualisasi yang cepat.Setiap mesin virtual nantinya akan diberikan seluruh
16
fitur seperti yang ada pada komputer fisik seperti virtual BIOS, virtual devices dan virtual memori manajemen.(Vmware, 2007) Kombinasi dari binary translation ini dan teknik eksekusi langsung inimemberikan metode Full Virtualizationini di abstraksikan penuh atau diduplikasi secara langkap dari perangkat keras. Sistem operasi yang dijalankan pada komputer virtual ini tidak akan menyadari bahwa sedang berjalan pada sistem virtualisasi karena tidak diperlukan modifikasi.Metode Full Virtualization ini tidak memerlukan perubahan pada sisi hardware atau sistem operasi untuk mengvirtualisasikan privileged dan instruksi sensitif karena perangkat lunak virtualiassi (hypervisor) akan menterjemahkan seluruh instruksi sistem operasi secara langsung(Vmware, 2007).
Gambar 2.5
Full Virtualization pada arsitektur x86
Full Virtualization dapat membuat setiap komputer virtual sangat fleksibel. Sistem operasi akan mengemulasikan seluruh perangkat keras menjadi dapat terbaca oleh sistem operasi yang dijalankan komputer virtual. Software
17
emulator akan membuat lapisan diatas perangkat keras komputer agar komputer virtual dapat bekerja bersama-sama walaupun dalam server dan arsitektur yang yang berbeda. Kelebihannya adalah dapat dengan mudah memindahkan beberapa komputer virtual dari server satu ke server yang lain. Salah satu contoh dari Full Virtualizationadalah Microsoft Virtual PC dan Vmware Workstation.
2.3.2 Operating System Virtualization Operating System Virtualization berbeda denganFull Virtualization dimana sistem operasi yang tidak dimodifikasi tidak mengetahui sistem virtualisasi sehingga membuat kompabilitas dan portabilitas nya menjadi buruk. Kelebihannya adalah
Operating System Virtualization dapat memberikan
performa yang lebih cepat yaitu sama seperti performa dengan komputer fisik. Namun kelemahannya adalah metode ini mengharuskan sistem operasi pada komputer virtual harus sama dengan sistem operasi yang dijalankan pada komputer fisik. Salah satu contoh dari Operating System Virtualization adalah OpenVZ dan Linux-VServer yaitu hasil modifikasi opensource dari kernel Linux.(Kolyshkin, 2009)
2.3.3 Paravirtualization Paravirtualizationmengacu pada komunikasi antara sistem operasi komputer virtual dan hypervisoruntuk menambah performa dan efisiensi. Paravirtualizationmelibatkan modifikasi pada kernel sistem operasi untuk
18
menggantikan instruksi–instruksi yang tidak dapat divirtualisasikan dengan hypercall yang akan berkomunikasi langsung dengan lapisan perangkat lunak virtualisasi.Hypervisor juga akan menyediakan hypercall untuk operasi kernel penting lainnya seperti manajemen memori, interrupt handling, dan time keeping. (Vmware, 2007)
Gambar 2.6
Paravirtualizationpada arsitektur x86
Paravirtualizationberbeda dengan Full Virtualization karena memerlukan sistem operasi virtualisasi untuk melihat sumber daya pada server fisik dan pada server virtual. Metode Paravirtualizationini akan meningkatkan performa yang lebih baik dan kemudahan dalam hal fleksibilitas (Rosenblum & Garfinkel, 2005) Salah satu contoh dari Paravirtualizationadalah Xen, Paralell Bare-Metal dan VMware ESX. Keuntungan dari metode Paravirtualizationadalah performa
19
yang
mendekati
performa
komputer
fisik
namun
kerugiannya
adalah
membutuhkan sistem operasi yang dimodifikasi untuk hypervisor. (Menor, 2005)
2.3.4 Hardware Assisted Virtualization Vendor perangkat keras dengan cepat mendukung teknik virtualisasi dan mengembangkan fitur-fitur baru guna menyerdehanakan teknik virtualisasi. Generasi pertama yang melakukan pengembangan ini adalah Intel Virtualization Technology (VT-x) (Intel, 2008)dan AMD dengan AMD-V yang keduanya memberikan instruksi baru ke eksekusi CPU dimana memperbolehkan VMM untuk berjalan dibawah ring 0. Kemudianprivileged dan instruksi sensitifakan secara otomatis dipaksa ke hypervisor.
Gambar 2.7
Hardware Assisted Virtualization pada arsitektur x86
20
Salah satu contoh dari Hardware Assisted Virtualizationadalah Hyper-V, VirtualBox, Virtual Server, Vmware ESX, dan VMware Server. Dari penjelasan mengenai empat teknik virtualisasi dapat ditarik kesimpulan pada tabel berikut hal-hal yang membedakan antara ke empat teknik tersebut : Tabel 2.1 Tabel Perbandingan Teknik Virtualisasi
Teknik
Full Virtualization
Perbedaan Melakukan kombinasi binary translation dengan menterjemahkan kode kernel, kelebihannya adalah dapat menjalankan guest OS yang berbeda dengan OS virtualisasinya. OS tidak dimodifikasi sehingga guest OS lebih
Operating System Virtualization
cepat namun kelemahannya mengharuskan guest OS yang sama Adanya tambahan instruksi Hypercalls pada
Paravirtualization
Virtualization Layer untuk melakukan manajemen memori, kelemahannya adalah instruksi masih dilakukan pada sisi OS Lebih cepat dari Paravirtualization dikarenakan tanpa binary translation yaitu sudah digantikan
Hardware Assisted Virtualization
2.4
dengan
instruksi
kelemahannya
virtualisasi
adalah
harga
dari
CPU,
lebih
mahal
dibandingkan teknik virtualisasi lainnya
Layanan yang dijalankan Dalam pengujian kali ini akan dipilih beberapa layanan yang akan pada
umumnya digunakan oleh perusahaan yang telah menggunakan sistem komputer guna mendukung proses bisnisnya.
21
2.4 .1 HTTP Hypertext Transfer Protocol (HTTP) adalah suatu protokol yang menggunakan konsep Universal Resource Identifier (URI) sebagai lokasi yaitu Universal Resource Locator (URL) atau nama yaitu Universal Resource Name (URN).HTTP juga digunakan untuk berkomunikasi antara user agentsdengan beberapa gateway. Cara kerja HTTP adalah berupa protokol klien-server yaitu dengan melakukan permintaan (request) dan respon(response)pada koneksi TCP/IP di Internet(Pavlo, 2009), sebagai contoh suatu klien mengirimkan request kepada server, kemudian server akan menerima permintaan tersebut dan kemudian memberikan jawaban dengan status line, versi protokol, kode sukses atau error dan isi pesan yang diminta oleh klien tersebut. Pada umumnya HTTP bekerja pada port 80, namun tidak menutup kemungkinan HTTP dijalankan pada port lainnya.(Yannakopoulos, 2003) Penggunaan layanan HTTP dipilih karena ketika suatu klien melakukan request maka akan menaikkan tingkat utilisasi CPU server karena dalam hal ini HTTP server harus merespon setiap requestyang diminta oleh klien. Selain itu HTTP erat kaitannya dengan layanan webserver sehingga dalam penelitian kali ini dapat dilihat perbandingan kinerja antara komputer mesin virtual dengan mesin fisik.
22
2.4 .2 SMTP Simple Mail Transfer Protocol (SMTP) merupakan suatu protokol untuk melakukan pengiriman dan penerimaan email melalui media Internet. SMTP adalah protokol berbasis teks yang relatif sederhana, yang didalamnya disebutkan satu atau lebih penerima pesan, bersama dengan teks pesan dan obyek lain dalam bentuk ter enkripsi. Pesan ini kemudian dipindahkan antara satu server dengan server yang lain menggunakan sebuah prosedur permintaan dan jawaban antara klien dengan server. Penggunaan layanan STMP dalam pengujian ini dipilih karena SMTP ini akan membebani CPU seiring bertambahnya jumlah SMTP-request yang dikirimkan oleh klien.Setiap SMTP-request terdiri dari dua bagian, yaitu header dan isi. Header ini berisi informasi-informasi tentang alamat asal pengirim, alamat tujuan penerima dan informasi lain yang berhubungan dengan pesan. Isi berisi teks yang merupakan komunikasi antara pengirim pesan dengan penerima pesan. Laynan SMTP ini akan membebankan sumber daya yang ada seiring dengan total pesan yang diterima. Besarnya file yang akan dikirim dan diterima pun akan mempengaruhi bandwidth jaringan yang terpakai sehingga dalam proses pngirimannya akan terbentur dengan kapasitas bandwidth yang ada.
2.4 .3 CIFS Common Internet File System (CIFS) merupakan lanjutan dari Server Message Block (SMB). Fungsi dari SMB adalah untuk memungkinkan user
23
melihat layanan file dan printer yang tersedia di jaringan. Pada mulanya SMB ini hanya dapat diakses melalui sistem operasi Microsoft Windows, namun seiring berkembangnya waktu maka SMB ini dapat diakses dari sistem operasi selain Microsoft Windows. Penggunaan layanan CIFS dalam pengujian ini dipilih karena CIFS akan membebani sumber daya komputer khususnya CPU. Dalam prosesnya, semakin banyak klien yang mengakses layanan ini maka utilisasi CPU nya pun akan ikut naik seiring bertambahnya jumlah transaksi file yang harus dilayani.
2.5
Produk - Produk Virtualisasi Seperti yang telah dijelaskan sebelumnya, teknik virtualisasi terbagi
menjadi empat yaitu Full Virtualization, Operating System Virtualization, Paravirtualization dan Hardware Assisted Virtualization.(Vmware, 2007) Pembagian teknik ini juga menyebabkan para vendor meluncurkan berbagai solusi virtualisasi dengan teknik-teknik yang ada. Berikut produk-produk virtualisasi yang lebih umum dipakai untuk diimplementasikan di native server :
2.5.1 Microsoft Virtual Server Microsoft Virtual Server adalah solusi virtualisasi untuk server satusatunya dari Microsoft sebelum Microsoft Hyper-V. Microsoft Virtual Server merupakan perangkat lunak virtualisasi bertipe hosted dan bisa melakukan
24
virtualisasi dengan pendekatan full virtualization atau hardware-assisted virtualization. Saat ini Microsoft Virtual Server sudah dapat dipakai secara gratis. Microsoft Virtual server dapat berjalan pada CPU dengan arstitektur x86 atau x86-64, tetapi hanya bisa menjalankan sistem operasi dengan arsitektur x86. Microsoft Virtual Server mendukung sistem operasi sejak Windows XP hingga Windows Server 2008 sebagai host, sedangkan untuk guest Microsft Virtual Server mendukung sistem operasi server sejak Windows NT Server 4.0 hingga Windows Server 2003.
2.5.2 OpenVZ OpenVZ adalah salah satu solusi virtualisasi yang memberikan kemampuan Operating System Virtualization pada kernel Linux. OpenVZ didistribusikan secara open source dan dikembangkan oleh suatu komunitas. Dalam pengembangannya OpenVZ didukung oleh perusahaan Parallels yang kemudian diberi nama Parallels Virtuozzo.(Kolyshkin, 2009)
2.5.3 Linux-VServer Sama seperti OpenVZ, Linux VServer adalah salah satu solusi virtualisasi yang memberikan kemampuan Operating System Virtualization pada kernel Linux. Linux-VServer didistribusikan secara open source dan dikembangkan oleh suatu komunitas. Linux-Vserver dapat berjalan pada arsitektur yang didukung kernel Linux pada arsitektur x86 dan x64.
25
2.5.4 Xen Xen merupakan perangkat lunak virtualisasi yang dikembangkan di universitas Cambridge. Xen dapat berjalan pada arsitektur x86 atau x64 dan menjalankan sistem operasi di dalam virtual machinedengan arsitektur yang sama. Teknik virtualisasi pada Xen adalah paravirtualization, namun sejak versi 3.0 Xen juga mendukung hardware-assisted virtualization.Xen merupakan perangkat lunak virtualisasi dengan tipe bare-metal.(Menor, 2005)
2.5.5 VMware Vsphere/ESXi 4 VMware VSphere adalah lanjutan dari VMware ESX/ESXi 3, penggantian nama menjadi VMware VSphere atau ESXi 4 adalah karena pada VMware Vsphere sudah mendukung arsitektur x64, sedangkan VMware ESX/ESXi 3 masih menggunakan arstitektur x86. Namun dalam VMware VSphere sistem operasi yang dapat dijalankan di virtual machine dapat mendukung arstitektur x86 dan x64. VMware Vsphere adalah salah satu perangkat lunak virtualisasi yang bertipe bare-metal.VMware Vsphere dapat melakukan teknik virtualisasi full virtualization, paravirtualization dan hardware-assisted virtualization (hanya pada sistem operasi 64 bit).
26
2.5.6 Microsoft Hyper-V Microsoft Hyper-V adalah lanjutan dari Microsoft Virtual Server. Microsoft Hyper-V adalah solusi virtualisasi dari Microsoft yang tersedia bersama dengan sistem operasi Windows Server 2008 Core Edition. Microsoft Hyper-V merupakan perangkat lunak virtualisasi dengan bertipe bare-metal yang memerlukan CPU x64 dan berteknologi mendukung
teknik hardware-assisted
Intel VT-x atau AMD-V untuk
virtualization). Microsoft Hyper-V
mendukung sistem operasi desktop dan server sejak Windows 2000 hingga Windows Server 2008 dan beberapa distribusi Linux.
2.5.7 Sun xVM Virtual Box Virtual Box adalah perangkat lunak virtualisasi bertipe hosted. VirtualBox didistribukan secara gratis oleh Sun Microsystem. Sun xVM Virtual Boxdapat berjalan pada CPU dengan arsitektur x86 atau x64 dan mendukung sistem operasi Windows, Linux, Mac OS X atau Solaris sebagai host nya. Sun xVM Virtual Box menggunakan
teknik
full
virtualization
maupun
hardware-assisted
virtualization.(SunMicrosystem, 2008)
2.5.8 VMware Server VMware Server sebelumnya bernama VMware GSX Server dan merupakan produk utama dari VMware. VMware mendistribusikan VMware
27
Server secara gratis. VMware Server bertipe hosteddan mendukung CPU dengan arsitektur x86 atau x64 dengan sistem operasi Linux dan Windows sebagai host nya.
VMware
dapat
melakukan
teknik
virtualisasi
full
virtualization,
paravirtualization dan hardware-assisted virtualization
2.6
Tool Pengujian Dalam pengujian kali ini akan dipilih beberapa tool untuk melakukan
pengujian terhadap layanan webserver, mail server dan file-server.
2.6 .1 httperf Httperf adalah software untuk mengukur kinerja webserver dalam suatu website. Httperf mempunyai fitur yang dapat dikonfigurasikan untuk membuat bermacam-macam beban kerja pada suatu webserver. Httperf dibuat oleh David Mosberger dari HP Research Labs. Tool httperf ini akan melakukan simulasi pengujian dalam berbagai konfisi menyerupai keadaan sebenarnya. Hasil dari httperf adalah jumlah request per second yang dapat dilayani suatu web server.
2.6 .2 Postal Postal merupakan program yang sering digunakan untuk mengetahui kierna suatu Mail Server. Cara kerja Postal adalah dengan cara mengirimkan
28
sejumlah data acak ke alamat penerima. Hasil dari postal adalah message yaitu rata-rata jumlah pesan yang dapat diterima dan diproses oleh suatu SMTP server dalam satu menit(message per minute)
2.6 .3 dbench Dbench adalah program untuk menguji suatu fileserver. Cara kerja dbenceh adalah memanggil bermacam fungsi Input Output menggunakan media jaringan, dbench akan membuat beberapa komputer virtual yang akan mengirim data ke komputer yang akan diujikan. Hasil dari dbenceh adalah dalam bentuk throughput dengan satuan megabyte per second (Mbps).(Informatics, 2007)