Memory device with data scrubbing capability and methods
US-2024393961-A1 · Nov 28, 2024 · US
US2019087124A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2019087124-A1 |
| Application number | US-201715708819-A |
| Country | US |
| Kind code | A1 |
| Filing date | Sep 19, 2017 |
| Priority date | Sep 19, 2017 |
| Publication date | Mar 21, 2019 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
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
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Techniques for rebalancing the load in a distributed system · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.