Dynamic scheduling for virtual storage devices

US2019087124A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2019087124-A1
Application numberUS-201715708819-A
CountryUS
Kind codeA1
Filing dateSep 19, 2017
Priority dateSep 19, 2017
Publication dateMar 21, 2019
Grant date

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.

Embodiments described herein relate to adjusting performance of a virtualization layer to reduce underutilization of a physical device. The virtualization layer virtualizes access to the device for a VM. When a guest in the VM makes a request to a virtual device, the virtualization layer and the device work together to satisfy the request. Some time is spent by the virtualization layer (software/CPU time), for instance delivering the request from the VM to the physical device, mapping the request from the virtual device to the physical device, etc. Additional time is spent by the device in performing the request (device time). The software/CPU time relative to the device time serves as a basis for deciding whether to increase or decrease processing capacity of the virtualization layer (or a component thereof), thus reducing underutilization of the device and over-provisioning of processing capacity to the virtualization layer.

First claim

Opening claim text (preview).

1 . A method performed by a computing device comprising processing hardware, memory hardware, and a physical device, the method comprising: executing the virtualization layer, the virtualization layer managing execution of VMs by the processing hardware, the virtualization layer including a storage virtualization stack, a virtual disk module, and a communication channel between the virtualization layer and a VM comprising a guest operating system, wherein the guest operating system issues input/output (I/O) requests associated with the physical device; servicing, at the virtualization layer, the I/O requests, the servicing comprising providing the I/O requests to the physical device; obtaining a device factor, the device factor corresponding to a time for the physical device to perform the I/O request; obtaining a servicing factor, the servicing factor corresponding to a time for the virtualization layer to service the I/O request; and adjusting processing capacity of the servicing according to the device factor and the servicing factor. 2 . A method according to claim 1 , where the I/O request is associated with the physical device through a virtual device of the VM, the virtualization layer mapping the physical device to the virtual device. 3 . A method according to claim 1 , further computing a ratio of the servicing factor and the device factor, and determining, based on the ratio, whether a threshold has been reached. 4 . A method according to claim 3 , wherein the determining comprises comparing the ratio to the threshold, and wherein the adjusting the processing capacity comprises increasing or decreasing a number of threads that are servicing a queue of the communication channel, the communication channel comprising a software construct. 5 . A method according to claim 4 , wherein the ratio is computed based on plural device factors and plural servicing factors, the device factors and the servicing factors comprising respective time values in a sliding sample window. 6 . A method according to claim 1 , wherein the device factor corresponds to a first amount of time taken by the physical device to implement the I/O request, and wherein the servicing factor corresponds to a second amount of time taken by the virtualization layer to service the I/O request. 7 . A method according to claim 6 , wherein the device factor and/or the servicing factor is obtained from kernel statistics of a hypervisor of the virtualization layer. 8 . A computing device comprising: processing hardware; a hardware device; storage hardware storing: a hypervisor configured to manage execution of virtual machines (VMs), wherein the hypervisor manages sharing of the processing hardware and the hardware device by the VMs, the hypervisor configured to perform a process comprising: receiving, by the hypervisor, requests from a VM, the requests directed to the hardware device, the requests received from a hypervisor-VM communication channel managed by the hypervisor; determining first times for the hypervisor to provide the requests to the hardware device, respectively; determining second times for the hardware device to perform the requests; and based on the first and second times, automatically scaling processing capacity available to the hypervisor for providing new requests from the VM on the hypervisor-VM communication channel to the hardware device. 9 . A computing device according to claim 8 , wherein the hardware device comprises a storage device, the requests comprise I/O requests directed to virtual disk data that is backed by the storage device, and the hypervisor comprises a virtual disk service that maps the virtual disk data to the storage device. 10 . A computing device according to claim 8 , wherein the process further comprises computing a measure based on the first and second times, wherein the measure varies in correspondence with variation of the first times relative to the second times. 11 . A computing device according to claim 10 , wherein the measure is compared to a threshold to determine whether or how much processing capacity is to be added or removed. 12 . A computing device according to claim 11 , wherein the scaling processing capacity comprises adding or removing a thread, changing processing speed of a core, providing additional processor time or priority to a process, or changing the processor speed of a thread. 13 . A computing device according to claim 8 , wherein the hypervisor comprises a kernel that samples I/O performance data, and the first and second times are obtained from the performance data. 14 . A computing device according to claim 8 , wherein the processing capacity changes in correspondence with latency of the hardware device performing the requests relative to latency of the hypervisor providing the requests to and/or from the hardware device. 15 . Storage hardware storing information configured to cause a computer to perform a process, the computer comprising a hardware device, the process comprising: providing a virtualization layer that manages execution of virtual machines (VMs) by the computer, the virtualization layer including a channel service that manages channels between the VMs and the virtualization layer, the channels configured to carry data between guest software in the VMs and the virtualization layer; managing, by the virtualization layer, a channel service that provides the channels, the channel service configured to provide a channel that enables guest software in the VM to exchange, through the virtualization layer, data with the hardware device, the channel comprising a queue in the virtualization layer, the providing of the channel including allocating a processing unit to a channel, the channel comprising a queue, the processing unit configured to dequeue requests from a guest of a VM and provide the requests to the hardware device; and executing a control loop in association with the channel, the control loop comprising monitoring latency statistics of the hardware device and latency statistics of the processing unit and repeatedly determining, based on the monitoring of the latency statistics, whether processing capacity of the processing unit is to be increased or decreased. 16 . Storage hardware according to claim 15 , the process further comprising receiving responses to the requests from the hardware device, wherein the processing unit enqueues the responses to the channel to be received by the VM. 17 . Storage hardware according to claim 16 , wherein the latency statistics reflect time spent by the processing unit to perform the enqueueing. 18 . Storage hardware according to claim 15 , wherein the virtualization layer comprises a storage virtualization stack, and wherein the latency statistics include time spent by the virtualization stack to service the requests. 19 . Storage hardware according to claim 18 , the process further comprising an average latency of the hardware device, an average latency of the storage virtualization stack, and wherein the determining of the control loop comprises determining whether a ratio of the latency averages satisfies a threshold. 20 . Storage hardware according to claim 18 , wherein the virtualization layer comprises a privileged VM that provides virtualization services to the VM.

Assignees

Inventors

Classifications

  • In-line storage system · CPC title

  • considering the load · CPC title

  • Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

  • G06F3/0659Primary

    Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • Techniques for rebalancing the load in a distributed system · 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 US2019087124A1 cover?
Embodiments described herein relate to adjusting performance of a virtualization layer to reduce underutilization of a physical device. The virtualization layer virtualizes access to the device for a VM. When a guest in the VM makes a request to a virtual device, the virtualization layer and the device work together to satisfy the request. Some time is spent by the virtualization layer (softwar…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/0659. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Mar 21 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).