IP Library Granted Patent US 9,594,770
Granted Patent B1
US 9,594,770 · App. 13/170,816 · Granted Mar 14, 2017

Score-based selection of storage device for virtual disk with specification of quality of service

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 9,594,770
App. No.
13/170,816
Granted
Mar 14, 2017
Kind
B1
Abstract

Selecting a storage device to be mapped to a requested virtual disk includes maintaining attributes for a set of storage devices including a cost attribute, a capacity attribute and quality-of-service attributes. A request for a virtual disk includes request parameters including a price parameter, a capacity parameter and quality-of-service parameters. A device selection function generates a score for each storage device based on the request parameters and the storage device attributes, and identifies a best suited storage device by comparing the respective scores of the storage devices. The virtual disk is then created in satisfaction of the request with a mapping to the identified storage device to provide underlying physical data storage for the virtual disk.

Claims (47)

1. A method of operating a data storage system, comprising:

maintaining respective sets of attributes for a set of storage devices of the storage system, the set of attributes for each storage device including a cost attribute, a capacity attribute and a set of quality-of-service attributes, the cost attribute expressing a cost of operating the storage device, the capacity attribute expressing a storage capacity of the storage device, and the quality-of-service attributes expressing levels of respective aspects of service provided by the storage device in operation;

receiving a request from a user to obtain a user-specific virtual disk to store user data, the request including a set of request parameters including a price parameter, a capacity parameter and a set of quality-of-service parameters, the price parameter expressing a maximum price the user will pay for using the virtual disk, the capacity parameter expressing a minimum storage capacity the user requires for the virtual disk to store user data, and the quality-of-service parameters expressing levels of respective aspects of service the user requires to be provided by the virtual disk in operation;

automatically applying a device selection function to the request to select a storage device to be mapped to the virtual disk in satisfaction of the request, the device selection function generating a respective score for each storage device based on the parameters of the request and the attributes of the storage device, the device selection function identifying a best suited storage device by comparing the respective scores of the storage devices;

automatically creating the virtual disk in satisfaction of the request with a mapping to the best suited storage device to provide underlying physical data storage therefor; and

providing an interface by which the user accesses the virtual disk for storing the user data thereon and retrieving the user data therefrom.

2. A method according to claim 1 , wherein the device selection function includes a set of attribute scoring functions for each storage device, a score aggregating function for each storage device, and a score comparing function, each attribute scoring function for each storage device using a respective parameter of the request and a respective attribute of the storage device to generate a respective attribute score for the storage device, the score aggregating function for each storage device using the attribute scores of the storage device to generate an aggregate score indicating a level of suitability of the storage device to satisfy the request, and the score comparing function using the aggregate scores of the storage devices to identify a high-scoring storage device as the best suited storage device.

3. A method according to claim 2 , wherein the attributes for each storage device further include a location attribute, and the request parameters further include a location parameter specifying a location-related criteria for selection of a storage device, and wherein the attribute scoring functions for each storage device include a location scoring function generating a location score expressing suitability of the storage device location for the request.

4. A method according to claim 3 , wherein the location scoring function evaluates a rule selected from a first rule for minimizing latency and a second rule for imposing geographic separation.

5. A method according to claim 1 , wherein the quality-of-service parameters include a performance level parameter and a durability parameter.

6. A method according to claim 1 , wherein the quality-of-service parameters are expressed as levels in a generalized rating scheme not specific to any specific parameter type, and wherein maintaining the sets of attributes includes mapping raw device attributes into corresponding ratings according to the rating scheme, the ratings being used by the attribute scoring to generate the attribute scores.

7. A method according to claim 1 , wherein the capacity attribute includes a total capacity of the device and a consumed capacity already storing user data.

8. A method according to claim 1 , wherein a quality of service scoring function reduces a quality of service score when a corresponding quality of service attribute indicates that the storage device provides a level of service higher than a requested level of service.

