Method, computer program product, system and device for reducing data loss events in redundant array of independent disks RAID

By identifying and evenly distributing drives with high failure risk in RAID and exchanging drives between RAID-5 and RAID-6, data loss problems caused by drive failure and media error in RAID systems are solved, and data loss reports are provided. Statistical analysis helps users improve the reliability and security of data storage.

CN112084061BActive Publication Date: 2025-01-10INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202010512614.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-06-15
Filing Date
2020-06-08
Publication Date
2025-01-10
Estimated Expiration
2040-06-08

AI Technical Summary

Technical Problem

Existing RAID systems are prone to data loss when drive failure and media error are combined. Especially the RAID-5 array is difficult to effectively prevent data loss in the case of single drive failure and media error. There is a lack of effective reporting and statistical systems to guide users' transitions. To a more robust RAID level.

Method used

By identifying storage drives with high and low risk of failure in RAID, evenly distribute and exchange drive risks, RAID type conversion is implemented to reduce the risk of data loss, and provide data loss event reporting and statistical analysis, encouraging users to transition to more robust RAID Levels such as RAID-6 to improve data protection.

Benefits of technology

It effectively reduces the risk of data loss in RAID systems, provides detailed data loss reports and statistical information, helping users make decisions to transition to a more robust RAID level, thereby improving the reliability and security of data storage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112084061B_ABST
    Figure CN112084061B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to reducing data loss events in RAID arrays of the same RAID level. A method for reducing data loss events in a redundant array of independent disks (RAID) having the same RAID level is disclosed. In one embodiment, the method identifies a group of RAIDs having a common RAID level in a data storage environment. The method also identifies higher-risk storage drives having a risk of failure above a threshold and lower-risk storage drives having a risk of failure below a threshold in the group of RAIDs. The method swaps higher-risk storage drives with lower-risk storage drives in the RAID, thereby distributing the higher-risk storage drives more evenly throughout the RAID. A corresponding system and computer program product are also disclosed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to systems and methods for reducing data loss events in a redundant array of independent disks. Background Art

[0002] RAID (i.e., Redundant Array of Independent Disks) is a storage technology that provides enhanced storage functionality and reliability through redundancy. RAID is created by combining multiple storage drive components (such as disk drives and / or solid-state drives) into a single logical unit. Data is then distributed across the drives using various techniques called "RAID levels." The current standard RAID levels, which include RAID levels 1 through 6, are a set of basic RAID configurations that use striping, mirroring, and / or parity to provide data redundancy. Each configuration provides a balance between two key goals: (1) improving data reliability and (2) improving I / O performance.

[0003] Currently, the most commonly used RAID levels are RAID-5 and RAID-6, both of which utilize block-level striping with distributed parity values. RAID-5 arrays are configured to recover from a single drive failure, while RAID-6 arrays can recover from two simultaneous drive failures. Therefore, RAID-6 arrays provide more robust redundant data protection than RAID-5 arrays.

[0004] In the field, it has been observed that drive failures combined with media errors cause the most data loss events. For example, a drive failure in a RAID-5 array combined with a media error on another storage drive in the array can cause data loss. Although a RAID-5 array will lose data when two storage drives fail simultaneously, the most common data loss is caused by a single drive failure combined with a media error. In contrast, due to the additional parity value utilized by a RAID-6 array, data loss will be prevented in both of the above scenarios.

[0005] In view of the foregoing, there is a need for systems and methods for reducing data loss events in redundant arrays of independent disks. There is also a need for systems and methods for providing better reporting and statistics on data loss caused or prevented by specific RAID levels (e.g., RAID-5, RAID-6, etc.). In some cases, such systems and methods can be used to encourage users to transition to a more robust RAID level (e.g., RAID-6), or to provide evidence that a previous transition to a more robust RAID level has prevented data loss. Summary of the invention

[0006] The present invention has been developed in response to the current state of the art, and in particular in response to problems and needs in the prior art that have not been fully addressed by currently available systems and methods. Accordingly, embodiments of the present invention have been developed to reduce data loss events in redundant arrays of independent disks (RAID). Features and advantages of the present invention will become more fully apparent from the following description and appended claims, or may be learned by practice of the present invention as described below.

[0007] In accordance with the foregoing, a method for reducing data loss events in a redundant array of independent disks (RAID) having the same RAID level is disclosed. In one embodiment, the method identifies a group of RAIDs having a common RAID level in a data storage environment. The method also identifies a higher risk storage drive having a risk of failure above a threshold and a lower risk storage drive having a risk of failure below a threshold in the group of RAIDs. The method swaps the higher risk storage drive with the lower risk storage drive in the RAID, thereby distributing the higher risk storage drive more evenly throughout the RAID. In accordance with the foregoing, a method for reporting data loss events in a storage environment including a redundant array of independent disks (RAID) is disclosed. In one embodiment, the method monitors storage drive failures in a data storage environment. For a storage drive failure detected in the storage environment, the method reports the RAID type in which the storage drive failure occurred and whether data loss occurred in the RAID due to the storage drive failure. In some embodiments, the method reports whether data loss can be prevented if the RAID type is converted to a more robust RAID type. In other or the same embodiments, the method reports whether data loss is prevented by the RAID type.

