Ringkasan Tugas Akhir PERANCANGAN DAN IMPLEMENTASI SISTEM HIGH AVAILABILITY DENGAN VIRTUALISASI William 13204161 Kelompok Keilmuan Teknik Telekomunikasi Program Studi Teknik Elektro Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Dosen Pembimbing: Dr. Ir. Harry Santoso Abstrak Tugas akhir ini membahas penggunaan virtualisasi untuk menyediakan layanan high availability. Virtualisasi bertujuan untuk menggunakan resource hardware seefisien mungkin untuk menyediakan layanan. Setiap layanan akan dijalankan pada mesin virtual yang dapat dimigrasikan antar node secara cepat untuk mencapai availability yang tinggi. Hal ini dilakukan dengan menggunakan software Xen untuk membuat mesin virtual dan Heartbeat untuk menyediakan layanan high availability. Untuk dapat melakukan fungsinya diatas, tiaptiap mesin virtual harus menyimpan konfigurasinya pada sebuah shared storage yang dapat diakses setiap node. Kata kunci : virtualisasi, high availability 1. TINJAUAN PUSTAKA High availability, sesuai etimologinya, adalah kemampuan sistem komputer untuk menyediakan suatu layanan tanpa gangguan. Availability berhubungan dengan kemampuan user untuk mengakses sistem tanpa gangguan. Availability adalah perbandingan antara waktu uptime dengan waktu total waktu pengukuran, waktu uptime dan waktu downtime. Dengan persamaan matematis sebagai berikut: Downtime, yang biasa disebut outage, adalah periode waktu dimana sebuah sistem tidak tersedia atau offline. Hal ini umumnya terjadi karena gangguan pada sistem yang disebabkan oleh kerusakan, maintenance, atau upgrade pada sistem. Virtualisasi umumnya digunakan ketika akan melakukan sesuatu yang tidak mungkin dilakukan pada kenyataan. Pada virtualisasi, komputer menjalankan mesin virtual secara terpisah dan berkomunikasi menggunakan protokol IP. Keuntungan menggunakan sistem ini adalah jika salah satu mesin virtual mengalami gangguan, yang lainnya tidak akan terpengaruh. Dengan menjalankan satu layanan untuk tiap mesin virtual, resiko gangguan yang disebabkan pengaruh dari suatu layanan terhadap layanan lain dapat diminimalkan. Penggunaan metode ini tanpa menggunakan virtualisasi membutuhkan biaya yang besar karena dibutuhkan lebih banyak hardware dan biaya perawatan yang tinggi. Dengan menggunakan virtualisasi, layanan dapat dijalankan pada mesin virtual tertentu yang bekerja pada suatu node.
Virtualisasi memiliki beberapa kelebihan yang dapat dimanfaatkann pada sistem high availability. Antara lain: Fleksibilitas. Seseorang dapat menjalankan beberapa operating system pada sebuah komputer, memungkinkan terjadinya migrasi mesin virtual ke komputer lainnya. Availability. Mesin virtual berjalan ketika node fisik tetap dapat dimatikan, sebagai contoh ketika upgrade dan maintenance hardware. Scalability. Mudah untuk menambahkan atau memindahkan node fisik. Utilisasi hardware. Utilisasi hardware meningkat ketika melayani beberapa operating system secara bersama. Keamanan. Hal ini disebabkan oleh pemisahan layanan. Kekurangan dari virtualisasi: Overhead. Mengakibatkan berkurangnya performa yang disebabkan oleh virtualisasi. Performa akan berkurang karena fleksibilitas ditingkatkan. SPOF (single point of failure). Walaupun mesin virtual mesin virtual terpisah dari hardware, tetap bergantung pada hardware agar dapat bekerja. Kerusakan pada hardware dapat menyebabkan gangguan pada mesin virtual. Hearbeat adalah salah satu tool yang dikembangkan oleh Linux High Availability (Linux-HAlayanann untuk mendukung kebutuhan high availability. Hearbeat dapat digunakan untuk mendeteksi node yang offline (mati), komunikasi antar node dan mengatur jaringan. [1,7] Xen adalah tool untuk virtualisasi yang dikembangkan University of Cambridge Computer Laboratory. Xen adalah software open source dan gratis untuk digunakan dan dimodifikasi. Dengan Xen, beberapa mesin virtual dapat bekerja bersama pada sebuah komputer tanpa saling mempengaruhi. 2. PERANCANGAN DAN IMPLEMENTASI 2.1. Perancangan Topologi yang digunakan pada penelitian ini ditunjukkan pada gambar dibawah ini. Design tersebut memiliki banyak kekurangan khususnya dalam masalah single point of failure,, tetapi hal ini tidak akan diperhitungkan karena penelitian ini akan membahas kestabilan sistem ketika suatu layanan mati, dan tidak memperhitungkan kesalahan yang berhubungan dengann redundansi hardware. Gambar 1. Topologi pada penelitian 2.2. Impelementasi Daemon pada Heartbeat bekerja pada jaringan untuk mengkomunikasikann status node setiap waktu. Ketika suatu node mengalami gangguan, proses migrasi mesin virtual akan dilakukan ke node lainnya. Ketika node yang mengalami gangguann tersebut sudah diperbaiki dan kembali hidup, proses migrasi kembali dilakukan untuk mengembalikan mesin virtual yang telah dimigrasikan ke node asalnya. Disk image dari tiap mesin virtual disimpan pada shared storage, membuat setiap mesin virtual dapat dijalankan pada semua node. Salah satu masalah dari sistem ini adalah mesin virtual yang sama dapat dijalankan secara bersamaan pada lebih dari satu node. Hal ini akan menyebabkan masalah pada integritas dari image mesin virtual tersebut akan rusak.
Berbagai tool tersedia untuk mengatasi masalah ini. Dua teknik yang dapat digunakan pada Heartbeat dinamakan node fencing dan STONITH (Shoot The Other Node In The Head). Pada penelitiann ini digunakan metode STONITH. Ketika suatu node berhenti mengirim Heartbeat yang menyatakan bahwa node tersebut menyala, STONITH akan memastikan bahwa node tersebut telah mati. Pada penelitian ini STONITH akan memastikan bahwa node yang berhenti mengirimkan Heartbeat tidak menjalankan mesin virtualnya dengan cara mematikan akses terhadap shared storage sehingga mesin virtual tidak dapat dijalankan. Konfigurasi pada Heartbeat adalah mengatur layanan dengan menggunakan init.d scripts menggunakann perintah start, stop dan status. Ini dilakukan untuk menjalankan dan memberhentikan Heartbeat dan juga memeriksa layanann yang sedang berjalan. Kegagalan padaa suatu hardware dapat disimulasikan dengan mematikan dan menyalakan mesin virtual. Terjadinya migrasi mesin virtual dari suatu hardware ke hardware lainnyaa dapat disimulasikan dengan cara mematikan mesin virtual pada salah satu node dan dijalankan pada node lainnya. Mesin virtual tidak berjalan pada selang waktu antara mematikan mesin virtual dan menyalakan kembali di node lainnya. Hal ini dapat dilakukan dengan perintah xm create untuk menghidupkan mesin virtual dan xm shutdown untuk mematikan mesin virtual. 3. PENGUKURANN DAN ANALISIS Untuk penelitian ini akan digunakan sebuah komputer yang terhubung dengan topologi yang digunakan menggunakan jaringan LAN. Komputer inii berguna sebagai client untuk melakukan berbagai percobaan yang dilakukan untuk pengukuran dan analisis terhadap topologi yang digunakan. Gambar 2. Topologi untuk percobaan 3.1. Pengaruh Migrasi Terhadap Latency Jaringan Pengukuran ini dilakukan untuk mengetahui dampak migrasi terhadap dimensi waktu. Hal ini penting dilakukan untung mengetahui dampak migrasi terhadap layanan yang membutuhkan latency rendah. Round trip time digunakan untuk mengilustrasikan dampak dari live migration terhadap latency jaringan. pada percobaan ini akan dikirimkan 1000 paket dengan kecepatan 100 paket setiap detik dari client. Percobaan ini akan berlangsung selama 10 detik dan dinyatakan dalam sumbu x pada grafik. Perintah yang digunakan pada sisi client untuk melakukan percobaan ini adalah ping c 1000 i 0.01 vm01. Output dari perintah ping adalah round trip time dari setiap paket. Round trip time akan dinyatakan dalam sumbu y pada grafik. Sebuah gangguan terkontrol disimulasikan pada saat perintah ping tersebut dijalankan. Gangguan tersebut disimulasikan dengan menggunakan perintah untuk menghentikan Heartbeat pada node yang menjalankan vm01. Perintah yang digunakan pada node yang menjalankan vm01, node1, adalah /etc/init.d/heartbeat stop. Perintah tersebut akan menghentikan Heartbeat yang dikirimkan oleh node1 dan mengasumsikan node1 telah offline (mati).
Mesin virtual yang dijalankan oleh node1 akan dimigrasikan ke node2. round trip time paket 2 1.5 1 0.5 0 Gambar 3. Grafik round trip time paket saat terjadi gangguan terkontrol. Grafik diatas menunjukkan bahwa migrasi mesin virtual terjadi pada jangka waktu 3,8 detik dan 5,7 detik. Grafik tersebut juga menunjukkan bahwa pada saat migrasi, outage yang dihasilkan sangat kecil dikarenakan paket tetap diterima ketika migrasi terjadi. Paket ping yang hilang pada percobaan ini adalah antara 8 hingga 17 paket untuk satu kali gangguan. 3.2. Paket yang Hilang 0 5 10 waktu Untuk mengukur downtime yang terjadi dapat dilakukan dengan mengirimkan sejumlah paket setiap detiknya kemudian dihitung jumlah paket yang hilang ketika terjadi satu kali gangguan. Hal ini penting untuk trafik UDP (connectionless), dan dapat digunakan untuk menghitung outage berdasarkan jumlah paket per detik dan jumlah paket yang hilang untuk satu kali gangguan. Pada percobaan ini akan digunakan ZNI IP Traffic Test and Measurement. Software ini digunakan sebagai generator paket. Fitur-fitur yang terdapat pada software ini antara lain menentukan protokol yang digunakan (TCP atau UDP), besar paket, jumlah paket yang dikirimkan tiap detik, dll. Software ini digunakan untuk mensimulasikan trafik yang terjadi pada jaringan. Maka didapatkan tabel sebagai berikut untuk memperhitungkan waktu downtime ketika terjadi sebuah gangguan. Kecepatan Paket Downtime dengan gangguan Downtime dengan migrasi Xen 10 pps 0,37 0,38 50 pps 0,496 0,427 100 pps 0,5245 0,481 Tabel 1. Waktu downtime (dalam detik) karena gangguan dan live migration. Dengan hasil diatas didapatkan bahwa waktu downtime sistem akan meningkat ketika kecepatan pengiriman paket bertambah. Hal ini disebabkan karena kecepatan pengiriman paket akan mempengaruhi kinerja sistem dan jaringan sehingga proses migrasi akan berjalan lebih lambat. Hal ini menyebabkan waktu downtime pada sistem yang menerima paket dengan kecepatan tinggi menjadi lebih lama. Berdasarkan tabel diatas, waktu downtime karena live migration lebih rendah daripada downtime ketika terjadi gangguan, yang disimulasikan dengan mematikan Heartbeat pada node yang bersangkutan. Hal ini disebabkan karena jaringan akan mengkomunikasikan Heartbeat terlebih dahulu ketika terjadi gangguan dan hal tersebut akan menambah trafik pada jaringan sehingga waktu downtime akan lebih lama. 3.3. Dampak pada Transfer File Transfer file menggunakan protokol TCP yang bersifat connection-oriented. Pada protokol TCP, jika sebuah paket tidak terkirim akan dilakukan retransmisi hingga penerima menyatakan bahwa paket telah diterima. File yang akan digunakan pada percobaan ini adalah file ISO image dari Ubuntu, ubuntu- 7.10-desktop-i386.iso. Besar file tersebut adalah 729.608.192 bytes, 695 MB. ansfer tersebut menggunakan perintah: scp vm02@vm02:/ubuntu-7.10-desktop-i386.iso ubuntu-7.10-desktop-i386.iso.
90.00 80.00 70.00 60.00 50.00 40.00 30.00 20.00 10.00 0.00 komputer komputer komputer mesin virtual komputer mesin virtual dengan gangguan Gambar 4. Grafik waktu yang dibutuhkan untuk transfer file. Dari hasil yang didapat diketahui bahwa gangguan pada sistem tidak akan menyebabkan terputusnya transfer file. transfer file akan tetap berjalan walaupun mesin virtual mengalami gangguan, hal ini disimulasikan dengan mematikan Heartbeat pada node yang bersangkutan. Waktu yang dibutuhkan untuk transfer file pada mesin virtual membutuhkan waktu lebih lama dibandingkan dengan transfer file antar komputer. Hal ini diakibatkan karena penggunaan sistem shared storage yang harus mengkomunikasikan proses yang sedang dilakukan pada node lainnya. Hal ini menyebabkan trafik pada sistem menjadi lebih besar. Waktu yang dibutuhkan untuk transfer file dari komputer ke mesin virtual dengan gangguan lebih lama dibandingkan dengan tanpa gangguan. Hal ini dikarenakan downtime yang terjadi karena migrasi mesin virtual. Downtime yang terjadi saat terjadi gangguan ketika transfer file ini sekitar 3,7 detik. Hasil yang didapat cukup baik untuk menyediakan layanan transfer file karena koneksi transfer tidak terputus saat terjadi gangguan dan waktu yang dibutuhkan untuk transfer tidak meningkat terlalu signifikan jika dibandingkan dengan waktu untuk transfer tanpa gangguan. BAB 5. KESIMPULAN 1. Teknik virtualisasi dapat digunakan untuk menyediakan layanan high availability. Dengan virtualisasi perancangan sistem high availability membutuhkan hardware lebih sedikit, penggunaan resource hardware lebih efisien dibandingkan dengan metode klasik. 2. Perancangan dan implementasi yang digunakan pada penelitian ini berjalan dengan baik dengan melihat dan menganalisis hasil yang didapat pada bab 4. Metode ini berjalan baik untuk menyediakan layanan high availability dengan meminimalkan waktu downtime suatu sistem. 3. Akibat dari gangguan yang disengaja diukur dengan menggunakan paket ICMP, trafik TCP (transfer file) dan UDP. Hasil yang didapat menunjukkan waktu downtime yang cepat dan status koneksi tetap terjaga ketika terjadi migrasi. 4. Availability pada percobaan diatas cukup kecil dengan nilai antara 95 dan 98 persen. Hal ini dikarenakan waktu total uptime sistem, berdasarkan waktu yang dibutuhkan untuk melakukan sebuah percobaan, cukup kecil. Hasil yang didapat dari percobaan ini cukup baik untuk satu kali gangguan. DAFTAR PUSTAKA [1] Alan Robertson, Linux-HA Release 2 Tutorial, Linux.conf.au, 2007. http://www.linuxha.org/heartbeattutorials. [2] Andi Mann, Virtualization 101: Technologies, Benefits, and Challenges, Enterprise Management Associates, 2006. whitepapers.techrepublic.com.com/abs tract.aspx?docid=254502 [3] Bryan Clark, Todd Deshane, Eli Dow, Stephen Evanchik, Matthew Finlayson, Jason Herne, dan Jeanna Neefe Matthews. Xen and the Art of
Virtualization, USENIX Annual Technical Conference, FREENIX Track, USENIX, 2004. research.microsoft.com/~tharris/paper s/2003-sosp.pdf [4] Christopher Clark, Xen User s Manual, 2002. bits.xensource.com/xen/docs/user.pdf [5] Oracle Cluster File System (OCFS2) User s Manual. http://oss.oracle.com/projects/ocfs2/ [6] Philipp Reisner, DRBD v8 - Replicated Storage with Shared Disk Semantics, Proceedings of the 12th International Linux System Technology Conference October 11-14, 2005 at University of Hamburg, Germany. edited, revised 2007. www.drbd.org/fileadmin/drbd/publicati ons/drbd8.pdf [7] Robertson, A.L., Programming for Linux-HA, UKUUG LISA/Winter Conference High Availability and Reliability, Bournemouth, UK, 25-26 February, 2004. http://www.linuxha.org/heartbeattutorials [8] Singh, Amit. An Introduction to Virtualization, 2003. www.kernelthread.com/publications/vir tualization/