LINUX Virtualization. Running other code under LINUX

Similar documents
Module 1: Virtualization. Types of Interfaces

Virtualization. ...or how adding another layer of abstraction is changing the world. CIS 399: Unix Skills University of Pennsylvania.

Virtualization Introduction

Virtualization. Starting Point: A Physical Machine. What is a Virtual Machine? Virtualization Properties. Types of Virtualization

Virtualization. ! Physical Hardware Processors, memory, chipset, I/O devices, etc. Resources often grossly underutilized

EE 660: Computer Architecture Cloud Architecture: Virtualization

Chapter 5 C. Virtual machines

Virtualization. Pradipta De

The Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36

for Kerrighed? February 1 st 2008 Kerrighed Summit, Paris Erich Focht NEC

Lecture 5: February 3

Virtualization. join, aggregation, concatenation, array, N 1 ühendamine, agregeerimine, konkateneerimine, massiiv

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

CS 470 Spring Virtualization and Cloud Computing. Mike Lam, Professor. Content taken from the following:

Virtual Machines. Part 2: starting 19 years ago. Operating Systems In Depth IX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

Virtualization. Darren Alton

CSCI 8530 Advanced Operating Systems. Part 19 Virtualization

NON SCHOLAE, SED VITAE


SUSE An introduction...

Virtual Machine Monitors!

COMPUTER ARCHITECTURE. Virtualization and Memory Hierarchy

Multiprocessor Scheduling. Multiprocessor Scheduling

CLOUD COMPUTING IT0530. G.JEYA BHARATHI Asst.Prof.(O.G) Department of IT SRM University

The Architecture of Virtual Machines Lecture for the Embedded Systems Course CSD, University of Crete (April 29, 2014)

CHAPTER 16 - VIRTUAL MACHINES

Distributed Systems COMP 212. Lecture 18 Othon Michail

Virtual Machines. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Virtualization. Santa Clara Valley Chapter of the IEEE Communication Society June 20, 2007 Scott Lurndal, 3Leaf Systems

Operating Systems 4/27/2015

Lecture 09: VMs and VCS head in the clouds

CHAPTER 16 - VIRTUAL MACHINES

Nested Virtualization and Server Consolidation

What is KVM? KVM patch. Modern hypervisors must do many things that are already done by OSs Scheduler, Memory management, I/O stacks

CS 550 Operating Systems Spring Introduction to Virtual Machines

Virtualization. Michael Tsai 2018/4/16

Virtualization with colinux

Virtualization. Virtualization

CSC 5930/9010 Cloud S & P: Virtualization

Virtualization and memory hierarchy

What is Cloud Computing? Cloud computing is the dynamic delivery of IT resources and capabilities as a Service over the Internet.

9th Slide Set Cloud Computing

Virtualization and Performance

SERVE. -Priyal Lokhandwala

The Future of Virtualization

Open Source Virtualization - Software Freedom Day 2008

CS370 Operating Systems

CprE Virtualization. Dr. Yong Guan. Department of Electrical and Computer Engineering & Information Assurance Center Iowa State University

Lecture 5. KVM for ARM. Christoffer Dall and Jason Nieh. 5 November, Operating Systems Practical. OSP Lecture 5, KVM for ARM 1/42

CS-580K/480K Advanced Topics in Cloud Computing. VM Virtualization II

[Docker] Containerization

Virtualization. Dr. Yingwu Zhu

CSE 120 Principles of Operating Systems

Introduction to Virtualization and Containers Phil Hopkins

LINUX KVM FRANCISCO JAVIER VARGAS GARCIA-DONAS CLOUD COMPUTING 2017

references Virtualization services Topics Virtualization

CS 350 Winter 2011 Current Topics: Virtual Machines + Solid State Drives

The only open-source type-1 hypervisor

1 Virtualization Recap

Types of Virtualization. Types of virtualization

COS 318: Operating Systems. Virtual Machine Monitors

Linux and Xen. Andrea Sarro. andrea.sarro(at)quadrics.it. Linux Kernel Hacking Free Course IV Edition

Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor?

Faculty of Computer Science Institute for System Architecture, Operating Systems Group. Virtualization. Henning Schild. Dresden,

Introduction to Cloud Computing and Virtualization. Mayank Mishra Sujesha Sudevalayam PhD Students CSE, IIT Bombay

Virtual Leverage: Server Consolidation in Open Source Environments. Margaret Lewis Commercial Software Strategist AMD

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.

Cloud Computing Virtualization

