System and method for restriping data across a plurality of volumes
First Claim
1. A method for restriping data across a set of volumes distributed across a plurality of storage systems, comprising:
- striping the data across the set of volumes organized as a striped volume set, the data striped according to a striping rule set;
creating a new striping rule set identifying the set of volumes to be utilized as the striped volume set, and each volume of the striped volume set is serviced by a different storage system of the plurality of storage systems;
receiving a data access operation directed to a stripe of the data to be processed according to the new striping rule set;
in response to receiving the data access operation directed to the stripe of the data to be processed according to the new striping rule set, determining if the stripe of the data is located on a correct volume of the striped volume set according to the new striping rule set; and
in response to determining that the stripe of the data is not located on the correct volume of the striped volume set according to the new striping rule set, relocating the stripe of the data to the correct volume according to the new striping rule set.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method re-stripes one or more data containers across a striped volume set (SVS) that has been modified by the addition of one or more volumes. The SVS is associated with an existing set of striping rules that define a stripe algorithm, a stripe width and an ordered list of volumes distributed across a plurality of nodes interconnected as a cluster. Each node of the cluster includes (i) a disk element (D-blade) adapted to service a volume of the SVS and (ii) a network element (N-blade) adapted to redirect a data access request to any D-blade of the cluster. Notably, the content of each data container is apportioned among the volumes of the SVS to thereby improve the efficiency of storage service provided by the cluster. To that end, the stripe algorithm specifies the manner in which the data container content is apportioned as stripes across the plurality of volumes, while the stripe width specifies the size/width of each stripe.
-
Citations
15 Claims
-
1. A method for restriping data across a set of volumes distributed across a plurality of storage systems, comprising:
-
striping the data across the set of volumes organized as a striped volume set, the data striped according to a striping rule set; creating a new striping rule set identifying the set of volumes to be utilized as the striped volume set, and each volume of the striped volume set is serviced by a different storage system of the plurality of storage systems; receiving a data access operation directed to a stripe of the data to be processed according to the new striping rule set; in response to receiving the data access operation directed to the stripe of the data to be processed according to the new striping rule set, determining if the stripe of the data is located on a correct volume of the striped volume set according to the new striping rule set; and in response to determining that the stripe of the data is not located on the correct volume of the striped volume set according to the new striping rule set, relocating the stripe of the data to the correct volume according to the new striping rule set. - View Dependent Claims (2, 3)
-
-
4. A computer readable medium containing executable program instructions executed by a processor, comprising:
-
program instructions that stripe data across a set of volumes organized as a striped volume set, the data striped according to a striping rule set; program instructions that create a new striping rule set identifying a set of volumes to be utilized as the striped volume set, wherein the set of volumes is distributed across a plurality of storage systems, and wherein each volume of the striped volume set is serviced by a different storage system of the plurality of storage systems; program instructions that receive a data access operation directed to a stripe of the data to be processed according to the new striping rule set; in response to receiving the data access operation directed to the stripe of the data to be processed according to the new striping rule set, program instructions that determine if the stripe of the data is located on a correct volume of the striped volume set according to the new striping rule set; and in response to determining that the stripe of the data is not located on the correct volume of the striped volume set according to the new striping rule set, program instructions that relocate the stripe of the data to the correct volume according to the new striping rule set.
-
-
5. A system for accessing data serviced by a plurality of storage systems interconnected as a cluster, comprising:
-
a plurality of volumes organized as a striped volume set and distributed across the plurality of storage systems according to a striping rule set, wherein each volume of the striped volume set is serviced by a different storage system of the cluster; a storage system of the cluster configured to receive a data access operation directed to a stripe of the data to be processed according to a new striping rule set; and at least one container striping module executing on each of the plurality of storage systems configured to determine, in response to the data access operation for the stripe in the striped volume set, if the stripe is currently located on a correct volume of the striped volume set according to the new striping rule set and, in response to determining that the stripe is not on the correct volume of the striped volume set according to the new striping rule set, the at least one container striping module further configured to relocate the stripe to the correct volume of the striped volume set according to the new striping rule set. - View Dependent Claims (6, 7)
-
-
8. A method for restriping data across a set of volumes coupled to a plurality of computers, comprising:
-
striping the data across the set of volumes organized as a striped volume set, the data striped according to a striping rule set; distributing the set of volumes of the striped volume set across the plurality of computers, wherein each volume of the striped volume set is serviced by a different D-blade associated with the plurality of computers; creating a new striping rule set identifying the set of volumes to be utilized as the striped volume set; for one or more stripes in the striped volume set, receiving a data access operation directed to the one or more stripes to be processed according to the new striping rule set, and in response, determining if the one or more stripes are located on a correct volume of the striped volume set serviced by a correct D-blade according to the new striping rule set; and in response to determining that the one or more stripes are not located on the correct volume serviced by the correct D-blade according to the new striping rule set, relocating the one or more stripes to the correct volume serviced by the correct D-blade. - View Dependent Claims (9, 10)
-
-
11. A method for restriping data across a set of volumes distributed across a plurality of storage systems, comprising:
-
striping the data across the set of volumes organized as a striped volume set, the data striped according to a striping rule set; distributing the striped volume set across the plurality of storage systems, wherein each volume of the striped volume set is serviced by a different storage system of the plurality of storage systems; creating a new set of striping rules for a data container striped across the striped volume set to replace an old set of striping rules for the data container in response to receiving a restriping operation request, the new set of striping rules incorporating at least one additional volume to the striped volume set; receiving a data access operation directed to a stripe of the data container to be processed according to the new set of striping rules, and in response, determining whether the stripe of the data container is stored on a particular volume of the striped volume set according to the new set of striping rules; and relocating the stripe of the data container to the at least one additional volume according to the new set of striping rules in response to determining that the stripe of the data container is not stored on the particular volume of the striped volume set according to the new set of striping rules. - View Dependent Claims (12, 13, 14)
-
-
15. A computer readable medium containing executable program instructions executed by a processor, comprising:
-
program instructions that stripe data across a set of volumes organized as a striped volume set, the data striped according to a striping rule set; program instructions that distribute a striped volume set across a plurality of storage systems, wherein each volume of the striped volume set is serviced by a different storage system of the plurality of storage systems; program instructions that create a new set of striping rules for a data container striped across the striped volume set to replace an old set of striping rules for the data container in response to receiving a restriping operation request, the new set of striping rules incorporating at least one additional volume to the striped volume set; program instructions that receive a data access operation directed to a stripe of the data container to be processed according to the new set of striping rules, and in response, program instructions that determine whether the stripe of the data container is stored on a particular volume of the striped volume set according to the new set of striping rules; and program instructions that relocate the stripe of the data container to the at least one additional volume according to the new set of striping rules in response to determining that the stripe of the data container is not stored on the particular volume of the striped volume set according to the new set of striping rules.
-
Specification