Raid system with fault resilient storage devices

The RAID system addresses internal failure challenges by operating in recovery modes and reallocating data to maintain functionality, ensuring resilience in RAID-0 systems.

KR103043786B1Active Publication Date: 2026-11-05SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
KR1020210066328
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-01
Filing Date
2021-05-24
Publication Date
2026-11-05
Estimated Expiration
2041-05-24

AI Technical Summary

Technical Problem

Storage devices and systems face significant challenges due to internal failure conditions such as temperature sensor failures or radiation-induced bit flips, which can render the entire system inoperable, necessitating a need for a system and method to maintain partial or full functionality despite these failures.

Method used

A RAID system with combined recovery storage devices that operate in various recovery modes, including read-only mode, redistributing stripes in RAID-0 systems and using a mapping table to maintain partial or full functionality by switching to read-only mode and reallocating drive identification numbers.

Benefits of technology

The RAID system ensures partial or full functionality is maintained despite internal failures by operating in read-only mode and reallocating data, thereby mitigating system-level impacts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 112021059533596-PAT00001_ABST
    Figure 112021059533596-PAT00001_ABST
Patent Text Reader

Abstract

A storage system and a method for operating the storage system are disclosed. In some embodiments, the system comprises a first storage device and a second storage device, and the method comprises the steps of: determining that the first storage device is in a read-only state and the second storage device is in a read-write state; performing a write operation of a first stripe for the storage system; performing a read operation of a second stripe from the storage system; and performing a second read operation of the first stripe from the storage system, wherein the step of performing the write operation includes writing a portion of the first stripe to the second storage device and creating an entry in a mapping table for the first stripe.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] One or more aspects of the embodiments according to the present disclosure relate to a data storage system, and in particular to a data storage system and device configured to exhibit resilience in the presence of internal failure conditions. Background Technology

[0002] This background description is for context only, and the disclosure of any embodiment or concept in the background description does not constitute an acknowledgment that said embodiment or concept is prior art.

[0003] Storage devices and systems have broad applicability within various data processing systems. Storage devices are complex enough to face a significant range of internal failure conditions, including temperature sensor failures or radiation-induced bit flips. If these failure conditions are not considered during the design of a storage device or a system using such a device (e.g., RAID (Redundant Array of Independent Disks)), a single failure of a storage device can render the entire storage device and potentially larger systems (such as RAID) containing the storage device inoperable.

[0004] Therefore, there is a need for a system and a method for a restoration operation for a storage device and a system including a storage device. The problem to be solved

[0005] Accordingly, the object of the present disclosure is to provide a RAID system having combined recovery storage devices that can operate in various recovery modes and can maintain partial function or return to full function despite internal failures. means of solving the problem

[0006] In some embodiments, the fault-recovery storage device may operate in various recovery modes and may maintain partial functionality or return to full functionality despite internal failures. One way the storage device can maintain partial functionality is to operate in read-only mode in some situations, in which the storage device may respond to read requests from a host but may return an error message if it receives a write request from a host. In a RAID-0 storage system, the possibility of the storage device switching to operate in read-only mode can be achieved by redistributing the strips that constitute the stripe for any write operation performed after the storage device switches to operating in read-only mode.

[0007] According to an embodiment of the present invention, a method for operating a storage system comprising a first storage device and a second storage device is provided, the method comprising: determining that the first storage device is in a read-only state and the second storage device is in a read-write state; performing a write operation of a first stripe for the storage system; performing a read operation of a second stripe from the storage system; and performing a second read operation of the first stripe from the storage system, wherein the step of performing the write operation includes writing a portion of the first stripe to the second storage device and creating an entry in a mapping table for the first stripe, the step of performing the first read operation includes reading a portion of the second stripe from the first storage device and the second storage device, and the step of performing the second read operation includes determining that the mapping table contains an entry for the first stripe and reading a portion of the first stripe from the second storage device.

[0008] In some embodiments, the storage system comprises a plurality of storage devices including the first storage device and the second storage device, and the step of determining that the second storage device is in a read-write state comprises the step of determining that one or more residual storage devices other than the first storage device are in a read-write state, the residual storage devices include the second storage device, and the step of performing the write operation comprises the step of writing the first stripe to the residual storage devices.

[0009] In some embodiments, the step of performing the first read operation includes determining that the second stripe is open-mapped within the plurality of storage devices, and reading the second stripe from the plurality of storage devices.

[0010] In some embodiments, the method further comprises the step of reassigning drive identification numbers to the remaining storage devices, each of the plurality of storage devices having an original drive identification number, and the reassigning step comprises the step of assigning each of the original drive identification numbers to each storage device having an identification number smaller than the original drive identification number of the first storage device; and the step of assigning each of the original drive identification numbers smaller than 1 to each storage device having an identification number larger than the original drive identification number of the first storage device.

[0011] In some embodiments, performing the second read operation includes reading the first stripe from the remaining storage devices and reading a strip of the first stripe from the storage device at an address based on the mapping table.

[0012] In some embodiments, the method further comprises the step of reassigning drive identification numbers to the remaining storage devices, wherein each of the plurality of storage devices has an original drive identification number, and the reassigning step comprises the step of assigning each of the original drive identification numbers to each storage device having an identification number smaller than the original drive identification number of the first storage device.

[0013] In some embodiments, the reassigning step further includes the step of assigning each of the original drive identification numbers less than 1 to each storage device having an identification number greater than the original drive identification number of the first storage device.

[0014] In some embodiments, the original drive identification number of the first storage device is n, and reading the strip of the first stripe includes reading the strip from the storage device having the reassigned identification number n.

[0015] According to an embodiment of the present invention, a system for storing data is provided, the system comprises a first storage device, a second storage device, and a processing circuit connected to the first storage device and the second storage device, wherein the processing circuit is configured to determine that the first storage device is in a read-only state and the second storage device is in a read-write state, perform a write operation of a first stripe, perform a first read operation of a second stripe, and perform a second read operation of the first stripe, wherein performing the write operation includes writing a portion of the first stripe to the second storage device and creating an entry in a mapping table for the first stripe, wherein performing the first read operation includes reading a portion of the second stripe from the first storage device and the second storage device, and performing the second read operation includes determining that the mapping table contains an entry for the first stripe and reading a portion of the first stripe from the second storage device.

[0016] In some embodiments, the system comprises a plurality of storage devices including the first storage device and the second storage device, and determining that the second storage device is in a read-write state comprises determining that one or more residual storage devices other than the first storage device are in a read-write state, the residual storage devices include the second storage device, and performing the write operation comprises writing the first stripe to the residual storage devices.

