METODE PRE-COPY DAN IMPLEMENTASI BALLOONING
Luqman Hakiim Aunur Rahman¹, Bayu Erfianto², Tri Brotoharsono³
¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom
Abstrak
Pada live migration virtual machine, termasuk dengan metode pre-copy, terdapat permasalahan dimana page memory kosong dari virtual machine tetap di-transfer ke host tujuan ketika migrasi berlangsung. Hal ini harus dihindari karena selain tidak berguna, juga menambah total migration time, yang harus diusahakan sekecil mungkin dalam live migration virtual machine. Teknik yang diusulkan untuk mengatasi permasalahan ini adalah dengan mengoptimalkan transfer page memory virtual machine menggunakan ballooning.
Pada tugas akhir ini, dibuat sistem untuk melakukan live migration virtual machine dengan metode pre-copy dan mengimplementasikan ballooning pada virtual machine untuk dilakukan analisis pengaruh implementasi ballooning terhadap performansi live migration virtual machine diukur dari page transferred dan total migration time.
Hasil pengujian menunjukkan bahwa implementasi ballooning dapat meningkatkan performansi live migration virtual machine yang menggunakan metode pre-copy dengan mengoptimalkan proses transfer page memory virtual machine hingga 15,39% pada skenario yang
merepresentasikan best-case workload dan 8,93% pada skenario yang merepresentasikan worst- case workload, ketika workload yang diberikan ke memory sebesar 128 MB, dengan trade-off yang sangat kecil. Hal ini dikarenakan ballooning dapat mengembalikan sebagian page memory
kosong yang tidak terpakai pada virtual machine kepada hypervisor, sehingga page memory tersebut tidak perlu di-transfer dan proses live migration berlangsung lebih cepat, tanpa peningkatan CPU usage yang signifikan.
Kata Kunci : Virtual Machine, Live Migration, Pre-Copy, Ballooning, Page Transferred, Total Migration Time.
Abstract
In the virtual machine live migration, including pre-copy method, there is a problem where free unalocated pages of virtual machine’s memory will still be transferred to the destination host when migration takes place. This should be avoided, because not only useless, it will also increase the total migration time, which should be kept as small as possible in the virtual machine live migration. The technique proposed to overcome this problem is by optimizing the virtual machine’s memory page transfer using ballooning.
At this final project, a system is created to perform virtual machine live migration with pre-copy method and implements ballooning in virtual machine to analyze the effect of ballooning implementation to virtual machine live migration’s performance, measured from the page transferred and total migration time.
The tests showed that implementation of ballooning can improve the performance of virtual machine live migration that uses pre-copy method by optimizing the virtual machine’s memory pages transfer up to 15.39% in the scenario that represents the best-case workload and 8.93% in the scenario that represents the worst-case workload, when the workload given to the memory is 128 MB, with a very small trade-off.
Keywords : Virtual Machine, Live Migration, Pre-Copy, Ballooning, Page Transferred, Total Migration Time.
1 Pendahuluan
1.1 Latar Belakang Masalah
Belakangan ini, ketertarikan terhadap virtualisasi sistem operasi semakin meningkat, terutama dari kalangan data center dan komunitas cluster computing.
Dengan virtualisasi sistem operasi sebuah physical machine (seperti server) dapat menjalankan beberapa sistem operasi secara bersamaan. Keuntungan utama dari virtualisasi sistem operasi ini antara lain kemampuannya untuk melakukan load balancing, isolasi terhadap masing-masing instansi sistem operasi, meningkatkan utilisasi dari physical machine, dan fault tolerance [2] [3]. Hal ini membuat virtualisasi sistem operasi menjadi pilihan yang aman dan efisien untuk digunakan pada cluster environment, data center, dan distributed infrastructure lainnya.
Salah satu keuntungan lain dari virtualisasi sistem operasi adalah kemampuannya untuk melakukan live migration virtual machine. Live migration virtual machine adalah proses memindahkan virtual machine dari satu physical machine ke physical machine lainnya tanpa mengganggu jalannya virtual machine dan servis- servis di dalamnya [2] [3]. Dengan live migration, virtual machine yang dimigrasi dapat berjalan pada host tujuan secara independen, tanpa ketergantungan terhadap host asal. Dengan begitu, host asal dapat dimatikan ketika proses migrasi telah selesai, dimana hal tersebut berguna apabila migrasi dilakukan dengan tujuan untuk maintenance dari host asal [2] [6]. Selain itu, live migration virtual machine juga dapat digunakan untuk tujuan load balancing. Semua ini dilakukan tanpa membutuhkan client yang menggunakan servis yang ada di virtual machine untuk membangun ulang koneksi, sehingga seolah-olah tidak terjadi apa-apa dari sudut pandang client [2].
Ada beberapa metode live migration, antara lain pre-copy dan post-copy. Akan tetapi, pada penerapannya metode yang banyak digunakan adalah pre-copy. Hal ini dikarenakan reliabilitas dari metode pre-copy, yang mana apabila host tujuan mengalami failure, host asal masih menyimpan state memory dan CPU yang up- to-date, sehingga jika perlu virtual machine dapat dibangkitkan dari sini [2].
Metode pre-copy bertujuan untuk membuat downtime sekecil mungkin dengan cara meminimalisasi jumlah state dari virtual machine yang harus di-transfer saat downtime.
Akan tetapi, pada live migration, baik dengan menggunakan metode pre-copy maupun post-copy, terdapat permasalahan dimana page memory yang kosong dari virtual machine akan tetap di-transfer ke host tujuan ketika migrasi berlangsung.
Proses transfer page memory kosong ini harus dihindari karena selain tidak
berguna, juga akan menambah total migration time, yang mana harus diusahakan sekecil mungkin dalam proses live migration virtual machine [1] [3] [4].
Ballooning adalah sebuah teknik untuk mengambil page memory yang tidak terpakai oleh sistem operasi virtual machine kemudian mengembalikannya ke hypervisor (inflating balloon) dan juga meminta page memory dari hypervisor kemudian mengembalikannya ke sistem operasi virtual machine (deflating balloon) [1] [8]. Ballooning diimplementasikan menggunakan balloon driver yang terdapat pada kernel sistem operasi pada virtual machine. Pada kebanyakan hypervisor, ballooning hanya digunakan pada saat inisialisasi dari virtual machine. Apabila hypervisor tidak dapat menyediakan memory yang cukup ketika membuat sebuah virtual machine baru, hypervisor akan mengambil memory yang tidak terpakai dari virtual machine lain, dan akan dikembalikan ke virtual machine tersebut apabila memory sudah tersedia kembali.
Teknik yang diusulkan untuk mengatasi permasalahan transfer page memory yang kosong pada live migration virtual machine adalah dengan mengoptimalkan transfer page memory virtual machine menggunakan ballooning [1] [3] [4].
Dengan ballooning page memory kosong yang tidak terpakai pada virtual machine akan ditandai oleh balloon driver dan dikembalikan pada hypervisor, sehingga ketika transfer page memory pada proses live migration terjadi, jumlah page memory yang harus dikirim menjadi berkurang.
Pada tugas akhir ini akan diimplementasikan ballooning untuk mengoptimalkan transfer page memory virtual machine ketika proses live migration virtual machine dengan metode pre-copy berlangsung.
1.2 Perumusan Masalah
Permasalahan yang menjadi objek dalam penelitian tugas akhir ini antara lain:
1. Bagaimana mengimplementasikan ballooning untuk mengoptimalkan transfer page memory virtual machine ketika proses live migration virtual machine dengan metode pre-copy berlangsung?
2. Bagaimana pengaruh implementasi ballooning terhadap performansi live migration virtual machine dengan metode pre-copy?
1.3 Batasan Masalah
Batasan masalah dalam penelitian tugas akhir ini antara lain:
1. Analisis dilakukan dengan membandingkan hasil pengujian performansi live migration virtual machine dengan metode pre-copy ketika menggunakan ballooning dan tidak menggunakan ballooning.
2. Parameter performansi yang akan diuji adalah page transferred dan total migration time.
3. Tidak membahas secara mendalam mekanisme-mekanisme yang ada pada live migration virtual machine dengan metode pre-copy selain mekanisme perpindahan page memory.
4. Tidak membahas masalah kemanan pada live migration virtual machine.
1.4 Tujuan
Tujuan yang ingin dicapai dalam tugas akhir ini antara lain:
1. Mengimplementasikan ballooning dalam proses live migration virtual machine dengan metode pre-copy untuk mengoptimalkan transfer page memory virtual machine ketika migrasi berlangsung.
2. Menganalisis pengaruh implementasi ballooning terhadap performansi live migration virtual machine dengan metode pre-copy diukur dari page transferred dan total migration time-nya.
Hipotesis:
Ballooning dapat mengembalikan page memory kosong yang tidak terpakai pada virtual machine kepada hypervisor. Dengan begitu jumlah page memory yang di- transfer selama proses migrasi dimulai hingga selesai berkurang dan transfer page memory virtual machine menjadi lebih optimal. Hal ini membuat total migration time dari proses live migration berkurang, sehingga bisa dikatakan performansi live migration virtual machine meningkat.
1.5 Metodologi Penyelesaian Masalah
Metodologi yang digunakan dalam memecahkan masalah di atas adalah dengan menggunakan langkah-langkah berikut:
1. Mengidentifikasi konsep live migration, kelebihan dan kekurangan metode yang ada, permasalahan transfer page memory pada live migration, dan cara mengatasi permasalahan tersebut dengan optimasi menggunakan ballooning.
2. Melakukan studi literatur yang berhubungan dengan live migration virtual machine, metode pre-copy, permasalahan transfer page memory pada live migration, optimasi transfer page memory dengan ballooning, dan informasi lainnya yang menunjang pembuatan tugas akhir ini.
3. Membangun sistem untuk melakukan live migration virtual machine dengan metode pre-copy dan membuat implementasi ballooning dalam sistem. Sistem terdiri atas dua physical machine yang bertindak sebagai host asal dan host tujuan migrasi, dimana pada keduanya di-install hypervisor. Kedua physical machine akan dihubungkan dengan switch dan menggunakan shared storage. Host asal akan menjalankan sebuah virtual machine di atas hypervisor, yang mana virtual machine ini akan dimigrasikan ke host tujuan. Sedangkan implementasi ballooning dilakukan dengan meng-install balloon driver pada sistem operasi yang dijalankan oleh virtual machine.
4. Melakukan pengujian dan pengambilan data. Pengujian dilakukan dengan melakukan live migration pada virtual machine yang menjalankan sebuah proses dari host asal ke host tujuan dengan ballooning dan tanpa ballooning. Sedangkan pengambilan data dilakukan dengan menjalankan aplikasi network traffic analyzer ketika live migration berlangsung. Data yang diambil adalah page transferred dan total migration time pada sistem yang menggunakan ballooning dan tidak menggunakan ballooning.
5. Menganalisis data yang didapat, mengambilan kesimpulan dan menyusun laporan tugas akhir.
1.6 Sistematika Penulisan
Tugas akhir ini disusun dengan sistematika penulisan sebagai berikut:
1. Pendahuluan
Bab ini menguraikan tugas akhir secara umum, meliputi latar belakang masalah, perumusan masalah, batasan masalah, tujuan, hipotesis, dan metodologi penyelesaian masalah.
2. Landasan Teori
Bab ini berisi uraian teori yang mendasari pembuatan tugas akhir, antara lain tentang virtualisasi, hypervisor, live migration, dan ballooning.
3. Perancangan dan Implementasi Sistem
Bab ini menjelaskan tentang perancangan sistem yang dilakukan dan langkah- langkah yang dilakukan dalam mengimplementasikan sistem berdasarkan rancangan yang telah dibuat, meliputi topologi sistem, skenario pengujian, instalasi guest (virtual machine) dan ballooning, implementasi live migration, proses pengambilan data, dll.
4. Pengujian Sistem dan Analisis
Bab ini berisi proses pengujian sistem, data hasil pengujian yang didapat, dan analisis dari data hasil pengujian.
5. Kesimpulan dan Saran
Bab ini berisi kesimpulan yang didapat dari tugas akhir ini dan saran-saran untuk tugas akhir ini.
5 Penutup
5.1 Kesimpulan
Berdasarkan hasil pengujian dan analisis yang dilakukan, maka dapat diambil kesimpulan bahwa implementasi ballooning dapat meningkatkan performansi dari live migration virtual machine yang menggunakan metode pre-copy dengan mengoptimalkan proses transfer page memory virtual machine dengan trade-off yang sangat kecil. Hal ini dikarenakan balloning dapat mengembalikan page memory kosong yang tidak terpakai pada virtual machine kepada hypervisor, sehingga page memory tersebut tidak perlu di-transfer ketika dan proses live migration berlangsung lebih cepat. Ballooning dapat mengurangi jumlah page memory yang harus dikirim hingga 15,39% pada skenario yang merepresentasikan best-case workload pada pre-copy dan 8,93% pada skenario yang merepresentasikan worst-case workload pada pre-copy, ketika workload yang diberikan ke memory sebesar 128 MB.
5.2 Saran
Setelah menyelesaikan proses pengerjaan tugas akhir ini, maka ada beberapa saran untuk bisa mengembangkan sistem menjadi lebih baik.
1. Menggunakan hardware dengan spesifikasi lebih baik.
2. Mencoba implementasi ballooning pada metode live migration virtual machine yang lain.
3. Menggunakan perangkat pengukuran yang dapat menangkap parameter pengujian, terutama page transferred, dengan tidak disertai data yang lain (misal: CPU state, dll.) dan tidak dipengaruhi oleh kondisi jaringan.
Daftar Pustaka
[1] Hines, R. M., Desphande U. & Gopalan K. (2009). Post-copy Live Migration of Virtual Machine. Computer Science: Binghamton University.
[2] Clark C., et al. (2005). Live Migration of Virtual Machines. Computer Laboratory:
University of Cambridge.
[3] Pang, Z. (2010). High Performance Live Migration over Low-Bandwidth, High-Delay Network with Loss Prevention. Department of Computing Science: University of Alberta.
[4] Sapuntzakis, C. P., et al. (2002). Optimizing the Migration of Virtual Computers.
Computer Science Department: Stanford University.
[5] Bradford R., et al. (2007). Live Wide-Area Migration of Virtual Machines Including Local Persistent State. Deutsche Telekom Laboratories.
[6] Voorsluys, W., et al. (2009). Cost of Virtual Machine Live Migration in Clouds: A Performance Evaluation. Grid Computing and Distributed Systems Laboratory:
University of Melbourne, Australia.
[7] Chisnall D. (2008). The Definitive Guide to the Xen Hypervisor. Pearson Education, Inc.:
Boston.
[8] Understanding Memory Resource Management in VMware ESX Server.
http://www.vmware.com/files/pdf/perf-vsphere-memory_management.pdf
[9] Marinescu D. C. (2012). Case study: Xen-a VMM based on paravirtualization. Pada Cloud Computing and Computer Clouds. Computer Science Division: University of Central Florida. hal. 106-110.
[10] Understanding Full Virtualization¸Paravirtualization, and Hardware Assist.
http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf
[11] Popek J. P. & Goldberg, R. P. (1974). Formal Requirements for Virtualizable Third Generation Architectures. University of California & Honeywell Information Systems and Harvard University.
[12] Varian, E. (2011). Analisis dan Implementasi Virtual Machine Migration pada Server untuk Layanan Berbasis Cloud Computing secara Dinamis. Fakultas Informatika: Institut Teknologi Telkom.