IP Library Granted Patent US 10,114,553
Granted Patent B2
US 10,114,553 · App. 14/253,789 · Granted Oct 30, 2018

Method and device for scheduling virtual disk input and output ports

Inventors: Xiaobo Li (Hangzhou, CN); Weicai Chen (Hangzhou, CN); Bo Chen (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F3/061G06F3/067G06F3/0659G06F9/45558
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,114,553
App. No.
14/253,789
Granted
Oct 30, 2018
Kind
B2
Abstract

Embodiments of the present application relate to a method for scheduling virtual disk input and output (I/O) ports, a device for scheduling virtual disk I/O ports, and a computer program product for scheduling virtual disk I/O ports. A method for scheduling virtual disk I/O ports is provided. The method includes assigning a set of service quality ratings to a corresponding set of virtual disk I/O ports based on a set of reading-writing bandwidth quotas associated with the corresponding set of virtual disk I/O ports in a physical machine, determining a total forecast value of a data bandwidth to be used by reading-writing requests and determining virtual disk I/O ports, allocating reading-writing bandwidth limits to the virtual disk I/O ports, and scheduling virtual disk I/O ports on the physical machine.

Claims (62)

1. A method for scheduling virtual disk input and output (I/O) ports, comprising:

assigning a set of service quality ratings to a corresponding set of virtual disk I/O ports based on a set of reading-writing bandwidth quotas associated with the corresponding set of virtual disk I/O ports in a physical machine;

determining a total forecast value of a data bandwidth to be used by reading-writing requests within a current time segment and determining virtual disk I/O ports corresponding to the reading-writing requests, comprising:

determining a sum of data bandwidth generated by previous reading-writing requests within a previous time segment; and

determining the total forecast value within the current time segment based on the sum of data bandwidth generated by the previous reading-writing requests within the previous time segment, comprising:

generating a random value corresponding to the total forecast value within the current time segment;

determining whether a difference between an actual statistical bandwidth value and the random value is less than or equal to a threshold, the threshold relating to a preset value, the actual statistical bandwidth value relating to the previous reading-writing requests within the previous time segment; and

in response to a determination that the difference is less than or equal to the threshold, increasing the random value based on the actual statistical bandwidth value;

allocating reading-writing bandwidth limits to the virtual disk I/O ports corresponding to the reading-writing requests based at least in part on the total forecast value of the data bandwidth and the service quality ratings corresponding to the virtual disk I/O ports corresponding to the reading-writing requests; and

scheduling virtual disk I/O ports on the physical machine based at least in part on actual bandwidths to be used by the reading-writing requests within the current time segment and the reading-writing bandwidth limits for the virtual disk I/O ports corresponding to the reading-writing requests.

2. The method as described in claim 1 , wherein an assigned service quality rating relates proportionally to a reading-writing bandwidth quota of each virtual disk I/O port.

3. The method as described in claim 1 , wherein the allocating of the reading-writing bandwidth limits to the virtual disk I/O ports includes allocating the total forecast value of the data bandwidth to different virtual disk I/O ports according to a ratio of the service quality ratings relating to the different virtual disk I/O ports.

4. The method as described in claim 1 , wherein the allocating of the reading-writing bandwidth limits comprises:

independently allocating reading bandwidth limits and writing bandwidth limits according to reading requests and writing requests respectively.

5. The method as described in claim 4 , wherein a ratio of a reading bandwidth limit and a writing bandwidth limit allocated to a corresponding I/O port corresponds to a ratio of a volume of data read from a virtual disk and a volume of data written into a virtual disk.

6. The method as described in claim 1 , wherein the allocating of the reading-writing bandwidth limits to the virtual disk I/O ports comprises:

allocating a token container bucket to each virtual disk I/O port, each token container bucket comprising a plurality of token containers, and a capacity of each token container corresponding to a size of the reading-writing bandwidth limits allocated to a virtual disk I/O port used to control scheduling of the virtual disk I/O ports.

7. The method as described in claim 6 , wherein the capacity of each token container is proportional to the service quality ratings of the corresponding virtual disk I/O ports.

8. The method as described in claim 6 , wherein the token container buckets allocated to different virtual disk I/O ports include a same number of token containers.

9. The method as described in claim 6 , wherein the allocating of the reading-writing bandwidth limits to the virtual disk I/O ports comprises:

adjusting in real-time distribution of token containers in the token container bucket corresponding to each virtual disk I/O port based on reading-writing requests in different time segments.

10. The method as described in claim 9 , wherein a real-time capacity of the token container bucket corresponding to each virtual disk I/O port is no greater than a quota capacity of the corresponding token container bucket.

11. The method as described in claim 10 , wherein the scheduling of the virtual disk I/O ports on the physical machine comprises:

providing token container compensation between different token container buckets of different virtual disk I/O ports.

12. The method as described in claim 1 , wherein the allocating of the reading-writing bandwidth limits to the virtual disk I/O ports comprises:

in response to a determination that a change in quantity of virtual disk I/O ports occurs in the physical machine, re-allocating reading-writing bandwidth limits based on a total forecast value of data bandwidths of virtual disk I/O ports after the change in quantity of virtual disk I/O ports occurs.

13. The method as described in claim 1 , wherein prior to the scheduling of the virtual disk I/O ports on the physical machine, the method comprises generating weighted request queues based on correspondence of the reading-writing requests and requests for the virtual disk I/O ports to access different reading-writing requests in chronological order from the weighted request queues.

14. The method as described in claim 1 , wherein the allocating of the reading-writing bandwidth limits comprises:

allocating, for a virtual disk I/O port, a reading bandwidth limit and a writing bandwidth limit based on a ratio between bandwidth allocated for a virtual disk I/O port reading operation and bandwidth allocated for a virtual disk I/O port writing operation.

15. A device for scheduling virtual disk input and output (I/O) ports, comprising:

at least one hardware processor configured to:

assign a set of service quality ratings to a corresponding set of virtual disk I/O ports based on a set of reading-writing bandwidth quotas associated with the corresponding set of virtual disk I/O ports in a physical machine;

determine a total forecast value of a data bandwidth to be used by reading-writing requests within a current time segment and determine virtual disk I/O ports corresponding to the reading-writing requests, comprising to:

determine a sum of data bandwidth generated by previous reading-writing requests within a previous time segment; and

determine the total forecast value within the current time segment based on the sum of data bandwidth generated by the previous reading-writing requests within the previous time segment, comprising to:

generate a random value corresponding to the total forecast value within the current time segment;

determine whether a difference between an actual statistical bandwidth value and the random value is less than or equal to a threshold, the threshold relating to a preset value, the actual statistical bandwidth value relating to the previous reading-writing requests within the previous time segment; and

in response to a determination that the difference is less than or equal to the threshold, increase the random value based on the actual statistical bandwidth value;

allocate reading-writing bandwidth limits to the virtual disk I/O ports corresponding to the reading-writing requests based at least in part on the total forecast value of the data bandwidth and the service quality ratings corresponding to the virtual disk I/O ports corresponding to the reading-writing requests; and

schedule virtual disk I/O ports on the physical machine based at least in part on actual bandwidths to be used by the reading-writing requests within the current time segment and the reading-writing bandwidth limits for the virtual disk I/O ports corresponding to the reading-writing requests; and

a memory coupled to the at least one hardware processor and configured to provide the at least one hardware processor with instructions.

16. The device as described in claim 15 , wherein the allocating of the reading-writing bandwidth limits comprises:

independently allocating reading bandwidth limits and writing bandwidth limits according to reading requests and writing requests respectively.

17. The device as described in claim 16 , wherein a ratio of a reading bandwidth limit and a writing bandwidth limit allocated to a corresponding I/O port corresponds to a ratio of a volume of data read from a virtual disk and a volume of data written into a virtual disk.

18. The device as described in claim 15 , wherein the allocating of the reading-writing bandwidth limits to the virtual disk I/O ports comprises:

allocating a token container bucket to each virtual disk I/O port, each token container bucket comprising a plurality of token containers, and a capacity of each token container corresponding to a size of the reading-writing bandwidth limits allocated to a virtual disk I/O port used to control scheduling of the virtual disk I/O ports.

19. The device as described in claim 18 , wherein the allocating of the reading-writing bandwidth limits to the virtual disk I/O ports comprises:

adjusting in real-time distribution of token containers in the token container bucket corresponding to each virtual disk I/O port based on reading-writing requests in different time segments.

20. The device as described in claim 19 , wherein the scheduling of the virtual disk I/O ports on the physical machine comprises:

providing token container compensation between different token container buckets of different virtual disk I/O ports.

21. The device as described in claim 15 , wherein the allocating of the reading-writing bandwidth limits to the virtual disk I/O ports comprises:

in response to a determination that a change in quantity of virtual disk I/O ports occurs in the physical machine, re-allocating reading-writing bandwidth limits based on a total forecast value of data bandwidths of virtual disk I/O ports after the change in quantity of virtual disk I/O ports occurs.

22. A computer program product for scheduling virtual disk input and output (I/O) ports, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

assigning a set of service quality ratings to a corresponding set of virtual disk I/O ports based on a set of reading-writing bandwidth quotas associated with the corresponding set of virtual disk I/O ports in a physical machine;

determining a total forecast value of a data bandwidth to be used by reading-writing requests within a current time segment and determining virtual disk I/O ports corresponding to the reading-writing requests, comprising:

determining a sum of data bandwidth generated by previous reading-writing requests within a previous time segment; and

determining the total forecast value within the current time segment based on the sum of data bandwidth generated by the previous reading-writing requests within the previous time segment, comprising:

generating a random value corresponding to the total forecast value within the current time segment

determining whether a difference between an actual statistical bandwidth value and the random value is less than or equal to a threshold, the threshold relating to a preset value, the actual statistical bandwidth value relating to the previous reading-writing requests within the previous time segment; and

in response to a determination that the difference is less than or equal to the threshold, increasing the random value based on the actual statistical bandwidth value, the threshold relating to a preset value;

allocating reading-writing bandwidth limits to the virtual disk I/O ports corresponding to the reading-writing requests based at least in part on the total forecast value of the data bandwidth and the service quality ratings corresponding to the virtual disk I/O ports corresponding to the reading-writing requests; and

scheduling virtual disk I/O ports on the physical machine based at least in part on actual bandwidths to be used by the reading-writing requests within the current time segment and the reading-writing bandwidth limits for the virtual disk I/O ports corresponding to the reading-writing requests.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075478/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2014
From: LI, XIAOBO; CHEN, WEICAI; CHEN, BO
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 033299/0925 →
Priority Claims (1)
CN 2013 1 0135853 · Apr 18, 2013 · national
Continuity (1)
Related Publication 20140325522A1 · Oct 30, 2014
Cited By (1)
US 12,321,601