[0017] In some embodiments, performing the first read operation includes determining that the second stripe is open-mapped within the plurality of storage devices and reading the second stripe from the plurality of storage devices.

[0018] In some embodiments, the processing circuit is further configured to reassign drive identification numbers to the remaining storage devices, each of the plurality of storage devices having an original drive identification number, and the reassignment includes assigning each of the respective original drive identification numbers to each storage device having an identification number smaller than the original drive identification number of the first storage device, and assigning each of the respective original drive identification numbers smaller than 1 to each storage device having an identification number larger than the original drive identification number of the first storage device.

[0019] In some embodiments, performing the second read operation includes reading the first stripe from the remaining storage devices and reading a strip of the first stripe from the storage device at an address based on the mapping table.

[0020] In some embodiments, the processing circuit is further configured to reassign drive identification numbers to the remaining storage devices, each of the plurality of storage devices having an original drive identification number, and the reassignment includes assigning each of the original drive identification numbers to each storage device having an identification number smaller than the original drive identification number of the first storage device.

[0021] In some embodiments, the processing circuit is further configured to assign each of the original drive identification numbers less than 1 to each storage device having an identification number greater than the original drive identification number of the first storage device.

[0022] In some embodiments, the original drive identification number of the first storage device is n, and reading the strip of the first stripe includes reading the strip from the storage device having the reassigned identification number n.

[0023] According to one embodiment of the present invention, a system for storing data is provided, the system comprises a first storage device, a second storage device, and a processing means connected to the first storage device and the second storage device, wherein the processing means determines that the first storage device is in a read-only state and the second storage device is in a read-write state, performs a write operation of a first stripe, performs a first read operation of a second stripe, and performs a second read operation of the first stripe, wherein performing the write operation includes writing a portion of the first stripe to the second storage device and creating an entry in a mapping table for the first stripe, performing the first read operation includes reading a portion of the second stripe from the first storage device and the second storage device, and performing the second read operation includes determining that the mapping table contains an entry for the first stripe and reading a portion of the first stripe from the second storage device.

[0024] In some embodiments, the system comprises a plurality of storage devices including the first storage device and the second storage device, and determining that the second storage device is in a read-write state comprises determining that one or more residual storage devices other than the first storage device are in a read-write state, the residual storage devices include the second storage device, and performing the write operation comprises writing the first stripe to the residual storage devices.

[0025] In some embodiments, performing the first read operation includes determining that the second stripe is open-mapped within the plurality of storage devices and reading the second stripe from the plurality of storage devices.

[0026] In some embodiments, the processing means is further configured to reallocate drive identification numbers to the remaining storage devices, each of the plurality of storage devices having an original drive identification number, and the reallocation includes assigning each of the respective original drive identification numbers to each storage device having an identification number smaller than the original drive identification number of the first storage device and assigning each of the respective original drive identification numbers smaller than 1 to each storage device having an identification number larger than the original drive identification number of the first storage device. Effects of the invention

[0027] According to embodiments of the present disclosure, a RAID system having combined recovery storage devices capable of operating in various recovery modes and maintaining partial function or returning to full function despite internal failure is provided. Brief explanation of the drawing

[0028] The drawings provided in this specification are for the purpose of illustrating embodiments, and other embodiments not explicitly disclosed are not excluded from the scope of this disclosure. These and other features and advantages of the present disclosure will be recognized and understood by referring to the specification, claims and the accompanying drawings. FIG. 1 is a block diagram of a data storage system according to one embodiment of the present disclosure. FIG. 2a is a table of failure states of a storage device according to one embodiment of the present disclosure. FIG. 2b is a table of operation modes of a storage device according to one embodiment of the present disclosure. FIG. 2c is a table of commands to be transmitted by a host to a storage device according to one embodiment of the present disclosure. FIG. 2d is a table showing a hierarchical structure of restoration modes according to one embodiment of the present disclosure. FIG. 3a is a flowchart of a first method of operation of a fault-recovery storage device according to one embodiment of the present disclosure. FIG. 3b is a flowchart of a second method of operation of a fault-recovery storage device according to one embodiment of the present disclosure. FIG. 2b is a schematic data layout diagram of a storage device according to one embodiment of the present disclosure. FIG. 5a is a flowchart of a first method of operation of a storage device in a fault-recovery read-only mode according to one embodiment of the present disclosure. FIG. 5b is a flowchart of a second method of operation of a storage device in a fault-recovery read-only mode according to one embodiment of the present disclosure. FIG. 6a is a schematic data layout diagram of a RAID-0 system performing a write operation according to one embodiment of the present disclosure. FIG. 6b is a schematic data layout diagram of a RAID-0 system performing a read operation according to one embodiment of the present disclosure. FIG. 6c is a schematic data layout diagram of a RAID-0 system performing remapping and write operations according to one embodiment of the present disclosure. FIG. 7a is a flowchart of a first method of operation of a RAID-0 storage system according to one embodiment of the present disclosure. FIG. 7b is a flowchart of a second method of operation of a RAID-0 storage system according to one embodiment of the present disclosure. Specific details for implementing the invention

[0029] The detailed description below, in connection with the attached drawings, is intended to describe exemplary embodiments of the memory resource management system and method provided according to the present disclosure and does not represent the only forms in which the present disclosure is configured and utilized. The following description presents features of the present disclosure in relation to the illustrated embodiments. However, it should be understood that identical or equivalent functions and structures may also be achieved by other embodiments intended to be included within the scope of the present disclosure. Similar reference numerals in this specification indicate similar components or features.

[0030] In some embodiments, the fault-recovery storage device may operate in various recovery modes and may maintain partial functionality or return to full functionality despite internal failures. For example, in response to a temperature sensor failure, the storage device may operate at a reduced speed, operate at a reduced speed for write operations, or perform almost no write operations. In response to a transient failure that may cause errors in the storage medium, the storage device may reformat the storage medium. In response to a transient failure that does not cause errors in the storage device, the storage device may power cycle. One way the storage device can maintain partial functionality is to operate in read-only mode in some situations, in which the storage device may respond to read requests from the host but may return an error message if it receives a write request from the host. Additionally, data scheduled to expire may be moved to a rescue area so that data is not lost due to expiration. In a RAID-0 storage system, the possibility of switching a storage device to operate in read-only mode can be achieved by redistributing the strips that constitute the stripes for any write operation performed after the storage device switches to operating in read-only mode.