[0008] Corresponding systems and computer program products are also disclosed and claimed herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] In order to facilitate an understanding of the advantages of the present invention, the invention briefly described above will be described in more detail by reference to specific embodiments shown in the accompanying drawings. It should be understood that these drawings depict only typical embodiments of the present invention and are therefore not to be considered as limiting the scope of the present invention. The present invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:

[0010] Figure 1 is a high-level block diagram illustrating one example of a network environment in which systems and methods according to the present invention may be implemented;

[0011] Figure 2 is a high-level block diagram illustrating one embodiment of a storage system in which one or more RAIDs may be implemented;

[0012] Figure 3A reporting module is shown that is configured to report information related to storage drive failures in a storage environment and optionally report whether certain data loss can be prevented by using a RAID that provides more robust data protection, or whether data loss can be prevented by using a RAID that provides more robust data protection;

[0013] Figure 4 is a high-level block diagram showing a reporting module and various related sub-modules;

[0014] Figure 5 An action module is shown that swaps storage drives between a RAID array that provides less robust data protection and a RAID array that provides more robust data protection to reduce the risk of data loss;

[0015] Figure 6 Shown is distributing higher risk storage drives more evenly across a RAID level to reduce the risk of data loss;

[0016] Figure 7 An action module is shown removing a higher risk storage drive from a RAID array to reduce the risk of data loss;

[0017] Figure 8 is a high-level block diagram showing an action module and various related submodules;

[0018] Fig. 9 is a flow chart illustrating one embodiment of a method for reducing the risk of data loss in a storage environment including RAID arrays of different RAID levels; and

[0019] Fig.10 is a flow chart illustrating one embodiment of a method for determining whether a RAID array can be converted to a more robust RAID level. DETAILED DESCRIPTION

[0020] It will be readily appreciated that the components of the present invention, as generally described and illustrated in the drawings herein, may be arranged and designed in a variety of different configurations. Accordingly, the following more detailed description of embodiments of the present invention, as illustrated in the drawings, is not intended to limit the scope of the claimed invention, but is merely representative of certain examples of presently contemplated embodiments of the present invention. The presently described embodiments will be best understood with reference to the drawings, wherein like parts are represented by like numerals throughout.

[0021] The present invention may be a system, method and / or computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to execute aspects of the present invention.

[0022] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples of computer-readable storage media (a non-exhaustive list) include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not to be interpreted as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.

[0023] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.

[0024] The computer program instructions for performing the operations of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages—such as Java, Smalltalk, C++, etc., and traditional procedural programming languages—such as "C" language or similar programming languages.

[0025] The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized using the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present invention.

[0026] Various aspects of the present invention are described herein with reference to the flow charts and / or block diagrams of the methods, devices (systems) and computer program products according to embodiments of the present invention. It should be understood that each box of the flow chart and / or block diagram and the combination of each box in the flow chart and / or block diagram can be implemented by computer-readable program instructions.

[0027] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0028] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0029] Reference Figure 1, an example of a network environment 100 is shown. The network environment 100 is presented to show an example of an environment in which the system and method according to the present invention can be implemented. The network environment 100 is presented by way of example and not limitation. In fact, in addition to the network environment 100 shown, the systems and methods disclosed herein can be applied to a variety of different network environments.

[0030] As shown, the network environment 100 includes one or more computers 102, 106 interconnected by a network 104. The network 104 may include, for example, a local area network (LAN) 104, a wide area network (WAN) 104, the Internet 104, an intranet 104, etc. In some embodiments, the computers 102, 106 may include a client computer 102 and a server computer 106 (also referred to herein as a "host" 106 or a "host system" 106). Typically, the client computer 102 initiates a communication session, while the server computer 106 waits for and responds to requests from the client computer 102. In some embodiments, the computers 102 and / or the server 106 may be connected to one or more internal or external direct-attached storage systems 112 (e.g., arrays of hard disk drives, solid-state drives, tape drives, etc.). These computers 102, 106 and the direct-attached storage systems 112 may communicate using protocols such as ATA, SATA, SCSI, SAS, Fibre Channel, etc.

[0031] In some embodiments, the network environment 100 may include a storage network 108, such as a storage area network (SAN) 108 or a LAN 108 (e.g., when network attached storage is used), located behind the server 106. The network 108 may connect the server 106 to one or more storage systems 110, such as an array 110a of hard disk drives or solid state drives, a tape library 110b, a single hard disk drive 110c or solid state drive 110c, a tape drive 110d, a CD-ROM library, etc. To access the storage system 110, the host system 106 may communicate via a physical connection from one or more ports on the host 106 to one or more ports on the storage system 110. The connection may be through a switch, optical fiber, or a similar direct connection. In some embodiments, the server 106 and the storage system 110 may communicate using a networking standard such as Fibre Channel (FC) or iSCSI.

