Imprint | Privacy Policy

Virtualization

(Usage hints for this presentation)

IT Systems, Summer Term 2024
Dr. Jens Lechtenbörger (License Information)

1. Introduction

1.1. Core Questions

  • What do virtualization and containerization mean?
  • How to deploy potentially complex software in a reproducible fashion?

1.2. Learning Objectives

  • Explain definitions of virtual machine and virtual machine monitor
  • Explain and contrast virtualization and containerization
    • Including isolation
    • Including layering
  • Use Docker for simple tasks
    • E.g., start Web server with static files
    • Interpret and modify simple docker files

1.3. Overview (1/2)

  • Virtualization provides (virtual) hardware interface

    Layering with virtualization

    • Interface implemented by Hypervisor/VMM

      • VMM runs on (usual) host OS, manages real hardware
    • Virtual hardware can have arbitrary features

      • Largely independent of real hardware, say, ten network cards
      • On top of virtual hardware, install operating systems (guests) and other software to create virtual machines (VMs)
      • Share resources of powerful server machine among several VMs
        • E.g., your “own” server as VM in a project seminar
      • Fire up lots of identical VMs for compute-intensive tasks with cloud computing

1.4. Overview (2/2)

  • Containerization (e.g., with Docker) as lightweight variant of virtualization

    Layering with containerization

    • Containerization provides OS interface
    • No virtual hardware, but shared OS kernel
    • Use containers to execute software (versions) in controlled way

      • Think of larger application that uses external libraries
      • Libraries evolve, may introduce incompatible changes over time
        • Specific version of application depends on specific versions of libraries
        • Container bundles “correct” versions

Agenda

2. History and Variants

2.1. History (1/2)

  • Virtualization is an old concept
    • IBM mainframes, 1960s
    • Frequently cited survey article: (Goldberg 1974)
    • Original motivation
      • Resources of expensive mainframes better utilized with multiple VMs
      • Ability to run different OS versions in parallel, backwards compatibility
  • 1980s, 1990s
    • Multitasking OSs on relatively cheap hardware
      • Early PC hardware did not offer virtualization support
      • Little use of virtualization

2.2. History (2/2)

  • Ca. 2005
    • PC success becomes problematic
      • How to limit energy usage and management overhead of fleets of PCs?
      • One answer: Use virtualization for server consolidation
        • Turn independent servers into VMs, then allocate them to single server
        • Servers often with low resource utilization (e.g., CPU usage between 10% and 50% at Google in 2007, (Barroso and Hölzle 2007))
        • Consolidated server with improved resource utilization
      • Additional answer: Virtualization reduces management, testing, and deployment overhead, see (Vogels 2008) for Amazon
    • Virtualization as enabler for cloud computing
  • Literature

2.3. Virtualization Variants

  • Virtualization: Creation of virtual/abstract version of something

  • Typical meaning: virtual machine (VM)
    • Virtual hardware
      • Several OSs run concurrently, share (variants of) underlying hardware
    • VMs isolated from each other

3. Virtualization

3.1. Definitions

  • Cited from (Popek and Goldberg 1974)

    • “A virtual machine is taken to be an efficient, isolated duplicate of the real machine.” (bold face added)

    • Made precise with Virtual Machine Monitor (VMM)

      • “First, the VMM provides an environment for programs which is essentially identical with the original machine; second, programs run in this environment show at worst only minor decreases in speed; and last, the VMM is in complete control of system resources.”

        • Essentially identical: Programs with same results (as long as they do not ask for hardware specifics), maybe different timing

        • Speed: Most instructions executed directly by CPU with no VMM intervention

        • Control: (1) Virtualized programs restricted to resources allocated by VMM, (2) VMM can regain control over allocated resources

      • “A virtual machine is the environment created by the virtual machine monitor.”

3.2. Isolation

  • Isolation of VMs: Illusion of exclusive hardware use (despite sharing between VMs)

  • Sub-types (see (Soltesz et al. 2007; Felter et al. 2015))

    • Resource isolation: Fair allocation and scheduling

      • Reservation (e.g., number of CPU cores and amount of RAM) vs best-effort
    • Fault isolation: Buggy component should not affect others

    • Security isolation

3.3. Layering with Virtualization

  • Hypervisor/VMM with full access to hardware

    Layering with virtualization

    • Most privileged code
    • Creates abstract versions of hardware, to be used by de-privileged guest OSs
  • Notes
    • Each VM can run different OS, isolated from others
      • VM backups/snaphots simplify management, placement, parallelization
    • Creation of more VMs with high overhead
      • (Compared to containerization)

3.4. Self-Study Question

Bibliography

Barroso, L. A., and U. Hölzle. 2007. “The Case for Energy-Proportional Computing.” Computer 40 (12): 33–37. https://doi.org/10.1109/MC.2007.443.
Castro, Paul, Vatche Ishakian, Vinod Muthusamy, and Aleksander Slominski. 2019. “The Rise of Serverless Computing.” Commun. Acm 62 (12): 44–54. https://doi.org/10.1145/3368454.
Felter, Wes, Alexandre Ferreira, Ram Rajamony, and Juan Rubio. 2015. “An Updated Performance Comparison of Virtual Machines and Linux Containers.” In Performance Analysis of Systems and Software (Ispass), 2015 Ieee International Symposium on, 171–72. IEEE.
Goldberg, Robert P. 1974. “Survey of Virtual Machine Research.” Computer 7 (6): 34–45.
Kounev, Samuel, Nikolas Herbst, Cristina L. Abad, Alexandru Iosup, Ian Foster, Prashant Shenoy, Omer Rana, and Andrew A. Chien. 2023. “Serverless Computing: What It Is, and What It Is Not?” Commun. Acm 66 (9): 80–92. https://doi.org/10.1145/3587249.
Popek, Gerald J., and Robert P. Goldberg. 1974. “Formal Requirements for Virtualizable Third Generation Architectures.” Commun. Acm 17 (7): 412–21. https://doi.org/10.1145/361011.361073.
Soltesz, Stephen, Herbert Pötzl, Marc E Fiuczynski, Andy Bavier, and Larry Peterson. 2007. “Container-Based Operating System Virtualization: A Scalable, High-Performance Alternative to Hypervisors.” In Acm Sigops Operating Systems Review, 41:275–87. 3. ACM.
Vogels, Werner. 2008. “Beyond Server Consolidation: Server Consolidation Helps Companies Improve Resource Utilization, but Virtualization Can Help in Other Ways, Too.” Queue 6 (1): 20–26. https://doi.org/10.1145/1348583.1348590.

License Information

Source files are available on GitLab (check out embedded submodules) under free licenses. Icons of custom controls are by @fontawesome, released under CC BY 4.0.

Except where otherwise noted, the work “Virtualization”, © 2019, 2021, 2024 Jens Lechtenbörger, is published under the Creative Commons license CC BY-SA 4.0.