9. A method according to claim 1 , wherein the virtual disk appears to a user of the storage system as a real storage device including serving as a target of a storage I/O request and having one or more addressed regions mapped to corresponding addressed regions of the best suited storage device.

10. A method according to claim 1 , wherein receiving the request includes receiving a request form submitted by a user and including the request parameters as user-filled values.

11. A method according to claim 1 , wherein the storage system includes an external connection to the user and first and second interfaces to the external connection, the first interface including the virtual disk and being used for exchanging the user data between the user and the storage system, the second interface used for exchanging service-related messages including the request between the user and the storage system.

12. A method according to claim 1 , wherein the mapping is an initial mapping, and further including automatically and dynamically changing the mapping between the virtual disk and the best suited storage device to meet operational goals during subsequent operation of the data storage system.

13. A method according to claim 1 , wherein the virtual disk is a first virtual disk and the mapping is a first mapping of the first virtual disk to a first portion of the best suited storage device, and wherein the steps of claim 1 are repeated in a subsequent process of creating a second virtual disk in response to a second request, the subsequent process resulting in a second mapping of the second virtual disk to a separate remainder portion of the best suited storage device.

14. A method according to claim 1 , wherein the best suited storage device is a first best-suited storage device providing a first portion of the underlying physical data storage for the virtual disk, and the mapping is a first mapping of a first portion of the virtual disk to the first best-suited storage device, and wherein (1) the applying step is repeated to identify a second best-suited storage device to provide a second portion of the underlying physical data storage for the virtual disk, and (2) the virtual disk is created with the first mapping for the first portion of the virtual disk and a second mapping of a second portion of the virtual disk to the second best-suited storage device.

15. A computer for use in a data storage system, comprising:

a processor;

memory;

input/output circuitry connecting the computer via a user network to a user; and

interconnect circuitry coupling the processor, memory and input/output circuitry together,

wherein the memory contains a set of computer instructions executable by the processor to:

maintain respective sets of attributes for a set of storage devices of the data storage system, the set of attributes for each storage device including a cost attribute, a capacity attribute and a set of quality-of-service attributes, the cost attribute expressing a cost of operating the storage device, the capacity attribute expressing a storage capacity of the storage device, and the quality-of-service attributes expressing levels of respective aspects of service provided by the storage device in operation;

receive a request from the user via the user network to obtain a user-specific virtual disk to store user data, the request including a set of request parameters including a price parameter, a capacity parameter and a set of quality-of-service parameters, the price parameter expressing a maximum price the user will pay for using the virtual disk, the capacity parameter expressing a minimum storage capacity the user requires for the virtual disk to store user data, and the quality-of-service parameters expressing desired levels of respective aspects of service the user requires to be provided by the virtual disk in operation;

automatically apply a device selection function to the request to select a storage device to be mapped to the virtual disk in satisfaction of the request, the device selection function generating a respective score for each storage device based on the parameters of the request and the attributes of the storage device, the device selection function identifying a best suited storage device by comparing the respective scores of the storage devices;

automatically create the virtual disk in satisfaction of the request with a mapping to the best suited storage device to provide underlying physical data storage therefor; and

provide an interface to the user network by which the user accesses the virtual disk for storing the user data thereon and retrieving the user data therefrom.

16. A computer according to claim 15 , wherein the device selection function includes a set of attribute scoring functions for each storage device, a score aggregating function for each storage device, and a score comparing function, each attribute scoring function for each storage device using a respective parameter of the request and a respective attribute of the storage device to generate a respective attribute score for the storage device, the score aggregating function for each storage device using the attribute scores of the storage device to generate an aggregate score indicating a level of suitability of the storage device to satisfy the request, and the score-comparing function using the aggregate scores of the storage devices to identify a high-scoring storage device as the best suited storage device.

17. A computer according to claim 16 , wherein the attributes for each storage device further include a location attribute, and the request parameters further include a location parameter specifying a location-related criteria for selection of a storage device, and wherein the attribute scoring functions for each storage device include a location scoring function generating a location score expressing suitability of the storage device location for the request.