[0031] FIG. 1 illustrates a computing system comprising a host (105) connected to one or more storage devices (110) (or "drives"). The storage devices (110) may be connected to the host (105) via a volume manager (115) (described in detail below) as illustrated, or may be connected directly to the host (105). In some embodiments, the storage devices (110) may experience internal failure conditions, and the storage devices may exhibit various recovery actions as described in detail below to mitigate the system-level impact of the failure conditions. Each storage device (110) may be a solid-state drive (SSD) and may include a controller (120) (or "control circuit") and a storage medium (125) (e.g., NAND flash memory). The smallest eraseable unit in the storage device (110) may be referred to as a "block," and the smallest writable unit in the storage device (110) may be referred to as a "page." Each storage device (110) may have any one of a plurality of form factors suitable for permanent storage devices, including but not limited to 2.5-inch, 1.8-inch, MO-297, MO-300, M.2, and EDSFF (Enterprise and Data Center SSD Form Factor), and may have an electrical interface that is any one of a plurality of interfaces suitable for permanent storage devices, including PCI (Peripheral Component Interconnect), PCIe (PCI express), SCSI (Ethernet, Small Computer System Interface), SATA (Serial AT Attachment), and SAS (Serial Attached SCSI), and may be connected to a host (105) through said interface.

[0032] The storage medium (125) has a retention period (which may depend on the usage history of the storage medium (125) and may vary within the storage medium (125) accordingly), and data stored longer than the retention period (i.e., data that has an age exceeding the retention period) may be said to be unreliable and expired. Data may be stored in the storage medium (125) using an error correction code, which may be a block code. When reading data from the storage medium (125), a large amount of raw data referred to as a code block may be read from the storage medium (125) and decoded. If the attempt fails, an additional attempt (read retry) may be made. Depending on use, a portion of the storage medium (125), for example, a block, may degrade to a point where the retention period becomes unacceptably short, and the block may be classified as a "bad block." To prevent this situation from rendering the entire storage medium (125) inoperable, a reserve space called a “bad block management reserve space” may exist (e.g., included in each flash memory die or each flash memory plane), and a controller (120) or other controller inside the flash memory die or flash memory plane may start using the reserve blocks and stop using the bad blocks.

