Managing data storage
First Claim
1. A computer-implemented method, comprising:
- receiving a write request comprising new data to be written to a data storage system, wherein the data storage system comprises a plurality of data storage devices arranged in a redundant array of independent disk (RAID) group;
in response to receiving the write request, determining a size of the write request, wherein the size relates to a number of non-parity data portions in a full stripe of data that are associated with the new data;
based on the size of the write request, selecting one of a plurality of processes to implement storage of the new data; and
storing the new data in the RAID group in the data storage system in accordance with the selected process;
wherein the method is configured to select a first process when the size of the write request equates to less than half of the non-parity data portions in the full stripe of data, the first process comprising;
reading a parity and one or more non-parity data portions in the stripe of data associated with the new data,calculating a new parity based on the parity and the one or more non-parity data portions and the new data, andwriting the new parity and the new data to the RAID group in the data storage system;
wherein the method is configured to select a second process when the size of the write request equates to half or more of the non-parity data portions in the full stripe of data but less than all of the non-parity data portions in the full stripe of data, the second process comprising;
reading a parity and one or more missing non-parity data portions in the full stripe of data,verifying the coherency of the one or more missing non-parity data portions by comparing a checksum of the parity and a checksum of the one or more missing non-parity data portions,determining a new parity based on the new data and the one or more missing non-parity data portions, andwriting, in response to verifying the coherency of the missing non-parity data portions, the new data and the new parity to the RAID group in the data storage system without writing the one or more missing non-parity data portions to the RAID group in the data storage system, wherein the new data and the new parity are written to the RAID group with a checksum;
wherein the method is configured to select a third process when the size of the write request equates to a full stripe of data, the third process comprising;
calculating a new parity based on the new data and writing the new parity and the new data to the RAID group in the data storage system.
9 Assignments
0 Petitions
Accused Products
Abstract
There are disclosed computer-implemented methods, apparatus, and computer program products for managing data storage. In one embodiment, the computer-implemented method comprises the step of receiving new data to be written to storage. The method also comprises the step determining that the new data does not form a full stripe of data. The method also comprises reading missing non-parity data in the stripe of data. The method further comprises determining new parity based on the new data and the missing non-parity data. The method still further comprises writing the new data and the new parity to storage in a manner that does not require the missing non-parity data to be written to storage.
8 Citations
3 Claims
-
1. A computer-implemented method, comprising:
-
receiving a write request comprising new data to be written to a data storage system, wherein the data storage system comprises a plurality of data storage devices arranged in a redundant array of independent disk (RAID) group; in response to receiving the write request, determining a size of the write request, wherein the size relates to a number of non-parity data portions in a full stripe of data that are associated with the new data; based on the size of the write request, selecting one of a plurality of processes to implement storage of the new data; and storing the new data in the RAID group in the data storage system in accordance with the selected process; wherein the method is configured to select a first process when the size of the write request equates to less than half of the non-parity data portions in the full stripe of data, the first process comprising; reading a parity and one or more non-parity data portions in the stripe of data associated with the new data, calculating a new parity based on the parity and the one or more non-parity data portions and the new data, and writing the new parity and the new data to the RAID group in the data storage system; wherein the method is configured to select a second process when the size of the write request equates to half or more of the non-parity data portions in the full stripe of data but less than all of the non-parity data portions in the full stripe of data, the second process comprising; reading a parity and one or more missing non-parity data portions in the full stripe of data, verifying the coherency of the one or more missing non-parity data portions by comparing a checksum of the parity and a checksum of the one or more missing non-parity data portions, determining a new parity based on the new data and the one or more missing non-parity data portions, and writing, in response to verifying the coherency of the missing non-parity data portions, the new data and the new parity to the RAID group in the data storage system without writing the one or more missing non-parity data portions to the RAID group in the data storage system, wherein the new data and the new parity are written to the RAID group with a checksum; wherein the method is configured to select a third process when the size of the write request equates to a full stripe of data, the third process comprising; calculating a new parity based on the new data and writing the new parity and the new data to the RAID group in the data storage system.
-
-
2. An apparatus, comprising:
-
at least one processing device, said at least one processing device comprising a processor coupled to a memory; wherein the apparatus is configured to; receive a write request comprising new data to be written to a data storage system, wherein the data storage system comprises a plurality of data storage devices arranged in a redundant array of independent disk (RAID) group; in response to receiving the write request, determine a size of the write request, wherein the size relates to a number of non-parity data portions in a full stripe of data that are associated with the new data; based on the size of the write request, select one of a plurality of processes to implement storage of the new data; and store the new data in the RAID group in the data storage system in accordance with the selected process; wherein the apparatus is configured to select a first process when the size of the write request equates to less than half of the non-parity data portions in the full stripe of data, the first process comprising; reading a parity and one or more non-parity data portions in the stripe of data associated with the new data, calculating a new parity based on the parity and the one or more non-parity data portions and the new data, and writing the new parity and the new data to the RAID group in the data storage system; wherein the apparatus is configured to select a second process when the size of the write request equates to half or more of the non-parity data portions in the full stripe of data but less than all of the non-parity data portions in the full stripe of data, the second process comprising; reading a parity and one or more missing non-parity data portions in the full stripe of data, verifying the coherency of the one or more missing non-parity data portions by comparing a checksum of the parity and a checksum of the one or more missing non-parity data portions, determining a new parity based on the new data and the one or more missing non-parity data portions, and writing, in response to verifying the coherency of the missing non-parity data portions, the new data and the new parity to the RAID group in the data storage system without writing the one or more missing non-parity data portions to the RAID group in the data storage system, wherein the new data and the new parity are written to the RAID group with a checksum; wherein the apparatus is configured to select a third process when the size of the write request equates to a full stripe of data, the third process comprising; calculating a new parity based on the new data and writing the new parity and the new data to the RAID group in the data storage system.
-
-
3. A computer program product having a non-transitory computer-readable medium storing instructions, the instructions, when carried out by one or more processors, causing the one or more processors to perform a method of:
-
receiving a write request comprising new data to be written to a data storage system, wherein the data storage system comprises a plurality of data storage devices arranged in a redundant array of independent disk (RAID) group; in response to receiving the write request, determining a size of the write request, wherein the size relates to a number of non-parity data portions in a full stripe of data that are associated with the new data; based on the size of the write request, selecting one of a plurality of processes to implement storage of the new data; and storing the new data in the RAID group in the data storage system in accordance with the selected process; wherein the method is configured to select a first process when the size of the write request equates to less than half of the non-parity data portions in the full stripe of data, the first process comprising; reading a parity and one or more non-parity data portions in the stripe of data associated with the new data, calculating a new parity based on the parity and the one or more non-parity data portions and the new data, and writing the new parity and the new data to the RAID group in the data storage system; wherein the method is configured to select a second process when the size of the write request equates to half or more of the non-parity data portions in the full stripe of data but less than all of the non-parity data portions in the full stripe of data, the second process comprising; reading a parity and one or more missing non-parity data portions in the full stripe of data, verifying the coherency of the one or more missing non-parity data portions by comparing a checksum of the parity and a checksum of the one or more missing non-parity data portions, determining a new parity based on the new data and the one or more missing non-parity data portions, and writing, in response to verifying the coherency of the missing non-parity data portions, the new data and the new parity to the RAID group in the data storage system without writing the one or more missing non-parity data portions to the RAID group in the data storage system, wherein the new data and the new parity are written to the RAID group with a checksum; wherein the method is configured to select a third process when the size of the write request equates to a full stripe of data, the third process comprising; calculating a new parity based on the new data and writing the new parity and the new data to the RAID group in the data storage system.
-
Specification