Lightweight on-demand virtual machines

US9606822B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9606822-B2
Application numberUS-201113331078-A
CountryUS
Kind codeB2
Filing dateDec 20, 2011
Priority dateMar 3, 2011
Publication dateMar 28, 2017
Grant dateMar 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Virtual machines are made lightweight by substituting a library operating system for a full-fledged operating system. Consequently, physical machines can include substantially more virtual machines than otherwise possible. Moreover, a hibernation technique can be employed with respect to lightweight virtual machines to further increase the capacity of physical machines. More specifically, virtual machines can be loaded onto physical machines on-demand and removed from physical machines to make computational resources available as needed. Still further yet, since the virtual machines are lightweight, they can be hibernated and restored at a rate substantially imperceptible to users.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: employing at least one processor configured to execute computer-executable instructions stored in memory to perform the following acts: receiving a request; and in response to the request, resuming a first virtual machine from hibernation by instantiating the first virtual machine on a physical machine, wherein the virtual machine is executed in a container within a host operating system address space, and wherein the container contains an application, a guest operating system configured to run as a library that accesses hardware services provided by the host operating system, the hardware services provided by the host operating system to the guest operating system including an operating system kernel, at least one device driver, and file system services, wherein the guest operating system includes application services, including at least two of a framework, a rendering engine, a common user interface control, or a language runtime, and an interface between the guest operating system and the host operating system for accessing the hardware services, and wherein the interface exposes a set of abstractions of hardware, threads, and virtual memory, that are provided by the host operating system to the application, and the interface restricts direct control over the hardware by the application. 2. The method of claim 1 , further comprising: forwarding the request to the virtual machine. 3. The method of claim 1 , further comprising: in response to the request, hibernating a second virtual machine, wherein the second virtual machine comprises a second library operating system and a second application, by saving state of the second virtual machine, and releasing computational resources assigned to the second virtual machine, and wherein the resuming of the first virtual machine is also in response to the hibernating of the second virtual machine. 4. The method of claim 3 , wherein the hibernating the second virtual machine is performed prior to resuming the first virtual machine from hibernation. 5. The method of claim 3 , further comprising: in response to the request, identifying the second virtual machine as a candidate for hibernation based on one or more policies, wherein the hibernating of the second virtual machine is also in response to the identifying of the second virtual machine as the candidate for hibernation. 6. The method of claim 3 , wherein releasing computational resources assigned to the second virtual machine comprises: releasing a subset of the computational resources employed by the second virtual machine. 7. The method of claim 3 , wherein saving the state comprises: saving a difference between a current state and a default state. 8. The method of claim 1 , further comprising: retrieving the first virtual machine from a virtual machine store. 9. A system, comprising: a processor coupled to a memory, the processor configured to execute computer-executable instructions stored in the memory for causing the system to: forward a request to a first virtual machine that is to operate in a container within a host operating system address space, wherein the container is also to include an application, a guest operating system configured to run as a library operating system that accesses hardware services provided by the host operating system, the hardware services provided by the host operating system to the guest operating system including an operating system kernel, at least one device driver, and file system services, wherein the guest operating system comprises application services and an interface between the guest operating system and the host operating system, wherein the application services of the guest operating system include at least one of a rendering engine or a language runtime, and wherein the interface exposes a set of abstractions of hardware, threads, and virtual memory and restricts other control over the hardware by the first virtual machine; and add the first virtual machine to a physical machine, if the first virtual machine is not loaded on the physical machine. 10. The system of claim 9 , wherein the instructions are also for causing the system to remove a second virtual machine from the physical machine. 11. The system of claim 10 , wherein the instructions are also for causing the system to save a state of the first virtual machine. 12. The system of claim 9 , wherein the instructions are also for causing the system to release a subset of computation resources employed by a second virtual machine for use by the first virtual machine. 13. The system of claim 9 , wherein the instructions are also for causing the system to remove at least a second virtual machine from the physical machine based on a policy. 14. The system of claim 9 , wherein the instructions are also for causing the system to rebalance load across multiple physical machines. 15. The system of claim 9 , wherein the first virtual machine is a web server. 16. The system of claim 9 , wherein the application is a web application. 17. A computer-readable storage medium, having instructions stored thereon that, when executed by a computer system, perform a method comprising: determining whether a target virtual machine is instantiated on a physical machine in response to a request, wherein the target virtual machine is operated in a container within a host operating system address space, and wherein the container contains: an application, a guest operating system configured to run as a library operating system that accesses hardware services provided by the host operating system, the hardware services provided by the host operating system to the guest operating system including an operating system kernel, at least one device driver, and file system services, wherein the guest operating system includes application services, the application services of the guest operating system including at least one of a rendering engine or a language runtime, and an interface between the guest operating system and the host operating system, wherein the interface exposes abstractions of the hardware services provided by the host operating system to the guest operating system, and wherein the target virtual machine is restricted from direct control over hardware of the physical machine; instantiating the target virtual machine, if the target virtual machine is not presently instantiated on the physical machine; and forwarding the request to the target virtual machine. 18. The computer-readable storage medium of claim 17 , wherein the method further comprises terminating, saving state, and releasing computational resources associated with a non-target virtual machine. 19. The computer-readable storage medium of claim 18 , wherein the method further comprises instantiating the target virtual machine after terminating, saving state, and the releasing computational resources associated with the non-target virtual machine. 20. The computer-readable storage medium of claim 17 , wherein instantiating the target virtual machine further comprises resuming execution from hibernation.

Assignees

Inventors

Classifications

  • Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • Starting, stopping, suspending or resuming virtual machine instances · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9606822B2 cover?
Virtual machines are made lightweight by substituting a library operating system for a full-fledged operating system. Consequently, physical machines can include substantially more virtual machines than otherwise possible. Moreover, a hibernation technique can be employed with respect to lightweight virtual machines to further increase the capacity of physical machines. More specifically, virtu…
Who is the assignee on this patent?
Hunt Galen C, Olinsky Reuben R, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).