Hierarchical Virtualization with Multi-Level Stacks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current virtualization systems are limited to a single hypervisor per machine, leading to poor performance and difficulty in implementing multiple versions of hypervisors due to nested virtualization, which geometrically worsens with each additional level and lacks hardware support for more than one level of virtualization.
Innovation Solution
A hierarchical virtualization mechanism is introduced, where a hypervisor microkernel interacts with a virtualization stack within a partition to create and control other partitions, allowing multiple virtualization stacks to coexist and communicate directly, thereby enabling multiple hypervisors to run simultaneously on a single machine without the need for nested arrangements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If nested virtualization is used to run multiple hypervisors, then multiple versions of hypervisors can run on a single machine, but performance becomes geometrically worse with each additional level
Solution Approach 1:
The invention segments the hypervisor functionality into a microkernel that runs directly on hardware and separate virtualization stacks that run within partitions. This allows multiple virtualization stacks to operate independently at the same hierarchical level rather than nesting them, thereby maintaining performance while enabling multiple hypervisor versions.
Solution Approach 2:
The invention transitions from a vertical nesting structure (nested hypervisors) to a horizontal hierarchical structure where multiple virtualization stacks coexist at the same level. Each virtualization stack manages its own partitions independently, eliminating the geometric performance degradation associated with nested levels while still enabling multiple hypervisor versions through the hierarchical partitioning mechanism.
2Adaptability or versatility
If nested virtualization is used, then multiple hypervisors can run on a single machine, but hardware support is lacking for more than one level of virtualization
Solution Approach 1:
The invention divides virtualization functionality between a minimal hypervisor microkernel that handles hardware interaction and separate virtualization stacks running in partitions. This segmentation allows the hardware to support only one level of virtualization (the microkernel level) while still enabling multiple hypervisor versions through the software-based virtualization stacks that operate within the partitioned environment.
3Productivity
If a single hypervisor runs on a machine, then hardware resources can be efficiently managed, but multiple versions of hypervisors cannot run side-by-side
Solution Approach 1:
The invention segments the system into a single hypervisor microkernel that maintains efficient hardware resource management and multiple virtualization stacks that run within partitions. This allows the microkernel to efficiently manage hardware resources while the virtualization stacks provide support for multiple hypervisor versions, thus resolving the contradiction between efficiency and versatility.
Solution Approach 2:
The virtualization stacks act as intermediaries between the hypervisor microkernel and the guest operating systems. These stacks enable multiple hypervisor versions to run by providing version-specific virtualization functionality while the underlying microkernel maintains efficient hardware resource management, thus mediating between the requirements for versatility and efficiency.
4Adaptability or versatility
If recursive virtualization with nested hypervisors is used, then multiple hypervisor versions can run, but security boundaries become blurred and child partitions cannot trust parent control
Solution Approach 1:
The invention segments the virtualization hierarchy into independent virtualization stacks, each managing its own partitions. This segmentation creates clear security boundaries where each virtualization stack operates autonomously within its partition, allowing child partitions to trust their immediate parent virtualization stack without the security blurring that occurs in nested hypervisor arrangements where multiple levels of control overlap.
Data Source
AI summary
Hierarchical virtualization is disclosed, where such virtualization can be accomplished with a multi-level mechanism. The hierarchical virtualization includes using a hypervisor that maintains a first partition and using a virtualization stack within the first partition to create and control a second partition. Multiple virtualization stacks can subsist within the first partition, and each such virtualization stack can create and control multiple partitions. In one particular implementation, a child partition can have exclusive control over a portion or all of its resources with respect to a parent partition. The hypervisor as the ultimate arbiter in such a virtualized environment enforces such a setup and is able to communicate directly within any partition within the virtualized hierarchy.


