Cloud Computing Server Virtualization Agenda Virtualization Technique CPU

  • Slides: 24
Download presentation
Cloud Computing Server Virtualization

Cloud Computing Server Virtualization

Agenda • Virtualization Technique • CPU Virtualization • Emulation techniques • Trap and emulate

Agenda • Virtualization Technique • CPU Virtualization • Emulation techniques • Trap and emulate model • Hardware assistance • Memory Virtualization • Shadow page table • Hardware assistance • IO Virtualization • Overview • Device model • Hardware assistance • Ecosystem § VMware § Xen § KVM • Other Issues § Live migration § Cloud properties

Emulation techniques Trap and emulate paradigm Hardware assistance CPU VIRTUALIZATION

Emulation techniques Trap and emulate paradigm Hardware assistance CPU VIRTUALIZATION

Emulation Technique • Kenapa teknik virtualisasi ? • Teknik virtuali. Isasi sebenarnya dapat dikategorikan

Emulation Technique • Kenapa teknik virtualisasi ? • Teknik virtuali. Isasi sebenarnya dapat dikategorikan sebagai teknik sebuah teknik emulasi. • Banyak teknik virtualisasi di bangun atau diturunkan dari teknik emulasi. • Tujuan dari emulasi: • Membuat sebuah metode membangun sebuah atau beberapa (sub)system untuk interface dan karakteristik yang sama dengan hardware fisik atau emulasi lainnya

Emulation Technique • Tiga implementasi emulasi: • Interpretation • Emulator mengimprementasi hanya satu instruksi

Emulation Technique • Tiga implementasi emulasi: • Interpretation • Emulator mengimprementasi hanya satu instruksi dalam satu waktu. • Static Binary Translation • Emulator mengartikan sebuah block binary dari guest dalam suatu waktu dan selanjutnya dioptimalkan untuk mengulangi eksekusi instruksi yang ada. • Dynamic Binary Translation • Ini adalah pendekatan hybird dari emulator, dimana metode ini menggabungkan dua pendekatan diatas. • Design challenges and issues: • Masalah register mapping • Peningkatan performansi

Interpretation

Interpretation

Interpretation • interpreter flow : 1. Memberikan satu instruksi guest dalam satu waktu dari

Interpretation • interpreter flow : 1. Memberikan satu instruksi guest dalam satu waktu dari memory image guest. 2. Mendekode dan melepaskan kepada unit emulasi yang sesuai. 3. Mengeksekusi dungsi dari instrukti dan memodifikasi beberapa sistem yang berhubungan dengan emulasi, contohnya adalah mensimulasi nilai register. 4. Meningkatkan guest PC (Program Counter Register) dan lalu mengulangi lagi proses tersebut. • Pros & Cons • Pros • Mudah untuk diemplementasi • Cons • Kinerja yang jelek.

Static Binary Translation • Menggunakan konsep dari basic block yang datang dari teknik optimisasi

Static Binary Translation • Menggunakan konsep dari basic block yang datang dari teknik optimisasi kompiler (compiler optimization technique). • Sebuah basic block adalah bagian dari kode dalam program dengan properti-properti tertentu yang membuatnya sangat diterima untuk dianalisis. • Sebuah basic block mempnyai hanya satu masukan, artinya tidak ada kode dalam tujuannya dari sebuah lompatan instruksi, dimanapun dalam sebuah program. • Sebuah basic block hanya mempunya satu keluaran, artinya hanya instruksi terakhir yang dapat membuat program untuk memulai mengeksekusi program untuk mengeksekusi kode yang berada dalam basic block lainnya.

Binary Translation

Binary Translation

Static Binary Translation • Static binary translation flow : 1. Memberikan satu blok dari

Static Binary Translation • Static binary translation flow : 1. Memberikan satu blok dari instruksi guest memory image. 2. Mendekode dan menyalurkan setiap instruksi kepada unit translasi yang bersangkutan. 3. Mengartikan/mentranslasi instruksi guest kepada instruksi host. 4. Menulis instruksi host yang telah diartikan kedalam cache kode. 5. Mengeksekusi block instruksi yang telah diartikan didalam cache kode. • Pros & Cons • Pros • Emulator dapat menggunakan kembali kode host yang telah digunakan. • Emulator dapat mencoba optimisasi lebih ketika mentranslasikan block guest. • Cons • Kerumitan implementasi akan meningkat.

Comparison • Implementasi interpretation • Impllementasi static binary translation

Comparison • Implementasi interpretation • Impllementasi static binary translation

Dynamic Binary Translation • Implementasai hybird • Ketika pertama kali ditemukan kode, langsung di

Dynamic Binary Translation • Implementasai hybird • Ketika pertama kali ditemukan kode, langsung di interpretasikan oleh interpreter, dan merekam kode ini sebagai ‘discovered. • Ketika kode gust ditemukan, maka akan mentrigger modul binary translasi untuk mentranslasi block-block kode guest kepada block-block kode host, dan menaruhnya kedalam cache kode. • Ketika menegksekusi kode dari guest dilain waktu, lompat ke cache kode dan mengeksekusi kode biner host yang telah ditranslasi. • Pros & Cons • Pros • Implementasi translasi biner secara transparan. • Cons • Susah untuk diimplementasikan.

Dynamic Binary Translation 1. Ketika pertama kali di eksekusi, tidak ada kode yang tertanslasi