I/O and virtualization

INNOV-4: Fun With Virtualization. Or, How I learned to love computers that don t really exist...

Lecture 7. Xen and the Art of Virtualization. Paul Braham, Boris Dragovic, Keir Fraser et al. 16 November, Advanced Operating Systems

CS370: Operating Systems [Spring 2017] Dept. Of Computer Science, Colorado State University

Virtualization (II) SPD Course 17/03/2010 Massimo Coppola

Virtual machine architecture and KVM analysis D 陳彥霖 B 郭宗倫

Power Efficiency of Hypervisor and Container-based Virtualization

Virtual Machine Security

Learning Outcomes. Extended OS. Observations Operating systems provide well defined interfaces. Virtual Machines. Interface Levels

Advanced Operating Systems (CS 202) Virtualization

Virtualization. Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels

Virtualisation: The KVM Way. Amit Shah

Roadmap for Challenging Times System Virtualiztion

OS Virtualization. Why Virtualize? Introduction. Virtualization Basics 12/10/2012. Motivation. Types of Virtualization.

A Survey on Virtualization Technologies

A Review On optimization technique in Server Virtualization

Concepts. Virtualization

Virtual Machines Disco and Xen (Lecture 10, cs262a) Ion Stoica & Ali Ghodsi UC Berkeley February 26, 2018

Deploying Application and OS Virtualization Together: Citrix and Virtuozzo

Virtualization. Guillaume Urvoy-Keller UNS/I3S

Xen Project 4.4: Features and Futures. Russell Pavlicek Xen Project Evangelist Citrix Systems

Parallels Virtuozzo Containers

Xen Project Overview and Update. Ian Pratt, Chairman of Xen.org, and Chief Scientist, Citrix Systems Inc.

Dynamic Translator-Based Virtualization

Originally prepared by Lehigh graduate Greg Bosch; last modified April 2016 by B. Davison

How Parallels RAS Enhances Microsoft RDS. White Paper Parallels Remote Application Server

CS370: Operating Systems [Spring 2016] Dept. Of Computer Science, Colorado State University

QEMU 2.0 and Beyond. CloudOpen Anthony Liguori

Oracle-Regular Oracle-Regular

Introduction to Virtual Machines. Carl Waldspurger (SB SM 89 PhD 95) VMware R&D

Virtual Machine Monitors (VMMs) are a hot topic in

Resource Virtualization and the Enterprise

Transcription:

LINUX Virtualization Running other code under LINUX

Environment Virtualization Citrix/MetaFrame Virtual desktop under Windows NT. aka Windows Remote Desktop Protocol VNC, Dameware virtual console. XWindows virtual console Mac OS RDP same as Windows. WUBI.EXE

Hardware Emulation IBM Virtual Machine (VM) OS Also using code: Processor virtualization Instruction set virtualization. Slow. Usually requires OS (re-)installation Examples: KVM (uses QEMU), Solaris Domains, DOSBox, DOSEmu, WINE

Processor Virtualization Native or full virtualization: virtual machine that mediates between the guest operating systems and the native hardware. Certain protected instructions must be trapped and handled within the hypervisor because the underlying hardware isn't owned by an operating system but is instead shared by it through the hypervisor. This form usually requires specially virtualization CPU processors (Intel, AMD) for performance. The only constraint is that the operating system must support the underlying hardware. Close to hardware-level performance. The biggest advantage of full virtualization is that a guest OS can run unmodified. OS is usually ported to the hypervisor machine. VmWare, Microsoft HyperV. Examples: VMWare.

Processor Virtualization Paravirtualization: uses a hypervisor for shared access to the underlying hardware but integrates virtualization-aware code into the operating system itself. Obviates the need for any recompilation or trapping because the operating systems themselves cooperate in the virtualization process. Also requires specialized CPU hardware but not to the same level as native virtualization. Close to native performance. Guest OS is (re-)installed to run virtualized. Examples: LINUX Xen, User Mode LINUX (UML), Microsoft Virtual PC, VirtualBox Hypervisor.

OS Level Virtualization OS Level Virtualization: Virtualizes servers on top of the operating system itself - uses a single operating system and simply isolates the independent virtual servers from one another (code, memory, filesystems). Doesn t use special virtualization hardware Uses a lot of underlying OS resources memory, filesystem space. Original concept BSD chroot jail Examples: LINUX: lxc containers. Solaris Zones