[0032] Reference Figure 2, an example of a storage system 110a including an array of hard disk drives 204 and / or solid state drives 204 is shown. Internal components of the storage system 110a are shown, as in some embodiments, a RAID array may be implemented in whole or in part within such a storage system 110a. As shown, the storage system 110a includes a storage controller 200, one or more switches 202, and one or more storage drives 204, such as hard disk drives 204 and / or solid state drives 204 (e.g., flash-based storage drives 204). The storage controller 200 may enable one or more hosts 106 (e.g., open systems and / or mainframe servers 106 running operating systems such as z / OS, zVM, etc.) to access data in the one or more storage drives 204.

[0033] In selected embodiments, the storage controller 200 includes one or more servers 206. The storage controller 200 may also include a host adapter 208 and a device adapter 210 to connect the storage controller 200 to the host device 106 and the storage drive 204, respectively. Multiple servers 206a, 206b may provide redundancy to ensure that data is always available to the connected hosts 106. Thus, when one server 206a fails, another server 206b may assume the I / O load of the failed server 206a to ensure that I / O can continue between the host 106 and the storage drive 204. This process may be referred to as "failover."

[0034] In selected embodiments, each server 206 may include one or more processors 212 and memory 214. Memory 214 may include volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM, EPROM, EEPROM, hard disk, flash memory, etc.). In certain embodiments, the volatile and non-volatile memory may store software modules that run on the processor 212 and are used to access data in the storage drive 204. The server 206 may host at least one instance of these software modules. These software modules may manage all read and write requests to the logical volumes in the storage drive 204.

[0035] With similar Figure 2An example of a storage system 110a of the architecture shown in is the IBM DS8000TM enterprise storage system. DS8000TM is a high-performance, high-capacity storage controller that provides disk and solid-state storage, and is intended to support continuous operation. However, the technology disclosed herein is not limited to the IBM DS8000TM enterprise storage system 110a, but can be implemented in any comparable or similar storage system 110, regardless of the manufacturer, product name, or component or component name associated with the system 110. Any storage system that can benefit from one or more embodiments of the present invention is considered to be within the scope of the present invention. Therefore, the IBM DS8000TM is introduced only by way of example and not limitation.

[0036] In certain embodiments, the storage drives 204 of the storage system 110a may be configured in one or more RAID arrays to provide a desired level of reliability and / or I / O performance. As previously described, the most commonly used RAID levels are RAID-5 and RAID-6. These RAID levels utilize block-level striping with distributed parity values. A RAID-5 array is configured to recover from a single drive failure, while a RAID-6 array can recover from two simultaneous drive failures. Therefore, a RAID-6 array provides more robust redundant data protection than a RAID-5 array.

[0037] In the field, it has been observed that drive failures combined with media errors cause most data loss events. For example, a drive failure in a RAID-5 array combined with a media error on another storage drive 204 in the same array will result in data loss. Although a RAID-5 array will also lose data when two storage drives 204 fail simultaneously, the most common data loss is due to a single drive failure and a media error. In contrast, due to the use of additional parity values ​​in a RAID-6 array, a RAID-6 array can prevent data loss in both of the above cases. In view of the foregoing, systems and methods are needed to reduce data loss events in redundant arrays of independent disks. Systems and methods are also needed to provide better reporting and statistics on data loss caused by a particular RAID level. In some cases, such systems and methods can be used to encourage users to transition to a more robust RAID level (e.g., RAID-6), or to provide evidence that a previous transition to a more robust RAID level has produced benefits in terms of protecting data.

[0038] refer to Figure 3In some embodiments according to the present invention, a reporting module 300 may be provided in the host system 102 or other system to reduce data loss events in the RAID array. The reporting module 300 may be configured to provide better reporting and statistics about data loss caused by a particular RAID level (e.g., a RAID-5 or RAID-6 array). In some embodiments, the reports and statistics provided by the reporting module 300 may be used to encourage a user to transition to a more robust RAID level (e.g., RAID-6), or to provide evidence that a previous transition to a more robust RAID level has prevented data loss.

[0039] For example, Figure 3 As shown, when a fault 306a (i.e., a storage drive fault 306a) occurs in a RAID-5 array 304a, the reporting module 300 can determine whether data loss occurs due to the fault. For example, if the failed storage drive 204 is accompanied by a media error on another storage drive 204 in the RAID-5 array 304a, data loss may result. In this case, the reporting module 300 can record the fault 306a in the RAID-5 array 304a and the resulting data loss. The reporting module 300 can report the event to the user. In certain embodiments, the reporting module 300 can indicate whether data loss can be prevented if the RAID-5 array 304a is converted into a RAID-6 array 304b.

[0040] Similarly, in some embodiments, when a failure 306b (i.e., a storage drive failure 306b) occurs in a RAID-6 array 304b, the reporting module 300 can determine whether data loss was prevented due to the RAID-6 architecture. For example, if the failed storage drive 204 was accompanied by a media error or another failed storage drive 204, but the RAID-6 array 304b was still able to recover, rebuild, and prevent data loss, the reporting module 300 can record this information. The reporting module 300 can report the event 306b to the user and indicate that data loss was prevented because the RAID array is a RAID-6 array 304b, and if the RAID array is a RAID-5 array 304a, it may indicate that data loss occurred.

