Hierarchical Virtualization with Multi-Level Stacks

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveability to run multiple hypervisor versionsVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improvesupport for multiple hypervisor versionsVSAvoidhardware virtualization support
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvehardware resource management efficiencyVSAvoidability to run multiple hypervisor versions
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvemultiple hypervisor versionsVSAvoidsecurity trust boundaries
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8327353B2Hierarchical virtualization with a multi-level virtualization mechanism
Publication Date: 2012.12.04 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8327353B2 patent drawing
  • US8327353B2 patent drawing
  • US8327353B2 patent drawing

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.