Xen Is Not Just Paravirtualization

Xen Is Not Just Paravirtualization

Xen is not just paravirtualization Dongli Zhang Oracle Asia Research and Development Centers (Beijing) [email protected] December 16, 2016 Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 1 / 30 When discussing virtualizatin … 1) CPU Virtualization? 2) Memory Virtualization? 3) Device Virtualization? Plan Virtualization Xen Virtualization Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 2 / 30 When discussing virtualizatin … 1) CPU Virtualization? 2) Memory Virtualization? 3) Device Virtualization? Plan Virtualization Xen Virtualization Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 2 / 30 What is virtualization A virtual machine is taken to be an efficient, isolated duplicate of the real machine (by Formal Requirements for Virtualizable Third Generation Architectures, Gerald J.Popek and Rebert P. Goldberg, 1974) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 3 / 30 What is virtualization A virtual machine is taken to be an efficient, isolated duplicate of the real machine (by Formal Requirements for Virtualizable Third Generation Architectures, Gerald J.Popek and Rebert P. Goldberg, 1974) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 3 / 30 Guest OS + Applications d e g e l i v i r p n U Page Privileged vIRQ Fault Instruction d e g e l MMU Emulation CPU Emulation IRQ Emulation i v i r P Virtual Machine Monitor Trap and Emulate Virtual Machine Monitor (Host or Hypervisor) at Virtual Machine (Guest) at Dongli Zhang (Oracle) Unprivileged Mode Xen is not just paravirtualization Priviledged Mode December 16, 2016 4 / 30 18 critical instructions on x86 (Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor. USENIX Security 2000): SGDT/SIDT/SLDT, SMSW, PUSHF/POPF LAR/LSL, VERR/VERW, POP/PUSH CALL, JMP, INT n, RET STR, MOV Solutions: Binary Translation (QEMU, VMWare) Paravirtualization (Xen) Hardware-Assisted Virtualization (Xen, KVM, VMWare based on Intel-VT and AMD-V) x86 is NOT virtualizable Virtualizable Architecture: all sensitive instructions must also be privileged instructions (by Gerald J.Popek and Rebert P. Goldberg) critical instructions = sensitive instructions − privileged instructions Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 5 / 30 Solutions: Binary Translation (QEMU, VMWare) Paravirtualization (Xen) Hardware-Assisted Virtualization (Xen, KVM, VMWare based on Intel-VT and AMD-V) x86 is NOT virtualizable Virtualizable Architecture: all sensitive instructions must also be privileged instructions (by Gerald J.Popek and Rebert P. Goldberg) critical instructions = sensitive instructions − privileged instructions 18 critical instructions on x86 (Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor. USENIX Security 2000): SGDT/SIDT/SLDT, SMSW, PUSHF/POPF LAR/LSL, VERR/VERW, POP/PUSH CALL, JMP, INT n, RET STR, MOV Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 5 / 30 x86 is NOT virtualizable Virtualizable Architecture: all sensitive instructions must also be privileged instructions (by Gerald J.Popek and Rebert P. Goldberg) critical instructions = sensitive instructions − privileged instructions 18 critical instructions on x86 (Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor. USENIX Security 2000): SGDT/SIDT/SLDT, SMSW, PUSHF/POPF LAR/LSL, VERR/VERW, POP/PUSH CALL, JMP, INT n, RET STR, MOV Solutions: Binary Translation (QEMU, VMWare) Paravirtualization (Xen) Hardware-Assisted Virtualization (Xen, KVM, VMWare based on Intel-VT and AMD-V) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 5 / 30 Solution 1/3: Binary Translation philosophy: rewrite critical instructions Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 6 / 30 Solution 2/3: Hardware Virtualization (Intel VT) philosophy: instroduce new privileged mode Ring 3 Ring 3 Ring 0 Ring 0 VM Entry Non-Root VM Entry Non-Root Mode (Guest) Mode (Guest) VM Exit VM Exit Ring 3 Ring 0 VMXON VMOFF Root Mode (VMM) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 7 / 30 KVM (Kernel-based Virtual Machine) CPU hardware virtualization extensions (Intel VT or AMD-V) Loadable kernel module (kvm.ko, kvm-intel.ko/kvm-amd.ko) QEMU as userspace emulator Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 8 / 30 Solution 3/3: Paravirtualization philosophy: replace critical instructions with hypercalls A hypercall is a software trap from a domain to the hypervisor, just as a syscall is a software trap from an application to the kernel x86 32: int 0x82 x86 64: syscall instruction x86 Intel-VT vmcall instruction user user user System call via syscall non-root ring 3 ring 3 ring 3 kernel kernel kernel non-root Hypercall via int 0x82 ring 1 Hypercall via syscall ring 3 Hypercall via vmcall ring 0 xen xen xen ring 0 Xen hypervisor will checks ring 0 root in which mode the syscall instruction is triggered ring 0 x86 32-bit pvm x86 64-bit pvm x86 vt-x hvm/pvhvm Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 9 / 30 Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization (Linux Container) Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin) State of the Art Virtualization Binary Translation (QEMU, Bochs, VMWare) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization (Linux Container) Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin) State of the Art Virtualization Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 OS-level Virtualization (Linux Container) Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin) State of the Art Virtualization Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin) State of the Art Virtualization Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization (Linux Container) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 Library Virtualization (Wine, Cygwin) State of the Art Virtualization Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization (Linux Container) Programming Language Virtualization (Java, .NET CLR) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 State of the Art Virtualization Binary Translation (QEMU, Bochs, VMWare) Paravirtualization (Xen) Hardware-assisted Virtualization (KVM, Xen, VMware) OS-level Virtualization (Linux Container) Programming Language Virtualization (Java, .NET CLR) Library Virtualization (Wine, Cygwin) Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 10 / 30 SOSP 2003: Xen and the Art of Virtualization This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality. Basic Idea of Paravirtualization Actively inform the hypervisor with the action guest is going to taken via hypercall What is Xen Wikipedia Xen Project is a hypervisor using a microkernel design, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 11 / 30 Basic Idea of Paravirtualization Actively inform the hypervisor with the action guest is going to taken via hypercall What is Xen Wikipedia Xen Project is a hypervisor using a microkernel design, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. SOSP 2003: Xen and the Art of Virtualization This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality. Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 11 / 30 What is Xen Wikipedia Xen Project is a hypervisor using a microkernel design, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. SOSP 2003: Xen and the Art of Virtualization This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality. Basic Idea of Paravirtualization Actively inform the hypervisor with the action guest is going to taken via hypercall Dongli Zhang (Oracle) Xen is not just paravirtualization December 16, 2016 11 / 30 dom0 (host): privileged admin xm/xend/xl (libxc) pygrub/hvmloader xenstored qemu and paravirtual driver backend

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    61 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us