[0041] Instead, the action module 302 can take various actions to mitigate the risk of data loss in a storage environment that includes multiple RAID arrays 304. Figures 5 to 7 Discuss examples of this action. Figure 8 is a high-level block diagram illustrating the action module 302 and various related sub-modules.

[0042] Reference Figure 4, a high-level block diagram of the reporting module 300 and related submodules is shown. The reporting module 300 and related submodules can be implemented in hardware, software, firmware, or a combination thereof. The reporting module 300 and related submodules are presented by way of example and not limitation. In different embodiments, more or fewer submodules may be provided. For example, the functionality of some submodules may be combined into a single or fewer number of submodules, or the functionality of a single submodule may be distributed over multiple submodules.

[0043] As shown, the reporting module 300 may include one or more of a fault detection module 402 , a data collection module 404 , a data loss determination module 406 , a prevention determination module 408 , an aggregation module 410 , and a communication module 412 .

[0044] The failure detection module 402 may be configured to detect a failure 306 in the storage system 110a, such as a failure 306 of one of the plurality of storage drives 204 participating in a RAID array 404. When such a failure 306 occurs, the data collection module 404 may collect data about the failure 306. For example, the data collection module 404 may determine the number 420 of storage drives 204 that failed, the type of storage drives 204 that failed (e.g., brand, model, storage capacity, performance characteristics, manufacturer specifications, etc.), the age of the storage drives 204 that failed, and the type of RAID in which the failure 306 occurred (e.g., whether the RAID is a RAID-5 or RAID-6 array).

[0045] The data loss determination module 406 may be configured to determine whether the failure 306 resulted in data loss. For example, data may be lost if the storage drive failure 306 is accompanied by a media error on another storage drive 204 in the RAID-5 array 304a or a failure 306 of another storage drive 204. The data loss determination module 406 may determine whether such data loss has occurred.

[0046] Conversely, the prevention determination module 408 can determine whether the data loss detected by the data loss determination module 406 has been prevented. For example, if the RAID-5 array 304a is converted to a RAID-6 array 304b, data loss will not occur in the RAID-5 array 304a, and the prevention determination module 408 can detect this situation. Alternatively or additionally, the prevention determination module 408 can determine whether the configuration of the RAID array 404 actually prevents data loss. For example, if the RAID-6 array 304b experiences a failure 306 that does not result in data loss, but would result in data loss if the RAID array was a RAID-5 array 304a, and the prevention determination module 408 can detect this situation.

[0047] The aggregation module 410 can aggregate statistical information across the storage environment and RAID arrays 404. For example, for each storage drive failure 306 that occurs in the storage environment, the aggregation module 410 can aggregate information such as the RAID involved (e.g., RAID-5, RAID-6, etc.), the number of storage drives 204 that failed, whether data loss was prevented, the type of storage drive that failed, the age of the storage drive 204 that failed, and so on. In some embodiments, the aggregation module 310 can aggregate information such as whether data loss that occurred in the RAID-5 array 304a can be prevented if the RAID-5 array 304a is converted to a RAID-6 array 304b. Similarly, the aggregation module 410 can aggregate information such as whether a storage drive failure 306 that occurred in the RAID-6 array 304b and did not result in data loss would cause data loss if the failure occurred in the RAID-5 array 304a.

[0048] The communication module 412 can communicate information generated and collected by the other sub-modules 402, 404, 406, 408, 410 to the user. This can help the user determine how to configure the storage environment, and in particular, how to configure the RAID array 404 in the storage environment. For example, when observing that various data loss events can be prevented using the RAID-6 array 304b, the user can decide to convert various RAID-5 arrays 304a to RAID-6 arrays 304b. Similarly, after observing the data loss events prevented by the RAID-6 array 304b, the information provided by the communication module 412 can verify the user's previous decision to convert the RAID-5 array 304a to a RAID-6 array 304b. In some embodiments, the provider of storage services / hardware can use this information to convince customers to convert to or utilize the RAID-6 array 304b by showing customers real-world examples of data loss that was or will be avoided by utilizing the RAID-6 array 304b.

[0049] refer to Figure 5 As previously described, the action module 302 can take various actions to mitigate the risk of data loss in the storage environment. In some embodiments, the action module 302 can maintain statistics about the storage drives 204 in the storage environment (e.g., storage system 110a) in order to determine which storage drives 204 have the greatest risk of failure. For example, the action module 302 can determine how likely it is that a storage drive 204 will fail within a given time period (e.g., a month). In some embodiments, the likelihood is expressed as a percentage chance that a storage drive 204 will fail within a given time period. The action module 302 can then determine which storage drives 204 have a risk of failure that exceeds a selected threshold (e.g., twenty-five percent) within that time period. Figure 5As shown, these storage drives 204 can be designated as higher risk storage drives 204, such as Figure 5 As shown, storage drives 204 below a threshold value may be designated as lower risk storage drives 204 .

