KR102389929B1 - Storage Device Based on RAID - Google Patents

Storage Device Based on RAID Download PDF

Info

Publication number
KR102389929B1
KR102389929B1 KR1020210094747A KR20210094747A KR102389929B1 KR 102389929 B1 KR102389929 B1 KR 102389929B1 KR 1020210094747 A KR1020210094747 A KR 1020210094747A KR 20210094747 A KR20210094747 A KR 20210094747A KR 102389929 B1 KR102389929 B1 KR 102389929B1
Authority
KR
South Korea
Prior art keywords
data
parity
disk
disks
raid
Prior art date
Application number
KR1020210094747A
Other languages
Korean (ko)
Other versions
KR20210093821A (en
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 에스케이텔레콤 주식회사
Priority to KR1020210094747A priority Critical patent/KR102389929B1/en
Publication of KR20210093821A publication Critical patent/KR20210093821A/en
Application granted granted Critical
Publication of KR102389929B1 publication Critical patent/KR102389929B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

본 개시는 RAID 기반의 스토리지 장치를 개시한다.
본 실시예는 복수 개의 디스크를 포함하되, 상기 복수 개의 디스크 각각은 복수 개의 로컬 그룹으로 구분되고, 상기 복수 개의 로컬 그룹마다 로컬 패리티가 존재하며, 상기 복수 개의 디스크 각각의 스트라이프 별로 글로벌 패리티가 존재하는 것을 특징으로 하는, RAID 기반의 스토리지 장치을 제공한다.
The present disclosure discloses a RAID-based storage device.
The present embodiment includes a plurality of disks, wherein each of the plurality of disks is divided into a plurality of local groups, a local parity exists for each of the plurality of local groups, and a global parity exists for each stripe of each of the plurality of disks. It provides a RAID-based storage device, characterized in that.

Description

RAID 기반의 스토리지 장치 {Storage Device Based on RAID}Storage Device Based on RAID}

본 실시예는 RAID 기반의 스토리지 장치에 관한 것이다.This embodiment relates to a RAID-based storage device.

이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.The content described below merely provides background information related to the present embodiment and does not constitute the prior art.

일반적으로 널리 활용되고 있는 RAID(Redundant Array of Independent Disks 또는 Redundant Array of Inexpensive Disks) 6의 기술은 디스크에 오류 발생 시 데이터 복원을 위하여 다른 모든 디스크로 데이터 읽기(Read)를 수행한다. 하지만, RAID 6의 기술은 데이터 복원을 위한 동작으로 인해 데이터 읽기 성능이 절반 수준으로 저하되는 문제가 있다.In general, the widely used RAID (Redundant Array of Independent Disks or Redundant Array of Inexpensive Disks) 6 technology reads data to all other disks in order to restore data when a disk error occurs. However, the RAID 6 technology has a problem in that data read performance is reduced by half due to an operation for data restoration.

RAID 6에서 데이터 복원 시 데이터 읽기 성능 저하를 개선하기 위한 기술로는 LRC(Local Reconstruction Code) 기술이 있다. LRC 방식은 분산 스토리지를 위한 기술로서, 로컬 패리티(Local Parity)(P 패리티), 글로벌 패리티(Global Parity)(Q 패리티)를 이용하여 데이터 복원 시 로컬 그룹으로 구분된 디스크의 데이터 읽기를 수행하여 빠른 데이터 복원을 지원하는 기술이다.As a technique for improving data read performance degradation when data is restored in RAID 6, there is a Local Reconstruction Code (LRC) technique. The LRC method is a technology for distributed storage. When data is restored using local parity (P parity) and global parity (Q parity), data read from disks divided into local groups is performed for fast It is a technology that supports data restoration.

RAID 6와 LRC 방식의 패리티 배치 정보(데이터 레이아웃)는 도 1a에 도시된 바와 같다. 도 1a에 도시된 RAID 6의 6개 ‘D 데이터’들은 ‘P 패리티(로컬 패리티)’와 ‘Q 패리티(글로벌 패리티)’로 보호되고 있다. 다시 말해, RAID에서의 ‘패리티’는 데이터 복원용 임시 정보를 의미한다. ‘패리티’는 데이터를 각 개별 디스크로부터 읽을 수 있으며, 동시에 복수의 데이터 읽기 또는 쓰기가 가능하다. RAID 6의 경우 RAID 5의 확장 컨셉으로 2개의 패리티(P 패리티, Q 패리티)가 쓰인다.Parity arrangement information (data layout) of the RAID 6 and LRC methods is as shown in FIG. 1A . The six 'D data' of RAID 6 shown in FIG. 1A are protected with 'P parity (local parity)' and 'Q parity (global parity)'. In other words, 'parity' in RAID means temporary information for data restoration. 'Parity' allows data to be read from each individual disk, and multiple data reads or writes are possible at the same time. In the case of RAID 6, two parities (P parity, Q parity) are used as an expansion concept of RAID 5.

반면, LRC 방식은 도 1a에 도시된 바와 같이, ‘P 패리티(로컬 패리티)’를 2개의 그룹으로 나누었다. 즉, 3개의 ‘D1 데이터’들은 ‘P1 패리티(로컬 패리티)’로, 나머지 3개의 ‘D2 데이터’들은 ‘P2 패리티(로컬 패리티)’로 보호되고 있다. 6개의 ‘D1, D2 데이터’들은 ‘Q 패리티(글로벌 패리티)’로 보호되고 있다. ‘P 패리티(로컬 패리티)’와 ‘Q 패리티(글로벌 패리티)’ 개수는 데이터 복원 성능, 데이터 신뢰도에 따라 1개 이상으로 설정될 수 있다.On the other hand, in the LRC scheme, as shown in FIG. 1A, 'P parity (local parity)' is divided into two groups. That is, the three ‘D1 data’ are protected with ‘P1 parity (local parity)’, and the remaining three ‘D2 data’ are protected with ‘P2 parity (local parity)’. The six ‘D1, D2 data’ are protected with ‘Q parity (global parity)’. The number of 'P parity (local parity)' and 'Q parity (global parity)' may be set to one or more depending on data restoration performance and data reliability.

도 1b에 도시된 바와 같이, 첫 번째 디스크에 오류가 발생하면, 해당 디스크에 데이터 읽기 요청 시 해당 데이터를 복원하기 위해 발생되는 데이터 읽기 수행 수를 나타낸다. RAID 6는 총 6개의 데이터를 읽어들인다. 반면, LRC 방식은 1그룹의 3개 데이터만 읽어들여서 복원을 수행한다.As shown in FIG. 1B , when an error occurs in the first disk, the number of data read operations generated to restore the corresponding data when a data read request is made to the corresponding disk is indicated. RAID 6 reads a total of 6 data. On the other hand, the LRC method performs restoration by reading only three pieces of data in one group.

하지만, 모든 디스크의 I/O 성능이 동일한 RAID 어레이는, 빠른 I/O 성능을 위하여 데이터를 모든 데이터 디스크에 균등하게 분배한다. 다시 말해, 모든 데이터 디스크는 평균적으로 동일한 수의 I/O 요청을 받게 되며, 이 경우 위의 특징은 빠른 데이터 복원에 도움을 주지 못한다.However, in a RAID array in which I/O performance of all disks is the same, data is equally distributed among all data disks for fast I/O performance. In other words, all data disks receive the same number of I/O requests on average, and in this case, the above feature does not help with fast data recovery.

예컨대, 도 1c에서 RAID 6는 데이터 디스크에 발생한 오류로 인하여, 모든 데이터 디스크는 정상 대비 2배의 데이터 읽기 수행이 발생한다. 데이터 디스크에 발생한 오류로 인해, 총괄 RAID의 데이터 읽기 성능은 절반 수준으로 저하된다. 이해를 돕기 위해 랜덤 읽기(Random Read)를 가정한다. 램덤 읽기에서 데이터 읽기 요청의 병합(Merge)이 발생하지 않는다고 가정한다. For example, in RAID 6 of FIG. 1C, due to an error occurring in the data disk, data read is performed twice as much as in normal for all data disks. Due to an error on the data disk, the data read performance of the overall RAID is reduced by half. For the sake of understanding, a random read is assumed. It is assumed that merging of data read requests does not occur in random read.

LRC 방식은 데이터 디스크에 발생한 오류로 인하여, 그룹 1의 2개 데이터 디스크만 정상 대비 2배의 데이터 읽기 수행이 발생한다. LRC 방식에서 그룹 2의 데이터 디스크는 정상인 상황과 동일하다. 하지만, 그룹 1의 2개 데이터 디스크에 병목현상(Bottleneck)이 발생되어, 그룹 2의 3개 데이터 디스크의 활용성(Utilization)은 절반 수준으로 낮아진다. LRC 방식의 총괄 RAID의 데이터 읽기 성능은 절반 수준으로 저하된다. 결과적으로 LRC 방식 역시 RAID 6와 같이 병목현상이 발생하는 문제가 있다.In the LRC method, due to an error occurring in the data disk, only the two data disks of group 1 perform twice as much data reading compared to normal. In the LRC method, the group 2 data disk is the same as the normal situation. However, a bottleneck occurs in the two data disks of group 1, and the utilization of the three data disks of group 2 is reduced to half. The data read performance of the general RAID of the LRC method is reduced by half. As a result, the LRC method also has the same bottleneck problem as RAID 6.

종래의 스토리지 장치들은 데이터 손실을 막기 위하여 데이터 보호 기법을 사용한다. 일반적인 스토리지 장치들이 사용하는 추가 패리티 디스크를 활용하는 RAID 기술은 널리 활용되는 데이터 보호 기법이다. 패리티 개수, 패리티 배치 정보(데이터 레이아웃) 등에 따라 복수 개의 RAID 기술로 구분되며 각 다른 특징을 가진다. Conventional storage devices use data protection techniques to prevent data loss. RAID technology that utilizes additional parity disks used by common storage devices is a widely used data protection technique. It is divided into a plurality of RAID technologies according to the number of parities and parity arrangement information (data layout), and each has different characteristics.

