Topics Discussed:
- Emulation vs Simulation vs Virtualization
- What is Virtualization?
- Why Virtualization?
- Type of Virtualization
- Full Virtualization
- Software Assisted – Full Virtualization
- Hardware-Assisted – Full Virtualization
- Paravirtualization
- Virtualization and Cloud
- Networking modes
Emulation vs Simulation vs Virtualization
> In computing, the emulator is a hardware or software that enables one device (named Host) to function like other systems. Softwares running inside emulators don’t necessarily have to be made for underlying hardware. Ex: playstations
In the context of computers, a simulator is a software which can mimic a certain process or object.
Virtualization : is developing a virtual instance of computing resources, including a computer, server, or other hardware components, or a software-based resource, such as an operating system. A single physical system is divided into many “virtual” servers by virtualization.
What is virtualization? And why virtualization?
Virtualization is technology that lets you create useful IT services using resources that are traditionally bound to hardware.
Origin 1960s
Types of virtualization
Storage virtualization (also sometimes called software-defined storage or a virtual SAN) is the pooling of multiple physical storage arrays from SANs and making them appear as a single virtual storage device.
– can integrate unlike storage hardware from different networks, vendors, or data centers into one logical view and manage them from a single pane of glass.
Desktop virtualization:Desktop virtualization is technology that lets users simulate a workstation load to access a desktop from a connected device remotely or locally.
Server virtualization :Virtualizing a server lets it to do more of those specific functions and involves partitioning it so that the components can be used to serve multiple functions.
Operating system virtualization : Operating system virtualization happens at the kernel—the central task managers of operating systems
Network functions virtualization : – is the decoupling of network functions from proprietary hardware appliances and running them as software in virtual machines (VMs).
SDN refers to a network architecture that injects automation and programmability into the network by decoupling network control and forwarding functions. In other words, NFV virtualizes network infrastructure and SDN centralizes network control.
Server virtualization in detail
Full Virtualization(Hardware Assisted/ Binary Translation ) was introduced by IBM in the year 1966.
In full virtualization, guest OS is completely isolated by the virtual machine from the virtualization layer and hardware.
Microsoft and Parallels systems are examples of full virtualization.
Virtual machine simulates hardware to allow an unmodified guest OS to be run in isolation
Software Assisted – Full Virtualization (BT – Binary Translation ) It completely relies on binary translation to trap and virtualize the execution of sensitive, non-virtualizable instructions sets.
It emulates the hardware using the software instruction sets.
Here is the list of software which will fall under software assisted (BT).
1. VMware workstation (32Bit guests)
2. Virtual PC
3. VirtualBox (32-bit guests)
4. VMware Server
Hardware-Assisted – Full Virtualization (VT) Hardware-assisted full virtualization eliminates the binary translation and it directly interrupts with hardware using the virtualization technology which has been integrated on X86 processors since 2005 (Intel VT-x and AMD-V).
Guest OS’s instructions might allow a virtual context to execute privileged instructions directly on the processor, even though it is virtualized.
Here is the list of enterprise software which supports hardware-assisted – Full virtualization which falls under hypervisor type 1 (Bare metal )
1. VMware ESXi /ESX
2. KVM
3. Hyper-V
4. Xen
The following virtualization type of virtualization falls under hypervisor type 2 (Hosted)
1. VMware Workstation (64-bit guests only )
2. Virtual Box (64-bit guests only )
3. VMware Server (Retired )
Paravirtualization
It doesn’t need to simulate the hardware for the virtual machines. The hypervisor is installed on a physical server (host) and a guest OS is installed into the Environment. Virtual guests aware that it has been virtualized, unlike the full virtualization (where the guest doesn’t know that it has been virtualized) to take advantage of the functions. In this virtualization method, guest source codes will be modified with sensitive information to communicate with the host. In full virtualization, guests will issue a hardware calls but in paravirtualization, guests will directly communicate with the host (hypervisor) using the drivers.
Ex:
Xen
IBM LPAR
Oracle VM for SPARC (LDOM)
Oracle VM for X86 (OVM)
Hybrid Virtualization: ( Hardware Virtualized with PV Drivers )
In Hardware assisted full virtualization, Guest operating systems are unmodified and it involves many VM traps and thus high CPU overheads which limit the scalability. Paravirtualization is a complex method where guest kernel needs to be modified to inject the API. By considering these issues, engineers have come with hybrid paravirtualization. It’s a combination of both Full & Paravirtualization. The virtual machine uses paravirtualization for specific hardware drivers.
The following products support hybrid virtualization.
1. Oracle VM for x86 2. Xen 3. VMware ESXi
OS level Virtualization
Began with openvz, LXC etc..
Operating system-level virtualization is widely used.It also knowns “containerization”. Host Operating system kernel allows multiple user spaces aka instance. In OS-level virtualization there will be very little or no overhead since its uses the host operating system kernel for execution. Docker , cgroups
Virtualization and cloud
Overcommit
Overcommitting is the process of allocating more virtualized CPUs or memory than there are physical resources on the system. CPU overcommit allows under-utilized virtualized servers or desktops to run on fewer servers which saves power and money
In computing, memory ballooning is a technique used to eliminate the need to overprovision host memory used by a virtual machine (VM) the virtual machine’s kernel implements a “balloon driver” which allocates unused memory within the VM’s address space into a reserved memory pool (the “balloon”) so that it is unavailable to other processes on the VM. However, rather than being reserved for other uses within the VM, the physical memory mapped to those pages within the VM is actually unmapped from the VM by the host operating system’s hypervisor, making it available for other uses by the host machine. Depending on the amount of memory required by the VM, the size of the “balloon” may be increased or decreased dynamically, mapping and unmapping physical memory as required by the VM
Thick and thin provisioning
In virtual storage, thick provisioning is a type of storage allocation in which the amount of storage capacity on a disk is pre-allocated on physical storage at the time the disk is created.
This means that creating a 100GB virtual disk actually consumes 100GB of physical disk space, which also means that the physical storage is unavailable for anything else, even if no data has been written to the disk.
Thick provisioning contrasts with thin provisioning, which provisions storage on an as-needed basis. Thin provisioning helps to avoid wasted physical capacity and can save businesses on up-front storage costs.
Networking modes
Bridged networking connects a virtual machine to a network using the host computer’s Ethernet adapter.
Host-only networking creates a network that is completely contained within the host computer.
NAT gives a virtual machine access to network resources using the host computer’s IP address.