[0050] Then, the action module 302 can take action to mitigate the risk of data loss in the storage environment, especially in a specific RAID array 304 of the storage environment. In doing so, the action module 302 can take into account the RAID level of the RAID array 304. For example, the RAID-5 array 304a is not as robust as the RAID-6 array 304b in protecting data. Therefore, the higher risk storage drives 204 in the RAID-5 array 304a are more likely to cause data loss than the higher risk storage drives 204 in the RAID-6 array 304b. Therefore, the action module 302 can take action to reduce or balance the risk on the entire RAID array 304 so as to minimize the chance of data loss.

[0051] For example, Figure 5 As shown, in some embodiments, the action module 302 can analyze the RAID arrays 304 in the storage environment to determine which RAID arrays 304 contain higher risk storage drives 204 and the number of higher risk storage drives 204 contained. Using this information, the action module 302 can swap storage drives 204 between the RAID-5 array 304a and the RAID-6 array 304b in a manner that reduces the risk of data loss and / or more evenly distributes the risk of data loss between the RAID arrays 304, taking into account the RAID level.

[0052] For example, Figure 5 A RAID-5 array 304a is shown with a higher risk storage drive 204a therein. Because the RAID-5 array 304a does not provide as much protection as the RAID-6 array 304b and can only withstand a single storage drive failure without losing data, the action module 302 can swap the higher risk storage drive 204a in the RAID-5 array 304a and the lower risk storage drive 204b in the RAID-6 array 304b. This will result in a single higher risk storage drive 204a in the RAID-6 array 304b. As previously described, the RAID-6 array 304b can recover from two simultaneous drive failures without causing data loss and is therefore better able to handle the failure of the higher risk storage drive 204a.

[0053] When swapping storage drives 204 between RAID arrays 304, action module 302 may proceed in three steps using spare storage drive 204c. Figure 5In the example of , data in the higher risk storage drive 204a can be copied to the spare storage drive 204c, and then the spare storage drive 204c can be incorporated into the RAID-5 array 304a to replace the higher risk storage drive 204a. The data in the lower risk storage drive 204b can then be copied to the higher risk storage drive 204a (now a spare), and then the higher risk storage drive 204a can be incorporated into the RAID-6 array 304b. The data in the storage drive 204c (now part of the RAID-5 array 304a) can then be copied to the lower risk storage drive 204b (now a spare), and then the lower risk storage drive 204b can be incorporated into the RAID-5 array 304a. This completes the exchange of the higher risk storage drive 204a with the lower risk storage drive 204b.

[0054] In some embodiments, a smart rebuild process may be used to copy data from one storage drive 204 to another storage drive. This smart rebuild process may reduce the risk of data loss by maintaining the ability of the storage drive 204 to function as a spare drive, even while the data is being copied to the drive. In some embodiments, when copying data from a first storage drive 204 to a second storage drive 204 (e.g., a spare storage drive 204), the smart rebuild process may create a bitmap for the first storage drive 204. Each bit may represent a portion of the storage space on the first storage drive 204 (e.g., a one megabyte region). The smart rebuild process may then begin copying the data from the first storage drive 204 to the second storage drive 204. As each portion is copied, its associated bit may be recorded in the bitmap.

[0055] If a write to a portion of the first storage drive 204 is received while the data copy process is ongoing, the smart rebuild process can check the bitmap to determine whether the data in the associated portion has already been copied to the second storage drive 204. If not, the smart rebuild process can simply write the data to the corresponding portion of the first storage drive 204. Otherwise, after the data is written to the first storage drive 204, the data can also be copied to the second storage drive 204. Once all portions are copied from the first storage drive 204 to the second storage drive 204, the RAID array 300 can begin using the second storage drive 204 in place of the first storage drive 204. This releases the first storage drive 204 from the RAID array 300.

[0056] Alternatively, the smart rebuild process can utilize watermarks instead of bitmaps to track which data has been copied from the first storage drive 204 to the second storage drive 204. In such an embodiment, the portions can be copied from the first storage drive 204 to the second storage drive 204 in a specified order. The watermarks can track how far the copy process has progressed in each portion. If a write to a portion of the first storage drive 204 is received during the copy process, the smart rebuild process can check the watermark to determine whether the data in the portion has been copied to the second storage drive 204. If it has not been copied, the smart rebuild process can write the data to the first storage drive 204. Otherwise, after writing the data to the first storage drive 204, the smart rebuild process can also copy the data to the second storage drive 204. Once all portions have been copied from the first storage drive 204 to the second storage drive 204, the RAID array 300 can begin using the second storage drive 204 instead of the first storage drive 204. This releases the first storage drive 204 from the RAID array 300.

