IP Library Granted Patent US 9,740,440
Granted Patent B2
US 9,740,440 · App. 14/718,520 · Granted Aug 22, 2017

Separating a hybrid asymmetric mix of a RAID 1 mirror and a parity-based RAID array

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,740,440
App. No.
14/718,520
Granted
Aug 22, 2017
Kind
B2
Abstract

A RAID controller stores data in a hybrid asymmetric mix of a RAID 1 mirror and a parity-based RAID array, wherein a first side of the RAID 1 mirror includes a single data storage device storing an operating system image and a second side of the RAID 1 mirror includes a plurality of data storage devices forming a parity-based RAID array. The RAID controller normally calculates parity using data from both the single data storage device and the plurality of data storage devices. However, in response to a user command, the RAID controller recalculates parity stripes on each of the plurality of data storage devices using a predetermined data pattern for a logical data storage device logically replacing the single data storage device storing the operating system. Accordingly, the same stripe count is maintained and the parity-based RAID array maintains redundancy despite physical separation of the single data storage device.

Claims (43)

1. A method, comprising:

storing, by a RAID controller, data in a hybrid asymmetric mix of a RAID 1 minor and a parity-based RAID array, wherein a first side of the RAID 1 mirror includes a single data storage device operatively coupled to the RAID controller and storing an operating system image, and wherein a second side of the RAID 1 mirror includes a plurality of data storage devices operatively coupled to the RAID controller and forming the parity-based RAID array;

calculating, by the RAID controller, parity using data from both the single data storage device and the plurality of data storage devices;

storing, by the RAID controller, the parity only on the plurality of data storage devices;

recalculating, by the RAID controller in response to a user command, parity on each of the plurality of data storage devices using a predetermined data pattern for a logical data storage device logically replacing the single data storage device storing the operating system image, wherein the same stripe count is maintained before and after the logical data storage device logically replaces the single data storage device storing the operating system image;

storing, by the RAID controller, the recalculated parity on the plurality of data storage devices; and

after storing the recalculated parity on each of the plurality of data storage devices, physically disconnecting the single data storage device from the RAID controller without the parity-based RAID array having a loss of redundancy.

2. The method of claim 1 , wherein the predetermined data pattern is selected from all logical ones and all logical zeros.

3. The method of claim 1 , wherein the parity is distributed across the plurality of data storage devices that form the parity-based RAID array.

4. The method of claim 1 , further comprising:

identifying, by the RAID controller while recalculating parity, stripes for which parity has been recalculated and stored.

5. The method of claim 1 , wherein recalculating parity includes, for each stripe, taking the exclusive-OR of the data stored on the logical data storage device and each of the plurality of data storage devices except for the data storage device storing the parity.

6. The method of claim 1 , wherein recalculating parity includes, for each stripe, taking the exclusive-OR of the data stored on the logical data storage device, the data storage device storing the current parity and the single data storage device storing the operating system image.

7. The method of claim 1 , further comprising:

operatively coupling a second data storage device to the RAID controller in place of the single data storage device, the second data storage device storing an updated operating system image.

8. The method of claim 7 , further comprising:

recalculating, after operatively coupling the second data storage device to the RAID controller, parity on each of the plurality of data storage devices using data stored on the second data storage device and the plurality of data storage devices except for the data storage device storing the parity.

9. A computer program product for controlling data storage, the computer program product comprising a computer readable storage medium that is not a transitory signal having program instructions embodied therewith, the program instructions executable by a processor to:

store data in a hybrid asymmetric mix of a RAID 1 mirror and a parity-based RAID array, wherein a first side of the RAID 1 mirror includes a single data storage device storing an operating system image and a second side of the RAID 1 minor includes a plurality of data storage devices forming a parity-based RAID array;

calculate parity using data from both the single data storage device and the plurality of data storage devices; and

store the calculated parity only on the plurality of data storage devices;

recalculate, in response to a user command, parity on each of the plurality of data storage devices using a predetermined data pattern for a logical data storage device logically replacing the single data storage device storing the operating system image, wherein the same stripe count is maintained before and after the logical data storage device logically replaces the single data storage device storing the operating system image; and

store the recalculated parity on the plurality of data storage devices; wherein, after the recalculated parity are stored on each of the plurality of data storage devices, physically disconnecting the single data storage device from the processor does not result in the parity-based RAID array having a loss of redundancy.

10. The computer program product of claim 9 , wherein the predetermined data pattern is selected from all logical ones and all logical zeros.

11. The computer program product of claim 9 , wherein the parity is distributed across the plurality of data storage devices that form the parity-based RAID array.

12. The computer program product of claim 9 , wherein the program instructions are further executable by the processor to:

identify, while recalculating parity, stripes for which parity has been recalculated and stored.

13. The computer program product of claim 9 , wherein recalculating parity includes, for each stripe, taking the exclusive-OR of the data stored on the logical data storage device and each of the plurality of data storage devices except for the data storage device storing the parity.

14. The computer program product of claim 9 , wherein recalculating parity includes, for each stripe, taking the exclusive-OR of the data stored on the logical data storage device, the data storage device storing the current parity and the single data storage device storing the operating system image.

15. The computer program product of claim 9 , further comprising:

recalculating, in response to detecting that a second data storage device has replaced the single data storage device, parity on each of the plurality of data storage devices using data stored on the second data storage device and the plurality of data storage devices except for the data storage device storing the parity.

16. An apparatus, comprising:

at least one storage device for storing program instructions; and

at least one processor for processing the program instructions to:

store data in a hybrid asymmetric mix of a RAID 1 mirror and a parity-based RAID array, wherein a first side of the RAID 1 mirror includes a single data storage device storing an operating system image and a second side of the RAID 1 minor includes a plurality of data storage devices forming a parity-based RAID array;

calculate parity using data from both the single data storage device and the plurality of data storage devices; and

store the calculated parity only on the plurality of data storage devices;

recalculate, in response to a user command, parity on each of the plurality of data storage devices using a predetermined data pattern for a logical data storage device logically replacing the single data storage device storing the operating system image, wherein the same stripe count is maintained before and after the logical data storage device logically replaces the single data storage device storing the operating system image, and

store the recalculated parity on the plurality of data storage devices, wherein, after the recalculated parity are stored on each of the plurality of data storage devices, physically disconnecting the single data storage device from the processor does not result in the parity-based RAID array having a loss of redundancy.

17. The apparatus of claim 16 , the at least one processor for further processing the program instructions to:

identify, while recalculating parity, stripes for which parity has been recalculated and stored.

18. The apparatus of claim 16 , wherein the predetermined data pattern is selected from all logical ones and all logical zeros.

19. The apparatus of claim 16 , wherein the parity is distributed across the plurality of data storage devices that form the parity-based RAID array.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LIMITED
To: LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069869/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD
Reel/Frame 050304/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2015
From: CUDAK, GARY D.; HARDEE, CHRISTOPHER J.; DO, LYDIA M.; ROBERTS, ADAM
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 036416/0058 →