Nested Hypervisor Thread Scheduling for Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing hypervisor systems face challenges in efficiently scheduling and sharing resources, particularly in storage systems, where multiple hypervisors and guest operating systems need to operate independently and share resources without performance penalties or requiring significant modifications to existing code.

Innovation Solution

The system runs a hypervisor as a thread of an underlying operating system, allowing for the nested operation of multiple hypervisors and guest operating systems, with scheduling managed by the underlying operating system to share resources efficiently, including CPU cores, and enabling fractional time sharing in a symmetric multi-processing regime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple hypervisors and guest operating systems operate independently in a nested configuration, then resource sharing flexibility and independent operation are improved, but system complexity and scheduling overhead increase

Engineering Contradiction:
Improveindependent operation capabilityVSAvoidsystem structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements nested hypervisors where a first hypervisor runs as a thread of an underlying operating system, and a second hypervisor is nested within the first hypervisor. This nested configuration allows multiple hypervisors and guest operating systems to operate independently while sharing resources through the underlying OS scheduler, resolving the contradiction between independent operation capability and system structure complexity.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Productivity

If the hypervisor runs as a thread of the underlying operating system, then resource sharing efficiency and CPU allocation flexibility are improved, but scheduling overhead and context switching increase

Engineering Contradiction:
Improveresource sharing efficiencyVSAvoidscheduling overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges the hypervisor into the underlying operating system by running it as a thread of the OS. This integration allows the OS scheduler to directly manage hypervisor threads alongside other system threads, improving resource sharing efficiency and CPU allocation flexibility while utilizing the existing OS scheduling infrastructure to minimize additional overhead.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of manufacture

If code of the hypervisor is modified independently of guest operating system code, then software development flexibility and maintenance ease are improved, but integration complexity and testing requirements increase

Engineering Contradiction:
Improvesoftware development flexibilityVSAvoidintegration complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent segments the software architecture into distinct layers: the underlying operating system, the first hypervisor running as an OS thread, and nested guest operating systems. This segmentation allows hypervisor code to be modified independently of guest OS code, as each layer operates with its own address space and execution context, reducing integration complexity despite the nested configuration.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10437622B1Nested hypervisors with peripheral component interconnect pass-through
Publication Date: 2019.10.08 EMC IP HLDG CO LLC
  • US10437622B1 patent drawing
  • US10437622B1 patent drawing
  • US10437622B1 patent drawing

AI summary

Operating a hypervisor includes running a hypervisor as a thread of an underlying operating system and loading a guest operating system using the hypervisor based on the thread of the underlying operating system, where the hypervisor runs independently of the guest operating system and independently of other hypervisors running as other threads of the underlying operating system. The hypervisor may be a first hypervisor and operating a hypervisor may further include running a second hypervisor nested with the first hypervisor, where the guest operating system may be loaded using both the first hypervisor and the second hypervisor. The underlying operating system may be an operating system of a storage system.