[0057] Reference Figure 6 In some embodiments, the action module 302 can allocate higher risk storage drives 204 on the RAID array 304 in a manner that reduces the risk of data loss in the storage environment. For example, Figure 6 Two RAID-5 arrays 304a are shown, each of which includes a plurality of higher risk storage drives 204. In this example, RAID-5 array 304a1 includes a single higher risk storage drive 204, while RAID-5 array 304a2 includes three higher risk storage drives 204. To reduce the risk of data loss in RAID-5 arrays 304a1, 304a2, action module 302 may distribute higher risk storage drives 204 more evenly across RAID-5 arrays 304a by swapping higher risk storage drives 204e from RAID-5 array 304a2 and lower risk storage drives 204d from RAID-5 array 304a1. After the swap, each RAID-5 array 304a will contain two higher risk storage drives 204. The swap may occur on RAID arrays 304 of the same RAID level and / or different RAID levels as shown in this example.

[0058] Reference Figure 7 In some embodiments, if the failure risk of a storage drive 204 exceeds a specified threshold (e.g., fifty percent), the action module 302 may simply remove the storage drive 204 from the RAID array 304 without replacing it with another storage drive 204. To this end, the action module 302 may swap the higher risk storage drive 204 with a spare storage drive 204. For example, Figure 7 As shown, if the risk of failure of the higher risk storage drive 204f is higher than fifty percent, the action module 302 can copy the data from the higher risk storage drive 204f to the spare storage drive 204g and merge the spare storage drive 204g into the RAID array 304b. The higher risk storage drive 204f can then be marked to be replaced with a new spare storage drive 204.

[0059] refer to Figure 8 , a high-level block diagram of an action module 302 and related submodules is shown. The action module 302 and related submodules can be implemented in hardware, software, firmware, or a combination thereof. The action module 302 and related submodules are presented by way of example and not limitation. In different embodiments, more or fewer submodules may be provided. For example, the functions of some submodules may be combined into a single or fewer number of submodules, or the functions of a single submodule may be distributed over multiple submodules.

[0060] As shown, the action module 302 includes one or more statistics collection modules 800 , a fault prediction module 802 , a threshold module 804 , a parameter module 806 , a switching module 808 , an allocation module 810 , a conversion module 812 , and a deletion module 814 .

[0061] The statistics collection module 800 may be configured to collect statistics of the storage drives 204 in the storage environment. For example, the statistics collection module 800 may be configured to collect information such as the lifespan of the storage drives 204 in the storage environment, the types of storage drives 204 in the storage environment (e.g., brand, model, storage capacity, performance characteristics, etc.), the workload of the storage drives 204, etc. Using these statistics, the failure prediction module 802 may predict when the storage drives 204 in the storage environment will fail. In some embodiments, this is expressed as a percentage of the chance that the storage drive 204 will fail within a specified time period (e.g., one month). For example, the action module 302 may use the statistics to determine that the storage drive 204 has a 25 percent chance of failure within one month.

[0062] In contrast, the threshold module 804 can specify a threshold at which a storage drive 204 is considered a higher risk storage drive 204. For example, any storage drive 204 that has a risk of failure in the next month of more than twenty-five percent can be considered a higher risk storage drive 204. Conversely, the parameter module 806 can establish various parameters related to reducing the risk of data loss in the storage environment. For example, a parameter can indicate that a RAID array 304 of a certain RAID level does not contain more than a certain number of higher risk storage drives 204. For example, the parameter module 806 can indicate that a RAID-5 array 304a should contain zero higher risk storage drives 204, and a RAID-6 array 304b can contain up to two higher risk storage drives 204 because it has more robust data protection.

[0063] The action module 302 may then attempt to enforce the parameters. For example, the swap module 808 may attempt to swap storage drives 204 between a RAID-5 array 304a and a RAID-6 array 304b to reduce the risk of data loss in the storage environment. In some cases, this may involve moving a higher-risk storage drive 204 from a RAID-5 array 304a to a RAID-6 array 304b, and moving a lower-risk storage drive 204 from a RAID-6 array 304b to a RAID-5 array 304a. In some embodiments, the swap module 808 may attempt to move all higher-risk storage drives 204 from a RAID-5 array 304a to a RAID-6 array 304b. Conversely, the allocation module 810 may attempt to more evenly distribute higher-risk storage drives 204 between RAID arrays 304 of a particular RAID level. For example, assuming that a higher-risk storage drive 204 cannot be moved to a RAID-6 array 304b, the allocation module 810 may attempt to more evenly distribute higher-risk storage drives 204 on the RAID-5 array 304a.

[0064] To further reduce the risk of data loss in the storage environment, the conversion module 812 can be used to convert the RAID array 304 from one RAID level to another RAID level. For example, if the risk of data loss is too high for the RAID-5 array 304a and the risk cannot be reduced in other ways, the conversion module 812 can convert the RAID-5 array 304a to a RAID-6 array 304b. Finally, if the risk of a higher risk storage drive 204 failing is too high (e.g., greater than fifty percent), the removal module 814 can replace the higher risk storage drive 204 with a spare storage drive 204 and mark the higher risk storage drive 204 for removal from the storage environment.

[0065] Fig. 9One embodiment of a method 900 for reducing the risk of data loss in a storage environment composed of RAID arrays of different RAID levels is shown. In some embodiments, this method 900 can be performed by the action module 302 described previously. In this example, the storage environment includes a collection of RAID-5 arrays 304a and RAID-6 arrays 304b, although the method 900 can also be used with RAID arrays 304 of other RAID levels. The method 900 is merely an example of a method that can be performed by the action module 302 and is not intended to be limiting.

