Data management in RAID environment
First Claim
1. A data storage system, comprising:
- a plurality of Data Storage Devices (DSDs) collectively having a total storage capacity available for storing user data among the plurality of DSDs with each DSD of the plurality of DSDs having a DSD storage capacity that contributes to the total storage capacity of the plurality of DSDs; and
a controller configured to;
determine a weight for each DSD of the plurality of DSDs based on a percentage of the total storage capacity that is contributed by the DSD storage capacity of the respective DSD;
assign a strip size to each DSD of the plurality of DSDs based on the determined weight for the respective DSD, including;
assign a first strip size to a first DSD of the plurality of DSDs based at least in part on a first DSD storage capacity contributed by the first DSD to the total storage capacity; and
assign a second strip size to a second DSD of the plurality of DSDs based at least in part on a second DSD storage capacity contributed by the second DSD to the total storage capacity,wherein;
the second DSD storage capacity contributed by the second DSD differs from the first DSD storage capacity contributed by the first DSD, andthe second strip size assigned to the second DSD differs from the first strip size assigned to the first DSD;
receive data for storage in a data stripe across the plurality of DSDs; and
store the data stripe across the plurality of DSDs such that each DSD of the plurality of DSDs stores a different portion of the data stripe,wherein;
the first DSD is configured to store a first portion of the data stripe having the first strip size, andthe second DSD is configured to store a second portion of the data stripe having the second strip size.
8 Assignments
0 Petitions
Accused Products
Abstract
A data storage system includes a plurality of Data Storage Devices (DSDs) having a total storage capacity available for storing user data among the plurality of DSDs. Each DSD of the plurality of DSDs has a DSD storage capacity that contributes to the total storage capacity of the plurality of DSDs. A strip size is assigned to each DSD of the plurality of DSDs based at least in part on a portion of the total storage capacity that is contributed by the DSD storage capacity of the respective DSD. Data is received for storage in a data stripe across the plurality of DSDs and the data stripe is stored across the plurality of DSDs such that each DSD of the plurality of DSDs stores a different portion of the data stripe having the strip size assigned to the DSD.
449 Citations
21 Claims
-
1. A data storage system, comprising:
-
a plurality of Data Storage Devices (DSDs) collectively having a total storage capacity available for storing user data among the plurality of DSDs with each DSD of the plurality of DSDs having a DSD storage capacity that contributes to the total storage capacity of the plurality of DSDs; and a controller configured to; determine a weight for each DSD of the plurality of DSDs based on a percentage of the total storage capacity that is contributed by the DSD storage capacity of the respective DSD; assign a strip size to each DSD of the plurality of DSDs based on the determined weight for the respective DSD, including; assign a first strip size to a first DSD of the plurality of DSDs based at least in part on a first DSD storage capacity contributed by the first DSD to the total storage capacity; and assign a second strip size to a second DSD of the plurality of DSDs based at least in part on a second DSD storage capacity contributed by the second DSD to the total storage capacity, wherein; the second DSD storage capacity contributed by the second DSD differs from the first DSD storage capacity contributed by the first DSD, and the second strip size assigned to the second DSD differs from the first strip size assigned to the first DSD; receive data for storage in a data stripe across the plurality of DSDs; and store the data stripe across the plurality of DSDs such that each DSD of the plurality of DSDs stores a different portion of the data stripe, wherein; the first DSD is configured to store a first portion of the data stripe having the first strip size, and the second DSD is configured to store a second portion of the data stripe having the second strip size. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of operating a data storage system including a plurality of Data Storage Devices (DSDs) collectively having a total storage capacity available for storing user data among the plurality of DSDs, with each DSD of the plurality of DSDs having a DSD storage capacity that contributes to the total storage capacity of the plurality of DSDs, the method comprising:
-
determining a weight for each DSD of the plurality of DSDs based on a percentage of the total storage capacity that is contributed by the DSD storage capacity of the respective DSD; assigning a strip size to each DSD of the plurality of DSDs based on the determined weight for the respective DSD, including; assigning a first strip size to a first DSD of the plurality of DSDs based at least in part on a first DSD storage capacity contributed by the first DSD to the total storage; and assigning a second strip size to a second DSD of the plurality of DSDs based at least in part on a second DSD storage capacity contributed by the second DSD to the total storage capacity, wherein; the second DSD storage capacity contributed by the second DSD differs from the first DSD storage capacity contributed by the first DSD, and the second strip size assigned to the second DSD differs from the first strip size assigned to the first DSD; receiving data for storage in a data stripe across the plurality of DSDs; and storing the data stripe across the plurality of DSDs such that each DSD of the plurality of DSDs stores a different portion of the data stripe, wherein; the first DSD stores a first portion of the data stripe having the first strip size, and the second DSD stores a second portion of the data stripe having the second strip size. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A controller for a data storage system including a plurality of Data Storage Devices (DSDs) having a total storage capacity available for storing user data among the plurality of DSDs with each DSD of the plurality of DSDs having a DSD storage capacity that contributes to the total storage capacity of the plurality of DSDs, the controller comprising:
-
an interface for communicating with the plurality of DSDs; and a processor configured to; determine a weight for each DSD of the plurality of DSDs based on a percentage of the total storage capacity that is contributed by the DSD storage capacity of the respective DSD; assign a strip size to each DSD of the plurality of DSDs based on the determined weight for the respective DSD, including; assign a first strip size to a first DSD of the plurality of DSDs based at least in part on a first DSD storage capacity contributed by the first DSD to the total storage capacity; and assign a second strip size to a second DSD of the plurality of DSDs based at least in part on a second DSD storage capacity contributed by the second DSD to the total storage capacity; wherein; the second DSD storage capacity contributed by the second DSD differs from the first DSD storage capacity contributed by the first DSD, and the second strip size assigned to the second DSD differs from the first strip size assigned to the first DSD; receive data for storage in a data stripe across the plurality of DSDs; and store the data stripe across the plurality of DSDs such that each DSD of the plurality of DSDs stores a different portion of the data stripe, wherein the first DSD stores a first portion of the data stripe having the first strip size and the second DSD stores a second portion of the data stripe having the second strip size. - View Dependent Claims (20)
-
-
21. An apparatus for operating a data storage system including a plurality of Data Storage Devices (DSDs) having a total storage capacity available for storing user data among the plurality of DSDs with each DSD of the plurality of DSDs having a DSD storage capacity that contributes to the total storage capacity of the plurality of DSDs, the apparatus comprising:
-
means for determining a weight for each DSD of the plurality of DSDs based on a percentage of the total storage capacity that is contributed by the DSD storage capacity of the respective DSD; means for assigning a strip size to each DSD of the plurality of DSDs based on the determined weight for the respective DSD, including; means for assigning a first strip size to a first DSD of the plurality of DSDs based at least in part on a first DSD storage capacity contributed by the first DSD to the total storage capacity; and means for assigning a second strip size to a second DSD of the plurality of DSDs based at least in part on a second DSD storage capacity contributed by the second DSD to the total storage capacity; wherein; the second DSD storage capacity contributed by the second DSD differs from the first DSD storage capacity contributed by the first DSD, and the second strip size assigned to the second DSD differs from the first strip size assigned to the first DSD; means for receiving data for storage in a data stripe across the plurality of DSDs; and means for storing the data stripe across the plurality of DSDs such that each DSD of the plurality of DSDs stores a different portion of the data stripe, wherein the first DSD stores a first portion of the data stripe having the first strip size and the second DSD stores a second portion of the data stripe having the second strip size.
-
Specification