Hardware support for virtualization IA-32 (Intel x86) supports four rings of protection, where level 0 (the highest privilege) typically runs the operating system, levels 1 and 2 support operating system services, and level 3 (the lowest level) supports applications. In IA-32 (x86) architecture certain privileged-mode instructions do not trap, and can return different results based upon the mode. This is problematic when attempting to virtualize different operating systems at different levels. Hardware vendors have recognized this shortcoming (and others), and have produced new designs that support and accelerate virtualization. Intel s new virtualization technology supports hypervisors for both the x86 32-bit (VT-x) and Itanium (VT-I) 64-bit architectures. The VT-x supports two new forms of operation, one for the VMM (root) and one for guest operating systems (non-root). The root form is fully privileged, while the nonroot form is deprivileged (even for ring 0). AMD is producing hardware-assisted virtualization technology, under the name Pacifica which Pacifica maintains a control block for guest operating systems that are saved on execution of special instructions. This allows a virtual machine (and its associated guest operating system) to run until the VMM regains control. Pacifica also amends address translation with host and guest memory management unit (MMU) tables. These hardware virtualization can be used by a number of virtualization techniques, including Xen, VMware, User-mode Linux, and others.

Virtualization Products Bochs and QEMU are PC emulators that allow operating systems such as Windows or Linux to be run in the user-space of a Linux operating system. VMware is a popular commercial full-virtualization solution that can virtualize unmodified operating systems. Xen is an open source paravirtualization solution that requires modifications to the guest operating systems but achieves near native performance by collaborating with the hypervisor. Microsoft Virtual PC is a paravirtualization virtual machine approach. See also HyperV. User-mode Linux (UML) is another paravirtualization solution that is open source. Each guest operating system executes as a process of the host operating system. colinux, or Cooperative Linux, is a virtualization solution that allows two operating systems to cooperatively share the underlying hardware. Linux-Containers (see also Docker) The Linux KVM is virtualization technology that has been integrated into the mainline Linux kernel (not KVM kernel, but does require PAE support). Runs as a single kernel loadable module, a Linux kernel running on virtualization-capable hardware is able to act as a hypervisor and support unmodified Linux and Windows guest operating systems.

What is a container? A Linux container is a set of one or more processes that are isolated from the rest of the system. All the files necessary to run them are provided from a distinct image, meaning that Linux containers are portable and consistent as they move from development, to testing, and finally to production. This makes them much quicker than development pipelines that rely on replicating traditional testing environments. Because of their popularity and ease of use containers are also an important part of IT security. The container that holds your application has the necessary libraries, dependencies, and files so that you can move it through production without worrying about changes from test/dev/stage migration. In fact, the contents of a container image can be thought of as an installation of a Linux distribution because it comes complete with RPM packages, configuration files, etc. But, container image distribution is a lot easier than installing new copies of operating systems. Unlike OS virtualization that lets your operating systems (Windows or Linux) run simultaneously on a single hardware system. Containers share the same operating system kernel and isolate the application processes from the rest of the system. For example: ARM Linux systems run ARM Linux containers, x86 Linux systems run x86 Linux containers, x86 Windows systems run x86 Windows containers. Linux containers are extremely portable, but they must be compatible with the underlying system.

What is a container?

Docker Project/Docker Inc. The initial container engine is now known as "Docker Engine." Other tools have been added: Docker Compose (formerly "Fig") Docker Machine Docker Swarm Kitematic (acquisition) Tutum (recent acquisition) Founded in 2009. Formerly dotcloud Inc. Primary sponsor of the Docker Project. Hires maintainers and contributors. Provides infrastructure for the project. Runs the Docker Hub. HQ in San Francisco.

What is Docker? In a way, Docker is unlike a virtual machine, rather than creating a whole virtual operating system, Docker allows applications to use the same Linux kernel as the system that they're running on and only requires applications be shipped with things not already running on the host computer. This gives a significant performance boost and reduces the size of the application. Docker is essentially a "snapshot" of the LINUX kernel with a restricted subset of kernel services allowed to isolate an application within a container using only the resources needed to run the app - similar to a Linux container. Howver multiple canned Docker "images" can be run to propogate the application among multiple LINUX instances - usual VMs under other hypervisors; and occasionally in the "cloud". Docker comes in two flavors - Enterprise Edition EE ($$) and Community Edition CE. Both allow for published canned docker images to be downloaded and used as app containers. There is also the option of generating your own proprietary docker images. The importance of containers is a relfection of the virtualization of environments in private and public virtualized clouds Azure. AWS etc. See: https://docs.docker.com/engine/docker-overview