일반적으로 활용되고 있는 ‘RAID 6’는 디스크에 오류가 발생하면 절반 수준으로 데이터 읽기 성능이 저하된다. ‘RAID 6’에서 데이터 읽기 성능 개선을 위한 LRC 방식 역시 모든 디스크의 I/O 성능이 동일한 RAID 어레이에서 데이터 복원 성능이 개선되지 않는다. 다시 말해, LRC 방식은 고정 로컬 그룹 결정 방법으로 인하여, 디스크에 오류 발생 시 데이터 복원을 위하여 일부 디스크만 활용함으로써 병목현상이 발생하여 데이터 복원 성능이 개선되지 않는 문제가 있다. In 'RAID 6', which is generally used, if a disk error occurs, data read performance is reduced by half. The LRC method for improving data read performance in ‘RAID 6’ also does not improve data restoration performance in a RAID array where the I/O performance of all disks is the same. In other words, the LRC method has a problem in that data restoration performance is not improved because a bottleneck occurs by using only some disks for data restoration when a disk error occurs due to the fixed local group determination method.

본 실시예는 RAID 어레이(Array) 상에서 데이터 읽기 또는 쓰기를 수행할 때, 디스크에 오류 발생 시 나타나는 급격한 데이터 입출력 성능 저하(Bottleneck)를 방지하기 위하여, 동일한 로컬 그룹의 데이터들이 서로 다른 복수 개의 디스크로 분산되는, 스토리지 장치를 제공하는 데 목적이 있다.In this embodiment, in order to prevent sudden data I/O performance degradation (bottleneck) that occurs when a disk error occurs when data is read or written on a RAID array, data of the same local group is transferred to a plurality of different disks. An object of the present invention is to provide a distributed, storage device.

본 실시예의 일 측면에 의하면, 복수 개의 디스크를 포함하되, 상기 복수 개의 디스크 각각은 복수 개의 로컬 그룹으로 구분되고, 상기 복수 개의 로컬 그룹마다 로컬 패리티가 존재하며, 상기 복수 개의 디스크 각각의 스트라이프 별로 글로벌 패리티가 존재하는 것을 특징으로 하는, RAID 기반의 스토리지 장치를 제공한다.According to one aspect of the present embodiment, a plurality of disks are included, wherein each of the plurality of disks is divided into a plurality of local groups, a local parity exists for each of the plurality of local groups, and a global It provides a RAID-based storage device, characterized in that parity exists.

본 실시에의 다른 측면에 의하면, 전술한 RAID 기반의 스토리지 장치에 있어서, 상기 동일한 로컬 그룹의 데이터들이 분산 저장된 디스크 각각으로부터 데이터 읽기 또는 데이터 쓰기를 수행하는 RAID 제어기를 더 포함하는 것을 특징으로 하는, RAID 기반의 스토리지 장치를 제공한다.According to another aspect of the present embodiment, in the above-described RAID-based storage device, the RAID controller further comprising a RAID controller that reads or writes data from each of the disks on which data of the same local group is distributed and stored, RAID-based storage devices are provided.

이상에서 설명한 바와 같이 본 실시예에 의하면, RAID 어레이 상에서 데이터 읽기 또는 쓰기를 수행할 때, 디스크에 오류 발생 시 나타나는 급격한 데이터 입출력 성능 저하(Bottleneck)를 방지하기 위하여, 동일한 로컬 그룹의 데이터들이 서로 다른 복수 개의 디스크로 분산되어 있는 분산 구조 상에서 빠른 데이터 복원으로 데이터 읽기 또는 쓰기가 수행되도록 하는 효과가 있다.As described above, according to this embodiment, when data is read or written on a RAID array, in order to prevent a sudden drop in data I/O performance (bottleneck) that occurs when a disk error occurs, data in the same local group is different from each other. It has the effect of enabling data reading or writing to be performed by fast data restoration in a distributed structure distributed over a plurality of disks.

본 실시예에 의하면, 디스크에 오류 발생 시 데이터 복원을 위하여 디스크 분산 구조를 이용함으로써 병목현상을 없애고, 데이터 복원 성능을 높일 수 있는 효과가 있다.According to this embodiment, there is an effect of eliminating a bottleneck and improving data restoration performance by using a disk distribution structure to restore data when a disk error occurs.

본 실시예에 의하면, RAID 어레이에서는 저장장치(예컨대, 하드 디스크(HDD: Hard Disk Drive), 솔리드 스테이트 디스크(SSD: Solid State Drive) 등) 고장에 대해 데이터 복원을 지원함으로써 어레이 신뢰도를 높이는 목적으로 패리티 정보를 활용하는데 있어서, 패리티 정보를 어레이 신뢰도 향상뿐 아니라 데이터 복원 성능을 향상시킬 수 있는 효과가 있다.According to the present embodiment, the RAID array supports data restoration in the event of a failure of a storage device (eg, a hard disk (HDD: Hard Disk Drive), a solid state disk (SSD: Solid State Drive), etc.) for the purpose of increasing the reliability of the array. In using the parity information, the parity information has an effect of improving the reliability of the array as well as the data restoration performance.

본 실시예에 의하면, RAID 어레이에서 신뢰도와 데이터 복원 성능 간의 트레이드 오프(Trade-Off)를 제어할 수 있게 됨에 따라 RAID 어레이 관리에 높은 유연성을 확보할 수 있다. 특히, 올 플래시 어레이(AFA)는 솔리드 스테이트 디스크(SSD)의 성능이 빨라짐에 따라 데이터 복원 성능 개선이 가능한 효과가 있다.According to the present embodiment, since it is possible to control a trade-off between reliability and data restoration performance in the RAID array, it is possible to secure high flexibility in RAID array management. In particular, the all-flash array (AFA) has the effect of improving data restoration performance as the performance of the solid state disk (SSD) increases.

본 실시예에 의하면, 복수 개의 디스크가 복수 개의 로컬 그룹으로 구분되며, 동일한 로컬 그룹의 데이터들이 서로 다른 복수 개의 디스크로 분산되어 있는 분산 구조를 이용하여 빠른 데이터 복원이 가능하다. 또한, 본 실시예에 의하면, 어떠한 종류의 올 플래시 어레이(AFA) 제품에서도 적용 가능하며, RAID에 독립적으로 구현 가능한 효과가 있다.According to this embodiment, a plurality of disks are divided into a plurality of local groups, and fast data restoration is possible using a distributed structure in which data of the same local group is distributed to a plurality of different disks. In addition, according to this embodiment, it can be applied to any type of all-flash array (AFA) product, and there is an effect that can be implemented independently of RAID.

도 1a 내지 1c는 종래의 RAID 기술을 설명하기 위한 도면이다.
도 2는 본 실시예에 따른 빠른 데이터 복원을 위한 스토리지 장치를 개략적으로 나타낸 블럭 구성도이다.
도 3은 본 실시예에 따른 디스크 분산 구조를 나타내기 위한 도면이다.
도 4는 본 실시예에 따른 디스크 분산 구조에서 오류 발생 시 빠른 데이터 복원을 설명하기 위한 도면이다.
도 5는 본 실시예에 따른 디스크 분산 구조의 또 다른 실시예를 나타낸 도면이다.
도 6은 본 실시예에 따른 빠른 데이터 복원을 위한 데이터 읽기 방법을 설명하기 위한 순서도이다.
도 7은 본 실시예에 따른 빠른 데이터 복원을 위한 데이터 쓰기 방법을 설명하기 위한 순서도이다.
1A to 1C are diagrams for explaining a conventional RAID technology.
2 is a block diagram schematically illustrating a storage device for fast data restoration according to the present embodiment.
3 is a diagram illustrating a disk distribution structure according to the present embodiment.
4 is a diagram for explaining fast data restoration when an error occurs in the disk distribution structure according to the present embodiment.
5 is a diagram showing another embodiment of the disk distribution structure according to the present embodiment.
6 is a flowchart illustrating a data reading method for fast data restoration according to the present embodiment.
7 is a flowchart illustrating a data writing method for fast data restoration according to the present embodiment.

이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, this embodiment will be described in detail with reference to the accompanying drawings.

도 2는 본 실시예에 따른 빠른 데이터 복원을 위한 스토리지 장치를 개략적으로 나타낸 블럭 구성도이다.2 is a block diagram schematically illustrating a storage device for fast data restoration according to the present embodiment.

본 실시예에 따른 스토리지 장치(200)는 애플리케이션(Application)(210), RAID 제어기(RAID Controller)(220) 및 스토리지(230)를 포함한다. 스토리지 장치(200)에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.The storage device 200 according to the present embodiment includes an application 210 , a RAID controller 220 , and a storage 230 . Components included in the storage device 200 are not necessarily limited thereto.

스토리지 장치(200)에 포함된 각 구성요소는 장치 내부의 소프트웨어적인 모듈 또는 하드웨어적인 모듈을 연결하는 통신 경로에 연결되어 상호 간에 유기적으로 동작할 수 있다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 이용하여 통신한다.Each component included in the storage device 200 may be connected to a communication path that connects a software module or a hardware module inside the device to organically operate with each other. These components communicate using one or more communication buses or signal lines.

도 2에 도시된 스토리지 장치(200)의 각 구성요소는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 소프트웨어적인 모듈, 하드웨어적인 모듈 또는 소프트웨어와 하드웨어의 결합으로 구현될 수 있다.Each component of the storage device 200 shown in FIG. 2 means a unit for processing at least one function or operation, and may be implemented as a software module, a hardware module, or a combination of software and hardware.