18. A computer according to claim 17 , wherein the location scoring function evaluates a rule selected from a first rule for minimizing latency and a second rule for imposing geographic separation.

19. A computer according to claim 15 , wherein the quality-of-service parameters include a performance level parameter and a durability parameter.

20. A computer according to claim 15 , wherein the quality-of-service parameters are expressed as levels in a generalized rating scheme not specific to any specific parameter type, and wherein maintaining the sets of attributes includes mapping raw device attributes into corresponding ratings according to the rating scheme, the ratings being used by the attribute scoring to generate the attribute scores.

21. A computer according to claim 15 , wherein the capacity attribute includes a total capacity of the device and a consumed capacity already storing user data.

22. A computer according to claim 15 , wherein a quality of service scoring function reduces a quality of service score when a corresponding quality of service attribute indicates that the storage device provides a level of service higher than a requested level of service.

23. A computer according to claim 15 , wherein the storage system includes an external connection to the user network and first and second interfaces to the external connection, the first interface including the virtual disk and being used for exchanging the user data between the user and the storage system, the second interface used for exchanging service-related messages including the request between the user and the storage system.

24. A non-transitory computer-readable medium having a set of computer instructions stored thereon, the computer instructions being executable by a computer of a data storage system to cause the computer to:

maintain respective sets of attributes for a set of storage devices of the storage system, the set of attributes for each storage device including a cost attribute, a capacity attribute and a set of quality-of-service attributes, the cost attribute expressing a cost of operating the storage device, the capacity attribute expressing a storage capacity of the storage device, and the quality-of-service attributes expressing levels of respective aspects of service provided by the storage device in operation;

receive a request from a user to obtain a user-specific virtual disk to store user data, the request including a set of request parameters including a price parameter, a capacity parameter and a set of quality-of-service parameters, the price parameter expressing a maximum price the user will pay for using the virtual disk, the capacity parameter expressing a minimum storage capacity the user requires for the virtual disk to store user data, and the quality-of-service parameters expressing levels of respective aspects of service the user requires to be provided by the virtual disk in operation;

automatically apply a device selection function to the request to select a storage device to be mapped to the virtual disk in satisfaction of the request, the device selection function generating a respective score for each storage device based on the parameters of the request and the attributes of the storage device, the device selection function identifying a best suited storage device by comparing the respective scores of the storage devices;

automatically create the virtual disk in satisfaction of the request with a mapping to the best suited storage device to provide underlying physical data storage therefor; and

provide an interface by which the user accesses the virtual disk for storing the user data thereon and retrieving the user data therefrom.

25. A non-transitory computer-readable medium according to claim 24 , wherein the device selection function includes a set of attribute scoring functions for each storage device, a score aggregating function for each storage device, and a score comparing function, each attribute scoring function for each storage device using a respective parameter of the request and a respective attribute of the storage device to generate a respective attribute score for the storage device, the score aggregating function for each storage device using the attribute scores of the storage device to generate an aggregate score indicating a level of suitability of the storage device to satisfy the request, and the score comparing function using the aggregate scores of the storage devices to identify a high-scoring storage device as the best suited storage device.

26. A non-transitory computer-readable medium according to claim 25 , wherein the attributes for each storage device further include a location attribute, and the request parameters further include a location parameter specifying a location-related criteria for selection of a storage device, and wherein the attribute scoring functions for each storage device include a location scoring function generating a location score expressing suitability of the storage device location for the request.

27. A non-transitory computer-readable medium according to claim 25 , wherein the location scoring function evaluates a rule selected from a first rule for minimizing latency and a second rule for imposing geographic separation.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2018
From: MOZY, INC.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045243/0432 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
CHANGE OF NAME Recorded Aug 15, 2016
From: DECHO CORPORATION
To: MOZY, INC.
Reel/Frame 039681/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2011
From: KUSHMERICK, NICHOLAS; BOZEMAN, PATRICK
To: DECHO CORPORATION
Reel/Frame 026871/0363 →