Multi level data recovery in storage disk arrays
First Claim
1. A method, comprising:
- arranging multiple storage devices as a Redundant Array of Independent Disks (RAID) array;
receiving, from a given storage device, a number of error messages exceeding a threshold, the given storage device storing a dataset;
retrieving, from the given storage device, a mirrored subset of the dataset;
retrieving, using remaining storage devices in the RAID array, the remaining storage devices comprising the multiple storage devices absent the given storage device, a calculated subset of the dataset, the dataset comprising a union of the mirrored and the calculated subsets; and
creating, on an additional storage device not comprised in the multiple storage devices, a copy of the dataset using the mirrored and the calculated subsets;
wherein each of the storage devices in the RAID array have corresponding storage regions, and wherein retrieving the calculated subset comprises successfully retrieving user data and parity data from a first number of the corresponding storage regions in each of the remaining storage devices in the RAID array, calculating values based on the successfully retrieved user and parity data, storing the calculated values to the calculated subset, and identifying a second number of the corresponding storage regions whose data could not be successfully retrieved; and
wherein retrieving the mirrored subset comprises retrieving, for each of the second number of the corresponding storage regions, data from the corresponding storage region in the given storage device, and storing, to the mirrored subset, the data retrieved from the given storage region.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, computing systems and computer program products implement embodiments of the present invention that include arranging multiple storage devices as a RAID array and receiving, from a given storage device storing a dataset, a number of error messages exceeding a threshold. A mirrored subset of the dataset is retrieved from the given device, and a calculated subset of the dataset is retrieved from remaining devices in the RAID array. In a first embodiment, the mirrored subset is created first, and the calculated subset includes a relative complement of the mirrored subset with respect to the dataset. In a second embodiment, the calculated subset is created first, and the mirrored subset includes a relative complement of the calculated subset with respect to the dataset. The mirrored and the calculated datasets are stored to an additional storage device, and the given device is replaced with the additional device in the RAID array.
13 Citations
14 Claims
-
1. A method, comprising:
-
arranging multiple storage devices as a Redundant Array of Independent Disks (RAID) array; receiving, from a given storage device, a number of error messages exceeding a threshold, the given storage device storing a dataset; retrieving, from the given storage device, a mirrored subset of the dataset; retrieving, using remaining storage devices in the RAID array, the remaining storage devices comprising the multiple storage devices absent the given storage device, a calculated subset of the dataset, the dataset comprising a union of the mirrored and the calculated subsets; and creating, on an additional storage device not comprised in the multiple storage devices, a copy of the dataset using the mirrored and the calculated subsets;
wherein each of the storage devices in the RAID array have corresponding storage regions, and wherein retrieving the calculated subset comprises successfully retrieving user data and parity data from a first number of the corresponding storage regions in each of the remaining storage devices in the RAID array, calculating values based on the successfully retrieved user and parity data, storing the calculated values to the calculated subset, and identifying a second number of the corresponding storage regions whose data could not be successfully retrieved; and
wherein retrieving the mirrored subset comprises retrieving, for each of the second number of the corresponding storage regions, data from the corresponding storage region in the given storage device, and storing, to the mirrored subset, the data retrieved from the given storage region. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A storage system, comprising:
-
multiple storage devices arranged as a Redundant Array of Independent Disks (RAID) array; one or more additional storage devices; and a processor configured; to receive, from a given storage device in the RAID array, a number of error messages exceeding a threshold, the given storage device storing a dataset; to retrieve, from the given storage device in the RAID array, a mirrored subset of the dataset; to retrieve, using remaining storage devices in the RAID array, the remaining storage devices comprising the multiple storage devices absent the given storage device, a calculated subset of the dataset, the dataset comprising a union of the mirrored and the calculated subsets; and to create, on a given additional storage device not comprised in the multiple storage devices, a copy of the dataset using the mirrored and the calculated subsets;
wherein each of the storage devices in the RAID array have corresponding storage regions, and wherein the processor is configured to retrieve the calculated subset by successfully retrieving user and parity data from a first number of the corresponding storage regions in each of the remaining storage devices in the RAID array, calculating values based on the successfully retrieved user and parity data, storing the calculated values to the calculated subset, and identifying a second number of the corresponding storage regions whose data could not be successfully retrieved; and
wherein the processor is configured to retrieve the mirrored subset by retrieving, for each of the second number of the corresponding storage regions, data from the corresponding storage region in the given storage device, and storing, to the mirrored subset, the data retrieved from the given storage region. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer program product, the computer program product comprising:
-
a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising; computer readable program code configured to arrange multiple storage devices as a Redundant Array of Independent Disks (RAID) array; computer readable program code configured to receive, from a given storage device, a number of error messages exceeding a threshold, the given storage device storing a dataset; computer readable program code configured to retrieve, from the given storage device, a mirrored subset of the dataset; computer readable program code configured to retrieve, using remaining storage devices in the RAID array, the remaining storage devices comprising the multiple storage devices absent the given storage device, a calculated subset of the dataset, the dataset comprising a union of the mirrored and the calculated subsets; and computer readable program code configured to create, on an additional storage device not comprised in the multiple storage devices, a copy of the dataset using the mirrored and the calculated subsets;
wherein each of the storage devices have corresponding storage regions, and wherein the computer readable program code is configured to retrieve the calculated subset by successfully retrieving user and parity data from a first number of the corresponding storage regions in each of the remaining storage devices in the RAID array, calculating values based on the successfully retrieved user and parity data, storing the calculated values to the calculated subset, and identifying a second number of the corresponding storage regions whose data could not be successfully retrieved; and
wherein the computer readable program code is configured to retrieve the mirrored subset by retrieving, for each of the second number of the corresponding storage regions, data from the corresponding storage region in the given storage device, and storing, to the mirrored subset, the data retrieved from the given storage region. - View Dependent Claims (12, 13, 14)
-
Specification