VM Virtualization
- [Widener Library, Harvard University]
- Overview
While virtual machines (VMs) behave like separate computers with separate operating systems and applications, they have the advantage of being completely independent of each other and the physical host.
A piece of software called a hypervisor or VM manager allows you to run different operating systems on different virtual machines at the same time. This makes it possible to run Linux VMs on Windows operating systems, or run earlier versions of Windows on newer Windows operating systems.
Also, since VMs are independent of each other, they are also very portable. You can almost instantly move a VM on a hypervisor to another hypervisor on a completely different machine.
- Hypervisors
A hypervisor, also known as a Virtual Machine (VM) manager, allows multiple VMs to run on a single physical machine, each with its own operating system. This enables the use of different OSes, like running Linux on Windows, and offers portability as VMs can be easily moved between hypervisors.
Hypervisors act as a layer of abstraction between the physical hardware and the virtual machines, allowing them to share resources like CPU and memory says Scale Computing.
Benefits of VMs:
- Multiple OSes: Run different operating systems simultaneously on the same machine.
- Portability: VMs can be easily moved between different hypervisors.
- Cost savings: Consolidate multiple workloads on fewer physical machines.
- Flexibility: Easily create and manage new environments.
- Isolation: VMs are isolated from each other, enhancing security and allowing for testing of potentially risky software.
Types of hypervisors:
- Type 1 (Bare-metal): Run directly on the hardware, providing high performance and security according to IBM.
- Type 2 (Hosted): Runs on existing operating systems, which is simpler to configure but may have lower performance.
- Virtualization, Inter-VM Scheduling, In-VM Scheduling
Virtualization enables a host computer to emulate multiple guest computers, allowing various activities to run concurrently on the same physical hardware.
Inter-VM scheduling manages resources between different virtual machines (VMs), while in-VM scheduling manages resources within a single VM. Both are crucial for ensuring timely performance and quality of service when strict timeliness requirements are in place.
- Virtualization: Virtualization technology creates a virtualized environment that mimics a physical computer, allowing multiple operating systems and applications to run on a single physical machine.
- Inter-VM Scheduling: This type of scheduling manages the allocation of resources (CPU time, memory, etc.) among different virtual machines running on the same host. It ensures that each VM gets its fair share of resources and can meet its performance requirements.
- Intra-VM Scheduling (In-VM Scheduling): This scheduling handles the allocation of resources within a single VM, often managed by the guest operating system's scheduler. It ensures that different processes or applications running within the same VM can execute efficiently and meet their deadlines.
- Timeliness Requirements and QoS: When applications have strict timing requirements, proper scheduling is essential to ensure they meet their deadlines. Effective inter-VM and intra-VM scheduling contribute to the overall Quality of Service (QoS) of the virtualized environment.
- Virtualization and Real-Time
Virtualization introduces significant challenges for real-time systems due to overhead, timer inaccuracies, and scheduling complexities.
Addressing these issues requires research into hardware-independent performance characterization, timer virtualization mechanisms, and multiprocessor/multicore scheduling for real-time tasks within VMs.
In essence, the complexities of virtualization in real-time systems stem from the added overhead, the inconsistent nature of time measurement, and the challenges of managing resources in a shared environment.
The challenges:
1. Virtualization Overhead and I/O:
- Overhead: Virtualization adds overhead to task execution, making it harder to predict and guarantee real-time performance.
- I/O: Virtualized peripherals can transform I/O-intensive tasks (like networking) into CPU-intensive ones, further impacting real-time behavior.
- Hardware Migration: The ability to migrate virtual machines across different hardware adds complexity, as performance can vary significantly.
- Service Level Agreements (SLAs): Predicting performance in diverse hardware environments is crucial for meeting SLAs in service-oriented architectures (SOA).
- Solution: Hardware-independent execution time characterization and hardware-specific models of variability are needed.
2. Timer and Scheduling Issues:
- Inconsistent Progress: Virtualized OS progress may be inconsistent due to inter-VM scheduling and timer virtualization, affecting response times.
- Timer Granularity: Emulated timer devices can have significantly affected resolution, impacting timer and clock precision.
- Solution: Research into timer virtualization mechanisms and inter-VM scheduling is crucial.
3. Multiprocessor/Multicore Platforms:
- Performance Degradation: Software optimized for parallel machines may not perform as expected in a virtualized environment, especially with multiple VMs.
- Example: Spinlock synchronization can be significantly affected by virtualization and scheduling.
- Solution: New approaches are needed to manage resources and ensure predictable performance in multiprocessor/multicore virtualized environments.
- Virtual Desktop Infrastructure (VDI)
Virtual Desktop Infrastructure (VDI) is a technology that centralizes desktop environments on servers and delivers them to users on demand via virtual machines.
This means users can access their personalized desktop, including applications and data, from various devices, while the actual processing and storage happen on the central server.
- Centralized Management: VDI allows IT administrators to manage and update all virtual desktops from a central location, simplifying maintenance and reducing the need to manage individual physical machines.
- Virtual Machines: VDI uses virtual machines (VMs) to create and host these virtual desktops. A hypervisor, like VMware or Hyper-V, is the software that enables the creation and management of these VMs.
- Accessibility: Users can access their virtual desktops from various devices like thin clients, laptops, or even personal computers, as long as they have a network connection.
- Flexibility and Scalability: VDI offers flexibility in terms of access and scalability. Users can access their desktops from anywhere with internet access, and the infrastructure can be scaled up or down based on demand.
- Cost Savings: While there's an initial investment in VDI infrastructure, it can lead to long-term cost savings by extending the lifespan of existing hardware and reducing the need for individual software licenses.
- Security Benefits: VDI can enhance security by keeping sensitive data and applications on the central server, reducing the risk of data breaches on individual devices.
[More to come ...]