[0033] FIG. 2a is a table of failure conditions (or "failure states") each labeled with a case identifier ("case ID"). Case 1 is any failure condition in which the storage device (110) can no longer perform read or write operations and cannot be resolved by turning the power off and on or reformatting the storage medium. The state in which the storage device (110) operates in this manner may have various sub-states corresponding to, for example, different failure mechanisms. Such a state or failure state (in which the storage device (110) can no longer perform read or write operations and cannot be resolved by turning the power off and on or reformatting the storage medium) may be caused, for example, by a part of the firmware of a damaged controller (in which case the controller may restart in a safe mode where damaged commands are not executed) or by a failure of the processing circuit of the storage device (110) (e.g., a failure of a processing circuit that manages interaction with the storage medium but is not responsible for communication with the host (105). When this type of failure condition occurs, the storage device (110) can respond with an error message to any read or write command from the host (105).

[0034] Case 2 is any failure condition in which (i) the storage device (110) can no longer perform read or write operations and (ii) the storage device (110) can be recovered by turning the power on and off or reformatting the storage medium. Such failure conditions may be caused, for example, by a program execution error in the controller (120) of the storage device (110) (e.g., a pointer out of range as a result of a bit flip in the random access memory (RAM) of the controller (120) or an invalid command as a result of a bit flip). If the controller (120) has not written incorrect data to the storage medium (125) due to a program execution error (for example, if a program execution error occurred after the most recent write to the storage medium by the controller), turning the power of the storage device off and on may be sufficient to restore the storage device (110) to normal operation, and if the controller (120) has written error data to the storage medium (125) due to a program execution error, reformatting the storage medium (125) may be sufficient to restore the storage device (110) to normal operation.

[0035] Case 3 is any failure state that can be mitigated by operating the storage device (110) in read-only mode and where reformatting the storage medium (125) does not restore full functionality. Examples of such failures include (i) a temperature sensor failure, and (ii) a portion of the storage medium (125) switched to read-only mode. In the case of a temperature sensor failure, the failure can be detected by determining that the temperature sensor reading is out of range (e.g., exceeding a critical temperature), in which case the risk of overheating of the storage device (110) can be reduced by avoiding write operations, which may consume more power than read operations. Switching a portion of the storage medium (125) to read-only mode may occur for the flash memory storage medium (125), for example, when a flash memory plane or die exhausts the bad block management reserved space used for runtime bad block management. For example, the storage device (110) may attempt to perform a read operation, fail to attempt to decode a data item, determine that the block storing the data is a bad block, and move the data from the bad block to the bad block management reserve space, and determine that the remaining bad block management reserve space is smaller than a threshold size and is therefore insufficient to guarantee the reliability of the plane or die. Then, the storage device (110) may determine that bad block management is no longer being performed and switch to a read-only mode. The operation of the read-only mode is described in detail below. As used herein, "data item" is any amount of data processed in a single operation, and, for example, the data resulting from decoding a code block may be a data item.

[0036] Case 4 is any failure condition that can be mitigated by operating the storage device (110) in write-through mode. For example, if the power supply backup capacitor of the storage device (110) fails, the device can complete the write to the storage medium (125) before sending a command completion to the host (105) in response to any write command received from the host, so that if the power fails before the write to the storage medium (125) is completed, the host is not incorrectly notified that the write was successfully completed. Operating in write-through mode may result in a reduction in performance (in terms of throughput and latency).

[0037] Case 5 is any failure condition that can be mitigated by operating the storage device (110) in a way that reduces power loss. For example, in the case of a temperature sensor failure, the storage device (110) may operate in read-only mode as described above, or reduce power loss in the storage device (110) by reducing the speed at which operations (e.g., write operations that may consume more power than read operations) are performed. For example, the storage device (110) may perform a first write to the storage medium, then wait for an interval corresponding to reduced performance (the speed at which write operations are performed is reduced due to the waiting), and then perform another write to the storage medium (e.g., 1 second).

[0038] Case 6 is any failure state that can be mitigated by operating the storage device (110) in read-only mode and by reformatting the storage medium (125) to restore full functionality. The third column of the table in FIG. 2a indicates, for each case, whether valid user data is available and whether the storage device (110) can be restored to full functionality, for example, by reformatting the storage medium (125).

[0039] As illustrated by the cases listed in FIG. 2a, in some embodiments, three levels of fault tolerance, namely full recovery mode, partial recovery mode, and vulnerable mode, can be achieved by the storage device (110). In full recovery mode, the storage device (110) can operate with a "self-recovery" feature, and the storage device (110) can restore full functionality (even if user data may be lost from the device) by resetting operations such as power cycling or formatting of the storage medium (125).

[0040] In partial recovery mode, the storage device (110) may operate with lower performance, smaller capacity, or reduced functionality in the event of a failure condition. For example, as described above, if the power supply backup capacitor fails, all writes may be completed only after data is written to the storage medium (125) (i.e., synchronous writes may be performed) (i.e., command completion may be transmitted to the host (105)), thereby slowing down the operation of the storage device (110) and reducing its performance. In this situation, user data may be preserved. The storage device (110) may operate with a smaller capacity when the reserve space for RTBB (bad block management run time bad block) is exhausted. In this situation, the affected dies of the storage device (110) may be excluded from disk space, and the total disk capacity may be reduced. User data in the lost space may be lost. For example, if a set of IO determinism or a zone of a zoned namespace can no longer allow new data writes, the set or zone may be excluded from disk space, but the remaining disk space may remain available for read and write operations. User data in said zone or set may be lost.

[0041] When the storage device (110) switches to read-only mode without allowing write operations, the storage device (110) may operate with reduced functionality. The storage device (110) may operate in two types of read-only modes: a persistent read-only mode and an unsustainable read-only mode. In a persistent read-only mode, the storage device (110) may continue to be used for read requests beyond the retention period of the storage medium (125). In an unsustainable read-only mode, the storage device (110) may continue to be used for read requests for the retention period of the storage medium (125), and if the storage device (110) encounters a data integrity issue (e.g., detected by one or more failed attempts to decode data during a read operation), the storage device (110) may report an invalid data area. A storage device (110) operating in a vulnerable mode may not perform read or write operations as described above, and may perform a graceful exit to continue receiving commands from the host and return an error.

[0042] In some embodiments, five logical block address (LBA) space types may be defined, referred to as (i) execution space (P), (ii) performance degradation space (UP), (iii) read-only space (RO), (iv) volatile read-only space (VRO), and (v) inaccessible space (IA). The execution (P) space may be an LBA space containing valid data that can be read and written in a normal manner without performance sacrifice. The performance degradation (UP) space may be an LBA space containing valid data that can be read and written in a normal manner but has performance degradation (e.g., degraded write performance). The read-only (RO) space may be an LBA space containing valid data that is read-only. The storage device (110) may respond with an error message to a write command from a host directed to an LBA space of this type. Data in the read-only space may be valid for a period exceeding the retention period. Volatile Read Only (VRO) space may be read-only, and the storage device (110) may respond with an error message to a write command from a host directed to this type of LBA space. Data in this type of LBA space may be temporarily valid and may be invalidated when it expires, that is, when the age of the data in the storage medium (125) reaches the retention period of the storage medium (125). Inaccessible (IA) space may be an LBA space containing invalid data that cannot be accessed by the host. The table in FIG. 2b shows combinations of LBA space types that may exist in the storage device (110) for each of the failure conditions identified in the first column of the table. Modes identified by an asterisk (*) may support the host using a get feature command to retrieve detailed information about the LBA space.FIG. 2c illustrates a discussion of a “feature acquisition” command that can be transmitted to the storage device (110) to query the storage device (110) for the state and the value of related parameters (“IOPS” means input and output operations per second).

[0043] The table in FIG. 2d shows a hierarchy of NVMe (nonvolatile memory express) commands that a host (105) can use to query the storage device (110) about its status and enumerated constants that the storage device (110) can use to respond within a category of fault recovery features.

[0044] FIG. 3a is a flowchart of a method for operating in a fault recovery mode in some embodiments. At 305, the host (105) transmits or receives data from the storage device; at 310, the host (105) determines whether an error has occurred in the storage device; at 315, the storage device (110) performs an internal diagnosis and determines its fault recovery status (e.g., full recovery, partial recovery, or vulnerable); at 320, the storage device (110) changes its performance, capacity, or function (e.g., switching to read-only mode) based on the diagnosis; at 325, the storage device (110) publishes the status in response to a request from the host (105) based on an application programming interface (API); and at 330, the host (105) routes data of a given type within a given bandwidth to the storage device (110) or another storage device (110) based on the status. FIG. 3B is a flowchart showing details of a method for operating in a fault recovery mode. The above method comprises: at 335, a step of determining by the storage device that the storage device is in a first failure state that can be recovered by power cycling or formatting the storage medium; at 340, a step of determining by the storage device that the storage device is in a second failure state that can be partially recovered by operating the storage device with reduced performance, reduced capacity, or read-only mode; and at 345, a step of operating the storage device with reduced performance, reduced capacity, or read-only mode.

[0045] A number of embodiments and variations of the embodiments disclosed herein may also be configured. A Field Programmable Gate Array (FPGA) or an embedded processor may perform internal block checks and transmit asynchronous updates regarding the state of the storage device (110) to the host (105). An event may occur and be transmitted to the host (105) (e.g., temperature or other parameters within the device). The host (105) may poll the storage devices (110) according to a predetermined schedule if there are no device driver features to provide notifications. The FPGA or embedded processor may monitor the historical performance of the storage device (110) and use machine learning to provide predictive analysis (e.g., the likelihood of being in a given fault recovery state). Commands may be introduced into the NVMe specification, for example, telemetry information from the NVMe specification may be extended (to report the state of the storage device (110)). Some embodiments may be implemented, for example, in Ethernet storage devices or key-value (KV) storage devices.

[0046] In some embodiments, the host transmits different data types based on the state of the storage device (110) (e.g., file types such as images, videos, text, or high-priority or low-priority data) (e.g., high-priority data or real-time data may not be written to a device considered to be in a partially vulnerable mode) (ii) reduces the transmission speed if the storage device (110) is in a partially vulnerable state and in a lower performance state (iii) transmits a reduced total amount of data if the storage device (110) is in a partially vulnerable state and in a low-capacity state (iv) reads data at the maximum possible speed and stores the data elsewhere so as not to exceed the retention period if the storage device (110) is in a partially vulnerable unsustainable read-only mode (in this situation, the host may calculate the required data rate based on the amount of data to be copied and the retention period), (v) ignores data "reading" from the vulnerable storage device (110) because the data may have errors, simply deletes the data received by the host (105), and (vi) the host and storage Based on messages controlling the timing of these events between devices (110), read / write inputs and outputs are temporarily rerouted to the cache of a fully restored storage device (110) that has been power-cycled or formatted. An FPGA on a partially vulnerable SSD with reduced capacity can filter incoming data writes and write only a portion of the data to the storage device (110). In some cases, filtering may include compression. This FPGA can receive various types of data (e.g., file types such as images, videos, text, or high-priority or low-priority data) from the host (105) and filter them according to the state of the storage device (110). For example, the FPGA may determine that high-priority data should not be written to the storage device (110) in a partially vulnerable mode.The FPGA can send a rejection message to the host (105) and provide a reason for rejection. Alternatively, the FPGA can filter out specific types of data (e.g., image data) to be written to a partially elastic low-capacity state storage device (110). For example, if the storage device (110) loses performance (e.g., operating at a reduced write rate), latency-sensitive reads and writes may be rejected.

[0047] In some embodiments, as described above, the storage device (110) may operate in one of two read-only modes, which may be referred to as a "persistent" (or "first") read-only mode and a "non-persistent" (or "second") read-only mode. In a non-persistent read-only mode, the storage device (110) may simply reject any write command received from the host (105) and may (i) execute a read command for unexpired data or (ii) attempt to execute all read commands and, accordingly, return the data and error code (an indication that the data item cannot be read, e.g., 0) generated by a successful decoding attempt if decoding is unsuccessful.

[0048] In a sustained read-only mode, the storage device (110) can service external read requests beyond the retention period of the storage medium (125). The storage device (110) may not take any action other than returning an error message in response to any write command from the host (105), but may perform writes to the storage medium (125) for internal purposes as described below. To enable data retention beyond the retention period, the storage device (110) may allocate a space referred to as a "structure space" to move data that is about to expire (e.g., data with an age exceeding a threshold age based on the retention period of the storage medium (125) (e.g., 80% of the retention period of the storage medium (125)), and accordingly, the expiration of the data is postponed for the retention period of the structure space. Data in the structure space may be moved back within the structure space as often as necessary to prevent data loss when it is scheduled to expire. In some embodiments, the storage device (110) moves data well before expiration, for example, by using a low load period to perform such a move. As previously mentioned, the transition to a persistent read-only mode may be triggered by the exhaustion of the bad block management reserved space. In this situation, the affected plane or die may become read-only, and all data stored therein may be excluded from the physical address space of the storage device (110) once it is relocated to a structure space.

[0049] The storage device (110) can respond to a read command from the host (105) across the entire LBA space. Although the physical space of the storage device (110) may be reduced (for example, because part of the storage medium (125) becomes read-only and the data is moved (or has been moved) to the structure space), the logical space of the device is not changed, so if the host (105) transmits a read command within the LBA space that cannot be mapped to the PBA (Physical Block Address) space, the storage device (110) may return 0.

[0050] The above structure space may be allocated from over-provisioned space or unused space of the storage device (110). If a set of IO determinism or a zone of a zoned namespace is not writable, the set or zone may become read-only and be excluded from the physical address space once all data is relocated. The structure space may be dynamically created using namespaces. One or more namespaces may be used for user data, and additional namespaces may be created for the structure space. When the storage device (110) switches to a persistent read-only mode, one or more namespaces for user data may be reduced in size, and the size of the namespace for the structure space may be increased.

[0051] If the size of the area of ​​the storage medium (125) affected by the failure (e.g., the area where the bad block management reserve space is exhausted) exceeds the size of the available structure space, the storage device (110) may move only the data that will expire earliest (e.g., the oldest data), move only the data that is important or tagged as being associated with a specific file type (e.g., images, videos, or documents), or move data of contiguous types (e.g., all data related to files) and leave other data behind. The set of file types considered important can be configured by the user. In some embodiments using KV storage devices (110), data importance may be compressed or encoded into key-value pairs.

[0052] In some embodiments, the storage device (110) may determine that the amount of available structure space is smaller than a threshold size and is consequently insufficient to support operation in a persistent read-only mode, and as a result, the storage device (110) may switch to a non-persistent read-only mode. This decision may be made when a failure is first detected, or when a failure is first detected, the storage device (110) may initially switch to a persistent read-only mode, and after a certain period of time, the structure space is consumed to the extent that the available structure space is reduced to less than a threshold size (e.g., by the continuous expiration of data in the failed portion of the storage medium (125), and the storage device (110) may switch from a persistent read-only mode to a non-persistent read-only mode. When switching from a persistent read-only mode to a non-persistent read-only mode, the storage device (110) may notify the host (105) of this switch, and the host (105) may attempt to copy as much data as possible from the storage device to another storage device before the data expires.

[0053] In some cases, data may be lost for a period exceeding one day or one hour. As such, the FPGA of the storage device (110) may monitor the attributes of the data on the drive (e.g., old, tagged, serial, or file-type) to facilitate transfer when the storage device (110) switches to a persistent read-only mode. The FPGA may queue data or order data to be transferred to structured space according to priority, and may compress data when it moves to structured space. Some embodiments may be implemented, for example, in an Ethernet storage device or a key-value (KV) storage device.

[0054] FIG. 4 is a schematic data layout diagram of a storage device (110) in some embodiments. A block lifetime table (405) lists the retention period of each block of the storage device (110), and a mapping table (410) lists the mapping from a logical block address to a physical block address. When the storage device (110) switches to a persistent read-only mode, the storage device (110) copies data from the faulty usage space (415) (physical space affected by the fault condition) to the structure space (420). Data from the normal usage space (425) is processed as if the storage device (110) were in a normal operation mode (instead of being in a persistent read-only mode). Since the fault condition causes a loss of physical space, there is a corresponding reduction in the size of the used LBA space (430), and a portion of the previously available LBA space becomes unused LBA space (435). Firmware (440) executed by the controller (120) can cause data to be moved and tables to be updated as described above.

[0055] FIG. 5a is a flowchart of a method for switching to a persistent read-only mode in some embodiments. At 505, the host (105) transmits and receives data from the storage device; at 510, the host (105) determines whether an error has occurred in the storage device; at 520, the host (105) determines whether an error has occurred in the storage device; at 525, the storage device (110) performs an internal diagnosis and switches to a persistent read-only mode; at 530, the FPGA may optionally monitor the nature of valid data on the storage device (110) (e.g., based on data type or age); at 535, the storage device (110) relocates valid data to a structured space when the age of the data approaches the retention period; and at 540, the storage device (110) may optionally transmit information about the state and contents of the structured space to the host (105) that flushes the data. FIG. 5b is a flowchart showing details of a method for operating in a sustainable read-only mode. The method comprises, in 535, a step of determining that the storage device is in a partially recoverable failure state by operating the storage device in a first read-only mode by means of the storage device; and in 540, a step of operating the storage device in a first read-only mode by determining that the age of a first data item stored in a page of the storage device has exceeded a threshold age and copying the first data item to the structural space of the storage device.

[0056] In some embodiments, as described above, a RAID-0 system comprising an array of storage devices (110) and a volume manager (115) may be configured to accommodate the transition of any one of the storage devices (110) of the RAID-0 system to a read-only mode (e.g., a persistent read-only mode). In normal operation, the volume manager (115) may be responsible for striping data across the array of storage devices (110), for example, being responsible for writing one strip of each stripe (each stripe is composed of these stripes) to each storage device (110) of the array of storage devices (110). In such a system, when any storage device in an array of storage devices (110) switches to read-only mode (or "read-only state"), the RAID-0 system switches to an operating mode (which may be referred to as "emergency mode"), and the volume manager (115) for the array of storage devices (110) (i) allocates structure space to each of the unaffected storage devices (110) (which are in read-write state) remaining for metadata and recovered user data from the failed storage device (110), and (ii) maintains a mapping table (which may be referred to as "emergency mapping table"). The structure space on each storage device (110) can store n strips, where n = R / (strip size), R = C / M, and C is the capacity of each storage device in the array of storage devices (110). The volume manager (115) may be implemented in a host (e.g., hardware, software, or firmware, or a combination of hardware, software, and firmware) or in a RAID controller of a RAID-0 system (e.g., may be housed in an enclosure separate from the host). In some embodiments, the volume manager (115) is implemented in an FPGA.A RAID-0 system may be standalone, and an array of storage devices (110) may be virtualized so that, from the host's perspective, the RAID-0 system operates as a single storage device (110). Generally, a volume manager may be a processing circuit (described in detail below) configured (e.g., by appropriate software or firmware) to perform the operations described herein as performed by the volume manager.

[0057] When the RAID-0 system is operating in emergency mode and a write command is received from the host (105) requesting to write a stripe to an array of storage devices (110), the volume manager (115) checks the emergency mapping table to determine whether the stripe is “registered,” that is, whether an entry has already been created for the stripe. If no entry has been created yet (i.e., the stripe is “open-mapped,” i.e., not registered), the volume manager (115) creates an entry in the emergency mapping table to indicate where the stripe would normally be written to the failed storage device (110) (the storage device (110) that has been switched to read-only mode). If the emergency mapping table already contains an entry for the stripe, the entry is used to determine where the stripe would normally be written to the failed storage device (110). In any case, the volume manager (115) writes the strip (605) that would normally be written to the faulty storage device (110) to the structural space of another storage device (110) by writing each strip to an array of storage devices (110) as illustrated in FIG. 6a.

[0058] When a read command is received and requests to read a stripe from an array of storage devices (110), the volume manager (115) checks the emergency mapping table to determine whether an entry has been made for the stripe. If no entry has been made at all, as illustrated in FIG. 6b, the volume manager (115) reads the stripe as if reading a stripe from each storage device (110) containing the failed storage device (110) in normal operation. If the emergency mapping table contains an entry for the stripe, the entry is used to determine the location where the stripe would normally be read from the failed storage device (110).

[0059] Generally, the remapping of strips written to a failed storage device (110) can be achieved, for example, as follows. Each storage device (110) in an array of storage devices (110) may have a drive identification number (or "drive ID") which may be a number between 0 and M-1, where M is the number of storage devices (110) in the array of storage devices (110). The volume manager (115) may reassign drive identification numbers, for example, assign an alternate drive identification number to each storage device (110) in the array of storage devices (110) to be used to perform read or write operations on a registered stripe (read operations on unregistered stripes may continue to use the original drive identification number). The alternate drive identification number may be generated using the following formula.

[0060] If Drive ID < Failure Drive ID

[0061] New Drive ID = Drive ID

[0062] otherwise,

[0063] New Drive ID = ((Drive ID - 1) + (M - 1)) mod (M-1)

[0064] According to the effect of this formula, (i) each storage device having an identification number smaller than the original drive identification number of the storage device with the failure can be assigned its respective original drive identification number, and (ii) each storage device having an identification number larger than the original drive identification number of the first storage device can be assigned its respective original drive identification number smaller than 1.

[0065] Using an alternate drive number, the target drive to which the strip written to the generally failed storage device (110) can be written can be identified using the formula “Target Drive ID = sid % (M-1)”, where Target Drive ID is the alternate drive identification number of the target drive, sid is the strip identifier of the strip written to the generally failed storage device (110), and “%” is the modulo operator.

[0066] FIG. 6c is a schematic diagram of a RAID-0 system having four storage devices (110) (i.e., M = 4) with Drive 1 switched to read-only mode. When Stripe 1 is written, the target drive ID is implicitly determined by the following formula.

[0067] Destination Drive ID = Strip ID % (M-1) = 1,

[0068] That is, the target drive is a storage device (110) having alternate drive identification number 1 (i.e., Drive 2). Within the drive, the structure space may be divided into strips of the same size as the strip (referred to as "structure strips" or "R-strips"). The emergency mapping table may contain an entry (1,0) (the first element being the stripe ID (Stripe 1) and the second element being the R-strip ID of the target drive). Thus, the entry (1,0) of the emergency mapping table means that Strip (1,1) is mapped to R-Strip (1,0).

[0069] A RAID-0 system may be configured to accommodate a transition to a persistent read-only mode or a non-persistent read-only mode by one or more of the arrays of storage devices (110). When transitioning to a non-persistent read-only mode, the registered strips of the failed storage device (110) may be permanently written to the structural space of another device. When transitioning to a non-persistent read-only mode, for example, the volume manager (115) may move data from the failed storage device (110) to an unaffected storage device (110) before it expires at a speed sufficient to move all data from the failed storage device. The server may calculate the speed based on the amount of data and the time remaining before expiration.

[0070] Figure 7a is a flowchart of how to operate a RAID-0 system. At 705, the storage device (110) of the RAID-0 system has a failure and switches to read-only mode; at 710, the affected storage device (110) performs an internal diagnosis and determines that its failure recovery status is partially restored and read-only; at 715, the volume manager (115) determines that the affected storage device (110) is in read-only mode and reassigns the ID of the ("properly functioning") unaffected storage device; at 720, the volume manager (115) receives a write operation and adds an entry to a temporary mapping table to indicate that the strip of the affected device is redirected to the target (unaffected) storage device (110) and that the entire strip has been written to the structure space of the target (unaffected) based on the new drive ID of the unaffected storage device; at 725, the volume manager (115) receives a read command from the host (105) and reads the strip of the affected storage device from the structure space of the target (unaffected) storage device while the RAID system Read all strips of the stripe from a properly functioning, unaffected storage device (110).

[0071] FIG. 7b is a flowchart showing details of a method for operating a RAID-0 storage system. The method comprises: at 730, determining that a first storage device is in a read-only state and a second storage device is in a read-write state; at 735, performing a write operation of the first stripe to the storage system by writing a portion of the first stripe to the second storage device and creating an entry in a mapping table for the first stripe; at 740, performing a first read operation of the second stripe from the storage system by reading a portion of the second stripe from the first storage device and the second storage device; and at 745, performing a second read operation of the first stripe from the storage system by determining that the mapping table contains an entry for the first stripe and reading a portion of the first stripe from the second storage device.

[0072] Various elements described herein, such as a host (105) or a controller (120), may be or include a processing circuit. In this specification, the terms “processing circuit” or “controller means” are used to mean any combination of hardware, firmware, and software employed to process data or digital signals. Processing circuit hardware may include, for example, application-specific integrated circuits (ASICs), general-purpose or special-purpose central processing units (CPUs), digital signal processors (DSPs), graphics processing units (GPUs), and programmable logic devices such as field programmable gate arrays (FPGAs). In a processing circuit, as used herein, each function is performed by hardware configured to perform that function, i.e., by hard-wired hardware, or by more general-purpose hardware such as a CPU configured to execute instructions stored in a non-transient storage medium. A processing circuit may be fabricated on a single printed circuit board (PCB) or distributed on multiple interconnected PCBs. The processing circuit includes other processing circuits, for example, the processing circuit may include two processing circuits interconnected on a PCB, namely an FPGA and a CPU.

[0073] As used herein, “part of” means “at least part of” an object, and thus may mean all or less than all of the object. As such, “part of” an object includes the whole object as a special case, namely, the whole object is an example of a part of the object. The term “or” as used herein should be interpreted as “and / or,” for example, “A or B” means either “A” or “B” or “A and B”.

[0074] The background provided in the background section of the specification is included solely to establish context, and the contents of this section are not recognized as prior art. Any component described or any combination of components (e.g., in any system diagram included herein) may be used to perform one or more of the operations of any flowchart included herein. Additionally, (i) the operations are exemplary and may include various additional steps not explicitly covered, and (ii) the chronological order of the operations may be changed.

[0075] As used herein, when a method (e.g., adjustment) or a first quantity (e.g., a first variable) is referred to as being "based" on a second quantity (e.g., a second variable), this implies that the second quantity is an input to the method or affects the first quantity, for example, the second quantity is an input to a function that calculates the first quantity (e.g., a single input or one of several inputs), or the first quantity may have the same value as the second quantity or be identical to the second quantity (e.g., stored in the same location or locations in memory).

[0076] Although terms such as “first,” “second,” “third,” etc. may be used herein to describe various elements, components, regions, layers, and / or sections, it will be understood that such elements, components, regions, layers, and / or sections are not limited to these terms. These terms are used solely to distinguish one element, component, region, layer, or section from another element, component, region, layer, or section. Accordingly, a first element, component, region, layer, or section mentioned herein may be referred to as a second element, component, region, layer, or section without departing from the spirit and scope of the concept of the present invention.

[0077] Spatially relative terms such as "beneath," "below," "lower," "under," "above," and "upper" may be used for convenience of explanation to describe the relationship that one element or feature has with respect to other element(s) or feature(s) as depicted in the drawings. It will be understood that such spatially relative terms are intended to include other directions of the device in use or operation, in addition to the directions depicted in the drawings. For example, if the device in the drawings is inverted, the element described as "below" or "under" or "below" of another element or feature will face "upper" of said other element or feature. Accordingly, the exemplary terms "below" and "under" may include both upper and lower directions. The device may be positioned differently (e.g., rotated 90 degrees or in a different direction), and the spatially relative descriptors used herein should be interpreted accordingly. Furthermore, when a layer is referred to as existing between two layers, it will also be understood that this may be the only layer between the two, or that one or more intervening layers may exist.

[0078] The terms used herein are for describing specific embodiments and are not intended to limit the invention. The terms “substantially,” “about,” and similar terms used herein are used as terms of approximation rather than terms of degree, and are intended to account for inherent deviations of measured or calculated values ​​that may be perceived by those skilled in the art.

[0079] As used herein, the singular forms “a” and “an” are intended to include the plural forms unless the context clearly indicates otherwise. It will also be understood that when used herein, the terms “comprising” and / or “comprising” specify the presence of the mentioned features, integers, steps, actions, elements and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, actions, elements, components and / or groups thereof. The term “and / or” as used herein includes any and all combinations of one or more associated listed items. Expressions such as “at least one of” change the entire list of elements when preceding a list of elements, but do not change the individual elements of the list. Additionally, when describing embodiments of the invention, the term “may” indicates “one or more embodiments of the present disclosure.” Also, the term “exemplary” is intended to indicate an example or illustration. As used in this specification, the terms "use," "by use," and "used" may be considered synonyms for the terms "utilize," "by utilizing," and "utilized," respectively.

[0080] When a component or layer is referred to as being "located at," "connected to," "combined to," or "adjacent to" another component or layer, said component or layer is directly located, connected to, combined to, or adjacent to the other component or layer, and one or more intervening components or layers may exist. Conversely, when a component or layer is referred to as being "directly above," "directly connected to," "directly combined to," or "directly adjacent to" another component or layer, no intervening components or layers exist.

[0081] Any numerical range cited herein is intended to include all sub-ranges of the same numerical accuracy contained within the cited range. For example, the range “1.0 to 10.0” or the range “between 1.0 and 10.0” includes all sub-ranges between (including) the mentioned minimum value 1.0 and the mentioned maximum value 10.0, that is, having a minimum value greater than or equal to 1.0 and a maximum value less than or equal to 10.0, e.g., the range from 2.4 to 7.6. Any maximum numerical limit cited herein is intended to include all lower numerical limits contained therein, and any minimum numerical limit cited herein is intended to include all higher numerical limits contained therein.

[0082] Although exemplary embodiments of a system and method for the restoration operation of storage devices have been specifically described and illustrated herein, many modifications and variations will be apparent to those skilled in the art. Accordingly, it should be understood that a system including a system and method for the restoration operation of storage devices and storage devices configured according to the principles of this disclosure may be implemented differently from that specifically described herein. The present invention is also defined in the following claims and their equivalents. Explanation of the symbols

[0083] 105: Host 110: Storage device 115: Volume Manager 120: Controller 125: Storage media

Claims

Claim 1 A method for operating a storage system comprising a first storage device and a second storage device, which operates as a redundant array of independent storage devices, comprising: determining that the first storage device is in a read-only state and the second storage device is in a read-write state; performing a write operation of a first stripe to the storage system; performing a first read operation of a second stripe from the storage system; and performing a second read operation of the first stripe from the storage system, wherein the step of performing the write operation includes: writing a portion of the first stripe to the second storage device and creating an entry in a mapping table for the first stripe, wherein the step of performing the first read operation includes reading a portion of the second stripe from the first storage device and the second storage device, and the step of performing the second read operation includes: determining that the mapping table contains the entry for the first stripe, and reading a portion of the first stripe from the second storage device. Claim 2 In claim 1, the storage system comprises a plurality of storage devices including the first storage device and the second storage device, and the step of determining that the second storage device is in the read-write state comprises the step of determining that one or more residual storage devices other than the first storage device are in the read-write state, the residual storage devices include the second storage device, and the step of performing the write operation comprises the step of writing the first stripe to the residual storage devices. Claim 3 In paragraph 2, the step of performing the first read operation comprises: determining that the second stripe is open-mapped within the plurality of storage devices, and reading the second stripe from the plurality of storage devices. Claim 4 A method according to claim 2, further comprising the step of reassigning drive identification numbers to the remaining storage devices, wherein each of the plurality of storage devices has an original drive identification number, and the reassigning step comprises: the step of assigning the original drive identification number to each storage device having an identification number smaller than the original drive identification number of the first storage device; and the step of assigning the original drive identification number less than 1 to each storage device having an identification number larger than the original drive identification number of the first storage device. Claim 5 In paragraph 2, the step of performing the second read operation comprises: reading the first stripe from the remaining storage devices, and reading a strip of the first stripe from the storage device at an address based on the mapping table. Claim 6 A method according to claim 5, further comprising the step of reassigning drive identification numbers to the remaining storage devices, wherein each of the plurality of storage devices has an original drive identification number, and the reassigning step comprises the step of assigning the original drive identification number to each storage device having an identification number smaller than the original drive identification number of the first storage device. Claim 7 A method according to claim 6, wherein the reassigning step further comprises the step of assigning the original drive identification number less than 1 to each storage device having an identification number greater than the original drive identification number of the first storage device. Claim 8 In claim 6, the original drive identification number of the first storage device is n, and the step of reading the strip of the first stripe includes the step of reading the strip from the storage device having the reassigned identification number n. Claim 9 A system for storing data that operates as a RAID (redundant array of independent storage devices), comprising a first storage device, a second storage device, and a processing circuit connected to the first storage device and the second storage device, wherein the processing circuit is configured to: determine that the first storage device is in a read-only state and the second storage device is in a read-write state, perform a write operation of a first stripe, perform a first read operation of a second stripe, and perform a second read operation of the first stripe, wherein performing the write operation includes: writing a portion of the first stripe to the second storage device and creating an entry in a mapping table for the first stripe, wherein performing the first read operation includes reading a portion of the second stripe from the first storage device and the second storage device, and performing the second read operation includes: determining that the mapping table contains the entry for the first stripe and reading a portion of the first stripe from the second storage device. Claim 10 A system according to claim 9, comprising a plurality of storage devices including the first storage device and the second storage device, wherein determining that the second storage device is in the read-write state includes determining that one or more residual storage devices other than the first storage device are in the read-write state, the residual storage devices include the second storage device, and performing the write operation includes writing the first stripe to the residual storage devices. Claim 11 A system according to claim 10, wherein performing the first read operation comprises: determining that the second stripe is open-mapped within the plurality of storage devices and reading the second stripe from the plurality of storage devices. Claim 12 In claim 10, the processing circuit is further configured to reassign drive identification numbers to the remaining storage devices, each of the plurality of storage devices having an original drive identification number, and the reassignment comprises: assigning the original drive identification number to each storage device having an identification number smaller than the original drive identification number of the first storage device, and assigning the original drive identification number less than 1 to each storage device having an identification number larger than the original drive identification number of the first storage device. Claim 13 A system according to claim 10, wherein performing the second read operation comprises: reading the first stripe from the residual storage devices and reading a strip of the first stripe from the storage device at an address based on the mapping table. Claim 14 A system according to claim 13, wherein the processing circuit is further configured to reassign drive identification numbers to the remaining storage devices, each of the plurality of storage devices having an original drive identification number, and the reassignment comprises assigning the original drive identification number to each storage device having an identification number smaller than the original drive identification number of the first storage device. Claim 15 In paragraph 14, the processing circuit is further configured to assign the original drive identification number less than 1 to each storage device having an identification number greater than the original drive identification number of the first storage device. Claim 16 A system according to claim 14, wherein the original drive identification number of the first storage device is n, and reading the strip of the first stripe comprises reading the strip from the storage device having the reassigned identification number n. Claim 17 A system for storing data that operates as a RAID (redundant array of independent storage devices), comprising a first storage device, a second storage device, and processing means connected to the first storage device and the second storage device, wherein the processing means is configured to: determine that the first storage device is in a read-only state and the second storage device is in a read-write state, perform a write operation of a first stripe, perform a first read operation of a second stripe, and perform a second read operation of the first stripe, wherein performing the write operation includes: writing a portion of the first stripe to the second storage device and creating an entry in a mapping table for the first stripe, wherein performing the first read operation includes reading a portion of the second stripe from the first storage device and the second storage device, and performing the second read operation includes: determining that the mapping table contains the entry for the first stripe and reading a portion of the first stripe from the second storage device. Claim 18 A system according to claim 17, comprising a plurality of storage devices including the first storage device and the second storage device, wherein determining that the second storage device is in the read-write state comprises determining that one or more residual storage devices other than the first storage device are in the read-write state, wherein the residual storage devices include the second storage device, and performing the write operation comprises writing the first stripe to the residual storage devices. Claim 19 A system according to claim 18, wherein performing the first read operation comprises: determining that the second stripe is open-mapped within the plurality of storage devices and reading the second stripe from the plurality of storage devices. Claim 20 In claim 18, the processing means is further configured to reassign drive identification numbers to the remaining storage devices, each of the plurality of storage devices having an original drive identification number, and the reassignment comprises: assigning the original drive identification number to each storage device having an identification number smaller than the original drive identification number of the first storage device, and assigning the original drive identification number less than 1 to each storage device having an identification number larger than the original drive identification number of the first storage device.

Citation Information

Patent Citations

  • Non-volatile storage memory module with physical-to-physical address remapping

    KR1020170020851A

  • Memory system, a method of writing data to the memory system, and a method of reading data from the memory system

    KR1020190022290A

  • Method of operating storage device including volatile memory

    KR1020130079706A

  • Raid storage device and management method thereof

    KR1020170125178A

  • Address mapping method and operation method of storage device

    KR1020190020229A