Virtualization - COMP 252 - Lecture 5syllabus.cs.manchester.ac.uk/.../Virtualization01.pdf · Xen...
Transcript of Virtualization - COMP 252 - Lecture 5syllabus.cs.manchester.ac.uk/.../Virtualization01.pdf · Xen...
VirtualizationCOMP 252 - Lecture 5
Antoniu Pop
12 February 2019
Antoniu Pop – Virtualization 1 / 12
Learning Objectives
I To describe the aims of virtualization– in the context of similar aims in other software components
I To distinguish between system and process virtualization
I To place system and process virtualization in the context ofother virtualization technologies
I To understand how system, process and other virtualizationtechnologies are likely to develop
Antoniu Pop – Virtualization 2 / 12
Learning Objectives
I To describe the aims of virtualization– in the context of similar aims in other software components
I To distinguish between system and process virtualization
I To place system and process virtualization in the context ofother virtualization technologies
I To understand how system, process and other virtualizationtechnologies are likely to develop
Antoniu Pop – Virtualization 2 / 12
Learning Objectives
I To describe the aims of virtualization– in the context of similar aims in other software components
I To distinguish between system and process virtualization
I To place system and process virtualization in the context ofother virtualization technologies
I To understand how system, process and other virtualizationtechnologies are likely to develop
Antoniu Pop – Virtualization 2 / 12
Learning Objectives
I To describe the aims of virtualization– in the context of similar aims in other software components
I To distinguish between system and process virtualization
I To place system and process virtualization in the context ofother virtualization technologies
I To understand how system, process and other virtualizationtechnologies are likely to develop
Antoniu Pop – Virtualization 2 / 12
Learning Objectives
I To describe the aims of virtualization– in the context of similar aims in other software components
I To distinguish between system and process virtualization
I To place system and process virtualization in the context ofother virtualization technologies
I To understand how system, process and other virtualizationtechnologies are likely to develop
Antoniu Pop – Virtualization 2 / 12
Additional (optional) Reading
All available on the course materials webpage:http://syllabus.cs.manchester.ac.uk/ugt/2017/COMP25212/
I Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A.,Neugebauer, R., Pratt, I. and Warfield, A., 2003, October. Xen andthe art of virtualization. In ACM SIGOPS operating systemsreview (Vol. 37, No. 5, pp. 164-177). ACM.
I Rosenblum, M. and Garfinkel, T., 2005. Virtual machinemonitors: Current technology and future trends. Computer,38(5), pp.39-47.
I Adams, K. and Agesen, O., 2006. A comparison of software andhardware techniques for x86 virtualization. ACM SIGARCHComputer Architecture News, 34(5), pp.2-13.
Regarding memory subsystems:I Drepper, U., 2007. What every programmer should know about
memory. Red Hat, Inc, 11, p.2007.
Antoniu Pop – Virtualization 3 / 12
Additional (optional) Reading
All available on the course materials webpage:http://syllabus.cs.manchester.ac.uk/ugt/2017/COMP25212/
I Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A.,Neugebauer, R., Pratt, I. and Warfield, A., 2003, October. Xen andthe art of virtualization. In ACM SIGOPS operating systemsreview (Vol. 37, No. 5, pp. 164-177). ACM.
I Rosenblum, M. and Garfinkel, T., 2005. Virtual machinemonitors: Current technology and future trends. Computer,38(5), pp.39-47.
I Adams, K. and Agesen, O., 2006. A comparison of software andhardware techniques for x86 virtualization. ACM SIGARCHComputer Architecture News, 34(5), pp.2-13.
Regarding memory subsystems:I Drepper, U., 2007. What every programmer should know about
memory. Red Hat, Inc, 11, p.2007.Antoniu Pop – Virtualization 3 / 12
Virtualization Technologies
I CPU
I Virtual Memory
I Storage Virtualization
I Virtual Machines (e.g., Java)
I System Virtualization (e.g., VMware, VirtualBox, XEN)
Antoniu Pop – Virtualization 4 / 12
Virtualization Technologies
I CPU
I Virtual Memory
I Storage Virtualization
I Virtual Machines (e.g., Java)
I System Virtualization (e.g., VMware, VirtualBox, XEN)
Antoniu Pop – Virtualization 4 / 12
Virtualization Technologies
I CPU
I Virtual Memory
I Storage Virtualization
I Virtual Machines (e.g., Java)
I System Virtualization (e.g., VMware, VirtualBox, XEN)
Antoniu Pop – Virtualization 4 / 12
Virtualization Technologies
I CPU
I Virtual Memory
I Storage Virtualization
I Virtual Machines (e.g., Java)
I System Virtualization (e.g., VMware, VirtualBox, XEN)
Antoniu Pop – Virtualization 4 / 12
Virtualization Technologies
I CPU
I Virtual Memory
I Storage Virtualization
I Virtual Machines (e.g., Java)
I System Virtualization (e.g., VMware, VirtualBox, XEN)
Antoniu Pop – Virtualization 4 / 12
Virtualization Technologies – Objectives
Isolate details of hardware from the software that uses it
I VM: amount of physical memory and layoutI Storage: position, size, and location of virtual diskI JVM: instruction set encoding, registers, etcI System: I/O devices, memory, #CPUs
Sounds familiar?
Antoniu Pop – Virtualization 5 / 12
Virtualization Technologies – Objectives
Isolate details of hardware from the software that uses it
I VM: amount of physical memory and layout
I Storage: position, size, and location of virtual diskI JVM: instruction set encoding, registers, etcI System: I/O devices, memory, #CPUs
Sounds familiar?
Antoniu Pop – Virtualization 5 / 12
Virtualization Technologies – Objectives
Isolate details of hardware from the software that uses it
I VM: amount of physical memory and layoutI Storage: position, size, and location of virtual disk
I JVM: instruction set encoding, registers, etcI System: I/O devices, memory, #CPUs
Sounds familiar?
Antoniu Pop – Virtualization 5 / 12
Virtualization Technologies – Objectives
Isolate details of hardware from the software that uses it
I VM: amount of physical memory and layoutI Storage: position, size, and location of virtual diskI JVM: instruction set encoding, registers, etc
I System: I/O devices, memory, #CPUs
Sounds familiar?
Antoniu Pop – Virtualization 5 / 12
Virtualization Technologies – Objectives
Isolate details of hardware from the software that uses it
I VM: amount of physical memory and layoutI Storage: position, size, and location of virtual diskI JVM: instruction set encoding, registers, etcI System: I/O devices, memory, #CPUs
Sounds familiar?
Antoniu Pop – Virtualization 5 / 12
Virtualization Technologies – Objectives
Isolate details of hardware from the software that uses it
I VM: amount of physical memory and layoutI Storage: position, size, and location of virtual diskI JVM: instruction set encoding, registers, etcI System: I/O devices, memory, #CPUs
Sounds familiar?
Antoniu Pop – Virtualization 5 / 12
Operating System and Virtualization
I Operating System isolates Application from Hardware
I Operating System still closely integrated with hardware:I device drivers, interrupts, #CPUs, disk layout, etc
I Installing OS creates stateI Installing an application within OS creates stateI Moving an installed Application from one system to another is
complexI Moving an installed OS is very complex
I Moving a running application is almost impossible
Antoniu Pop – Virtualization 6 / 12
Operating System and Virtualization
I Operating System isolates Application from HardwareI Operating System still closely integrated with hardware:
I device drivers, interrupts, #CPUs, disk layout, etc
I Installing OS creates stateI Installing an application within OS creates stateI Moving an installed Application from one system to another is
complexI Moving an installed OS is very complex
I Moving a running application is almost impossible
Antoniu Pop – Virtualization 6 / 12
Operating System and Virtualization
I Operating System isolates Application from HardwareI Operating System still closely integrated with hardware:
I device drivers, interrupts, #CPUs, disk layout, etcI Installing OS creates state
I Installing an application within OS creates stateI Moving an installed Application from one system to another is
complexI Moving an installed OS is very complex
I Moving a running application is almost impossible
Antoniu Pop – Virtualization 6 / 12
Operating System and Virtualization
I Operating System isolates Application from HardwareI Operating System still closely integrated with hardware:
I device drivers, interrupts, #CPUs, disk layout, etcI Installing OS creates stateI Installing an application within OS creates state
I Moving an installed Application from one system to another iscomplex
I Moving an installed OS is very complex
I Moving a running application is almost impossible
Antoniu Pop – Virtualization 6 / 12
Operating System and Virtualization
I Operating System isolates Application from HardwareI Operating System still closely integrated with hardware:
I device drivers, interrupts, #CPUs, disk layout, etcI Installing OS creates stateI Installing an application within OS creates stateI Moving an installed Application from one system to another is
complex
I Moving an installed OS is very complex
I Moving a running application is almost impossible
Antoniu Pop – Virtualization 6 / 12
Operating System and Virtualization
I Operating System isolates Application from HardwareI Operating System still closely integrated with hardware:
I device drivers, interrupts, #CPUs, disk layout, etcI Installing OS creates stateI Installing an application within OS creates stateI Moving an installed Application from one system to another is
complexI Moving an installed OS is very complex
I Moving a running application is almost impossible
Antoniu Pop – Virtualization 6 / 12
Operating System and Virtualization
I Operating System isolates Application from HardwareI Operating System still closely integrated with hardware:
I device drivers, interrupts, #CPUs, disk layout, etcI Installing OS creates stateI Installing an application within OS creates stateI Moving an installed Application from one system to another is
complexI Moving an installed OS is very complex
I Moving a running application is almost impossible
Antoniu Pop – Virtualization 6 / 12
Process vs. System Virtualization
I Process Virtualization:I Run a process under the
control of a layer of softwareI e.g. JVM, Rosetta, Pin
I System Virtualization:I Run an operating system
under the control of a layer ofsoftware
I e.g. VMware, XEN, KVM, etc
Applications Applications
Guest AOperating System
Virtual Machine Monitor (VMM) / Hypervisor
Host Hardware
Guest BOperating System
Application A Application B
Host Operating System
Virtual Machine
Host Hardware
Virtual Machine
Antoniu Pop – Virtualization 7 / 12
Process vs. System Virtualization
I Process Virtualization:I Run a process under the
control of a layer of softwareI e.g. JVM, Rosetta, Pin
I System Virtualization:I Run an operating system
under the control of a layer ofsoftware
I e.g. VMware, XEN, KVM, etc
Applications Applications
Guest AOperating System
Virtual Machine Monitor (VMM) / Hypervisor
Host Hardware
Guest BOperating System
Application A Application B
Host Operating System
Virtual Machine
Host Hardware
Virtual Machine
Antoniu Pop – Virtualization 7 / 12
Taxonomy of Virtualization
Virtualization can:I Translate between equivalent facilities
I Instruction Set Architecture? Library? System Calls?
I Change level of abstraction
I Garbage Collection? Virtual functions?I Performance tools? Debugging tools?
I Multiplex/demultiplex resources
I Hide their physical number or quantity
Antoniu Pop – Virtualization 8 / 12
Taxonomy of Virtualization
Virtualization can:I Translate between equivalent facilities
I Instruction Set Architecture? Library? System Calls?
I Change level of abstraction
I Garbage Collection? Virtual functions?I Performance tools? Debugging tools?
I Multiplex/demultiplex resources
I Hide their physical number or quantity
Antoniu Pop – Virtualization 8 / 12
Taxonomy of Virtualization
Virtualization can:I Translate between equivalent facilities
I Instruction Set Architecture? Library? System Calls?
I Change level of abstractionI Garbage Collection? Virtual functions?
I Performance tools? Debugging tools?
I Multiplex/demultiplex resources
I Hide their physical number or quantity
Antoniu Pop – Virtualization 8 / 12
Taxonomy of Virtualization
Virtualization can:I Translate between equivalent facilities
I Instruction Set Architecture? Library? System Calls?
I Change level of abstractionI Garbage Collection? Virtual functions?I Performance tools? Debugging tools?
I Multiplex/demultiplex resources
I Hide their physical number or quantity
Antoniu Pop – Virtualization 8 / 12
Taxonomy of Virtualization
Virtualization can:I Translate between equivalent facilities
I Instruction Set Architecture? Library? System Calls?
I Change level of abstractionI Garbage Collection? Virtual functions?I Performance tools? Debugging tools?
I Multiplex/demultiplex resourcesI Hide their physical number or quantity
Antoniu Pop – Virtualization 8 / 12
Process Virtualization
I JVMI Interprets, then compiles “byte code” filesI “Write once, run anywhere”I extensive libraries – extend OS API as Java standard
I RosettaI Translates PowerPC binaries “on-the-fly” to x86I Maps PPC system calls to x86 (different calling conventions)I Calls some native x86 procedures from PPC code
Antoniu Pop – Virtualization 9 / 12
Process Virtualization
I JVMI Interprets, then compiles “byte code” filesI “Write once, run anywhere”I extensive libraries – extend OS API as Java standard
I RosettaI Translates PowerPC binaries “on-the-fly” to x86I Maps PPC system calls to x86 (different calling conventions)I Calls some native x86 procedures from PPC code
Antoniu Pop – Virtualization 9 / 12
Process Virtualization
I pinI “annotate” Intel binary (www.pintool.org)I run a binary and collect (user-specified data)
I valgrindI “sandbox” Intel (++) binariesI check memory references and dynamic allocationI and lots of other analyses
Antoniu Pop – Virtualization 10 / 12
Process Virtualization
I pinI “annotate” Intel binary (www.pintool.org)I run a binary and collect (user-specified data)
I valgrindI “sandbox” Intel (++) binariesI check memory references and dynamic allocationI and lots of other analyses
Antoniu Pop – Virtualization 10 / 12
Types of Virtualization
Multiplexing Abstraction
Translation
Virtual Memory
StorageVirtualization
NetworkVirtualization
JVM
WINE
Pin
Valgrind
Rosetta
Antoniu Pop – Virtualization 11 / 12
Adoption Model for Virtualization
I Introduce as Transparent LayerI Discover performance problems
I Provide Management APII Initial focus: performance and manageabilityI Secondary focus: integration facilities
I Provide full User-level APII Applications are built or integrated using API
Antoniu Pop – Virtualization 12 / 12
Adoption Model for Virtualization
I Introduce as Transparent LayerI Discover performance problems
I Provide Management APII Initial focus: performance and manageabilityI Secondary focus: integration facilities
I Provide full User-level APII Applications are built or integrated using API
Antoniu Pop – Virtualization 12 / 12
Adoption Model for Virtualization
I Introduce as Transparent LayerI Discover performance problems
I Provide Management APII Initial focus: performance and manageabilityI Secondary focus: integration facilities
I Provide full User-level APII Applications are built or integrated using API
Antoniu Pop – Virtualization 12 / 12