[0066] Once the storage drive 204 is classified as a higher risk storage drive 204 or a lower risk storage drive 204, the method 900 can attempt to move the storage drive 204 between the RAID arrays 304 or perform other actions to reduce the risk of data loss in the storage environment. As shown, the method 900 initially determines 902 whether any RAID-5 array 304a in the storage environment contains a higher risk storage drive 204 (e.g., a storage drive 204 with a failure risk higher than a certain percentage). If so, the method 900 determines 904 whether any RAID-6 array 304b in the storage environment contains a lower risk storage drive 204. If so, the method 900 attempts to swap the storage drive 204 between the RAID arrays 304.

[0067] More specifically, the method 900 finds 906 a RAID-6 array 304b in the storage environment that has the least number of higher risk storage drives 204. The method 900 also finds 908 a RAID-5 array 304a that has the greatest number of higher risk storage drives 204. The method 900 then swaps 910 the higher risk storage drives 204 in the RAID-5 array 304a with the lower risk storage drives 204 in the RAID-6 array 304b. The method 900 then repeats steps 902, 904, 906, 908, 910 until no RAID-5 array 304a in the storage environment contains any higher risk storage drives 204 or until no RAID-6 array 304b in the storage environment contains lower risk storage drives 204. If, in step 902, there are no more RAID-5 arrays 304a in the storage environment that contain higher risk storage drives 204, the method 900 ends.

[0068] On the other hand, if the method 900 determines at step 904 that there are no more RAID-6 arrays 304b in the storage environment that contain lower risk storage drives 204 (they contain only higher risk storage drives 204), then the method 900 attempts to distribute 912 the higher risk storage drives 204 among the RAID-5 arrays 304a in the storage environment. That is, the method 900 attempts to more evenly distribute 912 the higher risk storage drives 204 among the RAID-5 arrays 304a in the storage environment by swapping storage drives 204 among the RAID-5 arrays 304a. This operation may be performed to further reduce the risk of data loss in the storage environment.

[0069] After distributing 912 the higher risk storage drives 204 more evenly among the RAID-5 arrays 304a, the method 900 can determine 913 whether there are still some RAID-5 arrays 304a that contain too many (e.g., more than one) higher risk storage drives 204. In such a case, the method 900 can convert 914 the RAID-5 arrays 304a to RAID-6 arrays 304b to reduce the risk of data loss. Fig.10 One embodiment of a method 1000 for determining whether a RAID array can be converted to a more robust RAID level is shown in FIG.

[0070] Similarly, the method 900 may also determine 916 whether any RAID-5 arrays 304a in the storage environment contain very high risk storage drives 204 (e.g., storage drives 204 with a risk of failure above a high threshold). If so, the method 900 may swap 918 these very high risk storage drives 204 with spare storage drives 204. After performing these actions, the method 900 ends. The method 900 may be repeated periodically or in response to certain conditions to reduce / balance the risk of data loss in the storage environment.

[0071] Fig.10 1 is a flow chart illustrating one embodiment of a method 1000 for determining whether a RAID array 304 can be converted to a more robust RAID level (e.g., whether a RAID-5 array 304a can be converted to a RAID-6 array 304b). As shown, the method 1000 initially determines 1002 whether the number of higher risk storage drives 204 in a RAID array (e.g., a RAID-5 array 304a) is above a threshold value (e.g., one). If not, the method 1000 prevents 1012 the conversion of the RAID array 304 to a more robust RAID level.

[0072] If the number of higher risk storage drives 204 in the RAID array 304 is greater than the threshold in step 1002, the method 1000 determines 1004 whether the storage environment includes a sufficient number of spare storage drives 204 of that type in the RAID system 304. If not, the method 1000 may not be able to convert the RAID array 304 to a more robust RAID level, thereby limiting 1012 execution.

[0073] If, at step 1004, the storage environment contains a sufficient number of spare storage drives 204 to convert the RAID array 304 to a more robust RAID level, the method 1000 may check other criteria. For example, assuming that the RAID array 304 is a RAID-5 array 304a and the more robust RAID level is RAID-6, the method 1000 may determine 1006 whether the degradation rate of the RAID-5 array 304a is below a threshold (e.g., 500K I / O operations per second). In some embodiments, the degradation rate may refer to the rate at which data is degraded from the cache (in the memory 214) to the RAID array 304. Generally, it is more efficient to downgrade to a RAID-5 array 304a than to downgrade to a RAID-6 array 304b. Because downgrading to the RAID-5 array 304a requires four operations (1. staging data, 2. staging parity values, 3. downgrading data, and 4. downgrading parity values), while downgrading to the RAID-6 array 304b requires six operations (1. staging data, 2. staging first parity values, 3. staging second parity values, 4. downgrading data, 5. downgrading first parity values, 6. downgrading second parity values). Therefore, if the degradation rate associated with the RAID-5 array 304a is high, converting the RAID-5 array 304a to the RAID-6 array 304b may have a negative impact on the performance of the RAID array. Therefore, in some embodiments, if the degradation rate to the RAID-5 array 304a is above a selected threshold, the method 1000 can avoid 1012 converting the RAID-5 array 304a to the RAID-6 array 304b.

[0074] If the degradation rate of RAID array 304 is lower than the threshold value in step 1006, method 1000 determines 1008 whether RAID array 304 is associated with a high performance category. Such a high performance category can be associated with high performance data. As described above, degrading to RAID-6 array 304b may be less efficient than degrading to RAID-5 array 304a. Therefore, converting RAID-5 array 304a to RAID-6 array 304b may impair the I / O performance of the data on RAID-5 array 304a, particularly when the data is high performance data. Therefore, in certain embodiments, if RAID array 304 is associated with a high performance category, method 1000 can avoid 1012 converting RAID array 304 to a more robust RAID level.

[0075] In the illustrated embodiment, if each of the criteria 1002, 1004, 1006, 1008 is met, the method 1000 converts 1010 the RAID array 304 to a more robust RAID level, such as converting a RAID-5 array 304a to a RAID-6 array 304b. The illustrated criteria are provided by way of example only and not limitation. In other embodiments, the method 1000 may include fewer, additional, or different criteria to determine whether and when to convert a RAID array of a certain RAID level to a more robust RAID level.

[0076] The systems and methods disclosed herein have been discussed primarily in connection with reducing the risk of data loss in a storage environment consisting of RAID-5 and RAID-6 arrays 304. However, the systems and methods disclosed herein are not limited to such RAID-5 and RAID-6 arrays 304, and may also be used with RAID arrays 304 having other RAID levels (e.g., RAID-10 arrays). Thus, the systems and methods disclosed herein are not limited to RAID-5 and RAID-6 arrays 304.

[0077] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple embodiments of the present invention. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of the module, program segment or instruction includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs the specified function or action, or can be implemented with a combination of special hardware and computer instructions.

Claims

1. A method for reducing data loss events in a redundant array of independent disks (RAID), the method comprising: In a data storage environment, identifying a group of RAIDs having a common RAID level; In the group of RAID, identifying a higher risk storage drive having a failure risk above a threshold and a lower risk storage drive having a failure risk below the threshold; Swapping higher risk storage drives with lower risk storage drives in the RAID, thereby more evenly distributing the higher risk storage drives across the RAID; Monitor storage drive failures in data storage environments; as well as For a storage drive failure detected in a data storage environment, the type of RAID in which the storage drive failure occurs and whether data loss occurs in the RAID due to the storage drive failure are reported.

2. The method according to claim 1, wherein: Identifying higher risk storage drives includes collecting statistics to identify storage drives that have a higher risk of failure.

3. The method according to claim 2, wherein: The statistical information includes at least one of a storage drive life and a storage drive type.

4. The method according to claim 1, wherein: The swapping includes swapping using an intelligent rebuild process that enables the storage drive to be used as a spare drive even while data is being copied to the storage drive.

5. The method according to claim 1, wherein: The risk of failure is expressed as a percentage of the chance that a storage drive will fail within a specified time period.

6. The method according to claim 1, wherein: The RAID level is selected from the group consisting of RAID-5, RAID-6, and RAID-10.

7. The method according to claim 6, wherein: Distributing the higher risk storage drives more evenly across the RAIDs includes incorporating as many of the same number of higher risk storage drives into each RAID as possible.

8. The method according to claim 1, wherein: The report also includes reporting whether data loss could have been prevented by converting the RAID type to a more robust RAID type.

9. The method according to claim 1, wherein: The report also includes reporting whether data loss is prevented by the RAID type.

10. The method according to claim 1, wherein: The report also includes reporting the age of the storage drive associated with the storage drive failure.

11. The method according to claim 1, wherein: The report also includes reporting the number of failed storage drives associated with the storage drive failure.

12. The method according to claim 1, wherein: The report also includes reporting the type of failed storage drive associated with the storage drive failure.

13. The method according to claim 1, wherein: The report also includes, for each storage drive failure detected in the data storage environment, the type of RAID in which the storage drive failure occurred and whether data loss occurred in the RAID due to the storage drive failure.

14. A computer program product for reducing data loss events in a redundant array of independent disks (RAID), comprising a computer readable medium having computer usable program code embodied therein, the computer usable program being configured as code to perform the operations of the method according to any one of claims 1 to 13 when executed by at least one processor.

15. A system for reducing data loss events in a redundant array of independent disks (RAID), the system comprising: at least one processor; At least one storage device coupled to the at least one processor and storing code for executing instructions on the at least one processor, the instructions causing the at least one processor to perform the operations of the method according to any one of claims 1 to 13.

16. An apparatus for reducing data loss events in a Redundant Array of Independent Disks (RAID), comprising means for performing the operations of the method according to any one of claims 1 to 13.

Citation Information

Patent Citations

  • Physical hard disk wear leveling method, device and system

    CN108205423A