본 실시예에 따른 스토리지 장치(200)는 RAID를 기반으로 동작하는 저장장치를 의미한다. RAID는 복수 배열 독립 디스크로서, 복수 개의 디스크(하드 디스크(HDD) 또는 솔리드 스테이트 디스크(SSD)에 일부 중복된 데이터를 나눠서 저장하는 기술이다. RAID에서 데이터를 나누는 다양한 방법이 존재하며, 데이터를 나누는 방법들을 ‘레벨’이라 칭하는데, 레벨에 따라 저장장치의 신뢰성을 높이거나 전체적인 성능을 향상시킨다. RAID는 복수 개의 디스크를 하나로 묶어 하나의 논리적 디스크로 작동하게 하는데, 하드웨어적인 방법과 소프트웨어적인 방법이 있다. 하드웨어적인 방법은 운영 체제에 복수 개의 디스크가 하나의 디스크처럼 보이게 한다. 소프트웨어적인 방법은 주로 운영체제 안에서 구현되며, 사용자에게 디스크를 하나의 디스크처럼 보이게 한다.The storage device 200 according to the present embodiment means a storage device operating based on RAID. RAID is a multiple-array independent disk, and it is a technology that divides and stores some redundant data on a plurality of disks (hard disk (HDD) or solid state disk (SSD)). There are various methods of dividing data in RAID, The methods are called 'levels', and depending on the level, the reliability of the storage device is increased or the overall performance is improved.RAID binds a plurality of disks to one logical disk and operates as a single logical disk, and there are hardware and software methods. The hardware method makes a plurality of disks look like a single disk to the operating system The software method is mainly implemented in the operating system and makes the disk appear to the user as a single disk.

본 실시예에 따른 스토리지 장치(200)는 기본적으로 ‘RAID 6’를 동작하나 반드시 이에 한정되는 것은 아니며, RAID 기술의 범위 안에서 다른 RAID 레벨도 적용 가능하다. ‘RAID 6’는 패리티(오류 검출 기능)가 배분(Distributed)되는 스트리핑된 세트(적어도 4 개의 디스크)를 포함하는 방식이다.The storage device 200 according to the present embodiment basically operates 'RAID 6', but is not limited thereto, and other RAID levels may be applied within the scope of the RAID technology. 'RAID 6' is a method that includes a striped set (at least 4 disks) in which parity (error detection function) is distributed.

본 실시예에 따른 스토리지 장치(200)는 올 플래시 어레이(AFA)와 같은 RAID 어레이 상황에서, 디스크에 오류가 발생하더라도 디스크 분산 구조를 이용하여 빠른 데이터 복원이 가능하다. 본 실시예에 따른 스토리지 장치(200)는 디스크에 오류 발생 시 데이터 복원을 위하여 디스크 분산 구조를 이용함으로써 병목현상을 없애고, 데이터 복원 성능을 높일 수 있다.The storage device 200 according to the present embodiment enables fast data restoration using a disk distribution structure even if a disk error occurs in a RAID array situation such as an all-flash array (AFA). The storage device 200 according to the present embodiment can eliminate a bottleneck and improve data restoration performance by using a disk distribution structure to restore data when a disk error occurs.

본 실시예에 따른 스토리지 장치(200)는 올 플래시 어레이(AFA: All Flash Array)에도 적용 가능하다.The storage device 200 according to the present embodiment is also applicable to an All Flash Array (AFA).

올 플래시 어레이(AFA)는 복수 개의 플래시 기반 디스크(SSD)를 어레이(Array) 형태로 결합하여 빠른 I/O(Input/Output) 성능을 지원한다. 올 플래시 어레이(AFA)는 빠른 I/O 성능을 바탕으로 프라이머리 스토리지(Primary Storage)로 활용되는 기술이다. 올 플래시 어레이(AFA)는 주요 스토리지 벤더(Storage Vendor)들을 필두로 활발히 개발되고 있으며, 독자적인 RAID(Redundant Array of Inexpensive Disks) 기술을 활용하여 데이터 보호를 지원하고 있다.An all-flash array (AFA) supports fast I/O (Input/Output) performance by combining a plurality of flash-based disks (SSDs) in an array form. All-flash array (AFA) is a technology used as primary storage based on fast I/O performance. All-flash arrays (AFAs) are being actively developed led by major storage vendors, and data protection is supported by utilizing proprietary RAID (Redundant Array of Inexpensive Disks) technology.

일반적인 RAID 기술들은 공간 오버헤드, 데이터 신뢰도 간 트레이드 오프에 집중하였다. 반면, 올 플래시 어레이(AFA)는 빠른 I/O 성능에 초점을 맞춘 스토리지이다. 올 플래시 어레이(AFA)는 디스크 오류가 발생한 상황에서 나타나는 급격한 데이터 입출력 성능 저하를 막기 위해 빠른 데이터 복원을 위한 RAID 기술에 집중하고 있다.Common RAID technologies focus on the trade-off between space overhead and data reliability. On the other hand, all-flash arrays (AFAs) are storage focused on fast I/O performance. All-Flash Array (AFA) is focusing on RAID technology for fast data restoration in order to prevent rapid data I/O performance degradation that occurs in the event of a disk failure.

애플리케이션(210)은 RAID 제어기(220)로 데이터 입출력을 요청한다. 애플리케이션(210)은 외부 단말기의 운영 체제에 설치될 수 있다. 외부 단말기는 사용자의 키 조작에 따라 네트워크를 경유하여 데이터 통신을 수행하는 전자 기기를 의미한다. 다시 말해, 애플리케이션(210)은 외부 단말기에 설치되어 RAID 제어기(220)로 데이터 읽기 또는 쓰기를 요청한다. 애플리케이션(210)에서 요청한 데이터 입출력은 RAID 제어기(220)에 의해 중재된다. 애플리케이션(210)은 적어도 하나의 데이터 위치(Position)를 기준으로 한 적어도 하나의 데이터 읽기 요청을 RAID 제어기(220)로 전송한다. 애플리케이션(210)은 적어도 하나의 데이터 위치를 기준으로 한 적어도 하나의 데이터 쓰기 요청을 RAID 제어기(220)로 전송한다.The application 210 requests data input/output to the RAID controller 220 . The application 210 may be installed in the operating system of the external terminal. The external terminal refers to an electronic device that performs data communication via a network according to a user's key manipulation. In other words, the application 210 is installed in the external terminal and requests data read or write to the RAID controller 220 . The data input/output requested by the application 210 is mediated by the RAID controller 220 . The application 210 transmits at least one data read request to the RAID controller 220 based on at least one data position (Position). The application 210 transmits at least one data write request based on at least one data location to the RAID controller 220 .

외부 단말기는 네트워크를 경유하여 RAID 제어기(220)와 통신하기 위한 프로그램 또는 프로토콜을 저장하기 위한 메모리, 해당 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비한다. 외부 단말기는 개인용 컴퓨터(PC: Personal Computer), 랩톱(Laptop)이 바람직하나 반드시 이에 한정되는 것은 아니며, 스마트폰(Smart Phone), 태블릿(Tablet), 개인 휴대 단말기(PDA: Personal Digital Assistant), 게임 콘솔, 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 무선 통신 단말기(Wireless Communication Terminal), TV, 미디어 플레이어 등과 같은 전자기기일 수 있다. The external terminal is provided with a memory for storing a program or protocol for communicating with the RAID controller 220 via a network, and a microprocessor for operating and controlling the program by executing the program. The external terminal is preferably a personal computer (PC: Personal Computer) and a laptop (Laptop), but is not necessarily limited thereto, and includes a smart phone, a tablet, a personal digital assistant (PDA), a game. It may be an electronic device such as a console, a portable multimedia player (PMP), a wireless communication terminal, a TV, or a media player.

외부 단말기는 (ⅰ) 각종 기기 또는 유무선 네트워크와 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, (ⅱ) 각종 프로그램과 데이터를 저장하기 위한 메모리, (ⅲ) 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치이다. 적어도 일 실시예에 따르면, 메모리는 램(RAM: Random Access Memory), 롬(ROM: Read Only Memory), 플래시 메모리, 광 디스크, 자기 디스크, 솔리드 스테이트 디스크(SSD: Solid State Disk) 등의 컴퓨터로 판독 가능한 기록/저장매체일 수 있다. 적어도 일 실시예에 따르면, 마이크로프로세서는 명세서상에 기재된 동작과 기능을 하나 이상 선택적으로 수행하도록 프로그램될 수 있다. 적어도 일 실시예에 따르면, 마이크로프로세서는 전체 또는 부분적으로 특정한 구성의 주문형반도체(ASIC: Application Specific Integrated Circuit) 등의 하드웨어로써 구현될 수 있다.An external terminal includes (i) a communication device such as a communication modem for performing communication with various devices or wired and wireless networks, (ii) a memory for storing various programs and data, and (iii) a microcomputer for operation and control by executing the program Various devices including a processor and the like. According to at least one embodiment, the memory is a computer such as random access memory (RAM), read only memory (ROM), flash memory, optical disk, magnetic disk, solid state disk (SSD), etc. It may be a readable recording/storage medium. According to at least one embodiment, a microprocessor may be programmed to selectively perform one or more of the operations and functions described herein. According to at least one embodiment, the microprocessor may be fully or partially implemented as hardware such as an Application Specific Integrated Circuit (ASIC) having a specific configuration.

메모리에 관련 데이터 및 프로그램이 저장되어 있고, 프로세서가 메모리로부터 관련 데이터를 읽어들여 처리한다. 프로세서는 하나의 프로세서가 위 각 기능들을 수행할 수 있지만, 복수 개의 프로세서가 분담하여 처리하도록 구현할 수도 있다. 프로세서는 범용 프로세서에서 구현될 수도 있지만, 그 기능을 수행하도록 별도로 제작된 칩으로 구현할 수도 있다. Related data and a program are stored in a memory, and the processor reads and processes the related data from the memory. Although one processor may perform each of the above functions, the processor may be implemented so that a plurality of processors may divide and process the process. The processor may be implemented in a general-purpose processor, but may also be implemented as a chip manufactured separately to perform the function.

RAID 제어기(220)는 기 정의된 패리티 배치 정보(데이터 레이아웃)에 따라 해당 데이터 입출력을 복수 개의 디스크를 활용하여 처리한다. RAID 제어기(220)는 패리티 배치 정보(데이터 레이아웃)에 따라 패리티를 계산하여 저장하고, 디스크에 오류 발생 시 패리티를 활용하여 데이터를 복원하는 기능을 수행한다. The RAID controller 220 processes corresponding data input/output using a plurality of disks according to predefined parity arrangement information (data layout). The RAID controller 220 calculates and stores parity according to parity arrangement information (data layout), and performs a function of restoring data using parity when an error occurs in a disk.

이하, 본 실시예에 따른 RAID 제어기(220)가 RAID 어레이(Array) 상에서 데이터 읽기를 수행하는 절차에 대해 설명한다. Hereinafter, a procedure for the RAID controller 220 according to the present embodiment to read data on the RAID array will be described.

RAID 제어기(220)는 애플리케이션(210)으로부터 적어도 하나의 데이터 위치(Position)를 기준으로 한 적어도 하나의 데이터 읽기 요청을 수신한다. RAID 제어기(220)는 데이터 읽기 요청에 포함된 논리적 블럭 주소(Logical Block Address) 또는 오프셋(Offset)을 이용하여 디스크 분산 구조 상에서 데이터 위치에 따른 패리티 배치 정보(데이터 레이아웃)를 확인한다.The RAID controller 220 receives at least one data read request based on at least one data position from the application 210 . The RAID controller 220 uses a logical block address or an offset included in the data read request to check parity arrangement information (data layout) according to the data location on the disk distribution structure.

RAID 제어기(220)는 디스크 분산 구조 상에서 적어도 하나의 데이터 읽기 요청을 처리하기 위한 디스크 번호(예컨대, #1, #2, #3... #9)를 확인한다. RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9)(Disk Number)에 해당하는 디스크 내의 스트라이프 번호(예컨대, #0, #1, #2, #3)(Stripe Number)를 확인한다. RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9) 중 적어도 하나의 데이터 읽기 요청에서 하나의 데이터 읽기를 수행하고자 하는 특정 디스크(예컨대, #1)에 오류 발생 여부를 확인한다. The RAID controller 220 identifies a disk number (eg, #1, #2, #3... #9) for processing at least one data read request on the disk distribution structure. RAID controller 220 is a stripe number (eg, #0, #1, #2, #3) in the disk corresponding to the disk number (eg, #1, #2, #3... #9) (Disk Number) ) (Stripe Number). The RAID controller 220 is a specific disk (eg, #1) to which one data read is to be performed in a data read request of at least one of the disk numbers (eg, #1, #2, #3... #9). Check whether an error has occurred.

RAID 제어기(220)는 특정 디스크(예컨대, #1)에 오류가 발생한 경우, 특정 디스크(예컨대, #1) 내의 하나의 데이터 읽기와 관련된 스트라이프에 대한 데이터가 저장되면서도 특정 디스크와는 다른 복수의 디스크로부터 패리티 복원 관련 데이터(서로 다른 복수의 디스크 상에서의 동일한 로컬 그룹들의 데이터 및 로컬 패리티(P 패리티))를 읽어들인다. When an error occurs in a specific disk (eg, #1), the RAID controller 220 stores data for a stripe related to reading one data in a specific disk (eg, #1) while storing a plurality of disks different from the specific disk (eg, #1). Parity restoration related data (data of the same local groups and local parity (P parity) on a plurality of different disks) is read from

다시 말해, RAID 제어기(220)는 특정 디스크(예컨대, #1)에 오류가 발생한 경우, 디스크 분산 구조 상에서 데이터 위치에 따른 패리티 배치 정보(Data Layout)를 확인한다. RAID 제어기(220)는 패리티 배치 정보(데이터 레이아웃)를 참조하여 특정 디스크(예컨대, #1) 내의 하나의 데이터 읽기와 관련된 스트라이프 별로 특정 디스크와 동일한 로컬 그룹들을 확인한다. RAID 제어기(220)는 서로 다른 복수의 디스크 상에서의 동일한 로컬 그룹들의 데이터 및 로컬 패리티를 패리티 복원 관련 데이터로 읽어들인다.In other words, when an error occurs in a specific disk (eg, #1), the RAID controller 220 checks parity arrangement information (Data Layout) according to the data location on the disk distribution structure. The RAID controller 220 identifies the same local groups as the specific disk for each stripe related to reading one data in the specific disk (eg, #1) with reference to parity arrangement information (data layout). The RAID controller 220 reads data and local parity of the same local groups on a plurality of different disks as parity restoration related data.

RAID 제어기(220)는 페리티 복원 관련 데이터를 이용하여 하나의 데이터 읽기와 관련된 스트라이프 내의 읽기를 수행하고자 하는 데이터를 복원한다. 다시 말해, RAID 제어기(220)의 복원 과정에 대해 설명한다. RAID 제어기(220)는 동일한 로컬 그룹의 데이터 및 로컬 패리티를 이용하여 하나의 데이터 읽기와 관련된 스트라이프 내의 읽기를 수행하고자 하는 데이터를 복원한다. RAID 제어기(220)는 스트라이프 내의 읽기를 수행하고자 하는 데이터를 복원하여 데이터 읽기 요청에 대한 응답으로 리턴(Return)한다.The RAID controller 220 restores data to be read in a stripe related to one data read by using parity restoration related data. In other words, the restoration process of the RAID controller 220 will be described. The RAID controller 220 restores data to be read in a stripe related to one data read by using data of the same local group and local parity. The RAID controller 220 restores the data to be read in the stripe and returns it in response to the data read request.

이하, RAID 제어기(220)가 RAID 어레이 상에서 데이터 쓰기(Write)를 수행하는 절차에 대해 설명한다. Hereinafter, a procedure for the RAID controller 220 to write data on the RAID array will be described.

RAID 제어기(220)는 애플리케이션(210)으로부터 적어도 하나의 데이터 위치를 기준으로 한 적어도 하나의 데이터 쓰기 요청을 수신한다. RAID 제어기(220)는 디스크 분산 구조 상에서 적어도 하나의 데이터 쓰기 요청을 처리하기 위한 디스크 번호(예컨대, #1, #2, #3... #9)를 확인한다. RAID 제어기(220)는 확인된 디스크 번호(예컨대, #1, #2, #3... #9)에 해당하는 디스크 내의 스트라이프 번호(예컨대, #0, #1, #2, #3)를 확인한다.The RAID controller 220 receives at least one data write request based on at least one data location from the application 210 . The RAID controller 220 identifies a disk number (eg, #1, #2, #3... #9) for processing at least one data write request on the disk distribution structure. The RAID controller 220 reads the stripe number (eg, #0, #1, #2, #3) in the disk corresponding to the checked disk number (eg, #1, #2, #3... #9). Check it.

RAID 제어기(220)는 디스크 번호에 해당하는 디스크 내의 동일한 로컬 그룹 각각에 대한 로컬 패리티를 각각 확인하고, 디스크 번호에 해당하는 디스크 내의 각 스트라이프에 대한 글로벌 패리티를 각각 확인한다. RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9)에 해당하는 디스크 내의 하나의 데이터 쓰기와 관련된 스트라이프에 대한 데이터와 하나의 데이터 쓰기를 수행하고자 하는 로컬 패리티와 글로벌 패리티를 확인한다.The RAID controller 220 checks the local parity for each of the same local groups in the disk corresponding to the disk number, respectively, and checks the global parity for each stripe in the disk corresponding to the disk number, respectively. The RAID controller 220 is configured to write data for a stripe related to one data write in a disk corresponding to a disk number (eg, #1, #2, #3... #9) and a local data write to perform one data write. Check parity and global parity.

RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9) 중 적어도 하나의 데이터 쓰기 요청에서 하나의 데이터 쓰기를 수행하고자 하는 특정 디스크(예컨대, #1)에 오류 발생 여부를 확인한다. 다시 말해, RAID 제어기(220)는 하나의 데이터 쓰기와 관련된 스트라이프에 대한 데이터, 하나의 데이터 쓰기를 수행하고자 하는 로컬 패리티 또는 글로벌 패리티를 포함한 특정 디스크(예컨대, #1)에 오류 발생 여부를 확인한다.The RAID controller 220 is a specific disk (eg, #1) to which one data write is to be performed in a data write request of at least one of the disk numbers (eg, #1, #2, #3... #9). Check whether an error has occurred. In other words, the RAID controller 220 checks whether an error occurs in a specific disk (eg, #1) including data for a stripe related to writing one data, local parity or global parity to which one data write is performed. .

RAID 제어기(220)는 특정 디스크(예컨대, #1)에 오류가 발생한 경우, 특정 디스크(예컨대, #1) 내의 하나의 데이터 쓰기와 관련된 스트라이프에 데이터 쓰기가 미수행되도록 한다.When an error occurs in a specific disk (eg, #1), the RAID controller 220 prevents data writing to a stripe related to writing one data in a specific disk (eg, #1).

본 실시예에 따른 디스크 분산 구조에 대해 설명한다. 디스크 분산 구조는 DLRC(Distributed Local Reconstruction Code) 방식을 의미한다. 디스크 분산 구조는 복수 개의 디스크(하드 디스크(HDD) 또는 솔리드 스테이트 디스크(SSD))가 복수 개의 로컬 그룹으로 구분된다. 디스크 분산 구조는 로컬 그룹마다 로컬 패리티가 각각 존재한다. 디스크 분산 구조는 복수 개의 디스크 내의 각 스트라이프 별로 글로벌 패리티가 각각 존재한다. 디스크 분산 구조는 동일한 로컬 그룹의 데이터들이 서로 다른 복수 개의 디스크로 분산되어 있는 분산 구조를 갖는다.A disk distribution structure according to the present embodiment will be described. The disk distribution structure refers to a DLRC (Distributed Local Reconstruction Code) method. In the disk distribution structure, a plurality of disks (hard disk (HDD) or solid state disk (SSD)) is divided into a plurality of local groups. In the disk distribution structure, local parity exists for each local group. In the disk distribution structure, global parity exists for each stripe in a plurality of disks. The disk distribution structure has a distribution structure in which data of the same local group is distributed to a plurality of different disks.

디스크 분산 구조 내의 로컬 패리티(P 패리티)와 글로벌 패리티(Q 패리티)는 서로 다른 복수 개의 디스크로 분산 저장되는 분산 구조를 갖는다. 디스크 분산 구조 내의 로컬 패리티(P 패리티)와 글로벌 패리티(Q 패리티)는 각각의 디스크에 별도로 저장될 수 있다. 디스크 분산 구조 내의 로컬 패리티(P 패리티)와 글로벌 패리티(Q 패리티) 중 어느 하나의 패리티만이 서로 다른 복수 개의 디스크로 분산되어 있는 분산 구조를 가지며, 나머지 패리티는 하나의 디스크에 별도로 저장될 수 있다.Local parity (P parity) and global parity (Q parity) in the disk distribution structure have a distributed structure in which a plurality of disks are distributed and stored. Local parity (P parity) and global parity (Q parity) in the disk distribution structure may be separately stored on each disk. In the disk distribution structure, only one parity of local parity (P parity) and global parity (Q parity) is distributed among a plurality of different disks, and the remaining parity may be separately stored on one disk. .

디스크 분산 구조는 동일한 로컬 그룹의 데이터들이 서로 다른 복수 개의 디스크로 분산 저장되어, 하나의 데이터 읽기와 관련된 스트라이프 내의 읽기를 수행하고자 하는 데이터를 복원할 때, 개별 디스크마다 분산 저장된 로컬 그룹에 따라 데이터 읽기 수행 수를 감소(분산)되어 병목현상이 완화되도록 한다.In the disk distribution structure, data of the same local group is distributed and stored on a plurality of different disks. When restoring data to be read in a stripe related to reading one data, data is read according to the local group distributed and stored for each individual disk. The number of executions is reduced (distributed) so that the bottleneck is alleviated.

스토리지(230)는 복수 개의 물리적인 디스크를 의미한다. 스토리지(230)는 복수 개의 하드 디스크(HDD) 또는 복수 개의 솔리드 스테이트 디스크(SSD) 또는 하드 디스크(HDD)와 솔리드 스테이트 디스크(SSD)의 조합으로 구현될 수 있다. 스토리지(230)는 RAID 제어기(220)의 제어에 따라 데이터를 저장한다. The storage 230 means a plurality of physical disks. The storage 230 may be implemented as a plurality of hard disks (HDD), a plurality of solid state disks (SSD), or a combination of a hard disk (HDD) and a solid state disk (SSD). The storage 230 stores data under the control of the RAID controller 220 .

도 3은 본 실시예에 따른 디스크 분산 구조를 나타내기 위한 도면이다.3 is a diagram illustrating a disk distribution structure according to the present embodiment.

일반적인 LRC 방식은 모든 디스크의 I/O 성능이 동일한 RAID 어레이에서 데이터 복원 성능이 개선되지 않는다. 다시 말해, 고정 로컬 그룹 결정 방법으로 인하여, LRC 방식은 디스크에 오류 발생 시 데이터 복원을 위하여 일부 디스크만 활용함으로써 병목현상이 발생되어 데이터 복원 성능이 개선되지 않는다.The general LRC method does not improve data restoration performance in a RAID array where the I/O performance of all disks is the same. In other words, due to the fixed local group determination method, the LRC method uses only some disks to restore data when a disk error occurs, so that a bottleneck occurs and data restoration performance is not improved.

LRC 방식에 비해 본 실시예의 디스크 분산 구조는 분산 로컬 그룹 결정 방법을 사용하여, 디스크에 오류 발생 시 데이터 복원을 위하여 전체 디스크를 활용함으로써 병목현상을 완화/상쇄하고, 데이터 복원 성능을 높인다.Compared to the LRC method, the disk distribution structure of this embodiment uses the distributed local group determination method, and utilizes the entire disk for data restoration when a disk error occurs, thereby alleviating/offending the bottleneck and improving data restoration performance.

도 3은 본 실시예에 따른 DLRC 방식과 LRC 방식의 패리티 배치 정보(데이터 레이아웃)의 차이를 나타낸다. DLRC 방식과 LRC 방식의 차이점으로는 LRC 방식의 경우 한 개의 디스크 내의 모든 스트라이프(Stripe)(한 데이터 유닛)가 한 개의 로컬 그룹에 고정되어 있다. 반면, DLRC 방식의 경우 한 개의 디스크 내의 스트라이프들은 각 로컬 그룹으로 분산되어 있는 점이다. 전술한 차이점으로 인하여, DLRC 방식이 디스크에 오류 발생 시 데이터 복원 측면에서 이득을 가진다.3 illustrates a difference between parity arrangement information (data layout) of the DLRC method and the LRC method according to the present embodiment. The difference between the DLRC method and the LRC method is that, in the LRC method, all stripes (one data unit) in one disk are fixed to one local group. On the other hand, in the case of the DLRC method, the stripes within one disk are distributed to each local group. Due to the above-described differences, the DLRC method has an advantage in terms of data recovery when an error occurs in the disk.

본 실시예에 따른 디스크 분산 구조는 도 3에 도시된 바와 같이 DLRC 방식으로서, 복수 개의 디스크(하드 디스크(HDD) 또는 솔리드 스테이트 디스크(SSD))가 복수 개의 로컬 그룹으로 구분된다. 디스크 분산 구조는 로컬 그룹마다 로컬 패리티가 각각 존재한다. 디스크 분산 구조는 복수 개의 디스크 내의 각 스트라이프 별로 글로벌 패리티가 각각 존재한다. 디스크 분산 구조는 동일한 로컬 그룹의 데이터들이 서로 다른 복수 개의 디스크로 분산되어 있는 분산 구조를 갖는다. 디스크 분산 구조 내의 로컬 패리티(P 패리티)와 글로벌 패리티(Q 패리티)는, 도 3에 도시된 바와 같이 각각의 디스크에 별도로 저장될 수 있다.The disk distribution structure according to the present embodiment is a DLRC scheme as shown in FIG. 3, and a plurality of disks (hard disks (HDDs) or solid state disks (SSDs)) are divided into a plurality of local groups. In the disk distribution structure, local parity exists for each local group. In the disk distribution structure, global parity exists for each stripe in a plurality of disks. The disk distribution structure has a distribution structure in which data of the same local group is distributed to a plurality of different disks. Local parity (P parity) and global parity (Q parity) in the disk distribution structure may be separately stored in each disk as shown in FIG. 3 .

도 4는 본 실시예에 따른 디스크 분산 구조에서 오류 발생 시 빠른 데이터 복원을 설명하기 위한 도면이다.4 is a diagram for explaining fast data restoration when an error occurs in the disk distribution structure according to the present embodiment.

도 4에 도시된 바와 같이, LRC 방식과 DLRC 방식의 패리티 배치 정보(데이터 레이아웃)를 기준으로, 첫 번째 디스크에 오류 발생 시 데이터 복원을 위하여 다른 디스크들의 데이터 읽기 수행 수를 보인다. 이해를 돕기 위해 랜덤 읽기(Random Read)로 가정한다. 랜덤 읽기의 경우, 읽기 요청 병합(Merge)은 발생하지 않는다고 가정한다. 평균적으로 디스크에 오류 발생으로 인해 요청되는 데이터 읽기 요청은 ‘스트라이프 번호 모드 4(Stripe Number Mod 4)’의 경우 ‘#0, #1, #2, #3’으로 균등하게 발생하며, 평균적으로 ‘4 개’의 데이터 복원을 위해 서로 다른 디스크들의 데이터 읽기 수행 수는 도 4에 도시된 바와 같다. As shown in FIG. 4 , the number of data reads performed by other disks in order to restore data when an error occurs in the first disk is shown based on the parity arrangement information (data layout) of the LRC method and the DLRC method. For the sake of understanding, it is assumed that a random read is used. In case of random read, it is assumed that read request merge does not occur. On average, data read requests requested due to a disk error occur equally as '#0, #1, #2, #3' in 'Stripe Number Mod 4', and on average, ' The number of data reads performed by different disks to restore 4' data is as shown in FIG. 4 .

LRC 방식의 경우, 동일한 로컬 그룹의 3개 디스크로 디스크 읽기 수행이 집중되며, 이로 인하여 ‘2 개’의 데이터 디스크가 병목현상이 발생되어 데이터 복원 성능이 저하된다. 반면, DLRC 방식의 경우 동일한 로컬 그룹이 다른 ‘6 개’ 디스크로 분산되어 있어, 상대적으로 LRC 방식과 대비하여 개별 디스크에 절반 수준의 데이터 읽기 수행이 발생한다. 이로 인하여 DLRC 방식의 경우 병목현상이 완화/상쇄되어 데이터 복원을 빠르게 수행한다.In the case of the LRC method, disk read performance is concentrated on three disks in the same local group, and this causes the bottleneck of ‘two’ data disks, which degrades data restoration performance. On the other hand, in the case of the DLRC method, the same local group is distributed to different '6' disks, so compared to the LRC method, data read performance of half of each disk occurs relatively compared to the LRC method. For this reason, in the case of the DLRC method, the bottleneck is alleviated/cancelled, and data restoration is performed quickly.

예컨대, 데이터에 오류 발생 시 모든 디스크로 데이터 읽기 요청이 각각 ‘4 번’씩 발생하였다면, LRC 방식의 경우 두 번째, 세 번째 디스크가 각 ‘8 번’의 데이터 읽기 수행이 완료되어야 전체 데이터 읽기 요청이 완료되지만, DLRC 방식은 두 번째, 네 번째, 다섯 번째, 여섯 번째 디스크가 각 ‘6 번’의 데이터 읽기 수행만으로 전체 데이터 읽기 요청을 완료할 수 있다.For example, if data read requests to all disks are '4' each when an error occurs in data, in the case of the LRC method, the second and third disks must complete each '8' data read request to request a full data read. However, in the DLRC method, the second, fourth, fifth, and sixth disks can complete the entire data read request only by performing each 'sixth' data read.

본 실시예의 DLRC 방식은 한 개의 디스크 내의 스트라이프들이 각 로컬 그룹으로 분산되어 있다는 주요한 특징을 가진다. 도 3은 이러한 특징을 보이기 위한 하나의 실시예이며, 실제 발명의 구현에 있어서, 디스크 개수, 로컬 패리티(P 패리티), 글로벌 패리티(Q 패리티) 위치 변동 등에 따른 다양한 형태의 패리티 배치 정보(데이터 레이아웃)로 구현될 수 있다.The DLRC scheme of this embodiment has a major feature that stripes in one disk are distributed to each local group. FIG. 3 is an embodiment for showing such a characteristic, and in the actual implementation of the invention, various types of parity arrangement information (data layout) according to the number of disks, local parity (P parity), global parity (Q parity) location change, etc. ) can be implemented.

도 5는 본 실시예에 따른 디스크 분산 구조의 또 다른 실시예를 나타낸 도면이다.5 is a diagram showing another embodiment of the disk distribution structure according to the present embodiment.

도 5는 DLRC 방식으로 구성 가능한 다양한 형태의 패리티 배치 정보(데이터 레이아웃) 중 두 가지 실시예(성능, 신뢰성)를 나타낸다. DLRC-P 방식은 성능에 초점을 맞춘 패리티 배치 정보(데이터 레이아웃)로 ‘P1 패리티(로컬 패리티)’, ‘P2 패리티(로컬 패리티)’, ‘Q 패리티(글로벌 패리티)’가 각 디스크 내에서 인접하여 있으며, 패리티들이 저장되는 스트라이프가 디스크별로 순환하는 형태를 나타낸다. 이러한 경우 모든 패리티가 순환되므로 데이터 쓰기 성능에 저하가 발생하지 않으며, 디스크에 오류 발생 시 다른 디스크에 발생하는 데이터 읽기 요청이 절반 수준으로 균등하게 발생함으로 가장 빠른 데이터 복원이 가능한 형태이다. 5 shows two examples (performance, reliability) of various types of parity arrangement information (data layout) configurable in a DLRC scheme. The DLRC-P method is parity arrangement information (data layout) focused on performance, in which 'P1 parity (local parity)', 'P2 parity (local parity)', and 'Q parity (global parity)' are adjacent within each disk. This indicates that the stripe in which parities are stored is circulated for each disk. In this case, since all parity is cycled, there is no degradation in data write performance, and when a disk error occurs, data read requests to other disks are equally generated at half level, which is the fastest data restoration possible.

DLRC-R 방식은 데이터 신뢰성에 초점을 맞춘 형태로, ‘Q 패리티(글로벌 패리티)’는 한 개의 디스크 내에 고정되고, ‘P1 패리티(로컬 패리티)’는 앞 3개 디스크에서, ‘P2 패리티(로컬 패리티)’는 뒤 3개의 디스크에서 순환되는 형태이다. ‘Q 패리티(글로벌 패리티)’가 한 개의 디스크 내에 고정됨으로 데이터 쓰기 시 병목현상이 발생되어 성능이 저하되는 단점을 가지나, DLRC-P 방식은 두 개의 디스크에 발생한 오류가 복원 가능한 반면, DLRC-R은 디스크에 발생한 오류 위치에 따라 세 개의 디스크까지 복원 가능하다.The DLRC-R method focuses on data reliability. 'Q parity (global parity)' is fixed within one disk, 'P1 parity (local parity)' is 'P2 parity (local parity)' in the first three disks. parity)' is cycled through the last three disks. Since 'Q parity (global parity)' is fixed within one disk, a bottleneck occurs when writing data and performance is degraded. can restore up to three disks depending on the location of the error on the disk.

예컨대, 본 실시예에 따른 스토리지 장치(200)는 첫 번째, 네 번째, 다섯 번째 디스크에 오류가 발생하더라도 복원이 가능하다. 또한, 본 실시예에 따른 스토리지 장치(200)는 디스크 개수 증가, 로컬 패리티(P1, P2 패리티) 개수 증가, 글로벌 패리티(Q 패리티) 개수 증가하는 다양한 실시예를 포함한다.For example, in the storage device 200 according to the present embodiment, even if errors occur in the first, fourth, and fifth disks, restoration is possible. In addition, the storage device 200 according to the present embodiment includes various embodiments in which the number of disks increases, the number of local parities (P1, P2 parities) increases, and the number of global parities (Q parity) increases.

본 실시예에 따른 디스크 분산 구조는 도 5에 도시된 바와 같이 DLRC 방식으로서, 복수 개의 디스크(하드 디스크(HDD) 또는 솔리드 스테이트 디스크(SSD))가 복수 개의 로컬 그룹으로 구분된다. 디스크 분산 구조는 로컬 그룹마다 로컬 패리티가 각각 존재한다. 디스크 분산 구조는 복수 개의 디스크 내의 각 스트라이프 별로 글로벌 패리티가 각각 존재한다. 디스크 분산 구조는 동일한 로컬 그룹의 데이터들이 서로 다른 복수 개의 디스크로 분산되어 있는 분산 구조를 갖는다.The disk distribution structure according to the present embodiment is a DLRC method as shown in FIG. 5, and a plurality of disks (hard disks (HDDs) or solid state disks (SSDs)) are divided into a plurality of local groups. In the disk distribution structure, local parity exists for each local group. In the disk distribution structure, global parity exists for each stripe in a plurality of disks. The disk distribution structure has a distribution structure in which data of the same local group is distributed to a plurality of different disks.

디스크 분산 구조가 성능에 초점을 맞춘 경우, 도 5에 도시된 바와 같이, 디스크 분산 구조 내의 로컬 패리티(P 패리티)와 글로벌 패리티(Q 패리티)는 서로 다른 복수 개의 디스크로 분산 저장된다.When the disk distribution structure focuses on performance, as shown in FIG. 5 , local parity (P parity) and global parity (Q parity) in the disk distribution structure are distributed and stored in a plurality of different disks.

디스크 분산 구조가 데이터 신뢰성에 초점을 맞춘 경우, 도 5에 도시된 바와 같이, 디스크 분산 구조 내의 로컬 패리티(P 패리티)와 글로벌 패리티(Q 패리티) 중 어느 하나의 패리티만이 서로 다른 복수 개의 디스크로 분산되어 있는 분산 구조를 가지며, 나머지 패리티는 하나의 디스크에 별도로 저장될 수 있다.When the disk distribution structure focuses on data reliability, as shown in FIG. 5, only one parity of local parity (P parity) and global parity (Q parity) in the disk distribution structure is divided into a plurality of disks that are different from each other. It has a distributed distribution structure, and the remaining parity may be separately stored on one disk.

도 6은 본 실시예에 따른 빠른 데이터 복원을 위한 데이터 읽기 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating a data reading method for fast data restoration according to the present embodiment.

애플리케이션(210)은 위치(또는 논리적 블럭 주소), 오프셋을 기준으로 데이터 읽기 요청을 발생한다(S610).The application 210 generates a data read request based on a location (or logical block address) and an offset (S610).

RAID 제어기(220)는 애플리케이션(210)으로부터 적어도 하나의 데이터 위치를 기준으로 한 적어도 하나의 데이터 읽기 요청을 수신한다. RAID 제어기(220)는 데이터 읽기 요청에 포함된 논리적 블럭 주소 또는 오프셋(Offset)을 이용하여 디스크 분산 구조상에서 데이터 위치에 따른 패리티 배치 정보(데이터 레이아웃)를 확인한다.The RAID controller 220 receives at least one data read request based on at least one data location from the application 210 . The RAID controller 220 uses a logical block address or an offset included in the data read request to check parity arrangement information (data layout) according to the data location on the disk distribution structure.

RAID 제어기(220)는 디스크 분산 구조 상에서 적어도 하나의 데이터 읽기 요청을 처리하기 위한 디스크 번호(예컨대, #1, #2, #3... #9)를 확인한다. RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9)에 해당하는 디스크 내의 스트라이프 번호(예컨대, #0, #1, #2, #3)를 확인한다(S620).The RAID controller 220 identifies a disk number (eg, #1, #2, #3... #9) for processing at least one data read request on the disk distribution structure. The RAID controller 220 checks the stripe number (eg, #0, #1, #2, #3) in the disk corresponding to the disk number (eg, #1, #2, #3... #9) (S620).

단계 S620에서 RAID 제어기(220)는 디스크 분산 구조 상에서 데이터 읽기 요청에 포함된 데이터 위치에 따른 패리티 배치 정보(데이터 레이아웃)를 확인한다. 디스크 분산 구조는 동일한 로컬 그룹의 데이터들이 서로 다른 복수 개의 디스크로 분산되어 있는 분산 구조를 갖는다.In step S620, the RAID controller 220 checks parity arrangement information (data layout) according to the data location included in the data read request on the disk distribution structure. The disk distribution structure has a distribution structure in which data of the same local group is distributed to a plurality of different disks.

RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9) 중 적어도 하나의 데이터 읽기 요청에서 하나의 데이터 읽기를 수행하고자 하는 특정 디스크(예컨대, #1)에 오류 발생 여부를 확인한다(S630). The RAID controller 220 is a specific disk (eg, #1) to which one data read is to be performed in a data read request of at least one of the disk numbers (eg, #1, #2, #3... #9). It is checked whether an error has occurred (S630).

단계 S630에서 특정 디스크(예컨대, #1)에 오류가 발생한 경우, RAID 제어기(220)는 특정 디스크(예컨대, #1) 내의 하나의 데이터 읽기와 관련된 스트라이프에 대한 데이터가 저장되면서도 특정 디스크와는 다른 복수의 디스크로부터 패리티 복원 관련 데이터(서로 다른 복수의 디스크 상에서의 동일한 로컬 그룹들의 데이터 및 로컬 패리티(P 패리티))를 읽어들인다(S640).When an error occurs in a specific disk (eg, #1) in step S630, the RAID controller 220 stores data for a stripe related to reading one data within a specific disk (eg, #1) while storing data that is different from the specific disk. Parity restoration related data (data of the same local groups and local parity (P parity) on a plurality of different disks) are read from the plurality of disks (S640).

단계 S640에서, RAID 제어기(220)는 특정 디스크(예컨대, #1)에 오류가 발생한 경우, 디스크 분산 구조 상에서 데이터 위치에 따른 패리티 배치 정보(데이터 레이아웃)를 확인한다. RAID 제어기(220)는 패리티 배치 정보(데이터 레이아웃)를 참조하여 특정 디스크(예컨대, #1) 내의 하나의 데이터 읽기와 관련된 스트라이프 별로 특정 디스크와 동일한 로컬 그룹들을 확인한다. RAID 제어기(220)는 서로 다른 복수의 디스크 상에서의 동일한 로컬 그룹들의 데이터 및 로컬 패리티를 패리티 복원 관련 데이터로 읽어들인다.In step S640, when an error occurs in a specific disk (eg, #1), the RAID controller 220 checks parity arrangement information (data layout) according to the data location on the disk distribution structure. The RAID controller 220 identifies the same local groups as the specific disk for each stripe related to reading one data in the specific disk (eg, #1) with reference to parity arrangement information (data layout). The RAID controller 220 reads data and local parity of the same local groups on a plurality of different disks as parity restoration related data.

RAID 제어기(220)는 페리티 복원 관련 데이터를 이용하여 하나의 데이터 읽기와 관련된 스트라이프 내의 읽기를 수행하고자 하는 데이터를 복원한다(S650). 단계 S650에서, RAID 제어기(220)는 동일한 로컬 그룹의 데이터 및 로컬 패리티를 이용하여 하나의 데이터 읽기와 관련된 스트라이프 내의 읽기를 수행하고자 하는 데이터를 복원한다.The RAID controller 220 restores data to be read in a stripe related to one data read by using the parity restoration related data (S650). In step S650, the RAID controller 220 restores data to be read in a stripe related to one data read by using data of the same local group and local parity.

디스크 분산 구조는 DLRC 방식으로서, 동일한 로컬 그룹 디스크들 개수가 적으며, 오류가 발생한 디스크의 동일한 로컬 그룹이 전체 디스크로 분산되어 있으므로, 병목현상 없이 빠르게 하나의 데이터 읽기와 관련된 스트라이프 내의 읽기를 수행하고자 하는 데이터를 복원할 수 있다.The disk distribution structure is a DLRC method. Since the number of disks in the same local group is small and the same local group of the disk in error is distributed to all disks, it is intended to perform read within a stripe related to one data read quickly without a bottleneck. data can be restored.

단계 S630에서 특정 디스크(예컨대, #1)에 오류가 발생한 경우, RAID 제어기(220)는 하나의 데이터 읽기와 관련된 스트라이프 내의 읽기를 수행하고자 하는 데이터를 읽어들인다(S660). RAID 제어기(220)는 스트라이프 내의 읽기를 수행하고자 하는 데이터를 복원하여 데이터 읽기 요청에 대한 응답으로 리턴한다(S670).When an error occurs in a specific disk (eg, #1) in step S630, the RAID controller 220 reads data to be read in a stripe related to one data read (S660). The RAID controller 220 restores the data to be read in the stripe and returns it in response to the data read request (S670).

도 6에서는 단계 S610 내지 단계 S670을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 6에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 6은 시계열적인 순서로 한정되는 것은 아니다.Although it is described that steps S610 to S670 are sequentially executed in FIG. 6 , the present invention is not limited thereto. In other words, since it may be applicable to changing and executing the steps described in FIG. 6 or executing one or more steps in parallel, FIG. 6 is not limited to a chronological order.

전술한 바와 같이 도 6에 기재된 본 실시예에 따른 빠른 데이터 복원을 위한 데이터 읽기 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 빠른 데이터 복원을 위한 데이터 읽기 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. As described above, the data reading method for fast data restoration according to the present embodiment illustrated in FIG. 6 may be implemented as a program and recorded in a computer-readable recording medium. A computer-readable recording medium in which a program for implementing the data reading method for fast data restoration according to the present embodiment is recorded and includes all types of recording devices in which data readable by a computer system is stored.

도 7은 본 실시예에 따른 빠른 데이터 복원을 위한 데이터 쓰기 방법을 설명하기 위한 순서도이다.7 is a flowchart illustrating a data writing method for fast data restoration according to the present embodiment.

애플리케이션(210)은 위치(또는 논리적 블럭 주소), 오프셋을 기준으로 데이터 쓰기 요청을 발생한다(S710).The application 210 generates a data write request based on a location (or logical block address) and an offset (S710).

RAID 제어기(220)는 애플리케이션(210)으로부터 적어도 하나의 데이터 위치를 기준으로 한 적어도 하나의 데이터 쓰기 요청을 수신한다. RAID 제어기(220)는 데이터 쓰기 요청에 포함된 논리적 블럭 주소 또는 오프셋을 이용하여 디스크 분산 구조 상에서 데이터 위치에 따른 패리티 배치 정보(데이터 레이아웃)를 확인한다.The RAID controller 220 receives at least one data write request based on at least one data location from the application 210 . The RAID controller 220 uses the logical block address or offset included in the data write request to check parity arrangement information (data layout) according to the data location on the disk distribution structure.

RAID 제어기(220)는 디스크 분산 구조 상에서 적어도 하나의 데이터 쓰기 요청을 처리하기 위한 디스크 번호(예컨대, #1, #2, #3... #9)를 확인한다. RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9)에 해당하는 디스크 내의 스트라이프 번호(예컨대, #0, #1, #2, #3)를 확인한다(S720).The RAID controller 220 identifies a disk number (eg, #1, #2, #3... #9) for processing at least one data write request on the disk distribution structure. The RAID controller 220 checks the stripe number (eg, #0, #1, #2, #3) in the disk corresponding to the disk number (eg, #1, #2, #3... #9) (S720).

RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9)에 해당하는 디스크 내의 스트라이프 번호(예컨대, #0, #1, #2, #3)에 해당하는 데이터를 읽어온다(S730). RAID 제어기(220)가 단계 S730을 수행하는 이유는 글로벌 패리티를 계산하기 위함이다.The RAID controller 220 corresponds to the stripe number (eg, #0, #1, #2, #3) in the disk corresponding to the disk number (eg, #1, #2, #3... #9). Data is read (S730). The reason why the RAID controller 220 performs step S730 is to calculate global parity.

RAID 제어기(220)는 디스크 번호에 해당하는 디스크 내의 동일한 로컬 그룹 각각에 대한 로컬 패리티를 각각 확인하고, 디스크 번호에 해당하는 디스크 내의 각 스트라이프에 대한 글로벌 패리티를 각각 확인한다(S740).The RAID controller 220 checks the local parity for each of the same local groups in the disk corresponding to the disk number, respectively, and checks the global parity for each stripe in the disk corresponding to the disk number (S740).

RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9)에 해당하는 디스크 내의 하나의 데이터 쓰기와 관련된 스트라이프에 대한 데이터와 하나의 데이터 쓰기를 수행하고자 하는 로컬 패리티와 글로벌 패리티를 확인한다(S750).The RAID controller 220 is configured to write data for a stripe related to one data write in a disk corresponding to a disk number (eg, #1, #2, #3... #9) and a local data write to perform one data write. Parity and global parity are checked (S750).

RAID 제어기(220)는 디스크 번호(예컨대, #1, #2, #3... #9) 중 적어도 하나의 데이터 쓰기 요청에서 하나의 데이터 쓰기를 수행하고자 하는 특정 디스크(예컨대, #1)에 오류 발생 여부를 확인한다(S760). 단계 S760에서 RAID 제어기(220)는 하나의 데이터 쓰기와 관련된 스트라이프에 대한 데이터, 하나의 데이터 쓰기를 수행하고자 하는 로컬 패리티 또는 글로벌 패리티를 포함한 특정 디스크(예컨대, #1)에 오류 발생 여부를 확인한다.The RAID controller 220 is a specific disk (eg, #1) to which one data write is to be performed in a data write request of at least one of the disk numbers (eg, #1, #2, #3... #9). It is checked whether an error has occurred (S760). In step S760, the RAID controller 220 checks whether an error occurs in a specific disk (eg, #1) including data for a stripe related to writing one data, local parity or global parity to which one data writing is to be performed. .

단계 S760에서 특정 디스크(예컨대, #1)에 오류가 발생하지 않은 경우, RAID 제어기(220)는 하나의 데이터 쓰기와 관련된 스트라이프에 대한 데이터에 쓰기를 수행하고, 하나의 데이터 쓰기를 수행하고자 하는 로컬 패리티 또는 글로벌 패리티를 갱신한다(S770).If an error does not occur in a specific disk (eg, #1) in step S760, the RAID controller 220 writes data for a stripe related to writing one data, and writes one data to a local Parity or global parity is updated (S770).

단계 S760에서 특정 디스크(예컨대, #1)에 오류가 발생한 경우, RAID 제어기(220)는 특정 디스크(예컨대, #1) 내의 하나의 데이터 쓰기와 관련된 스트라이프에 데이터 쓰기가 미수행되도록 한다(S780). 단계 S780에서 RAID 제어기(220)는 특정 디스크(예컨대, #1)에 오류가 발생한 경우, 데이터 쓰기를 수행하지 않고(무시하고) 데이터 쓰기 요청에 대한 응답 데이터로서 리턴한다.When an error occurs in a specific disk (eg, #1) in step S760, the RAID controller 220 prevents data writing to a stripe related to writing one data in a specific disk (eg, #1) is not performed (S780) . In step S780, when an error occurs in a specific disk (eg, #1), the RAID controller 220 returns as response data to the data write request without performing (ignoring) writing data.

도 7에서는 단계 S710 내지 단계 S780을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 7에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 7은 시계열적인 순서로 한정되는 것은 아니다.Although it is described that steps S710 to S780 are sequentially executed in FIG. 7 , the present invention is not limited thereto. In other words, since it may be applicable to changing and executing the steps described in FIG. 7 or executing one or more steps in parallel, FIG. 7 is not limited to a chronological order.

전술한 바와 같이 도 7에 기재된 본 실시예에 따른 빠른 데이터 복원을 위한 데이터 쓰기 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 빠른 데이터 복원을 위한 데이터 쓰기 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.As described above, the data writing method for fast data restoration according to the present embodiment illustrated in FIG. 7 may be implemented as a program and recorded in a computer-readable recording medium. A computer-readable recording medium in which a program for implementing the data writing method for fast data restoration according to the present embodiment is recorded and includes all types of recording devices in which data readable by a computer system is stored.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of this embodiment, and a person skilled in the art to which this embodiment belongs may make various modifications and variations without departing from the essential characteristics of the present embodiment. Accordingly, the present embodiments are intended to explain rather than limit the technical spirit of the present embodiment, and the scope of the technical spirit of the present embodiment is not limited by these embodiments. The protection scope of this embodiment should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present embodiment.

이상에서 설명한 바와 같이 본 실시예는 RAID 분야에 적용되어, 디스크에 오류 발생 시 나타나는 급격한 데이터 입출력 성능 저하(Bottleneck)를 방지하는 효과를 발생하는 유용한 발명이다.As described above, the present embodiment is applied to the RAID field and is a useful invention that prevents a sudden drop in data input/output performance (bottleneck) that occurs when an error occurs in a disk.

200: 스토리지 장치 210: 애플리케이션
220: RAID 제어기 230: 스토리지
200: storage device 210: application
220: RAID controller 230: storage

Claims (9)

복수 개의 디스크를 포함하되,
상기 복수 개의 디스크 각각은 복수 개의 로컬 그룹으로 구분되고, 상기 복수 개의 로컬 그룹마다 로컬 패리티가 존재하며, 상기 복수 개의 디스크 각각의 스트라이프 별로 글로벌 패리티가 존재하고,
상기 로컬 패리티 및 상기 글로벌 패리티 각각은 상기 복수 개의 디스크에 분산 저장되되,
상기 로컬 패리티 및 상기 글로벌 패리티는 동일한 디스크 내에서 인접한 복수의 스트라이프에 각기 하나씩, 디스크마다 동일한 순서에 따라 저장되고, 상기 로컬 패리티 및 상기 글로벌 패리티가 저장되는 상기 복수의 스트라이프가 디스크마다 스트라이프의 레벨을 달리하여 순환하도록 저장되는 것
을 특징으로 하는, RAID 기반의 스토리지 장치.
comprising a plurality of disks,
Each of the plurality of disks is divided into a plurality of local groups, a local parity exists for each of the plurality of local groups, and a global parity exists for each stripe of each of the plurality of disks,
Each of the local parity and the global parity is distributed and stored in the plurality of disks,
The local parity and the global parity are stored in the same order for each disk, one each in a plurality of adjacent stripes within the same disk, and the plurality of stripes in which the local parity and the global parity are stored determines the level of the stripe for each disk. stored for circulation in different ways
characterized in that, RAID-based storage device.
삭제delete 삭제delete 제1항에 있어서,
상기 로컬 패리티 및 상기 글로벌 패리티 중 어느 하나는 상기 복수 개의 디스크 중 어느 하나에 저장되고, 나머지 하나는 나머지 디스크에 분산 저장되는 것을 특징으로 하는, RAID 기반의 스토리지 장치.
According to claim 1,
Any one of the local parity and the global parity is stored in any one of the plurality of disks, and the other one is distributed and stored in the other disk, RAID-based storage device.
제4항에 있어서,
상기 글로벌 패리티는 상기 복수 개의 디스크 중 어느 하나에 저장되고, 상기 로컬 패리티는, 상기 복수 개의 디스크 중 나머지 디스크에, 상기 로컬 패리티가 저장되는 스트라이프가 순환하도록 저장되는 것을 특징으로 하는, RAID 기반의 스토리지 장치.
5. The method of claim 4,
The global parity is stored in any one of the plurality of disks, and the local parity is stored in the remaining disks of the plurality of disks so that a stripe in which the local parity is stored is circulated, RAID-based storage Device.
제1항에 있어서,
상기 복수 개의 디스크 각각의 스트라이프는 상기 복수 개의 로컬 그룹 각각에 분산되는 것을 특징으로 하는, RAID 기반의 스토리지 장치.
According to claim 1,
A RAID-based storage device, characterized in that the stripes of each of the plurality of disks are distributed in each of the plurality of local groups.
제1항에 있어서,
동일한 로컬 그룹의 데이터들이 상기 복수 개의 디스크 가운데 서로 다른 복수 개의 디스크로 분산 저장되는 것을 특징으로 하는, RAID 기반의 스토리지 장치.
According to claim 1,
A RAID-based storage device, characterized in that data of the same local group is distributed and stored in a plurality of different disks among the plurality of disks.
제7항에 있어서,
상기 동일한 로컬 그룹의 데이터들이 분산 저장된 디스크 각각으로부터 데이터 읽기 또는 데이터 쓰기를 수행하는 RAID 제어기
를 더 포함하는 것을 특징으로 하는, RAID 기반의 스토리지 장치.
8. The method of claim 7,
A RAID controller that reads data or writes data from each disk in which the data of the same local group is distributed and stored
Further comprising a, RAID-based storage device.
제 8 항에 있어서,
상기 RAID 제어기는,
애플리케이션으로부터 입출력 요청을 수신하고, 기 정의된 패리티 배치 정보를 이용하여 상기 복수 개의 디스크로부터 상기 입출력 요청을 처리하는 것을 특징으로 하는, RAID 기반의 스토리지 장치.
9. The method of claim 8,
The RAID controller,
A RAID-based storage device, comprising receiving an input/output request from an application and processing the input/output request from the plurality of disks using predefined parity configuration information.
KR1020210094747A 2016-02-23 2021-07-20 Storage Device Based on RAID KR102389929B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210094747A KR102389929B1 (en) 2016-02-23 2021-07-20 Storage Device Based on RAID

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160021180A KR20170099161A (en) 2016-02-23 2016-02-23 Methods for Providing Data Read or Write for Fast Data Reconstruction
KR1020210094747A KR102389929B1 (en) 2016-02-23 2021-07-20 Storage Device Based on RAID

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021180A Division KR20170099161A (en) 2016-02-23 2016-02-23 Methods for Providing Data Read or Write for Fast Data Reconstruction

Publications (2)

Publication Number Publication Date
KR20210093821A KR20210093821A (en) 2021-07-28
KR102389929B1 true KR102389929B1 (en) 2022-04-26

Family

ID=59761322

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020160021180A KR20170099161A (en) 2016-02-23 2016-02-23 Methods for Providing Data Read or Write for Fast Data Reconstruction
KR1020210094747A KR102389929B1 (en) 2016-02-23 2021-07-20 Storage Device Based on RAID

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020160021180A KR20170099161A (en) 2016-02-23 2016-02-23 Methods for Providing Data Read or Write for Fast Data Reconstruction

Country Status (1)

Country Link
KR (2) KR20170099161A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158589B (en) * 2019-12-16 2023-10-20 绿晶半导体科技(北京)有限公司 Dynamic management method and device for storage array

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195205A (en) * 2000-01-14 2001-07-19 Nippon Telegr & Teleph Corp <Ntt> Method for restoring data of data storage system and medium with recorded program
JP2005044182A (en) * 2003-07-23 2005-02-17 Ntt Data Corp Disk array device and program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100275900B1 (en) * 1996-09-21 2000-12-15 윤종용 Method for implement divideo parity spare disk in raid sub-system
KR100809300B1 (en) * 2006-08-07 2008-03-04 삼성전자주식회사 Method for organizing RAID system having changeable storage
JP2013125513A (en) * 2011-12-16 2013-06-24 Samsung Electronics Co Ltd Nonvolatile semiconductor memory device and management method therefor
CN104641419A (en) * 2012-07-13 2015-05-20 三星电子株式会社 Solid state drive controller, solid state drive, data processing method of solid state drive, multi-channel solid state drive, raid controller and computer-readable recording medium having recorded therein computer program for providing sequence information to solid state drive

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195205A (en) * 2000-01-14 2001-07-19 Nippon Telegr & Teleph Corp <Ntt> Method for restoring data of data storage system and medium with recorded program
JP2005044182A (en) * 2003-07-23 2005-02-17 Ntt Data Corp Disk array device and program

Also Published As

Publication number Publication date
KR20170099161A (en) 2017-08-31
KR20210093821A (en) 2021-07-28

Similar Documents

Publication Publication Date Title
US10191676B2 (en) Scalable storage protection
KR102645583B1 (en) Predictive memory maintenance
US9921912B1 (en) Using spare disk drives to overprovision raid groups
US7093158B2 (en) Data redundancy in a hot pluggable, large symmetric multi-processor system
CN102483686B (en) Data storage system and method for operating a data storage system
KR102533389B1 (en) Data storage device for increasing lifetime of device and raid system including the same
US20140063983A1 (en) Error Detection And Correction In A Memory System
US11288119B2 (en) Key value SSD
US20090113235A1 (en) Raid with redundant parity
JP2016530637A (en) RAID parity stripe reconstruction
US20160117120A1 (en) Systems and methods for optimizing write accesses in a storage array
JP2012128660A (en) Semiconductor memory device
JP2018508073A (en) Data removal, allocation and reconstruction
CN111400084B (en) Method and apparatus for dynamic recovery management for fault tolerant disk arrays
KR102389929B1 (en) Storage Device Based on RAID
CN112119380B (en) Parity check recording with bypass
JP5360666B2 (en) Method and system for performing I / O operations of multiple disk arrays
JP2008217395A (en) Disk array device
US11221773B2 (en) Method and apparatus for performing mapping information management regarding redundant array of independent disks
CN111752475A (en) Method and device for data access management in storage server
US11586360B2 (en) Hybrid memory mirroring using storage class memory
US11604697B2 (en) Distributed erasure encoding in shared file system
JP2019159416A (en) Data management device, file system, data management method, and program
TWI768476B (en) Method and apparatus for performing mapping information management regarding redundant array of independent disks, and associated storage system
KR20230071023A (en) Storage device and operation method thereof

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant