Virtualization Concept Virtualization Real: it exists, you can see it. Transparent: it exists, you cannot see it Virtual: it does not exist, you can see it Gone: it does not exist, you cannot see it Virtualization in Computing Systems The process of providing another image (logical grouping or subset) of underlying computing resources change computing system organization and profile Computing system: CPU, memory, network, hard disk, software, user organization, …… Methods: HW/SW partitioning (space-sharing), time-sharing, simulation, emulation, QoS, … Why virtualization? Get a easy access interface and management interface Get more powerful resource profile Support multiple clients Scenarios of Virtualization in computing system Hardware virtualization Process level virtualization High level language virtualization Resource virtualization Application virtualization OS level Language level Process level Hardware/system resource OS level virtualization Application level Hardware virtualization One server support multiple virtual machines VMM (virtual machine monitor) or hypervisor Granularity: virtual machine We will focus this topic later Process level virtualization Provide the guest process with some runtime software User could access a platform independent runtime environment Granularity: process Example: java executable High level language virtualization Languages could be executed on multiple computing architectures Supported by compiler and runtime environment Based on popular programming language: C, C++ and Fortran. Granularity: language Example: MPI, PVM OS level virtualization A physical server is divided into multiple virtual servers Guest OS is the same with original one Supported by the OS kernel Granularity: OS Examples: Solaris Zones supports multiple guest OSes running under the same OS (such as Solaris 10) Application level virtualization build application level virtualization in data management, software library, programming interface, execution environment Granularity: application environment Example: Virtual Data System Resource virtualization Organizing resource in a logical way Present an easy use/management interface or powerful resource image Granularity: resource image Example: VPN, RAID, Cluster OS almost all the computing resource interfaces are virtualized: memory, harddisk, network … Philosophy of Virtualization Resource consolidation Multiple resource items -> one resource image Example: Computer Cluster, Grid, RAID Philosophy of Virtualization Resource multiplexing One resource -> multiple resource instances Example: CPU, memory, VPN, Virtual machine