Dynamic Binary Translation 1. Ketika pertama kali di eksekusi, tidak ada kode yang tertanslasi dalam cache kode. 2. Tidak melakukan perbandingan cache kode, dan langsung melakukan interpretasi ke instruksi guest. 3. Ketika block kode ditemukan, mentrigger modul biner translasi. 4. Translasi block kode guest ke biner, dan menaruhnya ke cache kode. 5. Ketika eksekusi selanjutnya, jalankan block kode yang telah tertlansasi di dalam cache kode. Binary Translator Guest Binary trigger Emulation Manager return miss Interpreter hit exit Host Binary Code Cache

Masalah register mapping Peningkatan performansi Design challenges and issues

Masalah register mapping Peningkatan performansi Design challenges and issues

Masalah register mapping • Kenapa kita harus me-mapping register-register ? • ISA yang berbeda

Masalah register mapping • Kenapa kita harus me-mapping register-register ? • ISA yang berbeda akan mendefinisikan nomer register yang berbeda. • Kadang guest ISA bahkan membutuhkan beberapa tujuan register khusus ketika host ISA tidak mendefinisikannya.

Masalah register mapping • Me-mapping register-register dengan tujuan khusus: • Map tujuan khusus pada

Masalah register mapping • Me-mapping register-register dengan tujuan khusus: • Map tujuan khusus pada register • • • Program Counter Register Stack Pointer Register Page Table Register System Statues Register Special Flags Register • Menahan guest context dan memory image • Map register untuk tujuan umum • Map nilai intermediate

Masalah register mapping • Jika jumlah host register lebih banyak dari pada register guest

Masalah register mapping • Jika jumlah host register lebih banyak dari pada register guest • Akan mempermudah implementasi. • Langsung me-mapping satu register dari guest kepada salah satu host, dan membuat register lainnya untuk optimisasi. • Example : • mentranslasi kode biner x 86 ke RISC (Reduced Instruction Set Computing) • Jika jumlah register host tidak cukup • Maka akan membutuhkan banyak usaha mapping untuk host. • Emulator mungkin hanya dapat me-mapping beberapa register yang sering digunakan kepada host, dan meninggalkan register sisanya kedalam. • Keputusan mapping akan menjadi sangat penting.

Peningkatan Performansi • Apa saja permasalahan dalam performansi ? • Masalah control flow •

Peningkatan Performansi • Apa saja permasalahan dalam performansi ? • Masalah control flow • Banyaknya frekuensi perpindahan context antara cache kode dan manajer emulasi akan menurunkan performansi. • Optimisasi target kode • Hanya mentranslasi satu kode dalam satu waktu akan membuat beberapa kesempatan optimisasi menurun. • Solusi : • Translation Chaining • Dynamic Optimization

Translation Chaining • Control flow yang tidak teroptimisasi antara block-block yang telah tertlansasi dan

Translation Chaining • Control flow yang tidak teroptimisasi antara block-block yang telah tertlansasi dan manajer emulasi. Context Switches

Translation Chaining • Lompat dari satu translasi langsung ke dalam translasi yang lain dengan

Translation Chaining • Lompat dari satu translasi langsung ke dalam translasi yang lain dengan cara menjauhkan koneksi balik ke manajer emulasi.

Dynamic Optimization • Bagaimana untuk mengoptimiasai kode-kode biner ? • Static optimization (compiling time

Dynamic Optimization • Bagaimana untuk mengoptimiasai kode-kode biner ? • Static optimization (compiling time optimization) • Teknik optimisasi yang digunakan untuk menggenerate kode biner yang berdasarkan informasi semantik di source code. • Dynamic optimization (run time optimization) • Teknik optimisasi yang digunakan untuk menggenerate base kode biner pada informasi runtime yang berhubungan dengan input data program. • Kenapa menggunakan teknik dynamic optimization ? • Keuntungan : • Mendapatkan keuntungan dari dynamic profiling. • Tidak dipaksakan oleh unit kompilasi. • Tahu eksekusi environment yang benar.

Dynamic Optimization • Bagaimana mengimplementasikan dynamic optimization ? • Menganalisis behavior program di dalam

Dynamic Optimization • Bagaimana mengimplementasikan dynamic optimization ? • Menganalisis behavior program di dalam run time. • Mengumpulkan informasi profiling run time Collect run time berdasarka data input dan karakteristik hardware host. • Mentranslasi atau memodifikasi secara dinamis kode biner dengan mengurutkan ulang instruksi atau teknik lainnya. • Menulis ulang biner yang telah dioptimisasi kedalam cache kode untuk eksekusi selanjutnya.

Dynamic Optimization • Bagaimana menganalisa behavior program dan profile? • Mengumpulkan statistik tentang bagaimaa

Dynamic Optimization • Bagaimana menganalisa behavior program dan profile? • Mengumpulkan statistik tentang bagaimaa program berjalan • • Branches (taken, not taken) Jump targets Data values Cache misses • Kemampuan prediksi membuat statistik ini di gunakan untuk optimisasi dan digunakan untuk kebutuhan di masa mendatang • Profiling dalam sebuah VM (Virtual Machine) berbeda dengan profiling tradisional yaitu dengan menggunakan umpan balik untuk compiler.

Dynamic Optimization • Dynamic binary translasi dan optimisasi :

Dynamic Optimization • Dynamic binary translasi dan optimisasi :