WO2022146177A1 - Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью - Google Patents

Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью Download PDF

Info

Publication number
WO2022146177A1
WO2022146177A1 PCT/RU2021/000514 RU2021000514W WO2022146177A1 WO 2022146177 A1 WO2022146177 A1 WO 2022146177A1 RU 2021000514 W RU2021000514 W RU 2021000514W WO 2022146177 A1 WO2022146177 A1 WO 2022146177A1
Authority
WO
WIPO (PCT)
Prior art keywords
disks
data
group
disk
controller
Prior art date
Application number
PCT/RU2021/000514
Other languages
English (en)
French (fr)
Inventor
Антон Анатольевич Дремлюга
Антон Константинович ФРОММ
Дмитрий Николаевич ШЕТОХИН
Артур Игоревич ПИНЧУК
Original Assignee
Антон Анатольевич Дремлюга
Антон Константинович ФРОММ
Дмитрий Николаевич ШЕТОХИН
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Антон Анатольевич Дремлюга, Антон Константинович ФРОММ, Дмитрий Николаевич ШЕТОХИН filed Critical Антон Анатольевич Дремлюга
Publication of WO2022146177A1 publication Critical patent/WO2022146177A1/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Definitions

  • the invention relates to the field of digital data processing using electrical devices, in particular to technical solutions designed to detect and correct data errors on information media using redundancy in the data representation.
  • Asynchronous actions are actions that do not require the main process to stop (performed in non-blocking mode), which allows the main program thread to continue processing data.
  • Asynchronous actions provide the ability to execute two or more process branches in parallel.
  • a data block is a sequence of characters of a fixed length used to represent data or independently transmitted over the network, representing several consecutive logical records combined into one physical record on disk.
  • Data recovery is the process of restoring lost data stored on a failed drive using data stored on other drives in the array.
  • a disk is a storage device designed to store information (data), such as a solid state drive, hard drive HDD, tape drive, optical drive, or any other storage device known to those skilled in the art.
  • a disk drive is used to read information from a disk and write information to a disk. The disk and disk drive are usually combined into a single disk storage device,
  • Disk Array - A storage device that consists of multiple physical disk storage devices that are virtually combined into a single logical module and defined by the operating system of the computer as a single drive.
  • Availability is a characteristic of a data storage system that reflects the likelihood that data from the system will be available at the user's request. High availability is achieved, in particular, by encoding, when part of the system disk space is allocated not for user data, but for storing checksums. In the event of system drive failure, lost data can be recovered using these checksums, thereby ensuring data availability.
  • RAID Redundant Array of Independent Disks
  • RAID arrays are designed to improve fault tolerance, performance, and overall volume of disk storage systems.
  • Drive Groups or Drive Packs is a group of drives (usually of the same model) that are logically linked to each other and are addressed as a single device. In some cases, such a group may be referred to as a "disk pack" when referring to only physical devices.
  • a disk group controller is a hardware device or software used to manage hard disk drives (HDD) or solid state drives (SSD) in a computer or storage array so that they operate as a logical unit.
  • a RAID controller provides some degree of protection for stored data, and can also help improve computing performance by speeding up access to stored data.
  • Cache Cache
  • Cache internal RAM of a computer or controller, which allows you to speed up reading data from a data storage device and writing data to this device.
  • Caching - saving data in a predefined area of ⁇ u200b ⁇ u200bdisk or RAM (cache).
  • Caching allows quick access to recently read/written data and is used to speed up read/write operations on RAID systems, disks, computers and servers, or other peripherals.
  • Write Through Cache is a caching strategy in which data is written to the cache and to disk before the completion status is returned to the RAID host operating system. This caching strategy is considered to be the most secure for data storage, as it minimizes the chance of data loss in the event of a power failure. At the same time, writing through the cache leads to some decrease in system performance.
  • Write-Back Cache is a caching strategy in which a write completion signal is sent to the RAID host as soon as the cache receives data to be written. This data will be written to the target disk only after some time. This strategy has little to no impact on system performance, but there is a risk of data loss in the event of a power failure. To protect against data loss due to a power failure or system crash, it is recommended that you use an alternate power supply for the cache chips when using this caching strategy.
  • LRG Local Reconstruction Groups
  • sets sets of data blocks included in the strip, in an amount not exceeding the number of data blocks in the strip.
  • Reconstruction local groups may also be abbreviated as "local groups”.
  • Failure - the loss of health of the physical drive, a detectable physical change in the array hardware, which is restored by replacing the disk.
  • Fault tolerance / failure tolerance the ability of a storage system to continue to perform its functions even when one of its physical disks fails.
  • Fault tolerance / failure tolerance the ability of a storage system to continue to perform its functions even when one of its physical disks fails.
  • Redundancy is a characteristic of information that increases the probability of error-free reading or transmission of data due to their repetition. To increase the reliability of the storage system at the physical level, redundancy is achieved by including additional components of the same type in the storage system, in addition to the components that are minimally necessary for the operation of the storage system. Additional data can be either a complete copy of the actual data or selected pieces of data that allow you to detect errors and restore lost or damaged data to a certain level.
  • Parity is a type of additional data that is calculated and stored together with or separate from the data that the user wants to write to the hard drive array. This extra data can be used to check the integrity of the stored data, as well as to calculate any "missing" data if some of the data cannot be read, such as when a drive fails.
  • parity information parity
  • checksum can also be used to denote parity.
  • Recovery mode (Rebuild) - the process of restoring data and checksums lost as a result of the failure of one or more physical disks of the array to hot spare disks, as a result of which the standby disk receives the recovered data lost during disk failure.
  • Degraded mode is the mode of operation of the storage system, into which the storage system switches when one or more physical disks of the array have become inoperable, as a result of which the lost data is restored and it is possible to transfer them to the host in response to a data read request.
  • Disk Failure Detection is a RAID controller feature that allows the controller to automatically detect disk corruption.
  • the control process is based, among other things, on the analysis of the execution time of the commands sent by the disks. If the disk does not acknowledge the execution of the command within a certain time, the controller resets the disk and sends the command again. If the command is not executed again within the specified time, the disk may be disabled by the controller and its status is fixed as "dead"("dead”). Many RAID controllers also monitor bus parity errors and other potential problems.
  • Hot Spare is a redundant disk replacement feature in a RAID that is required to provide non-stop RAID service with a high degree of fault tolerance. If one or more disks fail, the repair operation will be performed automatically by the RAID controller. A physical drive can also be marked as a Hot Spare drive using the appropriate RAID controller utility. The ability to provide disk replacement without interrupting the array is one of the key tasks performed by the disk group controller.
  • Read-Modify-Write Read-Modify-Write (RCW) (read - reconstruction - write) - in the known methods, two alternative methods are used to update parity data when writing a partial strip: RMW ("read - change - write”) and RCW ("reading - reconstruction - writing").
  • Stripe (Stripe) - data is written to disks in stripes (stripe), each strip consists of blocks (block), each block is placed on a separate disk in the array.
  • the number of disks in an array is called the stripe width.
  • Each band contains either a set of data or data or their checksums, which are calculated based on the data of each such band.
  • Depth or stripe width is the amount of data contained in each stripe.
  • Queue depth the number of concurrent read or write requests.
  • the host can be any computer, server connected to a local or global network.
  • RAID In order to create a fault-tolerant and productive storage system, RAID technologies were developed - redundant arrays of independent disks. At the same time, depending on the tasks of the user, RAID can be structured in several well-known ways to achieve various combinations of properties of the data storage system.
  • RAID level 1 creates a complete copy of the data on an additional storage device.
  • RAID level 1 creates a complete copy of the data on an additional storage device.
  • RAID 1 provides concurrent access to a full copy of the data on the device to store copies of the data, making data reads relatively fast.
  • RAID 1 also provides data backup to enable data recovery in the event of a storage device failure.
  • the disadvantage of RAID 1 is that writes are relatively slow because all data stored on the storage system must be written twice: to the storage device and to the copy storage device.
  • RAID 5 The next well-known configuration of RAID arrays is RAID 5, the fifth level of RAID.
  • RAID 5 involves striping N data segments across N storage devices and storing a parity data segment (checksum) on N+1 storage devices.
  • RAID 5 provides fault tolerance because RAID can survive a single storage device failure. For example, if the storage device fails, the missing stripe data segment can be recovered using other available data segments and a stripe-specific parity data segment.
  • RAID 5 also typically uses less storage space than RAID 1 because each storage device in a RAID storage set is not required to store a full copy of the data, only a stripe data segment or a parity data segment.
  • RAID 5, like RAID 0, is relatively fast for writing data, but relatively slow for reading data. However, data writes for RAID 5 are slower than for RAID 0 because the parity data segment in RAID 5 must be computed for each strip of N stripe data segments.
  • RAID level 6 which uses double distributed parity (checksums. Each stripe parity data segment is calculated separately. Due to this, while providing the minimum allowable storage redundancy, the RAID level 6 storage system allows you to recover data in the event failure of up to two drives in the array Data lost due to drive failure can be restored using the remaining available data segments and/or parity data segments.
  • RAID 6 has the same performance advantages and disadvantages as RAID 5.
  • RAID arrays of different levels can be combined with each other, forming a main RAID and a nested RAID.
  • Nested RAID can be used to improve fault tolerance where high reliability is required. For example, two sets of storage devices, each configured as RAID 5, can be mirrored in a RAID 1 configuration. The resulting configuration can be called RAID 51. If each mirrored set is using RAID 6, then the configuration can be called RAID 60.
  • Nested configurations RAIDs typically have the same performance issues as basic RAID groups.
  • the technical solution presented in publication US7506187B2 describes a RAID storage system where RAID arrays of different levels are simultaneously used in one system.
  • the first RAID array of one level stores the first copy of data corresponding to the RAID level providing redundancy (for example, RAID-5), and the second copy of data is stored in the second RAID array of another level, for example, RAID-O.
  • Data is read from two RAID arrays in parallel to improve read performance.
  • the controller responds to a disk failure and, in the event of data inaccessibility in one array, retrieves data from another array.
  • the redundancy in the first RAID array also allows the controller to recover data from the failure of one disk using the data stored on the other disks in the first array.
  • the formula of the above invention proposes to use a RAID array to store the main copy of the data, providing redundancy.
  • a common data storage system made in accordance with the formula of the above invention on two arrays of different levels will have the same disadvantages that are inherent in known RAID levels.
  • the main disadvantage of the technical solution presented in the publication US7506187B2 is that this system has limitations fault tolerance. So, such a system, when implementing the minimum allowable data redundancy in the system, will ensure data recovery only if no more than two array disks fail.
  • the data storage method differs significantly from the technical solution proposed in the prototype.
  • copies of data are stored in two RAID arrays of different levels.
  • the claimed method involves storing data in an array of disks without using the structure of RAID arrays of known levels.
  • the system for executing the proposed method is a single array, within which two logical groups of disks are used, the first of which stores the source data, and the other stores the checksums of the source data.
  • the implementation of the proposed method allows, at the logical and hardware level, to functionally distribute asynchronously executed tasks among different groups of disks controlled by independent controllers.
  • the read and write functions are implemented in the first disk group, controlled by the corresponding controller of the first disk group, while the auxiliary functions that ensure the fault tolerance of the data storage system, namely the calculation of parity (checksums), its storage, and data recovery is performed by using the second disk group managed by the controller of the second disk group.
  • the technical problem for which the present invention is intended is to reduce the probability of irretrievable data loss in a data storage system in case of failure of one or more disks that are part of a disk array, while maintaining the performance of reading and writing data by the user.
  • the technical result of the present invention is to increase the fault tolerance of the data storage system while minimizing the impact of processes that ensure system fault tolerance on the performance of user data reading and writing processes.
  • the claimed technical result is achieved when using the proposed technical solution in a data storage system by distributing the proposed method of the processes of reading and writing data blocks, calculations and writing checksums on two logical groups of disks controlled by independent controllers interacting with each other, with subsequent data recovery in case of failure of one or more disks.
  • the data storage system for implementing the present method is a redundant array of independent disks, which consists of two logical disk groups, which are controlled respectively by the controller of the first disk group and the controller of the second disk group.
  • Fig. 1 The general scheme of the organization of the data storage system for the implementation of this method
  • Fig. 3 Examples of creating local groups, with the calculation of checksums for them, and placing checksums on disks of the second group of disks
  • Fig. 7 Option for data recovery in a storage system with a redundancy factor of 3 in case of failure of any five disks
  • Fig. 8 Procedure for performing partial stripe recording at the block level
  • Fig. 10 The order of recording, subject to the availability of all disks of the storage system
  • Fig. 11 The order of writing new data in the degradation mode in case of failure of one or more disks of the first group
  • Fig. 12 The order of writing new data in case of a disk failure in the second group of disks.
  • Fig. 14 The order of reading data when a failure of one or more disks of the first group of disks is detected
  • Fig. 15 The order of reading data when a failure of one or more disks of the second group of disks is detected
  • Fig. 16 The order of reading data when a failure of disks of both groups of disks is detected
  • FIG. 1 shows the storage system (system), the controllers of the first and second groups with cache memory (controller 1 and controller 2), as well as disk groups (group 1 and group 2).
  • Data blocks (A1...AZ, B1...B3, C1...C3, D1...D3) are recorded on the disks of the first group in full stripes A, B, C and D.
  • the disks of the second group contain checksums of combinations of local groups of data blocks (Apl...Ap3, Bpl...Bp3, Cpl...Cp3, Dpl...Dp3).
  • Each disk group can also include spare disks (hot spares)
  • the controllers are configured to exchange data with an external host to receive commands for writing and reading data. To reduce the probability of data loss in case of failure of one of the controllers, the controllers are configured to exchange data with each other.
  • the exchange of data between controllers is used to verify the data being synchronized between caches (memory) of two controllers during the current write or read operation. Also, data exchange between controllers is used to check the data accumulated in the caches of the controllers at the time of the operation.
  • the controller remaining in working condition receives a signal about the failure of the other controller. After receiving a controller failure signal, the controller remaining in working condition notifies the storage system administrator of the controller failure and enters the mode of performing the functions of both controllers until the failed controller is brought into working condition or replaced by the user with a good one.
  • the first disk group is used to store data blocks.
  • the controller of the first disk group writes and reads data blocks to the disks of the first disk group.
  • Data blocks are written to the disks of the first group by performing non-redundant data write interleaving across the disks using a write-through cache.
  • the second disk group is used to store the checksums calculated by the controller of the second disk group.
  • the checksums are written to the disks of the second disk group by the controller of the second disk group using a write-back cache.
  • the checksums stored on the disks of the second group of disks are used to recover lost data and/or lost checksums.
  • New data blocks are written to the disks of the first group of disks through the cache of the controller of the first group with write-through.
  • the checksums of new data blocks are calculated by the second disk group controller and written to the second disk group controller's write-back cache, after which they are written from the second disk group controller cache to the disks of the second disk group.
  • Checksums are calculated for local groups of data blocks, consisting of various combinations of data blocks included in the strip, and are stored on the disks of the second group of disks.
  • a local group can have two and more non-repeating data blocks, while the number of data blocks should not exceed the number of blocks in the strip.
  • XOR is a Boolean XOR function, as well as a logical and bitwise operation, in the case of two variables, the result of the operation is true if and only if one of the arguments is true and the other is false.
  • XOR has a feature that makes it possible to replace any operand with the result, and, using the XOR algorithm, get the missing operand as a result. For example, if we have three disks A, B, C in the array, then we perform the operation:
  • the received checksums are distributed among the disks of the second group of disks in the amount necessary to fully recover the lost data in the event of a failure, depending on set fault tolerance parameters, one or more disks, mainly due to parity information blocks.
  • Hot spare disks are activated if the disks of the first or second group fail. After detecting a drive failure, the system recovers the lost data stored on the failed drives, and then writes the recovered data to spare drives, so the spare drives replace the failed drives in the storage system.
  • FIG. 2 shows the operation of the storage system in the mode of recovery of a lost disk.
  • Fig. 2.a shows a data storage system (system), controllers of the first and second groups with cache memory (controller 1 and controller 2), as well as a disk array consisting of logical disk groups (group 1 and group 2). Data blocks (A1...AZ, B1...B3, C1...C3, D1...D3) are recorded on the disks of the first group in full stripes A, B, C and D.
  • the disks of the second group contain checksums of combinations of local groups of data blocks (Ap1...Ap3, Vp1...Bp3, Cpl...Cp3, Dpl...Dp3).
  • disk 1 is marked as failed, respectively, the controller of the second group of disks restores the lost data of disk 1, after which the restored data is written to the backup disk of the first group.
  • the data of the lost disk is completely restored on the backup disk.
  • FIG. Figure 2a shows the operation of the storage system in the recovery mode of a lost disk, when a request is received from the host to read data.
  • a data storage system system
  • controllers of the first and second groups with cache memory controller 1 and controller 2
  • a disk array consisting of logical groups of disks (group 1 and group 2).
  • Data blocks A1...AZ, B1...B3, C1...C3, D1...D3 are recorded on the disks of the first group in full stripes A, B, C and D.
  • the disks of the second group contain checksums of combinations of local groups of data blocks (Apl...Ap3, Bpl...Bp3, Cpl...Cp3, Dpl...Dp3).
  • disk 1 is marked as failed, respectively, the controller of the second group of disks restores the lost data of disk 1 and writes them to the backup disk of the first group.
  • the read request is performed by reading data requested by the host from the remaining disks of the first group, and restored by the second controller using the data checksums of the lost disk of the first group.
  • checksums also known as parity data or parity data
  • the inventive method using the above procedure for calculating and placing checksums allows in most cases not to use disks with data blocks in the process of recovering lost data, in contrast to known RAID systems, where for the process of recovering lost data access to data blocks along with access to blocks of checksums is a necessary condition for data recovery, which inevitably reduces system performance.
  • Data blocks can be grouped into local groups by different combinations of data among themselves.
  • the number of local groups and, as a result, the number of checksums calculated for these groups, affects the redundancy of the storage system.
  • Figure 4 shows a variant of data block recovery in a double redundant storage system in case of failure of all disks of the first group.
  • blocks A1, A2, 33, A4 show failed disks of the first group
  • blocks Ap1, Ap2, Ap3, Ap4 show disks of the second group of disks that store checksums of local groups of data blocks of the first group of disks.
  • the calculation of checksums was carried out according to the following rules (hereinafter, the symbol f means the use of the XOR function described earlier):
  • figure 4 shows the logic for restoring the disks of the first disk group:
  • Figure 5 shows an example of data recovery in a double redundant storage system in the event of any three disk failures.
  • blocks A1, A2, AZ, A4 show disks of the first group, moreover, disks A1 and A2 are out of order
  • blocks Ap1, Ap2, Ap3, Ap4 show disks of the second group of disks that store checksums of lost data blocks of the first disk group, and disk Ap2 out of order.
  • the calculation of checksums was carried out according to the following rules:
  • figure 5 shows the logic for calculating the data recovery of failed disks:
  • Figure 6 shows a variant of data recovery in a storage system with a redundancy index of 2.5 in the event of a failure of any four disks, and only checksums recorded on the disks of the second group are used to restore data blocks and working disks of the first group are not used.
  • blocks A1, A2, AZ, A4 show disks of the first group, and disks A1 and A2 are out of order
  • Arb show disks of the second group of disks that store control the sum of the lost data blocks of the first group of disks, and the disks Ap1 and Ap2 are out of order.
  • the calculation of checksums was carried out according to the following rules:
  • figure 6 shows the logic for calculating the data recovery of failed disks:
  • Ar1 ArZfarArb
  • Ar2 Ar3farAr5
  • Figure 7 shows a variant of data recovery in a storage system with a redundancy index of 3 in the event of failure of any five disks, and only checksums recorded on the disks of the second group are used for data recovery and working disks of the first group are not used.
  • blocks A1, A2, AZ, A4 show disks of the first group, and disks Al, A2 and AZ are out of order
  • blocks Ap1, Ap2, Ap3, Ap4, Ap5, Arb, Ap7, Ap8 show disks of the second group of disks that store checksums lost data blocks of the first group of disks, and the disks Ap1 and Ap2 are out of order.
  • the calculation of checksums was carried out according to the following rules:
  • Arb AZfA4
  • figure 7 shows the logic for calculating the data recovery of failed disks:
  • Ar1 Ar4farAr6
  • Figs. 4-7 show an example of data recovery in the case of implementing a storage system with a certain number of disks. These examples should not be interpreted as the only possible implementation of a data storage system for executing the proposed method.
  • the inventive method can be implemented in data storage systems with more than three disks.
  • R is the size of the redundancy
  • X is the allowed number of disks that the system can lose while retaining the ability to recover data
  • N is the number of disks in the first group
  • the redundancy of the storage system is an adjustable parameter.
  • the storage redundancy factor can be set, depending on the required level of fault tolerance, by the system administrator when determining the number of disks that the system can lose, while maintaining the ability to recover data.
  • the user can set the parameter of increased redundancy, respectively, additional disks will be needed to store redundant data, but the system itself will have higher fault tolerance compared to with a disk-constrained system implementation where the administrator sets a low redundancy score to reduce the number of disks in the storage system.
  • Writing new data to the disks of the first group of disks can be done by writing a full strip or partial strip recording.
  • the first controller writes new full stripe data to the disks of the first disk group
  • the second controller calculates the parity (checksums) of the local groups combined from the data blocks included in the stripe, writes the new parity to the second controller cache ( checksums) and notifies the storage system of the completion of writing checksums to the cache of the controller of the second group. Then, after waiting for the queue to execute the new parity write, the new parity is written to the disks of the second group.
  • the controllers notify the storage system of the successful write. If a write fails, the controller whose disk group has failed reports the failure to the host.
  • the first controller writes new data to the disks of the first group of disks
  • the second controller asynchronously calculates the new parity from the previously written data (old data) and the new data, as well as the previously written (old) parity, after which the controller of the second group writes to cache of the second controller a new parity (checksums) and notifies the storage system of the completion of writing the checksums to the cache of the controller of the second group. Then, after waiting for the execution queue, the new parity is written to the disks of the second group.
  • the controllers notify the storage system of a successful write. If the write process fails, the controller whose disk group failed reports the failure to the host.
  • the procedure for performing a partial recording of a band is as follows:
  • the data storage system detects out-of-print If disks are built in the first group of disks, then new data is written in the degradation mode in the following order (Fig. 11).
  • Writing new data to the disks of the first group of disks can be carried out by writing a full strip or partial strip recording.
  • the first controller writes new full stripe data to the remaining disks of the first disk group and hot spares
  • the second controller asynchronously calculates the parity (checksums) of the local groups combined from the data blocks included in the stripe, writes to cache of the second controller a new parity (checksums) and notifies the storage system of the completion of writing the checksums to the cache of the controller of the second group. Then, after waiting for the queue to execute the new parity write, the new parity is written to the disks of the second group.
  • the controllers notify the storage system of a successful write. If a write fails, the controller whose disk group has failed reports the failure to the host.
  • the first controller writes new data to the disks of the first disk group and hot spare disks
  • the second controller asynchronously calculates the new parity of the previously written data (old data) and new data from the old and new data values, after which the second group controller writes to cache of the second controller a new parity (checksums) and notifies the storage system of the completion of writing the checksums to the cache of the controller of the second group. Then, after waiting for the execution queue, the new parity is written to the disks of the second group.
  • the controllers notify the storage system of a successful write. If a write fails, the controller whose disk group has failed reports the failure to the host.
  • Fig. 12 illustrates the order in which new data is written in the event that a disk failure is detected in the second disk group.
  • the first controller writes new full stripe data to the disks of the first disk group
  • the second controller asynchronously calculates the parity (checksums) of the local groups combined from the data blocks included in the stripe, writes the new parity to the second controller cache (checksums) and notifies the storage system of the completion of writing checksums to the cache of the controller of the second group. Then, after waiting for the queue to execute the new parity write, the new parity is written to the remaining disks and the hot spare disks of the second group of disks.
  • the controllers notify the storage system of a successful write. If a write fails, the controller whose disk group has failed reports the failure to the host.
  • the first controller writes new data to the disks of the first disk group, and the second controller asynchronously checks whether the previously written parity information is sufficient to restore the old checksum data.
  • the controller of the second group of disks restores the lost checksums and, taking into account the new data, calculates a new parity. If the existing information is not sufficient to recover the lost parity data, then the controller of the second disk group accesses the disks of both groups and recovers the lost parity data using the data blocks of the first disk group and the remaining checksums, after which, taking into account the new data, it calculates a new parity (checksums).
  • the controller of the second disk group then writes the new parity (checksums) to the cache of the second controller and notifies the storage system of the completion of writing the checksums to the cache of the controller of the second group. Then, after waiting for the execution queue, the new parity is written to the remaining disks, and the hot spare disks of the second group.
  • the controllers notify the storage system of a successful write. If the write process fails, the controller whose disk group failed reports the failure to the host.
  • Fig. 13 illustrates the order in which new data is written when a disk failure is detected in both disk groups.
  • new data is written in the same order as when new data is written in case of detection of a disk failure in the second group of disks (Fig. 12), with the difference that in the case of full strip recording, new full strip data is written to the remaining disks of the first group and the hot spares of the first disk group, and when a stripe is partially written, new data is also written to the disks of the first group and the hot spares of the first disk group.
  • writing new data can also be performed by waiting for a full strip in the following order.
  • New data is written to the disks of the first disk group and to the cache of the controller of the second disk group.
  • the second disk group including the controller of the second disk group, may perform an asynchronous process, such as reading checksums for parallel recovery mode.
  • the second controller asynchronously calculates the parity (checksums) of the local groups combined from the data blocks included in the stripe and is written to the cache of the second disk group controller. Further, the checksums of this stripe are written from the cache of the controller of the second group of disks to the remaining disks, and the hot spare disks of the second group.
  • the controllers of the first and second group Upon receiving a read request, the controllers of the first and second group check the controller cache to determine if the requested data is in the controller cache. If the data is found in the cache, the controllers transmit the requested data to the user's device (FIG. 9).
  • the data is read in the following order.
  • the data requested by the user is read from the surviving disks of the first disk group and written to the cache of the controller of the first disk group.
  • the missing data is asynchronously restored from the checksum blocks stored on the disks of the second disk group and is also written to the cache of the controller of the first disk group, thus forming a complete packet of the requested data.
  • the full amount of data requested is delivered to the host, and the recovered data is written to spare disks assigned instead of the failed disks of the first group.
  • the first group of disks is not used for data recovery, which allows serving user requests for reading blocks of data without loss of performance of the data storage system.
  • the data requested for reading is read from the disks of the first group and transferred to the host, and the lost blocks of checksums, first of all, are restored at the expense of the remaining checksum blocks, and only in case of a shortage of the remaining checksums for restoration, the data blocks on the disks of the first group of disks are accessed. After, the recovered checksums are written to the cache of the second controller and then written to the spare disks of the second disk group.
  • Fig. 16 When one or more disks of both disk groups fail (Fig. 16), user-requested data is read from the surviving disks of the first disk group and written to the cache of the controller of the first disk group. Missing data is primarily recovered from the remaining blocks of checksums stored on the disks of the second group of disks, and, in case of their shortage, they also refer to the data blocks stored on the disks of the first group. Further, the recovered data is written to the cache of the controller of the first group of disks, thus forming a complete package of the requested data, and then transferred to the user's device. At the next stage, the restored data is written to the spare disks of the first disk group, and the restored checksums are written to the spare disks of the second disk group.
  • the data recovery process is activated from the moment the system fail-safety parameters deteriorate simultaneously with the transition of the system to degradation mode.
  • the recovered data required for the system to function in degraded mode is also written to the spare disks, thus avoiding re-recovery of the data, in the event that the disk recovery mode would occur separately. Also in recovery mode disk failures are allowed up to the number provided for by the established system redundancy indicator. In this case, blocks of checksums are used in priority order to restore data, and only in the event of a shortage of this information is it allowed to access data blocks. This preserves the ability to process read and write requests.
  • Workload balancing between read-write processes and recovery mode, as well as performance / reliability characteristics, as well as the order of tasks performed, can be set both by the system administrator and in automatic mode, depending on the current state of system fault tolerance (number of failed disks ).
  • the data storage system for implementing the proposed method may consist of the following components:
  • a host machine that is a gateway that provides a data access interface (eg block access, file access).
  • the host machine can connect to the controllers via LAN (ethemet cable) or via fiber optic connection (fiber optic cable).
  • Disk controller of the first group of disks which is a server with a Linux kernel module and MDADM modification installed on it, which makes it possible to execute the proposed method
  • Disk controller of the second group of disks which is a server with a Linux kernel module and MDADM modification installed on it, which makes it possible to execute the proposed method.
  • a JBOD or JBOF disk array consisting of HDD and/or SSD disks logically divided into disks of the first disk group and disks of the second disk group, connected to the controller of the first disk group and the controller of the second disk group through high-speed SAS/SATA/miniSAS connections.
  • the inventive method can be implemented with different versions of array disk group controllers. So, the following types of RAID controllers are distinguished: software, hardware, integrated. In software controllers of the array, the entire load for managing the array falls on the central processor of the computer. Storage systems with such controllers are the least productive and fault-tolerant.
  • Software controllers for implementing the claimed invention can be implemented as a kernel module of the Linux operating system (for example, Centos7, version 2.6, on which the storage system prototype was implemented). When implemented this way, porting the system to other Linux distributions can be done by compiling a kernel module and importing it into the target operating system.
  • a kernel module of the Linux operating system for example, Centos7, version 2.6, on which the storage system prototype was implemented.
  • Integrated controllers are embedded as a separate chip in the motherboard of the computer to which the storage system is connected.
  • the integrated controller performs part of the control tasks, the other part of the tasks is performed by the central processor of the computer.
  • Integrated controllers may have their own cache memory. Compared to software, they have higher performance and fault tolerance.
  • Hardware controllers are made in the form of expansion boards or separate devices placed outside the server (external or bridge controllers). They are equipped with their own processor that performs all the necessary calculations, and, as a rule, a cache memory. Modular controllers can have external and internal ports, while internal ports are used to connect drives installed in the server itself, and external ports are used to connect external disk storage.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Изобретение относится к системам хранения данных. Техническим результатом является повышение отказоустойчивости системы хранения данных. Способ содержит этапы: запись блоков данных в кэш контроллера первой группы дисков; запись блоков данных в составе полосы на диски первой группы дисков; комбинация записанных блоков данных в локальные группы; расчет контрольных сумм локальных групп; запись контрольных сумм локальных групп в кэш контроллера второй группы дисков; запись контрольных сумм на диски второй группы дисков; в случае обнаружения отказа одного или нескольких дисков первой группы осуществляется восстановление утраченных блоков данных из контрольных сумм, записанных на дисках второй группы дисков, и запись восстановленных блоков данных в кэш контроллера первой группы дисков; в случае обнаружения отказа одного или нескольких дисков второй группы дисков осуществляется восстановление утраченных контрольных сумм из сохранившихся контрольных сумм, записанных на дисках второй группы дисков, и запись восстановленных контрольных сумм в кэш контроллера второй группы дисков.

Description

Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью
Описание
Изобретение относится к области обработки цифровых данных с помощью электрических устройств, в частности к техническим решениям, предназначенным для обнаружения и исправления ошибок данных на носителях информации с помощью избыточности в представлении данных.
С целью обеспечения достаточности раскрытия изобретения и обеспечения возможности проведения информационного поиска в отношении заявляемого технического решения ниже приведен перечень терминов, используемых в описании заявляемого изобретения.
Асинхронные действия - действия, выполнение которых не требует остановки основного процесса (выполняемые в неблокирующем режиме), что позволяет основному потоку программы продолжить обработку данных. Асинхронные действия обеспечивают возможность параллельного выполнения двух и более ветвей процесса.
Блок данных — последовательность символов фиксированной длины, используемая для представления данных или самостоятельно передаваемая в сети, представляющая собой несколько последовательных логических записей, объединенных в одну физическую запись на диске.
Восстановление данных — процесс восстановления утраченных данных, хранившихся на вышедшем из строя диске, с помощью данных, сохранившихся на других дисках массива.
Диск — запоминающее устройство, предназначенное для хранения информации (данных), например, твердотельный накопитель, жесткий диск HDD, ленточный накопитель, оптический накопитель или любое другое запоминающее устройство, известное специалистам в данной области. Для чтения информации с диска и записи информации на диск используется дисковод. Диск и дисковод, как правило, объединены в единое дисковое устройство хранения данных,
Дисковый массив (Disk Array) — устройство хранения данных, состоящее из нескольких физических дисковых устройств хранения данных, виртуально объединенных в единый логический модуль и определяемых операционной системой ЭВМ как единый накопитель.
Доступность (Availability) — характеристика системы хранения данных, отражающая вероятность того, что данные из системы будут доступны по запросу пользователя. Высокая доступность достигается, в частности, за счет кодирования, когда часть дискового пространства системы отводится не под пользовательские данные, а для хранения контрольных сумм. В случае отказа дисков системы утраченные данные могут быть восстановлены с помощью этих контрольных сумм — тем самым обеспечивается доступность данных.
RAID (Redundant Array of Independent Disks) — Избыточный Массив Независимых Дисков — технология виртуализации данных для объединения нескольких физических дисковых устройств в логический модуль, в котором один или несколько физических дисковых устройств используются для хранения избыточной информации — копии данных или контрольной суммы данных, позволяющей восстановить данные при выходе из строя одного или большего количества дисков. RAID массивы предназначены для повышения отказоустойчивости, производительности и общего объема дисковых систем хранения данных.
Группы Дисков или Дисковые Пакеты (Drive Groups or Drive Packs) — группа дисков (обычно одной модели), которые логически привязаны друг другу и адресуются как единое устройство. В некоторых случаях такая группа может называться «дисковым пакетом», когда речь идет только о физических устройствах.
Контроллер группы дисков (RAID-контроллер) - это аппаратное устройство или программное обеспечение, используемое для управления жесткими дисками ( HDD ) или твердотельными дисками ( SSD ) в компьютере или массиве хранения, чтобы они работали как логическая единица . RAID-контроллер обеспечивает определенную степень защиты хранимых данных, а также может помочь повысить производительность вычислений за счет ускорения доступа к хранимым данным.
Кэш (Cache) — внутренняя оперативная память ЭВМ или контроллера, позволяющая ускорять чтение данных с устройства хранения данных и запись данных на это устройство. Кэширование (Caching) — сохранение данных в предопределенной области диска или оперативной памяти (кэша). Кэширование позволяет получить быстрый доступ к недавно прочитанным/записанным данным и используется для ускорения операций чтения/записи RAID систем, дисков, компьютеров и серверов, или других периферийных устройств.
Кэш со Сквозной Записью (Write Through Cache) — стратегия кэширования, при которой данные записываются в кэш и на диск прежде, чем состояние завершения будет возвращено ведущей операционной системе RAID. Эта стратегия кэширования считается наиболее безопасной для хранения данных, так как в случае применения такой стратегии минимизируется вероятность потери данных в случае сбоя питания. Вместе с тем, запись через кэш приводит к некоторому снижению производительности системы.
Кэш с Отложенной Записью (Write-Back Cache) — стратегия кэширования, при которой сигнал завершения операции записи посылается ведущей операционной системе RAID, как только кэш принимает данные, которые должны быть записаны. На целевой диск эти данные запишутся только через некоторое время. Такая стратегия практически не снижает производительность системы, однако существует угроза потери данных в случае сбоя питания. Для защиты от потери данных в результате сбоя питания или аварийного отказа системы при применении такой стратегии кеширования рекомендуется использовать альтернативный источник питания микросхем кэша.
Локальные группы реконструкции — LRG (Local Reconstruction Groups) — комбинации (наборы) блоков данных, входящих в полосу, в количестве, не превышающем количество блоков данных в полосе. Локальные группы реконструкции также могут быть названы сокращенно «локальные группы».
Отказ (сбой) (Failure) — утрата работоспособности физического накопителя, обнаруживаемое физическое изменение в оборудовании массива, восстанавливаемое путем замены диска.
Отказоустойчивость (Fault tolerance / failure tolerance) — способность системы хранения данных продолжать выполнять свои функции даже тогда, когда один из ее физических дисков вышел из строя. Как правило, для того чтобы компьютерная система была отказоустойчива, необходима избыточность в дисководах, источниках питания, адаптерах, контроллерах и соединительных кабелях
Избыточность (Redundancy) — характеристика информации, обеспечивающая повышение вероятности безошибочного считывания или передачи данных за счет их повтора. Для повышения надежности системы хранения данных на физическом уровне избыточность достигается за счет включения в систему хранения данных дополнительных однотипных компонентов, в дополнение к компонентам минимально необходимым для работы системы хранения данных. Дополнительные данные могут быть как полной копией фактических данных, так и избранными фрагментами данных, которые позволяют обнаруживать ошибки и восстанавливать потерянные или поврежденные данные до определенного уровня.
Паритет (Parity) — это тип дополнительных данных, которые рассчитываются и хранятся вместе или отдельно от данных, которые пользователь хочет записать на массив жестких дисков. Эти дополнительные данные могут использоваться для проверки целостности сохраненных данных, а также для вычисления любых «недостающих» данных, если некоторые из данных не могут быть прочитаны, например, при выходе из строя диска. Также для обозначения паритета могут быть использованы термины «информация о четности» (четность) и «контрольная сумма».
Режим восстановления (Rebuild) — процесс восстановления данных и контрольных сумм, утраченных в результате выхода из строя одного или нескольких физических дисков массива на диски горячего резерва, в результате исполнения которого резервный диск получает восстановленные данные, утраченные при выходе из строя диска.
Режим деградирования (Degraded) — режим работы системы хранения данных, в который система хранения данных переходит, когда один или несколько физических дисков массива утратили работоспособность, в результате исполнения которого происходит восстановление утраченных данных и обеспечивается возможность передачи их хосту в ответ на запрос чтения данных.
Обнаружение неисправности дисков (Disk Failure Detection) — функция контроллера RAID, за счет которой контроллер может автоматически обнаруживать повреждения дисков. Процесс контроля основывается, среди прочего, на анализе времени выполнения команд, посланных дисков. Если диск в течение определенного времени не подтверждает выполнение команды, контроллер осуществляет «сброс» диска и посылает команду повторно. Если команда снова не выполняется за заданное время, диск может быть отключен контроллером и его состояние фиксируется, как "dead" ("мертвый"). Многие RAID контроллеры также контролируют ошибки четности шины и другие потенциальные проблемы.
Горячий резерв (Hot Spare) — функция резервной замены дисков в RAID, необходимая для обеспечения безостановочного обслуживания RAID с высокой степенью отказоустойчивости. В случае выхода из строя одного или нескольких дисков восстанавливающая операция будет выполнена RAID контроллером автоматически. Физический диск может также быть помечен как резервный диск (Hot Spare), при помощи соответствующей утилиты RAID контроллера. Возможность обеспечения замены дисков без остановки работы массива — одна из ключевых задач, выполняемых контроллером группы дисков.
Чтение-Модификация-Запись (Read-Modify- Write (RCW) (чтение — реконструкция — запись ) — в известных способах для обновления данных четности при записи частичной полосы используются два альтернативных метода: RMW («чтение — изменение — запись») и RCW («чтение — реконструкция — запись»).
Полоса (Stripe) — данные записываются на диски по полосам (stripe), каждая полоса состоит из блоков (block), каждый блок помещается на отдельный диск в массиве. Число дисков в массиве называется шириной полосы (stripe width). Каждая полоса содержит либо набор данных, либо данные либо их контрольные суммы, которые вычисляются на основе данных каждой такой полосы. Глубиной или шириной полосы (Stripe width/depth) называется объем данных, содержащийся в каждой полосе.
Глубина очереди - количество одновременных запросов на чтение или запись.
Хост — любое устройство, предоставляющее сервис формата «клиент- сервер» в режиме сервера по каким-либо интерфейсам и уникально определённое на этих интерфейсах. Хостом может выступать любой компьютер, сервер, подключенный к локальной или глобальной сети.
Уровень техники
С развитием компьютерных технологий стали появляться системы и способы хранения данных, обеспечивающие возможность восстановления информации после сбоя дисков без потери данных и восстановления системы хранения данных до состояния, в котором система находилась до отказа одного или нескольких элементов системы. Наравне с отказоустойчивостью системы хранения данных важным параметром эффективности систем хранения данных стала производительность операций чтения и записи, выполняемых по пользовательским запросам одновременно с операцией восстановления данных. Производительность системы хранения данных во время ее восстановления после сбоя дисков имеет решающее значение для приложений, которые требуют как высокой производительности ввода-вывода, так и высокой надежности данных.
С целью создания отказоустойчивой и производительной системы хранения данных были разработаны технологии RAID — избыточные массивы независимых дисков. При этом в зависимости от задач пользователя RAID может быть структурирован несколькими известными способами для достижения различных комбинаций свойств системы хранения данных.
Традиционно различные конфигурации RAID называются уровнями RAID. Например, одной из конфигураций RAID является RAID level 1, который создает полную копию данных на дополнительном устройстве хранения. Преимущество RAID 1 заключается в том, что помимо доступа к данным, хранящимся на исходном устройстве, система RAID 1 дает параллельный доступ к полной копии данных на устройстве для хранения копий данных, за счет чего чтение данных происходит относительно быстро. RAID 1 также обеспечивает резервную копию данных для обеспечения возможности восстановления данных в случае выхода из строя устройства хранения. Недостатком RAID 1 является то, что запись происходит относительно медленно, поскольку все данные, хранимые в системе хранения данных, должны быть записаны дважды: на устройство для хранения данных и на устройство для хранения копии данных. Другой известной конфигурацией RAID является RAID level 0. При использовании такой конфигурации данные равномерно распределяются по дискам массива, физические диски объединяются в один логический диск, который может быть размечен на несколько логических разделов. Распределенные операции чтения и записи позволяют значительно увеличить скорость работы, поскольку несколько дисков одновременно читают/записывают свою порцию данных, следовательно, при использовании RAID 0 достигается максимальная производительность. Однако, такая конфигурация снижает надежность хранения данных, поскольку при отказе одного из дисков массив обычно разрушается и восстановить данные практически невозможно.
Следующей известной конфигурацией RAID массивов является RAID 5 — RAID пятого уровня. RAID 5 включает чередование N сегментов данных между N устройствами хранения и хранение сегмента данных четности (контрольных сумм) на N+1 устройстве хранения. RAID 5 обеспечивает отказоустойчивость, поскольку RAID может выдержать один отказ устройства хранения. Например, если устройство хранения данных выходит из строя, пропущенный сегмент данных полосы может быть восстановлен с использованием других доступных сегментов данных и сегмента данных четности, рассчитанного специально для полосы. RAID 5 также обычно использует меньше места для хранения, чем RAID 1, поскольку каждое устройство хранения из набора устройств хранения RAID не требуется для хранения полной копии данных, а только сегмент данных полосы или сегмент данных четности. RAID 5, как и RAID 0, относительно быстр для записи данных, но относительно медленен для чтения данных. Однако запись данных для RAID 5 происходит медленнее, чем для RAID 0, поскольку сегмент данных четности в RAID 5 должен быть вычислен для каждой полосы из N сегментов данных полосы.
Также известной конфигурацией RAID является RAID level 6, который использует двойную распределенную четность (контрольные суммы. Каждый сегмент данных четности для полосы вычисляется отдельно. За счет этого при условии обеспечения минимально допустимой избыточности хранения данных, система хранения данных RAID level 6 позволяет восстановить данные в случае выхода из строя до двух дисков массива. Утраченные по причине отказа дисков данные могут быть восстановлены с использованием оставшихся доступных сегментов данных и/или сегментов данных четности. RAID 6 имеет те же преимущества и недостатки производительности, что и RAID 5.
RAID массивы разных уровней могут быть скомбинированы между собой, образуя основной RAID и вложенный RAID. Вложенный RAID может быть использован для повышения отказоустойчивости там, где требуется высокая надежность. Например, два набора устройств хранения данных, каждый из которых настроен как RAID 5, могут быть зеркально отражены в конфигурации RAID 1. Полученную конфигурацию можно назвать RAID 51. Если для каждого зеркального набора используется RAID 6, то конфигурация может называться RAID 60. Вложенные конфигурации RAID обычно имеют те же проблемы с производительностью, что и базовые группы RAID.
В ходе патентного поиска были обнаружены документы, определяющие уровень техники и не считающиеся особо релевантным по отношению к заявленному изобретению, а именно:
«Снижение избыточности четности в системе хранения» (патент US 10810083В 1, приоритет от 21.12.2018, Патентообладатель: Pure Storage Inc.)
«Система дискового массива и способ управления» (патент US8464094B2, приоритет от 21.09.2005, патентообладатель: Hitachi Ltd);
«Управление хранением данных в массиве запоминающих устройств» (патент US9378093B2, приоритет 25.04.2013, патентообладатель: GlobalFoundries Inc);
«Устройство RAID, устройство управления и способ управления» (W02009157086 , приоритет 27.06.2008, Патентообладатель: Fujitsu Limited);
«Адаптер хранилища RAID, система и метод создания контрольного значения» (патент CN101042633, приоритет 13.03.2007, Патентообладатель: IBM);
«Устройство управления областью хранения и способ управления областью хранения» (патент US20100169575A1, приоритет: 25.12.2008, патентообладатель: Fujitsu Ltd);
«Метод построения высокопроизводительных отказоустойчивых систем хранения данных на основе распределенных файловых систем и технологии NVMe over Fabrics», ( патент на изобретение РФ №2716040 приоритет 22.06.2018, патентообладатель: Общество с ограниченной ответственностью "РСК Лабе" (ООО "РСК Лабе").
Вышеуказанные технические решения, как и заявляемое изобретение, в той или иной мере предназначены для создания отказоустойчивой и производительной системы хранения данных RAID, однако устройство систем и способов вышеуказанных технических решений существенно отличается от предлагаемого в настоящем изобретении.
В качестве прототипа заявляемого изобретения можно рассматривать техническое решение, раскрытое в публикации US7506187B2 «METHODS, APPARATUS AND CONTROLLERS FOR A RAID STORAGE SYSTEM» («Способ, устройства и контроллеры для системы хранения RAID») (Правообладатель: International Business Machines Corporation, Armonk, NY (US), патент US 7,506,187 B2, приоритет 30.08. 2004).
Техническое решение, представленное в публикации US7506187B2, описывает систему хранения данных RAID, где в одной системе одновременно используются RAID массивы разных уровней. При этом в первом массиве RAID одного уровня осуществляется хранение первой копии данных, соответствующем уровню RAID, обеспечивающему избыточность (например, RAID-5), а хранение второй копии данных осуществляется во втором массиве RAID другого уровня, например, RAID-О. Данные считываются из двух RAID-массивов параллельно для повышения производительности чтения. Контроллер реагирует на отказ диска и в случае недоступности данных в одном массиве производит извлечение данных из другого массива. Избыточность в первом массиве RAID также позволяет контроллеру восстанавливать данные после выхода из строя одного диска за счет данных, хранимых на других дисках первого массива.
Формула вышеуказанного изобретения предлагает использовать для хранения основной копии данных массив RAID, обеспечивающий избыточность. В таком случае, общая система хранения данных, выполненная в соответствии с формулой вышеуказанного изобретения на двух массивах разных уровней, будет обладать теми же недостатками, которые присущи известным уровням RAID. Основным недостатком технического решения, представленного в публикации US7506187B2, является то, что данная система имеет ограничения отказоустойчивости. Так, подобная система при реализации минимально допустимой избыточности данных в системе обеспечит восстановление данных только в том случае, если из строя выйдет не более двух дисков массива.
Предлагаемый в заявляемом изобретении способ хранения данных существенно отличается от технического решения, предложенного в прототипе. В прототипе в двух RAID массивах разных уровней хранятся копии данных. Заявленный способ предполагает хранение данных в массиве дисков без использования структуры RAID массивов известных уровней. В частности, система для исполнения заявляемого способа представляет собой единый массив, внутри которого используются две логические группы дисков, в первой из которых хранятся исходные данные, а в другой хранятся контрольные суммы исходных данных. Реализация заявляемого способа позволяет на логическом и аппаратном уровне функционально распределить асинхронно выполняемые задачи по разным группам дисков, управляемых самостоятельными контроллерами. Так, в частности, функции чтения и записи, как ключевые, реализуются в первой группе дисков, управляемой соответствующим контроллером первой группы дисков, тогда как вспомогательные функции, обеспечивающие отказоустойчивость системы хранения данных, а именно расчет паритета (контрольных сумм), его хранение, и восстановление данных исполняются за счет использования второй группы дисков, управляемой контроллером второй группы дисков.
Техническая задача, для решения которой предназначено настоящее изобретение, заключается в снижении вероятности безвозвратной потери данных в системе хранения данных при отказе одного или нескольких дисков, входящих в состав дискового массива, с сохранением производительности чтения и записи данных пользователем.
Технический результат настоящего изобретения заключается в повышении отказоустойчивости системы хранения данных с минимизацией влияния процессов, обеспечивающих отказоустойчивость системы, на производительность процессов чтения и записи данных пользователем.
Заявленный технический результат достигается при использовании заявляемого технического решения в системе хранения данных за счет распределения предлагаемым способом процессов чтения и записи блоков данных, расчетов и записи контрольных сумм на две логические группы дисков, управляемых самостоятельными контроллерами, взаимодействующими между собой, с последующим восстановлением данных в случае отказа одного или нескольких дисков.
Раскрытие изобретения
Для решения поставленной задачи и достижения вышеуказанного технического результата предлагается способ хранения данных в избыточном массиве независимых дисков.
Система хранения данных для реализации настоящего способа представляет собой избыточный массив независимых дисков, который состоит из двух логических групп дисков, которые управляются соответственно контроллером первой группы дисков и контроллером второй группы дисков.
Изобретение раскрывается и поясняется на следующих чертежах:
Фиг. 1 — Общая схема организации системы хранения данных для реализации настоящего способа
Фиг. 2 — Работа системы хранения данных в режиме восстановления утраченного диска
Фиг. 2а — Работа системы хранения данных в режиме восстановления утраченного диска с одновременным исполнением запроса хоста на чтение утраченных данных (режим деградирования)
Фиг. 3 — Примеры создания локальных групп, с расчетом для них контрольных сумм, и размещение контрольных сумм на дисках второй группы дисков
Фиг. 4 — Вариант восстановления блоков данных в системе хранения данных с двойной избыточностью в случае выхода из строя всех дисков первой группы
Фиг. 5 — Вариант восстановления данных в системе хранения данных с двойной избыточностью в случае выхода из строя любых трех дисков
Фиг. 6 - Вариант восстановления данных в системе хранения данных с показателем избыточности 2,5 в случае выхода из строя любых четырех дисков
Фиг. 7 - Вариант восстановления данных в системе хранения данных с показателем избыточности 3 в случае выхода из строя любых пяти дисков, Фиг. 8 - Порядок осуществления частичной записи полосы на уровне блоков
Фиг. 9 — Общая логика исполнения заявляемого способа хранения данных
Фиг. 10 — Порядок осуществления записи при условии доступности всех дисков системы хранения данных
Фиг. 11 - Порядок записи новых данных в режиме деградирования при выходе из строя одного или нескольких дисков первой группы
Фиг. 12 — Порядок записи новых данных в случае обнаружения выхода из строя дисков во второй группе дисков.
Фиг. 13 — Порядок записи новых данных при обнаружении выхода из строя дисков в обеих группах дисков
Фиг. 14 — Порядок чтения данных при обнаружении выхода из строя одного или нескольких дисков первой группы дисков
Фиг. 15 — Порядок чтения данных при обнаружении выхода из строя одного или нескольких дисков второй группы дисков
Фиг. 16 — Порядок чтения данных при обнаружении выхода из строя дисков обеих групп дисков
Фиг. 17 — Порядок чтения данных в исходном отказоустойчивом состоянии системы
Фиг. 18 — Порядок осуществления частичной записи полосы
Система хранения данных для реализации настоящего способа изображена на фиг. 1, где изображена система хранения данных (система), контроллеры первой и второй группы с кэш-памятью (контроллер 1 и контроллер 2), а также группы дисков (группа 1 и группа 2). На диски первой группы полными полосами А, В, С и D записаны блоки данных (А1...АЗ, В1...ВЗ, С1...СЗ, D1...D3). На диски второй группы записаны контрольные суммы комбинаций локальных групп блоков данных (Apl ...Ap3, Bpl ...Bp3, Cpl ...Cp3, Dpl...Dp3). Каждая группа дисков может включать также резервные диски (диски горячего резерва)
Контроллеры выполнены с возможностью обмена данными с внешним хостом для получения команд записи и чтения данных. Для снижения вероятности потери данных при отказе одного из контроллеров, контроллеры выполнены с возможностью обмена данными между собой. Обмен данными между контроллерами используется для проверки данных, синхронизируемых между кэшами (памятью) двух контроллеров в процессе текущей операции записи или чтения. Также обмен данными между контроллерами используется для проверки данных, накопленных в кэшах контроллеров на момент выполнения операции.
В случае отказа одного из контроллеров, оставшийся в рабочем состоянии контроллер получает сигнал об отказе другого контроллера. После получения сигнала об отказе контроллера оставшийся в рабочем состоянии контроллер уведомляет администратора системы хранения данных об отказе контроллера и переходит в режим исполнения функций обоих контроллеров на то время, пока отказавший контроллер не будет приведен в рабочее состояние или заменен пользователем на исправный.
Первая группа дисков используется для хранения блоков данных. Контроллер первой группы дисков осуществляет запись и чтение блоков данных на диски первой группы дисков. Блоки данных записываются на диски первой группы посредством выполнения неизбыточного чередования записи данных по дискам с использованием кэша со сквозной записью.
Вторая группа дисков используется для хранения контрольных сумм, рассчитанных контроллером второй группы дисков. Контрольные суммы записываются на диски второй группы дисков контроллером второй группы диском с применением кэша с отложенной записью. В случае выхода из строя одного или несколько дисков в системе хранения данных, контрольные суммы, хранящиеся на дисках второй группы дисков, используются для восстановления утраченных данных и/или утраченных контрольных сумм.
Запись новых блоков данных осуществляется на диски первой группы дисков через кэш контроллера первой группы со сквозной записью. Контрольные суммы новых блоков данных рассчитываются контроллером второй группы дисков и записываются в кэш с отложенной записью контроллера второй группы дисков, после чего записываются из кэша контроллера второй группы дисков на диски второй группы дисков.
Контрольные суммы рассчитываются для локальных групп блоков данных, состоящих из различных комбинаций блоков данных входящих в полосу, и хранятся на дисках второй группы дисков. В локальной группе может быть два и более неповторяющихся блока данных, при этом количество блоков данных не должно превышать количество блоков в полосе.
Контрольные суммы могут быть рассчитаны различными способами. Например, контрольные суммы могут быть рассчитаны как XOR блоков данных, входящих в локальную группу. Пример создания локальных групп и расчет их контрольных сумм приведен на фиг. 3, где изображены блоки данных Al, А2, АЗ, А4, записанные на диски первой группы дисков, также изображены контрольные суммы Ар1, Ар2, АрЗ, Ар4, записанные на диски второй группы дисков, причем скомбинирована локальная группа Al, А2, АЗ и ее контрольная сумма рассчитана как Al XOR А2 XOR АЗ = Ар1 , и также скомбинирована локальная группа А2, АЗ, А4 и ее контрольная сумма рассчитана как А2 XOR АЗ XOR А4 = Ар2.
XOR — булева функция «исключающего или», а также логическая и битовая операция, в случае двух переменных результат выполнения операции истинен тогда и только тогда, когда один из аргументов истинен, а другой — ложен. XOR обладает особенностью, которая дает возможность заменить любой операнд результатом, и, применив алгоритм XOR, получить в результате недостающий операнд. Например, если у нас в массиве есть три диска А, В, С, то мы выполняем операцию:
A XOR В = С
В случае если диск А выйдет из строя, мы можем восстановить хранившиеся на нем утраченные данные проведя операцию XOR между С и В:
А= С XOR В .
Данный порядок восстановления утраченных данных с помощью заранее вычисленных контрольных сумм применим вне зависимости от количества операндов, например, при наличии пяти дисков, можно рассчитать:
A XOR В XOR С XOR D = Е.
Если выходит из строя диск С, тогда возможно восстановить утраченные данные этого диска, выполнив операцию XOR по формуле
С= A XOR В XOR Е XOR D .
Полученные контрольные суммы (информация о четности) распределяются по дискам второй группы дисков в количестве, необходимом для полного восстановления утраченных данных в случае отказа, в зависимости от установленных параметров отказоустойчивости, одного или нескольких дисков, преимущественно за счет блоков информации о четности.
Диски горячего резерва задействуются в том случае, если диски первой или второй группы выходят из строя. После обнаружения выхода из строя дисков, система осуществляет восстановление утраченных данных, хранившихся на вышедших из строя дисках, после чего записывает восстановленные данные на резервные диски, таким образом резервные диски заменяют в системе хранения данных вышедшие из строя диски.
На фиг. 2 изображена работа системы хранения данных в режиме восстановления утраченного диска. Так, на фиг. 2.а изображена система хранения данных (система), контроллеры первой и второй группы с кэш-памятью (контроллер 1 и контроллер 2), а также дисковый массив, состоящий из логический групп дисков (группа 1 и группа 2). На диски первой группы полными полосами А, В, С и D записаны блоки данных (А1...АЗ, В1...ВЗ, С1...СЗ, D1...D3). На диски второй группы записаны контрольные суммы комбинаций локальных групп блоков данных (Ар1...АрЗ, Вр1...ВрЗ, Cpl...Cp3, Dpl ...Dp3). При этом диск 1 помечен как вышедший из строя, соответственно контроллер второй группы дисков восстанавливает утраченные данные диска 1, после чего осуществляется запись восстановленных данных на резервный диск первой группы. Таким образом, данные утраченного диска полностью восстанавливаются на резервном диске.
На фиг. 2а изображена работа системы хранения данных в режиме восстановления утраченного диска, когда с хоста поступает запрос на чтение данных. Также, как в случае, приведенном на фиг.2 изображена система хранения данных (система), контроллеры первой и второй группы с кэш-памятью (контроллер 1 и контроллер 2), а также дисковый массив, состоящий из логических групп дисков (группа 1 и группа 2). На диски первой группы полными полосами А, В, С и D записаны блоки данных (А1...АЗ, В1...ВЗ, С1...СЗ, D1...D3). На диски второй группы записаны контрольные суммы комбинаций локальных групп блоков данных (Apl...Ap3, Bpl...Bp3, Cpl ...Cp3, Dpl ...Dp3). При этом диск 1 помечен как вышедший из строя, соответственно контроллер второй группы дисков восстанавливает утраченные данные диска 1 и записывает их на резервный диск первой группы. При этом запрос на чтение выполняется за счет считывания запрошенных хостом данных с сохранившихся дисков первой группы, и восстановленных вторым контроллером, используя контрольные суммы данных утраченного диска первой группы. Таким образом, достигается возможность обработки запроса хоста на чтение данных при потере одного из дисков одновременно с выполнением процесса восстановления утраченного диска.
Заявляемый способ с использованием вышеуказанного порядка расчета и размещения контрольных сумм (также известных как данные паритета или данные четности) позволяет в большинстве случаев не задействовать диски с блоками данных в процессе восстановления утраченных данных, в отличие от известных RAID систем, где для процесса восстановления утраченных данных обращение к блокам данных наряду с обращениями к блокам контрольных сумм является необходимым условием восстановления данных, в результате которого неизбежно снижается производительность системы.
Блоки данных могут быть сгруппированы в локальные группы путем различных комбинаций данных между собой. Количество локальных групп и, как следствие, количество контрольных сумм, рассчитанных для этих групп, влияет на избыточность системы хранения данных.
При увеличении количества контрольных сумм (увеличении избыточности), вследствии использования большего количества комбинаций локальных групп, увеличивается количество возможных вариантов восстановления утраченных данных( Фиг. 4-7).
Возможные варианты (примеры) восстановления данных приведены на фиг. 4-7.
На фиг.4 изображен вариант восстановления блоков данных в системе хранения данных с двойной избыточностью в случае выхода из строя всех дисков первой группы. На фиг. 4 блоки А1,А2, АЗ, А4 показывают вышедшие из строя диски первой группы, блоки Ар1, Ар2, АрЗ, Ар4 показывают диски второй группы дисков, хранящие контрольные суммы локальных групп блоков данных первой группы дисков. При этом расчет контрольных сумм осуществлялся по следующим правилам (здесь и далее символ ф означает применение описанной ранее функции XOR):
Ар1=А1фА2фАЗ ;
Figure imgf000018_0001
АрЗ=АЗфА4фА1;
Ар4=А4фА1фА2
Следовательно, на фиг.4 указана логика восстановления дисков первой группы дисков:
А 1 =Ар 1 ф АрЗ ф Ар4 ;
А2=Ар 1 ф Ар2 Ф Ар4 ;
АЗ=Ар 1 ф Ар2 ф АрЗ ;
А4=Ар2 ф АрЗ ф Ар4
На фиг.5 изображен вариант восстановления данных в системе хранения данных с двойной избыточностью в случае выхода из строя любых трех дисков. На фиг. 5 блоки А1,А2, АЗ, А4 показывают диски первой группы, причем диски А1 и А2 вышли из строя, блоки Ар1, Ар2, АрЗ, Ар4 показывают диски второй группы дисков, хранящие контрольные суммы утраченных блоков данных первой группы дисков, причем диск Ар2 вышел из строя. При этом расчет контрольных сумм осуществлялся по следующим правилам :
Ар1=А1фА2фАЗ ;
Ар2=А2фАЗфА4;
АрЗ=АЗфА4фА1;
Ар4=А4фА1фА2;
Следовательно, на фиг.5 указана логика расчета восстановления данных вышедших из строя дисков:
А 1 =Ар 1 ф АрЗ ф Ар4
А2=А4фАр1фАрЗ
Ар2=А4 ф АрЗ ф Ар4
На фиг.6 изображен вариант восстановления данных в системе хранения данных с показателем избыточности 2,5 в случае выхода из строя любых четырех дисков, причем для восстановления блоков данных используются только контрольные суммы, записанные на дисках второй группы и не используются работающие диски первой группы. На фиг. 6 блоки А1,А2, АЗ, А4 показывают диски первой группы, причем диски А1 и А2 вышли из строя, блоки Ар1, Ар2, АрЗ, Ар4, Ар5, Арб показывают диски второй группы дисков, хранящие контрольные суммы утраченных блоков данных первой группы дисков, причем диски Ар1 и Ар2 вышли из строя. При этом расчет контрольных сумм осуществлялся по следующим правилам:
Ар1=А1фА2фАЗ ;
Ар2=А2фАЗфА4;
АрЗ=АЗфА4фА1;
Ар4=А4фА1фА2;
Ар5=А1фА2;
Ар6=АЗфА4
Следовательно, на фиг.6 указана логика расчета восстановления данных вышедших из строя дисков:
А 1 =АрЗ ф Ар4 ф Арб
А2=АрЗ ф Ар5 ф Арб
Ар1=АрЗфАрб
Ар2=АрЗфАр5
На фиг.7 изображен вариант восстановления данных в системе хранения данных с показателем избыточности 3 в случае выхода из строя любых пяти дисков, причем для восстановления данных используются только контрольные суммы, записанные на дисках второй группы и не используются работающие диски первой группы. На фиг. 7 блоки А1,А2, АЗ, А4 показывают диски первой группы, причем диски Al, А2 и АЗ вышли из строя, блоки Ар1, Ар2, АрЗ, Ар4, Ар5, Арб, Ар7, Ар8 показывают диски второй группы дисков, хранящие контрольные суммы утраченных блоков данных первой группы дисков, причем диски Ар1 и Ар2 вышли из строя. При этом расчет контрольных сумм осуществлялся по следующим правилам:
Ар1=А1фА2фАЗ ;
Ар2=А2 фАЗ ф А4 ;
АрЗ=АЗфА4фА1;
Ар4=А4фА1фА2;
Ар5=А1фА2;
Арб=АЗфА4;
Ар7=А2фАЗ; Ар8=Ар1фАр4
Следовательно, на фиг.7 указана логика расчета восстановления данных вышедших из строя дисков:
А1=АрЗфАр6
А2=Ар4фАр8
АЗ=АрЗ ф Ар8
Ар1=Ар4фАр6
Ар2 ЛрЗфЛр5
Вышеуказанные примеры, показанные на фиг. 4-7, показывают пример восстановления данных в случае реализации системы хранения данных с определенным количеством дисков. Данные примеры не должны трактоваться как единственно возможный вариант реализации системы хранения данных для исполнения заявляемого способа. Заявляемый способ может быть реализован в системах хранения данных с количеством диском больше трех.
При увеличении избыточности увеличивается максимально допустимое количество дисков, которые система хранения данных может потерять, сохраняя возможность восстановления данных, хранившихся на вышедших из строя дисках, в большинстве случаев позволяя полностью исключить участие первой группы дисков из процесса восстановления.
При расчете контрольных сумм как XOR блоков данных, из которых состоит локальная группа, избыточность можно рассчитать по следующей формуле: R= (2X+2) / N,
(где R- размер избыточности, X- допустимое количества дисков, которые система может потерять, сохраняя возможность восстановления данных, N- кол-во дисков в первой группе).
Таким образом, при реализации заявляемого изобретения, избыточность системы хранения данных является регулируемым параметром. Показатель избыточности системы хранения данных может быть установлен, в зависимости от требуемого уровня отказоустойчивости, администратором системы при определении количества дисков, которые система может потерять, сохраняя возможность восстановления данных.
Так, например, при необходимости увеличения отказоустойчивости системы хранения данных в условиях отсутствия ограничений количества дисков в составе системы, пользователь может задать параметр повышенной избыточности, соответственно, для хранения избыточных данных понадобятся дополнительные диски, но при этом сама система будет обладать более высокой отказоустойчивостью по сравнению с реализацией системы в условиях ограниченного количества дисков, когда администратор устанавливает низкий показатель избыточности, чтобы уменьшить количество дисков в составе системы хранения данных.
Общая логика исполнения заявляемого способа хранения данных приведена на фиг. 9.
В том случае, если система хранения данных в момент поступления запроса на запись не осуществляет восстановление утраченных данных, запись осуществляется следующим образом (фиг. 10).
При поступлении от хоста запроса на осуществление записи новых данных производится проверка на предмет наличия в системе хранения данных вышедших из строя дисков. В том случае если вышедшие из строя диски в системе хранения данных не обнаружены, новые данные записываются в кэш контроллера первой группы дисков, и на диски первой группы дисков.
Запись новых данных на диски первой группы дисков может осуществляется путем записи полной полосы или частичной записи полосы.
Если поступает запрос на запись полной полосы, первый контроллер записывает новые данные полной полосы на диски первой группы дисков, а второй контроллер рассчитывает четность (контрольные суммы) локальных групп, скомбинированных из блоков данных, входящих в полосу, записывает в кэш второго контроллера новую четность (контрольные суммы) и оповещает систему хранения данных о завершении записи контрольных сумм в кэш контроллера второй группы. Затем после ожидания очереди на исполнение записи новой четности осуществляется запись новой четности на диски второй группы. В том случае, если запись новых блоков данных на диски первой группы дисков и запись новых контрольных сумм на диски второй группы дисков осуществлена успешно, контроллеры оповещают систему хранения данных об успешной записи. Если в процессе записи произошел сбой, контроллер, в работе группы дисков которого произошел сбой, передает данные о сбое на хост.
Если новых данных в кэше контроллера первой группы недостаточно для формирования полной полосы, осуществляется запись новых данных на диски первой группы дисков в порядке частичной записи полосы.
Для записи частичной полосы первый контроллер записывает новые данные на диски первой группы дисков, а второй контроллер асинхронно рассчитывает новую четность из ранее записанных данных (старых данных) и новых данных, а также ранее записанной (старой) четности, после чего контроллер второй группы записывает в кэш второго контроллера новую четность (контрольные суммы) и оповещает систему хранения данных о завершении записи контрольных сумм в кэш контроллера второй группы. Затем после ожидания очереди на исполнение осуществляется запись новой четности на диски второй группы. В том случае, если запись новых блоков данных на диски первой группы дисков и запись новых контрольных сумм на диски второй группы дисков осуществлена успешно, контроллеры оповещают систему хранения данных об успешной записи. Если в процессе записи произошел сбой, то контроллер, в работе группы дисков которого произошел сбой, передает данные о сбое на хост.
Порядок осуществления частичной записи полосы более подробно раскрыт на фиг. 8 и фиг. 18, где:
А — старые данные находящиеся на дисках на момент поступления запроса на запись новых данных
А’ — новые данные, на запись которых пришел запрос
Al, А2, АЗ, А4 — блоки данных, ранее записанные на диски первой группы дисков
Ар’1, Ар’З, Ар’4 — новые контрольные суммы, рассчитанные с учетом новых данных, на запись которых пришел запрос
Ар1, Ар2, АрЗ, Ар4 — контрольные суммы, ранее записанные на диски второй группы дисков Диск 1-4 — диски первой группы дисков
Диски 5-8 — диски второй группы дисков
Порядок осуществления частичной записи полосы производится следующим образом:
Получение запроса на запись новых данных А’
Запись новых данных А’ в кэш контроллера первой группы дисков и кэш контроллера второй группы дисков
Запись новых данных А’ на диски первой группы дисков
Отправка запроса контроллером второй группы дисков на чтение связанных с блоком данных (А) контрольных сумм (Ар1, АрЗ, Ар4)
Чтение с дисков второй группы контрольных сумм связанных с блоком данных (А)
Запись прочитанных контрольных сумм в кэш-память контроллера второй группы дисков
Расчет старого блока данных (А) из полученных контрольных су мм(А=Ар 1 ф АрЗ ф Ар4)
Расчет дельты блоков данных (А) и (А') (Д= АфА’)
Расчет новых контрольных сумм путем добавления дельты к старым контрольным суммам: АрГ=ДфАр; АрЗ’=ДфАрЗ; Ар’4= ДфАр4
Запись новых контрольных сумм Ар’1, Ар’З, Ар’4 в кэш с отложенной записью контроллера второй группы
Оповещение системы о завершении операции записи
Запись новых контрольных сумм Ар’1, Ар’З, Ар’4 из кэша контроллера второй группы на на диски второй группы дисков
Подтверждение записи новых данных в систему хранения данных происходит на этапе записи новых контрольных сумм в кэш контроллера второй группы дисков. Запись новых контрольных сумм из кэша контроллера второй группы дисков на диски второй группы дисков или резервные диски может быть отложена в зависимости от глубины очереди.
В том случае, если при поступлении от хоста запроса на осуществление записи новых данных в системе хранения данных обнаруживаются вышедшие из строя диски в первой группе дисков, то запись новых данных происходит в режиме деградирования в следующем порядке (фиг. 11).
Запись новых данных на диски первой группы дисков при условии обнаружения выхода из строя одного или нескольких дисков первой группы дисков может осуществляется путем записи полной полосы или частичной записи полосы.
Если поступает запрос на запись полной полосы, первый контроллер записывает новые данные полной полосы на оставшиеся диски первой группы дисков и диски горячего резерва, а второй контроллер асинхронно рассчитывает четность (контрольные суммы) локальных групп, скомбинированных из блоков данных, входящих в полосу, записывает в кэш второго контроллера новую четность (контрольные суммы) и оповещает систему хранения данных о завершении записи контрольных сумм в кэш контроллера второй группы. Затем после ожидания очереди на исполнение записи новой четности осуществляется запись новой четности на диски второй группы. В том случае, если запись новых блоков данных на диски первой группы дисков и запись новых контрольных сумм на диски второй группы дисков осуществлена успешно, контроллеры оповещают систему хранения данных об успешной записи. Если в процессе записи произошел сбой, контроллер, в работе группы дисков которого произошел сбой, передает данные о сбое на хост.
Если поступает запрос на частичную запись, осуществляется запись новых данных на диски первой группы дисков в порядке частичной записи полосы.
Для записи частичной полосы первый контроллер записывает новые данные на диски первой группы дисков и диски горячего резерва, а второй контроллер асинхронно рассчитывает новую четность ранее записанных данных (старых данных) и новых данных из значений старых и новых данных, после чего контроллер второй группы записывает в кэш второго контроллера новую четность (контрольные суммы) и оповещает систему хранения данных о завершении записи контрольных сумм в кэш контроллера второй группы. Затем после ожидания очереди на исполнение осуществляется запись новой четности на диски второй группы. В том случае, если запись новых блоков данных на диски первой группы дисков и запись новых контрольных сумм на диски второй группы дисков осуществлена успешно, контроллеры оповещают систему хранения данных об успешной записи. Если в процессе записи произошел сбой, то контроллер, в работе группы дисков которого произошел сбой, передает данные о сбое на хост.
Фиг. 12 иллюстрирует порядок записи новых данных в случае обнаружения выхода из строя дисков во второй группе дисков.
Если поступает запрос на запись полной полосы, первый контроллер записывает новые данные полной полосы на диски первой группы дисков, а второй контроллер асинхронно рассчитывает четность (контрольные суммы) локальных групп, скомбинированных из блоков данных, входящих в полосу, записывает в кэш второго контроллера новую четность (контрольные суммы) и оповещает систему хранения данных о завершении записи контрольных сумм в кэш контроллера второй группы. Затем после ожидания очереди на исполнение записи новой четности осуществляется запись новой четности на оставшиеся диски, и диски горячего резерва второй группы дисков. В том случае, если запись новых блоков данных на диски первой группы дисков и запись новых контрольных сумм на оставшиеся диски, и диски горячего резерва второй группы дисков осуществлена успешно, контроллеры оповещают систему хранения данных об успешной записи. Если в процессе записи произошел сбой, контроллер, в работе группы дисков которого произошел сбой, передает данные о сбое на хост.
Если новых данных в кэше контроллера первой группы недостаточно для формирования полной полосы, осуществляется запись новых данных на диски первой группы дисков в порядке частичной записи полосы.
Для записи частичной полосы первый контроллер записывает новые данные на диски первой группы дисков, а второй контроллер асинхронно проверяет достаточно ли ранее записанной информации о четности для восстановления старых данных контрольных сумм.
Если существующей информации достаточно, то контроллер второй группы дисков восстанавливает утраченные контрольные суммы и с учетом новых данных рассчитывает новую четность. Если существующей информации не достаточно для восстановления утраченных данных четности, то контроллер второй группы дисков обращается к дискам обеих групп и восстанавливает утраченные данные о четности с использованием блоков данных первой группы дисков и сохранившихся контрольных сумм, после чего с учетом новых данных рассчитывает новую четность (контрольные суммы).
Затем контроллер второй группы дисков записывает в кэш второго контроллера новую четность (контрольные суммы) и оповещает систему хранения данных о завершении записи контрольных сумм в кэш контроллера второй группы. Затем после ожидания очереди на исполнение осуществляется запись новой четности на оставшиеся диски, и диски горячего резерва второй группы. В том случае, если запись новых блоков данных на диски первой группы дисков и запись новых контрольных сумм на диски второй группы дисков осуществлена успешно, контроллеры оповещают систему хранения данных об успешной записи. Если в процессе записи произошел сбой, то контроллер, в работе группы дисков которого произошел сбой, передает данные о сбое на хост.
Фиг. 13 иллюстрирует порядок записи новых данных при обнаружении выхода из строя дисков в обеих группах дисков. В таком случае запись новых данных осуществляется в том же порядке, что и при записи новых данных в случае обнаружения выхода из строя дисков во второй группе дисков (фиг.12) с тем отличием, что в случае записи полной полосы новые данные полной полосы записываются на оставшиеся диски первой группы и диски горячего резерва первой группы дисков, и при частичной записи полосы новые данные также записываются на диски первой группы и диски горячего резерва первой группы дисков.
В том случае, если система хранения данных в момент поступления запроса на осуществление частичной записи полосы новых блоков данных исполняет процесс восстановления данных, то запись новых данных может также осуществляться через ожидание полной полосы в следующем порядке.
Новые данные, по мере поступления запросов на запись, записываются на диски первой группы дисков и в кэш контроллера второй группы дисков. По мере ожидания того, как новые данные составят полосу, вторая группа дисков, включая контроллер второй группы дисков может осуществлять асинхронный процесс, например чтение контрольных сумм для параллельного осуществления режима восстановления . После того, как новые данные составили полосу, второй контроллер асинхронно рассчитывает четность (контрольные суммы) локальных групп, скомбинированных из блоков данных, входящих в полосу, и записываются в кэш контроллера второй группы дисков. Далее, контрольные суммы данной полосы записываются из кэша контроллера второй группы дисков на оставшиеся диски, и диски горячего резерва второй группы.
Чтение данных осуществляется следующим образом.
После получения запроса на чтение контроллеры первой и второй группы проверяют кэш-память контроллеров, чтобы определить, находятся ли запрошенные данные в кэше контроллеров. Если данные найдены в кэше, контроллеры передают запрошенные данные устройству пользователя (фиг. 9).
Если запрошенные данные не были обнаружены в кэше и при этом все диски системы хранения данных работают исправно, то чтение данных осуществляется только с дисков первой группы дисков (фиг. 17).
Если запрошенные данные не были обнаружены в кэше и при этом система хранения данных осуществляет восстановление данных в момент поступления запроса на чтение, чтение данных производится в следующем порядке.
При выходе из строя одного или нескольких дисков первой группы дисков (фиг. 14) запрашиваемые пользователем данные считываются с уцелевших дисков первой группы дисков и записываются в кэш контроллера первой группы дисков. Недостающие данные асинхронно восстанавливаются из блоков контрольных сумм, хранящихся на дисках второй группы дисков, и также записываются в кэш контроллера первой группы дисков, формируя таким образом полный пакет запрошенных данных. В результате данные в полном запрошенном объеме поступают на хост, а восстановленные данные записываются на резервные диски, назначенные вместо вышедших из строя дисков первой группы. Таким образом, для восстановления данных не задействуется первая группа дисков, что позволяет обслуживать пользовательские запросы на чтение блоков данных без потери производительности системы хранения данных.
Если из строя выходит один или несколько дисков второй группы дисков (фиг. 15), запрашиваемые на чтение данные считываются с дисков первой группы и передаются на хост, а утраченные блоки контрольных сумм, в первую очередь, восстанавливаются за счет сохранившихся блоков контрольных сумм, и только в случае нехватки оставшихся контрольных сумм для восстановления, производится обращение к блокам данных на дисках первой группы дисков. После, восстановленные контрольные суммы записываются в кэш второго контроллера и затем записываются на резервные диски второй группы дисков. Такая организация процесса чтения данных в режиме восстановления системы позволяет сохранить доступность данных, сохраняя достаточную производительность.
При выходе из строя одного или нескольких дисков обеих групп дисков (фиг. 16) запрашиваемые пользователем данные считываются с уцелевших дисков первой группы дисков и записываются в кэш контроллера первой группы дисков, Недостающие данные, в первую очередь восстанавливаются за счет оставшихся блоков контрольных сумм, хранящихся на дисках второй группы дисков, и, в случае их нехватки, также обращаются к блокам данных хранящихся на дисках первой группы. Далее, восстановленные данные записываются в кэш контроллера первой группы дисков, формируя таким образом полный пакет запрошенных данных, и после чего передаются на устройство пользователя. Следующим этапом восстановленные данные записываются на резервные диски первой группы дисков, а восстановленные контрольные суммы записываются на резервные диски второй группы дисков.
В случае отказа одного или нескольких дисков возврат системы к исходному отказоустойчивому состоянию производится в порядке, раскрытом ранее с иллюстрацией фиг. 2.
С целью минимизировать время, за которое система хранения данных вернется в исходное отказоустойчивое состояние, а также используя возможности предлагаемого решения, а именно осуществления асинхронного выполнения разнонаправленных задач, процесс восстановления данных активизируется с момента ухудшения параметров отказоустойчивости системы одновременно с переходом системы в режим деградирования.
Восстановленные данные необходимые для функционирования системы в режиме деградирования, также записываются на резервные диски, избегая тем самым повторного восстановления данных, в том случае если бы режим восстановления дисков происходил обособленно. В режиме восстановления также допускается выход из строя дисков до количества, предусмотренного установленным показателем избыточности системы. При этом для восстановления данных в приоритетном порядке используются блоки контрольных сумм, и только в случае нехватки этой информации допускается обращения к блокам данных. Таким образом сохраняется возможность обрабатывать запросы на чтение и запись.
Балансировка рабочей нагрузки между процессами чтения-записи и режимом восстановления, равно как характеристики производительности/ надежности, а также очередность выполняемых задач может может задаваться как администратором системы, так и в автоматическом режиме, в зависимости от текущего состояния отказоустойчивости системы(количества вышедших из строя дисков).
Реализация заявляемого способа в системе хранения данных позволяет произвести возврат системы к исходному отказоустойчивому состоянию даже при полном выходе из строя одной из групп дисков.
Также при использовании заявляемого способа достигается дополнительный положительный технический эффект, заключающийся в снижении латентности. Устройства хранения данных, а именно жесткие диски — одна из самых медленных частей компьютерных систем, поэтому для обеспечения высокой производительности всей системы требуется эффективный способ доступа к устройствам хранения. В известных RAID массивах с высокой отказоустойчивостью блоки данных и блоки контрольных сумм чередуются между собой и записываются на один диск. Это приводит к тому, что при последовательном чтении блоков данных необходимо производить перемещение считывающей головки дисковода так, чтобы считывать только блоки данных и не производить считывание блоков контрольных сумм.
При использовании заявляемого способа за счет отсутствия чередования блоков данных и блоков контрольных сумм на одном диске, уменьшается латентность — время позиционирования считывающей головки дисковода над нужным треком диска и время ожидания прихода нужного сектора диска под считывающую головку дисковода, и как следствие повышается скорость последовательного чтения блоков данных. Таким образом, при использовании заявляемого изобретения в системе хранения данных, включающей жесткие диски, исключается время ожидания прохода считывающей головки дисковода для пропуска чтения блоков контрольных сумм.
Пример осуществления изобретения.
Приводимый далее пример предназначен исключительно для пояснения сущности изобретения на одном из возможных вариантов исполнения системы хранения данных и не должен быть использован для сужения объема правовой охраны заявляемого изобретения. Заявляемый способ может быть осуществлен, например, в следующей системе хранения данных.
На физическом уровне система хранения данных для реализации заявляемого способа может состоять из следующих компонентов:
Хост-машина, представляющая собой шлюз, обеспечивающий интерфейс доступа к данным (например блочный доступ, файловый доступ). Хост-машина может подключаться к контроллерам через LAN (ethemet cable) или через оптоволоконное соединение (fiber optic cable).
Контроллер дисков первой группы дисков, представляющий собой сервер с установленным на нем модулем ядра Linux и модификации MDADM, обеспечивающий возможность выполнения заявляемого способа
Контроллер дисков второй группы дисков, представляющий собой сервер с установленным на нем модулем ядра Linux и модификации MDADM, обеспечивающий возможность выполнения заявляемого способа.
Дисковый массив JBOD или JBOF, состоящий из HDD и/или SSD дисков, логически разделенных на диски первой группы дисков и диски второй группы дисков, соединенный с контроллером первой группы дисков и контроллером второй группы дисков через высокоскоростные подключения SAS/SATA/miniSAS.
Указанный выше пример конфигурации системы хранения данных является одним из примеров конфигурации системы хранения данных, в которых может быть использовано заявляемое изобретение и достигнут заявляемый технический результат.
Заявляемый способ может быть реализован с разными исполнениями контроллеров групп дисков массива. Так, выделяют следующие виды контроллеров RAID-массива: программные, аппаратные, интегрированные. В программных контроллерах массива вся нагрузка по управлению массивом ложится на центральный процессор ЭВМ. Системы хранения данных с такими контроллерами являются наименее производительными и отказоустойчивыми.
Программные контроллеры для реализации заявляемого изобретения могут быть реализованы в виде модуля ядра операционной системы Linux (например, Centos7, версии 2.6, на которой был реализован прототип системы хранения данных). При реализации в таком виде, портирование системы на другие дистрибутивы Linux может быть осуществлено путем компиляции модуля ядра и импорта в целевую операционную систему.
Интегрированные контроллеры встраиваются как отдельный чип в материнскую плату ЭВМ, к которой подключена система хранения данных. Интегрированный контроллер выполняет часть задач по управлению, другую часть задач выполняет центральный процессор ЭВМ. Интегрированные контроллеры могут иметь собственную кэш-память. По сравнению с программными, обладают более высокой производительностью и отказоустойчивостью.
Аппаратные контроллеры выполнены в виде плат расширения или отдельных устройств, размещаемых вне сервера (внешние, или мостовые контроллеры). Оснащены собственным процессором, выполняющим все необходимые вычисления, и, как правило, кэш-памятью. Модульные контроллеры могут иметь внешние и внутренние порты, при этом внутренние порты предназначены для подключения накопителей, установленных в сам сервер, а внешние порты используются для подключения внешних дисковых хранилищ.
Реализация заявляемого изобретения возможна с любым видом контроллеров групп дисков. Для достижения максимальных результатов рекомендуется по возможности использовать аппаратные контроллеры групп дисков.

Claims

Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью Формула
1. Способ хранения данных в системе хранения данных, содержащей первую группу дисков, управляемую контроллером первой группы дисков, и вторую группу дисков, управляемую контроллером второй группы дисков, причем каждый контроллер выполнен с возможностью обмена данными с хостом и контроллером другой группы дисков, включающий запись блоков данных в кэш контроллера первой группы дисков; запись блоков данных в составе полосы на диски первой группы дисков; комбинация записанных блоков данных в локальные группы; расчет контрольных сумм локальных групп; запись контрольных сумм локальных групп в кэш контроллера второй группы дисков; запись контрольных сумм на диски второй группы дисков; в случае обнаружения отказа одного или нескольких дисков первой группы осуществляется восстановление утраченных блоков данных из контрольных сумм, записанных на дисках второй группы дисков, и запись восстановленных блоков данных в кэш контроллера первой группы дисков; в случае обнаружения отказа одного или нескольких дисков второй группы дисков осуществляется восстановление утраченных контрольных сумм из сохранившихся контрольных сумм, записанных на дисках второй группы дисков, и запись восстановленных контрольных сумм в кэш контроллера второй группы дисков.
PCT/RU2021/000514 2020-12-30 2021-11-18 Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью WO2022146177A1 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2020143922A RU2750645C1 (ru) 2020-12-30 2020-12-30 Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью
RU2020143922 2020-12-30

Publications (1)

Publication Number Publication Date
WO2022146177A1 true WO2022146177A1 (ru) 2022-07-07

Family

ID=76755862

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2021/000514 WO2022146177A1 (ru) 2020-12-30 2021-11-18 Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью

Country Status (2)

Country Link
RU (1) RU2750645C1 (ru)
WO (1) WO2022146177A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472292A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 独立磁盘冗余阵列的数据重构方法及存储系统、控制器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506187B2 (en) * 2003-09-02 2009-03-17 International Business Machines Corporation Methods, apparatus and controllers for a raid storage system
RU2552151C2 (ru) * 2013-09-17 2015-06-10 Общество с ограниченной ответственностью "РЭЙДИКС" Способ контроля корректности записи данных в двухконтроллерной системе хранения данных на массиве энергонезависимых носителей и устройство для его осуществления
US20150254128A1 (en) * 2013-09-27 2015-09-10 Hitachi, Ltd. Storage apparatus, storage system, and data management method
RU2699678C2 (ru) * 2018-01-16 2019-09-09 Государственное бюджетное образовательное учреждение высшего образования Нижегородский государственный инженерно-экономический университет (НГИЭУ) Способ организации хранения данных на базе кодов-произведений с простой проверкой на четность со смещением

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190163374A1 (en) * 2017-11-28 2019-05-30 Entit Software Llc Storing data objects using different redundancy schemes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506187B2 (en) * 2003-09-02 2009-03-17 International Business Machines Corporation Methods, apparatus and controllers for a raid storage system
RU2552151C2 (ru) * 2013-09-17 2015-06-10 Общество с ограниченной ответственностью "РЭЙДИКС" Способ контроля корректности записи данных в двухконтроллерной системе хранения данных на массиве энергонезависимых носителей и устройство для его осуществления
US20150254128A1 (en) * 2013-09-27 2015-09-10 Hitachi, Ltd. Storage apparatus, storage system, and data management method
RU2699678C2 (ru) * 2018-01-16 2019-09-09 Государственное бюджетное образовательное учреждение высшего образования Нижегородский государственный инженерно-экономический университет (НГИЭУ) Способ организации хранения данных на базе кодов-произведений с простой проверкой на четность со смещением

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472292A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 独立磁盘冗余阵列的数据重构方法及存储系统、控制器
CN117472292B (zh) * 2023-12-27 2024-03-12 苏州元脑智能科技有限公司 独立磁盘冗余阵列的数据重构方法及存储系统、控制器

Also Published As

Publication number Publication date
RU2750645C1 (ru) 2021-06-30

Similar Documents

Publication Publication Date Title
US7313721B2 (en) Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array
US8839028B1 (en) Managing data availability in storage systems
US6658542B2 (en) Method and system for caching data in a storage system
US9037795B1 (en) Managing data storage by provisioning cache as a virtual device
Ganger et al. Disk arrays: high-performance, high-reliability storage subsystems
US6567889B1 (en) Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
US7600152B2 (en) Configuring cache memory from a storage controller
CN102483686B (zh) 数据存储系统和用于操作数据存储系统的方法
US9047220B2 (en) Storage system and data management method
US7506187B2 (en) Methods, apparatus and controllers for a raid storage system
US6886075B2 (en) Memory device system and method for copying data in memory device system
EP2703991A2 (en) Scalable storage protection
US5734814A (en) Host-based RAID-5 and NV-RAM integration
WO2002003204A1 (en) Three interconnected raid disk controller data processing system architecture
US8732396B2 (en) Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system
US20050193273A1 (en) Method, apparatus and program storage device that provide virtual space to handle storage device failures in a storage system
EP3794451A1 (en) Parity log with by-pass
WO2022146177A1 (ru) Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью
CN102147714B (zh) 一种网络存储系统的管理方法及装置
CN112328182B (zh) 一种raid数据管理方法、装置和计算机可读存储介质
CN102158538A (zh) 一种网络存储系统的管理方法及装置
Thomasian Mirrored and hybrid disk arrays: Organization, scheduling, reliability, and performance
US11592994B2 (en) Providing preferential treatment to metadata over user data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21915927

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21915927

Country of ref document: EP

Kind code of ref document: A1