KR20180069176A - System and method for log-based parity update of SSD array and to defect block and node failures recovery method using the same - Google Patents

System and method for log-based parity update of SSD array and to defect block and node failures recovery method using the same Download PDF

Info

Publication number
KR20180069176A
KR20180069176A KR1020160170422A KR20160170422A KR20180069176A KR 20180069176 A KR20180069176 A KR 20180069176A KR 1020160170422 A KR1020160170422 A KR 1020160170422A KR 20160170422 A KR20160170422 A KR 20160170422A KR 20180069176 A KR20180069176 A KR 20180069176A
Authority
KR
South Korea
Prior art keywords
parity
update
data
log
ssd array
Prior art date
Application number
KR1020160170422A
Other languages
Korean (ko)
Other versions
KR101986579B1 (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 KR1020160170422A priority Critical patent/KR101986579B1/en
Publication of KR20180069176A publication Critical patent/KR20180069176A/en
Application granted granted Critical
Publication of KR101986579B1 publication Critical patent/KR101986579B1/en

Links

Images

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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system

Landscapes

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

Abstract

The present invention relates to a system and a method for log-based parity update of SSD array and a method of recovering defects of a block and a node using the same to solve a write amplification problem increased due to a parity update when distributing files in RAID type using parity in an SSD-based massive cluster environment. To this end, according to the present invention, the system for log-based parity update of SSD array includes a RAID controller for controlling an SSD-based massive storage system, and an SSD array for storing files inputted from the RAID controller, wherein the RAID controller includes an address managing unit for distributing data based on a logical address so that the inputted files are stored in the SSD array; a stripe managing unit for generating a stripe by using the logical address transmitted from the address managing unit; a data managing unit for managing insertion/deletion/update of the data transmitted from the stripe managing unit; and a parity managing unit for managing a parity transmitted from the stripe managing unit.

Description

SSD 배열의 로그 기반 패리티 갱신 시스템 및 방법 그리고 이를 이용한 블록 및 노드 결함 복구 방법{System and method for log-based parity update of SSD array and to defect block and node failures recovery method using the same}[0001] The present invention relates to a log-based parity update system and method for an SSD array, and a block and a node defect recovery method using the same.

본 발명은 SSD 기반 대규모 클러스터 환경에서 파일을 패리티를 사용하는 RAID 형태로 분산 저장 할 때 패리티 갱신으로 인해 증가하는 쓰기 증폭 문제를 해결하는 SSD 배열의 로그 기반 패리티 갱신 시스템 및 방법 그리고 이를 이용한 블록 및 노드 결함을 복구하는 방법에 관한 것이다. The present invention relates to a system and method for updating a log-based parity of an SSD array that solves the problem of increased write amplification due to parity update when distributed in a RAID type using parity in a large-scale cluster environment based on SSD, And to a method for repairing defects.

최근에 낸드(NAND) 플래시 메모리의 가격이 하락함에 따라 SSD(Solid State Drives)의 활용이 개인용 디바이스로부터 데이터 센터의 서버 시스템까지 활발히 사용되고 있다. 기계적인 동작으로 데이터를 읽고 쓰며 디스크 헤드의 탐색 시간, 회전 지연 시간 등의 데이터 접근 오버헤드가 큰 HDD(Hard Disk Drives)에 비해 SSD는 빠른 데이터 접근 시간, 저전력, 저소음, 저발열, 경량의 무게 등이 장점을 가진다. 낸드 플래시 메모리의 가격이 하락함에 따라 SSD는 다양한 환경에서 HDD를 대신하는 주 저장 매체로 사용되기 시작하며 분산 파일 시스템의 클러스터 노드들에도 장착되기 시작하였다. HDD기반의 저장 시스템이 SSD로 저장 장치를 교체하면, 전력 사용량을 17% 줄일 수 있고 저장 장치를 위한 비용도 30% 감소시키며, 60% 높은 입출력 성능을 도모할 수 있다. Recently, as NAND flash memory prices have fallen, the use of solid state drives (SSDs) has been actively used from personal devices to server systems in data centers. Compared to HDD (Hard Disk Drives), which have a large data access overhead such as disk head seek time and rotation delay time, SSD has faster data access time, low power, low noise, low heat, light weight And so on. As the price of NAND flash memory declined, the SSD began to be used as a main storage medium in place of the HDD in various environments and started to be installed in the cluster nodes of the distributed file system. If an HDD-based storage system replaces a storage device with an SSD, it can reduce power consumption by 17%, reduce storage costs by 30%, and achieve 60% higher I / O performance.

그런데, 낸드 플래시 메모리는 데이터의 제자리 갱신이 불가능하고 읽기/쓰기 연산의 단위와 지우기 연산의 단위가 다른 물리적 특성이 있다. 읽기/쓰기 연산은 낸드 플래시 메모리를 구성하는 물리적인 페이지 단위로 수행되며 지우기 연산은 물리적 블록 단위로 가능하다. 또한, 블록은 정해진 횟수만큼만 지우기 연산이 가능하고, 낸드 플래시 메모리는 일정 횟수 이상의 지우기 연산이 수행된 블록은 저장된 데이터가 손상 될 수 있는 약점을 가진다. However, in the NAND flash memory, there is a physical property in which data can not be updated and the unit of the read / write operation is different from the unit of the erase operation. The read / write operation is performed in units of physical pages constituting the NAND flash memory, and the erase operation can be performed in units of physical blocks. In addition, a block can be erased only a predetermined number of times, and the NAND flash memory has a weak point in that stored data may be damaged in a block erased more than a predetermined number of times.

읽고 쓰기를 위한 물리적인 연산 단위와 지우기 연산의 물리적인 단위가 다른 SSD는 지우기 연산을 수행하기 전에 지우고자 하는 블록 내에 존재하는 유효한 페이지들의 데이터를 다른 비어있는 블록으로 복사하는 과정이 발생하며 이 때 호스트로부터 요청 된 쓰기 연산 이외의 낸드 플래시 메모리 내부에서 발생하는 추가적인 쓰기 연산이 발생하게 된다. 이러한 특성으로 인해 SSD는 갱신 연산이 계속해서 주어지면 빈 블록이 점점 고갈되며 가비지 콜렉션(garbage collection) 을 통해 유효 데이터 페이지와 비 유효 데이터 페이지들을 정리하는 기능을 수행한다. 따라서, SSD는 논리적인 쓰기 요청보다 물리적으로 내부에서 발생하는 쓰기 연산이 많이 발생하게 되며 쓰기 증폭 문제(write amplification)를 가지게 된다. 쓰기 증폭 문제는 추가적인 쓰기 연산을 처리하는 과정에서 SSD 의 입출력 성능을 저하시키고 소거 연산의 횟수를 증가하게 만들어 SSD 의 수명을 저하시킨다.SSDs with different physical units for reading and writing and erasing operations have to copy the data of valid pages existing in the block to be erased to another empty block before performing the erase operation. An additional write operation occurs in the NAND flash memory other than the write operation requested from the host. Because of this nature, SSDs continue to provide update operations and empty blocks are gradually depleted and garbage collection functions to organize valid and invalid data pages. Therefore, the SSD generates more write operations that occur physically inside the logical write request, and has a write amplification problem. The write amplification problem degrades SSD input / output performance and increases the number of erase operations in the process of performing additional write operations, thereby degrading the lifetime of the SSD.

KR 1014450250000 B1KR 1014450250000 B1

본 발명은 이와 같은 문제점을 해결하기 위하여 창안된 것으로서, SSD를 저장 장치로 사용하는 대규모 저장 시스템에서 발생하는 SSD의 쓰기 증폭 문제를 해결하는 방법에 관한 것으로, 보다 상세하게는 사용 할수록 결함 발생률이 증가하는 SSD의 신뢰성을 향상 시키고자 SSD 배열에 데이터를 패리티 기반 RAID 형태로 배치하고 이를 운용할 때 패리티 갱신으로 더욱 커지는 쓰기 증폭을 줄이는 SSD 배열의 로그 기반 패리티 갱신 시스템 및 방법 그리고 이를 이용한 블록 및 노드 결함을 복구하는 방법을 제공하는데 목적이 있다. Disclosure of Invention Technical Problem [11] Accordingly, the present invention has been made to solve the above problems, and it is an object of the present invention to solve the problem of write amplification of an SSD occurring in a large-scale storage system using a SSD as a storage device. More specifically, Based parity update system and method for reducing the write amplification due to the parity update when the data is arranged in the parity-based RAID form in the SSD array in order to improve the reliability of the SSD array and the block and node defect And to provide a method for recovering the data.

이와 같은 목적을 달성하기 위하여 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템은 SSD 기반 대규모 저장 시스템을 컨트롤하는 레이드(RAID) 컨트롤러; 및 상기 레이드(RAID) 컨트롤러로부터 입력되는 파일을 저장하는 SSD 배열을 포함하며, 상기 레이드(RAID) 컨트롤러는, 상기 입력되는 파일이 상기 SSD 배열에 저장되도록 논리 주소를 기반으로 하여 데이터를 분배하는 주소 관리부; 상기 주소 관리부로부터 전달되는 상기 논리 주소들로 스트라이프를 생성하는 스트라이프 관리부; 상기 스트라이프 관리부로부터 전달되는 데이터의 삽입/삭제/갱신을 관리하는 데이터 관리부; 및 상기 스트라이프 관리부로부터 전달되는 패리티를 관리하는 패리티 관리부를 구비한다. In order to achieve the above object, a log-based parity update system of an SSD array according to the present invention includes a RAID controller for controlling a SSD-based large-scale storage system; And an SSD array for storing a file input from the RAID controller, wherein the RAID controller comprises: an address distributing data based on a logical address so that the input file is stored in the SSD array; Management; A stripe management unit for generating a stripe by the logical addresses transmitted from the address management unit; A data management unit managing insertion / deletion / update of data transmitted from the stripe management unit; And a parity management unit for managing parities transmitted from the stripe management unit.

바람직하게는 상기 패리티 관리부는, 데이터 갱신 요청이 있을 경우 상기 데이터 갱신이 발생하기 이전의 데이터와 이후 데이터의 변경값을 계산하는 패리티 로그 계산부; 상기 데이터 관리부와 상기 패리티 로그 계산부에서 계산된 데이터의 변경값에 의하여 계산된 패리티 로그를 전달 받으며, 이 전달받은 패리티 로그를 상기 SSD 배열에 저장하는 패리티 로깅부; 및 상기 패리티 로깅부에서 상기 패리티 로그를 상기 SSD 배열에 저장할 때, 상기 패리티 로그가 저장될 공간이 부족한 경우 패리티 합병을 처리하는 패리티 합병부를 포함한다. Preferably, the parity management unit includes: a parity log calculation unit for calculating a change value of data before and after the data update occurs when there is a data update request; A parity logger for receiving the parity log calculated by the data change unit and the parity log computation unit and storing the received parity log in the SSD array; And a parity merge unit for, when the parity log unit stores the parity log in the SSD array, processing a parity merge when the space for storing the parity log is insufficient.

바람직하게는 상기 패리티 합병부는 갱신 이전 패리티들을 랜덤하게 읽어 수집하는 갱신 이전 패리티 수집모듈; 상기 갱신 이전 패리티 수집모듈을 통해 수집된 갱신 이전 패리티들이 소속된 스트라이프를 선정하는 합병 대상 스트라이프 선정모듈; 합병할 패리티들을 랜덤하게 읽는 기능을 하는 패리티 로그 수집모듈; 상기 랜덤하게 읽은 갱신 이전 패리티들과 패리티 로그들로 새로운 패리티를 계산하는 새로운 패리티 계산모듈; 새로운 패리티가 생성된 후, 패리티 합병에 사용된 패리티 로그들을 비유효화 처리하는 패리티 로그 비유효화모듈; 및 새로운 패리티가 생성된 후, 갱신 이전 패리티들을 비유효화 처리하는 갱신 전 패리티 비유효화모듈을 포함한다. Preferably, the parity merge module includes a pre-update parity collection module for randomly reading and collecting parities before update; A merging target stripe selecting module for selecting a stripe belonging to the parity before updating collected through the parity gathering module before the update; A parity log collection module for randomly reading the merged parities; A new parity calculation module for calculating a new parity with the randomly read old parity and parity logs; A parity log invalidation module for invalidating parity logs used for parity merging after a new parity is generated; And a pre-update parity non-validation module for de-validating the parities before update after the new parity is generated.

이와 같은 목적을 달성하기 위하여 본 발명의 다른 측면은 청구항 1 내지 3의 어느 한 항에 기재된 시스템을 통한 SSD 배열의 로그 기반 패리티 갱신 방법에 있어서, (a) 데이터 갱신을 요청하는 단계; (b) 상기 단계 (a)에서 갱신 요청된 데이터가 속한 스트라이프를 검색한 후, 패리티 로그를 계산하는 단계; (c) 상기 단계 (b)에서 계산된 패리티 로그가 쓰여질 패리티 로그 영역이 있는지를 판단하는 단계; 및 (d) 상기 단계 (c)의 판단결과, 패리티 로그 영역이 없을 경우, 패리티 합병을 수행하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method for updating a log-based parity of an SSD array through the system according to any one of claims 1 to 3, the method comprising: (a) requesting data update; (b) calculating a parity log after searching for the stripe to which the data requested to be updated in the step (a) belongs; (c) determining whether there is a parity log area to be written in the parity log calculated in the step (b); And (d) performing parity merge if the parity log area is not present as a result of the determination in step (c).

바람직하게는 상기 단계 (b)의 패리티 로그 계산은 갱신 이전 데이터와 갱신 데이터 간의 변경된 부분을 로그 연산하여 계산하는 것이다. Preferably, the parity log calculation in the step (b) is performed by logarithmically computing the changed part between the data before update and the update data.

바람직하게는 상기 단계 (d)의 패리티 합병을 수행하는 단계는, (d1) 패리티 합병을 요청하는 단계; (d2) 순차적으로 저장되어 있는 패리티 로그와 랜덤하게 저장되어 있는 갱신되기 이전의 패리티를 읽는 단계; (d3) 상기 단계 (d2)에서 읽은 순차적으로 저장되어 있는 패리티 로그와 랜덤하게 저장되어 있는 갱신되기 이전의 패리티들을 XOR하여 새로운 패리티를 계산하는 단계; 및 (d4) 상기 단계 (d3)에서 계산된 새로운 패리티를 쓰는 단계를 포함한다. Preferably, performing the parity merge in step (d) comprises: (d1) requesting parity merge; (d2) reading the parity previously stored in the randomly stored parity log; (d3) calculating a new parity by XORing the sequentially stored parity logs read in step (d2) and the previously-updated parities that are randomly stored; And (d4) writing the new parity calculated in step (d3).

이와 같은 목적을 달성하기 위한 본 발명의 또 다른 측면은 청구항 1 내지 3의 어느 한 항에 기재된 로그 기반 패리티 갱신을 수행하는 SSD 배열에서의 블록 및 노드 결함을 복구하는 방법에 있어서, (a) 결함 데이터의 소속 스트라이프를 검색하는 단계; (b) 상기 단계 (a)의 결함 데이터의 종류를 구분하는 단계; 및 (c) 상기 단계 (b)의 종류에 따라 서로 다른 데이터를 읽은 후, 이 읽은 서로 다른 데이터를 XOR하여 새로운 데이터로 복구하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method for recovering a block and a node defect in an SSD array for performing log-based parity update according to any one of claims 1 to 3, Retrieving a belonging stripe of data; (b) classifying the type of defect data in the step (a); And (c) reading the different data according to the type of the step (b), and XORing the read different data to recover the new data.

바람직하게는 상기 단계 (b)의 결함 데이터의 종류는 패리티 로그, 새로운 데이터, 갱신 이전 데이터, 갱신 이전 패리티 중 어느 하나 인 것이다. Preferably, the type of defect data in step (b) is any one of a parity log, new data, pre-update data, and pre-update parity.

바람직하게는 상기 결함 데이터의 종류가 패리티 로그일 경우, 상기 단계 (c)의 서로 다른 데이터는 갱신 이후 데이터들과 순차적인 나머지 패리티 로그들인 것이다. Preferably, when the type of the defect data is a parity log, the different data in step (c) are the remaining parity logs sequentially with the data after the update.

바람직하게는 상기 결함 데이터의 종류가 새로운 데이터일 경우, 상기 단계 (c)의 서로 다른 데이터는 갱신 이전 데이터와 블록들에 순차적으로 배치되어 있는 패리티 로그들인 것이다. Preferably, when the type of the defect data is new data, the different data in step (c) are parity logs sequentially arranged in the data and blocks before the update.

바람직하게는 상기 결함 데이터의 종류가 갱신 이전 데이터인 경우, 상기 단계 (c)의 서로 다른 데이터는 랜덤하게 배치되어 있는 갱신 이전 상태의 패리티들과 오류가 발생한 갱신 이전 데이터 이외의 나머지 갱신 이전 데이터들인 것이다. Preferably, when the kind of the defect data is the data before the update, the different data of the step (c) are the data before the update, which are randomly arranged, will be.

바람직하게는 상기 결함 데이터의 종류가 갱신 이전 패리티인 경우에는 상기 단계 (c)의 서로 다른 데이터는 갱신 이전 데이터인 것이다. Preferably, when the type of the defect data is a parity before updating, the different data in step (c) are data before updating.

본 발명에 의하면, SSD를 장착한 노드들로 구성되는 대규모 클러스터에 패리티 기반 RAID 형태로 데이터를 배치하여 높은 신뢰성을 제공하는 효과가 있는데, 이는 패리티 갱신으로 인해 증가하는 쓰기 증폭 문제는 로그 기반 데이터 갱신 기술을 통해 크게 감소시키도록 하여 SSD 기반 클러스터의 성능을 향상시키고 수명을 연장시키는 효과가 있다. According to the present invention, there is an effect of providing high reliability by arranging data in a parity-based RAID form in a large cluster composed of nodes equipped with SSDs. This is because the problem of write amplification, Technology to improve the performance of SSD-based clusters and extend the lifetime.

또한 본 발명은 대규모 클러스터를 기반으로 운영되는 클라우드 컴퓨팅, 빅데이터 처리 및 분석, 인공 지능 및 IoT 분야에서 저장 공간 효율성을 높임으로써 높은 경제성을 가질 수 있는 효과가 있다. Also, the present invention has an effect of achieving high economical efficiency by enhancing storage space efficiency in the field of cloud computing, big data processing and analysis, artificial intelligence and IoT, which are operated on a large scale cluster.

도 1은 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템의 전체 구조를 개략적으로 나타낸 도면.
도 2는 본 발명에 다른 SSD 배열의 로그 기반 패리티 갱신 시스템을 이용하여 데이터 갱신 시 발생하는 패리티 갱신이 처리되는 호출 과정을 나타낸 도면.
도 3은 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템을 이용하여 패리티 합병 요청이 발생했을 경우 패리티 합병부의 구성이 호출되는 과정을 나타낸 도면.
도 4는 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템을 이용하여 SSD 배열의 데이터 블록과 패리티 블록이 갱신되는 과정을 나타낸 순서도.
도 5는 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템을 이용하여 결함 블록이 복구 되는 과정을 나타낸 순서도.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 schematically illustrates the overall structure of a log-based parity update system of an SSD arrangement according to the present invention; FIG.
FIG. 2 is a diagram illustrating a call process in which a parity update occurring during data update is processed using a log-based parity update system of an SSD array according to the present invention. FIG.
3 is a diagram illustrating a process in which a configuration of a parity merge unit is called when a parity merge request is generated using a log-based parity update system of the SSD array according to the present invention.
FIG. 4 is a flowchart illustrating a process of updating a data block and a parity block of an SSD array using a log-based parity update system of the SSD array according to the present invention.
FIG. 5 is a flowchart illustrating a process of recovering a defect block using a log-based parity update system of an SSD array according to the present invention; FIG.

이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, terms and words used in the present specification and claims should not be construed as limited to ordinary or dictionary terms, and the inventor should appropriately interpret the concepts of the terms appropriately It should be interpreted in accordance with the meaning and concept consistent with the technical idea of the present invention based on the principle that it can be defined. Therefore, the embodiments described in this specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention and do not represent all the technical ideas of the present invention. Therefore, It is to be understood that equivalents and modifications are possible.

도 1은 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템을 개략적으로 나타낸 도면이다. 도 1에 도시된 바와 같이 SSD 배열의 로그 기반 패리티 갱신 시스템은 SSD 기반 대규모 저장 시스템을 컨트롤하는 레이드(RAID) 컨트롤러(100)와, 사용자 입력부(도시되지 않음)에 의하여 이 레이드(RAID) 컨트롤러(100)로 입력되는 파일을 저장하는 SSD 배열(200)로 구성된다. 1 is a diagram schematically illustrating a log-based parity update system of an SSD array according to the present invention. 1, the log-based parity update system of the SSD array includes a RAID controller 100 for controlling an SSD-based large-scale storage system and a RAID controller (not shown) by a user input (not shown) And an SSD array 200 for storing a file input to the SSD 100.

일반적으로 레이드(RAID)는 여러 개의 디스크를 하나로 묶어 하나의 논리적 디스크로 작동하게 하는데, 하드웨어적인 방법과 소프트웨어적인 방법이 있다. 하드웨어적인 방법은 운영 체제에 이 디스크가 하나의 디스크처럼 보이게 하며, 소프트웨어적인 방법은 주로 운영체제 안에서 구현되며, 사용자에게 디스크를 하나의 디스크처럼 보이게 한다.In general, raid (RAID) is a hardware method and a software method in which several disks are grouped into a single logical disk. The hardware approach is to make the disk look like a disk to the operating system, the software method is mainly implemented in the operating system, and makes the disk look like a disk to the user.

한편 레이드(RAID)는 레벨로 나누는데 'RAID 0'은 패리티(오류 검출 기능)가 없는 스트라이핑된 세트가 적어도 2 개의 디스크로 구성되며,'RAID 1'은 패리티(오류 검출 기능)가 없는 미러링된 세트가 적어도 2 개의 디스크로 구성된다. 그리고'RAID 3 및 RAID 4'는 패리티가 단순 제공되어(dedicated) 스트라이핑된 세트가 적어도 3 개의 디스크로 구성되며 'RAID 5'는 패리티가 배분되는(distributed) 스트라이핑된 세트가 적어도 3 개의 디스크로 구성된다. 그리고 'RAID 6'은 패리티가 배분되는(distributed) 스트라이핑된 세트가 적어도 4개의 디스크로 구성된다.RAID 0 is a striped set with no parity, and RAID 1 is a mirrored set with no parity (error detection). Is composed of at least two discs. And 'RAID 3' and 'RAID 4' are provided with a simple parity. The striped set is composed of at least three disks. 'RAID 5' is a striped set in which parity is distributed. do. And 'RAID 6' is a striped set with distributed parity consisting of at least four disks.

상기 레이드(RAID) 컨트롤러(100)는, 파일 시스템으로부터 논리 주소를 입력받으며, 이 입력받은 논리 주소를 기반으로 데이터와 패리티를 분배하는 주소 관리부(110)와, 이 주소 관리부(110)로부터 전달되는 상기 논리 주소들로부터 스트라이프를 생성하는 스트라이프 관리부(120)와, 상기 스트라이프 관리부(120)로부터 전달되는 데이터의 삽입/삭제/갱신을 관리하는 데이터 관리부(130)와, 데이터 갱신에 따른 패리티의 갱신을 담당하는 패리티 관리부(140)를 포함한다. The RAID controller 100 includes an address management unit 110 for receiving a logical address from a file system and distributing data and parity based on the input logical address, A stripe management unit 120 for generating a stripe from the logical addresses; a data management unit 130 for managing insertion / deletion / update of data transmitted from the stripe management unit 120; And a parity management unit 140 in charge.

또한 패리티 관리부(140)는 데이터 갱신 요청이 있을 경우, 상기 데이터의 갱신이 발생하기 이전의 데이터와 이후 데이터의 변경값을 계산하는 패리티 로그 계산부(141)와, 데이터 관리부(130)와 상기 패리티 로그 계산부(141)에서 계산된 데이터의 변경값에 의하여 계산된 패리티 로그를 전달 받으며, 이 전달받은 패리티 로그를 상기 SSD 배열(200)에 저장하는 패리티 로깅부(142) 및 이 패리티 로깅부(142)에서 패리티 로그를 상기 SSD 배열(200)에 저장할 때, 상기 패리티 로그를 저장할 공간이 부족한 경우 패리티 합병을 처리하는 패리티 합병부(143)를 포함한다. The parity management unit 140 includes a parity log calculation unit 141 for calculating a change value of data before and after the data update when there is a data update request, A parity logger 142 for receiving a parity log calculated based on the change value of the data calculated by the log calculator 141 and storing the received parity log in the SSD array 200, 142 for storing the parity log in the SSD array 200, and a parity merge unit 143 for processing parity merge when the space for storing the parity log is insufficient.

SSD 배열(200)은 다수의 SSD를 포함하며, 이때 개별 SSD는 블록데이터를 저장하는 데이터 페이지, 패리티를 저장하는 패리티 페이지, 패리티 로그를 저장하는 패리티 로그 페이지로 구성된다. 또한 SSD의 블록은 페이지들의 집합으로 구성되며 본 발명에서는 예제의 단순화를 위해 하나의 블록이 2개의 페이지로 구성되도록 표기하며, 보통의 경우 하나의 블록은 64 또는 128개의 페이지로 구성된다. The SSD array 200 includes a plurality of SSDs. The individual SSDs include a data page for storing block data, a parity page for storing parity, and a parity log page for storing a parity log. In addition, the block of the SSD is formed of a set of pages. In the present invention, one block is composed of two pages for simplifying the example, and one block is usually composed of 64 or 128 pages.

도 2는 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템을 이용하여 데이터 갱신(update) 시에 발생하는 패리티의 갱신이 처리되는 호출 과정을 나타낸 도면이다. 데이터 갱신(update) 요청이 RAID 컨트롤러(100)로 들어오면 RAID 컨트롤러(100)의 주소 관리부(110)는 스트라이프 관리부(120)로 논리 주소들로 레이드(RAID) 레벨과 SSD 배열(200)의 개수에 따라 갱신이 요청된 스트라이프를 찾는다. 이후, 데이터 관리부(130)는 해당 스트라이프의 데이터를 갱신하고 패리티 갱신은 패리티 관리부(140)로 요청된다. 여기서 패리티 관리부(140)는 패리티 갱신을 위하여 패리티 로그 계산부(140)는 데이터가 변경된 부분을 계산하고 업데이트 명령부(300)로 계산된 패리티 로그를 전달한다. 이때 업데이트 명령부(300)는 RAID 컨트롤러(100)와 SSD 배열(200) 사이에 존재할 수 있다. 전달된 패리티 로그는 패리티 로깅부(142)를 통해 패리티 로그가 저장될 SSD 배열(200)에 전달되어 저장되며, 이때 만약 패리티 로그가 저장 될 SSD 배열(200)의 패리티 로그 영역이 부족한 경우는 패리티 합병부(143)로 패리티 로그가 전달된다. FIG. 2 is a diagram illustrating a call process in which updating of a parity occurring during data update using a log-based parity update system of the SSD array according to the present invention is processed. When a data update request is input to the RAID controller 100, the address management unit 110 of the RAID controller 100 stores the RAID level and the number of the SSD arrays 200 in logical addresses in the stripe management unit 120 And finds the stripe for which update is requested. Thereafter, the data management unit 130 updates the data of the corresponding stripe, and the parity management unit 140 requests the parity update. Here, in order to update the parity, the parity management unit 140 calculates the changed portion of the data and transmits the calculated parity log to the update command unit 300. [ At this time, the update command unit 300 may exist between the RAID controller 100 and the SSD array 200. If the parity log area of the SSD array 200 in which the parity log is to be stored is insufficient, the parity log is transferred to the SSD array 200 where the parity log is to be stored via the parity logging unit 142. At this time, And the parity log is transferred to the merge unit 143.

도 3은 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템을 이용하여 패리티 합병 요청이 발생했을 경우, 패리티 합병부(143)의 구성 모듈이 호출되는 과정을 나타낸 도면으로, 패리티 합병부(143)는 갱신 이전의 패리티들을 읽어 오는 갱신 이전 패리티 수집모듈(151)과, 패리티 합병의 대상이 되는 스트라이프를 선정하는 합병 대상 스트라이프 선정모듈(152)과, 갱신할 패리티의 패리티 로그를 수집하는 패리티 로그 수집 모듈(153)과, 수집된 갱신 이전 패리티와 수집된 패리티 로그를 XOR 연산하여 새로운 패리티를 계산하는 새로운 패리티 계산모듈(154)과, 갱신된 패리티 로그들을 비유효화하는 패리티 로그 비유효화모듈(155)과, 갱신 이전 패리티들을 비유효화 시키는 갱신 전 패리티 비유효화모듈(156)을 포함한다.FIG. 3 is a diagram illustrating a process of calling a configuration module of the parity merge unit 143 when a parity merge request is generated using the log-based parity update system of the SSD array according to the present invention. A pre-update parity collection module 151 that reads pre-update parities, a merge target stripe selection module 152 that selects a stripe to be a parity merge, a parity log collection module 152 that collects a parity log of a parity to be updated, A new parity calculation module 154 for calculating a new parity by XORing the collected pre-update parity and the collected parity log, a parity log ineffective module 155 for deactivating the updated parity logs, And a pre-update parity invalidation module 156 for deactivating pre-update parities.

도 3에 도시된 바와 같이 패리티 로그로 할당 해 놓은 공간이 가득 차서 패리티 합병이 요청되면, 갱신 이전 패리티 수집모듈(151)은 쌓여있는 패리티 로그들의 패리티 갱신이 발생하기 이전의 패리티들을 랜덤하게 읽고, 합병 대상 스트라이프 선정모듈(152)은 패리티 합병의 대상이 되는 스트라이프를 선정한다. 이후, 패리티 로그 수집모듈(153)이 쌓여있는 패리티 로그들을 읽어 갱신 이전 패리티들과 XOR 연산을 통해 새로운 패리티 계산모듈(154)에서 새롭게 생성되는 패리티들을 계산한다. 새로운 패리티가 SSD 배열(200)에 쓰이고 나면, 패리티 로그 비유효화모듈(155)은 합병이 수행된 패리티 로그들을 비유효화 하고, 갱신 전 패리티 비유효화모듈(156)은 갱신 되기 이전의 패리티들을 비유효화 처리하여 SSD 배열(200) 들에 가비지 컬렉션이 수행될 때 수거해 지워질 수 있도록 한다. 3, when the space allocated to the parity log is full and the parity merge is requested, the pre-update parity acquisition module 151 randomly reads the parities before the parity update of the accumulated parity logs, The merging target stripe selecting module 152 selects a stripe to be subjected to the parity merger. The parity log collection module 153 reads the parity logs accumulated in the parity log collection module 153 and calculates new parities generated in the new parity calculation module 154 through XOR operation with the parities before the update. When a new parity is written to the SSD array 200, the parity log invalidation module 155 deactivates the merged parity logs, and the pre-update parity invalidation module 156 invalidates the parities before being updated So that the SSD arrays 200 can be collected and erased when garbage collection is performed.

도 4는 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템을 이용하여 SSD 배열의 데이터 블록과 패리티 블록이 갱신되는 과정을 나타낸 순서도이다. 4 is a flowchart illustrating a process of updating a data block and a parity block of an SSD array using a log-based parity update system of the SSD array according to the present invention.

도 4에 도시된 바와 같이 호스트는 데이터 블록에 데이터 갱신을 요청한다(S110). As shown in FIG. 4, the host requests data update to the data block (S110).

이후 데이터 블록의 데이터 갱신이 요청되면(S110), 이 갱신 요청된 데이터가 속한 스트라이프를 검색한다(S111). 여기서 갱신 요청이 발생한 데이터 블록을 갱신 할 때에는, 해당 데이터가 소속되어 있는 스트라이프의 패리티를 함께 갱신해야 하기 때문에 데이터가 속한 스트라이프를 검색하는 것이다. When data update of the data block is requested (S110), the stripe to which the update requested data belongs is searched (S111). When updating the data block in which the update request is issued, the parity of the stripe to which the data belongs must be updated together, so that the stripe to which the data belongs is searched.

갱신 대상 데이터의 소속 스트라이프가 검색되면(S111), 갱신 이전 데이터와 갱신 데이터 간의 변경된 부분을 일련의 로그 연산의 통해 패리티 로그를 계산한다(S112).When a belonging stripe of data to be updated is found (S111), a parity log is calculated through a series of log operations between the updated data and the updated data (S112).

이어서, 패리티 로그가 계산되면(S112), 패리티 로그 쓰기를 요청한다(S113).Then, when the parity log is calculated (S112), the parity log writing is requested (S113).

이때 패리티 로그 쓰기 요청(S113)이 되면, 패리티 로그가 쓰이는 패리티 로그 영역이 남아 있는지를 판단한다(S114).At this time, when the parity log write request is received (S113), it is determined whether a parity log area used for the parity log remains (S114).

판단 결과(S114), 패리티 로그 영역이 남아 있으면, 패리티 로그를 남아 있는 영역에 순차적으로 쓴다(S115).If the parity log area remains, the parity log is sequentially written to the remaining area (S115).

반면, 판단 결과(S114) 패리티 로그 영역이 남아 있지 않을 경우, 패리티 로그 영역에 순차적으로 저장되어 있는 패리티 합병을 수행해야 한다. 이는 갱신되기 이전의 패리티들과 순차적으로 저장되어 있는 패리티 로그들을 합병하여 패리티들을 갱신한 후, 패리티 로그 영역을 모두 비운 후 현재 계산된 패리티 로그를 저장할 수 있는 공간을 확보해야 하기 때문이다. 이를 위하여 패리티 합병을 요청한다(S116).On the other hand, if the parity log area does not remain as a result of the determination (S114), parity merging stored sequentially in the parity log area should be performed. This is because, after merging the parities before the update and the parity logs sequentially stored, the parities are updated, and the space for storing the currently calculated parity log is secured after all the parity log areas are cleared. To do this, the parity merge is requested (S116).

이와 같이 패리티 합병이 요청되면(S116), 기존에 순차적으로 저장 되어 있는 다수의 패리티 로그들을 읽고(S117), 랜덤하게 저장되어 있는 갱신되기 이전의 다수의 패리티들을 읽은 후(S118), 앞서 단계 (S117)에서 읽은 순차적으로 저장 되어 있는 다수의 패리티 로그들과 단계 (S118)에서 읽은 갱신되기 이전의 패리티 값들을 XOR하여 새로운 패리티를 계산한다(S119).When the parity merge is requested (S116), a plurality of parity logs stored in sequence are sequentially read (S117), a plurality of parities before being updated are read (S118) S117) and the new parity values read in step S118 are computed by XORing the new parity values (S119).

패리티들이 새롭게 갱신되면 갱신된 패리티들을 해당 SSD 배열에 쓴다(S120). 이후 갱신된 패리티들의 패리티 로그들을 비유효화 하고(S121), 갱신된 패리티들이 소속 되어 있는 스트라이프의 갱신 이전 데이터들을 비유효화 한다(S122). When the parities are newly updated, the updated parities are written into the corresponding SSD array (S120). Thereafter, the parity logs of the updated parities are deactivated (S121), and the data before the update of the stripes to which the updated parities belong belongs (S122).

도 5는 본 발명에 따른 SSD 배열의 로그 기반 패리티 갱신 시스템을 이용하여 결함 블록이 디코드 되는 과정을 나타낸 순서도로, 결함이 발생하는 경우는 크게 네 가지로, 패리티 로그 결함이 발생하는 경우, 새로운 데이터에 결함이 발생하는 경우, 갱신 이전 데이터에 결함이 발생하는 경우, 갱신 이전 패리티에 결함이 발생하는 경우로 나뉜다. FIG. 5 is a flowchart illustrating a process of decoding a defect block using a log-based parity update system of the SSD array according to the present invention. In the case where a defect occurs, there are four cases. When a parity log defect occurs, A case where a defect occurs in the data before the update, and a case where a defect occurs in the parity before the update.

시스템에서 결함 발생이 감지되면, 가장 먼저 결함이 발생한 블록의 소속 스트라이프를 검색하고(S210), 이후 결함 데이터 종류 구분을 요청한다(S221).If the defect is detected in the system, the stripe belonging to the block in which the defect occurs first is searched (S210), and then the defect data type classification is requested (S221).

만약 결함 데이터의 종류가 패리티 로그이면(S222), 갱신 이후 데이터(a)들을 읽고(S223), 나머지 패리티 로그(b)들을 순차 읽기(S224) 한 후, 단계 (S222)와 단계 (S223)에서 읽은 데이터(a, b)를 XOR 하여 복구 데이터를 쓴다(S280).If the type of the defective data is a parity log (S222), the data a after the update is read (S223), the remaining parity logs (b) are read out sequentially (S224), and then, in steps S222 and S223 The read data (a, b) is XORed and the recovery data is written (S280).

반면, 결함 데이터의 종류가 새로운 데이터인 경우(S232). 갱신 이전 데이터들(a)을 읽고(S233), 블록들에 순차적으로 배치되어 있는 패리티 로그(b)를 읽은(S234) 후, 단계 (S270)에서 단계 (S233)과 단계 (S234)에서 읽은 데이터(a, b)를 XOR하여 복구한 데이터를 쓰고(S280), 데이터 결함 프로세스를 종료한다. On the other hand, if the type of defect data is new data (S232). The data read in steps S233 and S234 in step S270 after reading the data a before update S233 and reading the parity log b sequentially arranged on the blocks S234, (a, b) and writes the restored data (S280), and terminates the data defect process.

그리고 결함 데이터의 종류가 갱신 이전 데이터인 경우(S242), 랜덤하게 배치되어 있는 갱신 이전 상태의 패리티(a)를 읽는다(S243). 이후 랜덤하게 배치되어 있는 오류가 발생한 갱신 이전 데이터 이외의 나머지 갱신 이전 데이터들(b)을 읽고(S244), 단계 (S270)에서 단계 (S243)과 단계 (S244)에서 읽은 데이터(a, b)를 XOR 하여 복구 데이터를 쓰고(S280) 데이터 결함 프로세서를 종료한다. If the type of the defect data is the data before the update (S242), the parity (a) in the pre-update state that is randomly arranged is read (S243). The data (a, b) read in step S243 and step S244 in step S270 are read out in step S244, And the recovery data is written (S280), and the data defect processor is terminated.

마지막으로 결함 데이터의 종류가 갱신 이전 패리티인 경우(S252)에는, 랜덤하게 저장되어 있는 갱신 이전 데이터들(a)을 랜덤하게 읽은(S253) 후, 이 랜덤하게 읽은 갱신 이전 데이터(a)들을 XOR 하여(S270) 결함이 발생한 갱신 이전 패리티를 복구하고, 복구된 갱신 이전 패리티를 SSD에 쓰므로 데이터 결함 복구 프로세서를 종료한다. Finally, if the type of the defect data is the parity before update (S252), the randomly stored pre-update data (a) is randomly read (S253) (S270), restores the parity before the update in which the defect occurred, and writes the recovered parity in the SSD to terminate the data defect repair processor.

이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. It will be understood that various modifications and changes may be made without departing from the scope of the appended claims.

100: RAID 컨트롤러
110: 주소 관리부
120: 스트라이프 관리부
130: 데이터 관리부
140: 패리티 관리부
141: 패리티 로그 계산부
142: 패리티 로깅부
143: 패리티 합병부
100: RAID controller
110: address management unit
120: Stripe management section
130:
140: parity management unit
141: parity log calculation unit
142: Parity Logging Unit
143: Parity merger department

Claims (12)

SSD 기반 대규모 저장 시스템을 컨트롤하는 레이드(RAID) 컨트롤러; 및
상기 레이드(RAID) 컨트롤러로부터 입력되는 파일을 저장하는 SSD 배열
을 포함하며,
상기 레이드(RAID) 컨트롤러는,
상기 입력되는 파일이 상기 SSD 배열에 저장되도록 논리 주소를 기반으로 하여 데이터를 분배하는 주소 관리부;
상기 주소 관리부로부터 전달되는 상기 논리 주소들로 스트라이프를 생성하는 스트라이프 관리부;
상기 스트라이프 관리부로부터 전달되는 데이터의 삽입/삭제/갱신을 관리하는 데이터 관리부; 및
상기 스트라이프 관리부로부터 전달되는 패리티를 관리하는 패리티 관리부
를 구비하는 SSD 배열의 로그 기반 패리티 갱신 시스템.
RAID controllers that control SSD-based mass storage systems; And
An SSD array for storing a file input from the RAID controller
/ RTI >
The RAID controller includes:
An address manager for distributing data based on a logical address so that the input file is stored in the SSD array;
A stripe management unit for generating a stripe by the logical addresses transmitted from the address management unit;
A data management unit managing insertion / deletion / update of data transmitted from the stripe management unit; And
A parity management unit for managing parity transmitted from the stripe management unit,
Based parity update of the SSD array.
청구항 1에 있어서,
상기 패리티 관리부는,
데이터 갱신 요청이 있을 경우 상기 데이터 갱신이 발생하기 이전의 데이터와 이후 데이터의 변경값을 계산하는 패리티 로그 계산부;
상기 데이터 관리부와 상기 패리티 로그 계산부에서 계산된 데이터의 변경값에 의하여 계산된 패리티 로그를 전달 받으며, 이 전달받은 패리티 로그를 상기 SSD 배열에 저장하는 패리티 로깅부; 및
상기 패리티 로깅부에서 상기 패리티 로그를 상기 SSD 배열에 저장할 때, 상기 패리티 로그가 저장될 공간이 부족한 경우 패리티 합병을 처리하는 패리티 합병부
를 포함하는 것을 특징으로 하는 SSD 배열의 로그 기반 패리티 갱신 시스템.
The method according to claim 1,
The parity management unit,
A parity log calculator for calculating a change value of data before and after the data update occurs when there is a data update request;
A parity logger for receiving the parity log calculated by the data change unit and the parity log computation unit and storing the received parity log in the SSD array; And
When the parity log is stored in the SSD array in the parity logging unit, when parity log storage space is insufficient, a parity merge unit
Based parity update system of an SSD array.
청구항 2에 있어서,
상기 패리티 합병부는
갱신 이전 패리티들을 랜덤하게 읽어 수집하는 갱신 이전 패리티 수집모듈;
상기 갱신 이전 패리티 수집모듈을 통해 수집된 갱신 이전 패리티들이 소속된 스트라이프를 선정하는 합병 대상 스트라이프 선정모듈;
합병할 패리티들을 랜덤하게 읽는 기능을 하는 패리티 로그 수집모듈;
상기 랜덤하게 읽은 갱신 이전 패리티들과 패리티 로그들로 새로운 패리티를 계산하는 새로운 패리티 계산모듈;
새로운 패리티가 생성된 후, 패리티 합병에 사용된 패리티 로그들을 비유효화 처리하는 패리티 로그 비유효화모듈; 및
새로운 패리티가 생성된 후, 갱신 이전 패리티들을 비유효화 처리하는 갱신 전 패리티 비유효화모듈
을 포함하는 것을 특징으로 하는 SSD 배열의 로그 기반 패리티 갱신 시스템.
The method of claim 2,
The parity merge part
A pre-update parity collection module for randomly reading and collecting the parities before update;
A merging target stripe selecting module for selecting a stripe belonging to the parity before updating collected through the parity gathering module before the update;
A parity log collection module for randomly reading the merged parities;
A new parity calculation module for calculating a new parity with the randomly read old parity and parity logs;
A parity log invalidation module for invalidating parity logs used for parity merging after a new parity is generated; And
After the new parity is generated, the pre-update parity non-validation module
Wherein the SSD array comprises a plurality of SSDs.
청구항 1 내지 3의 어느 한 항에 기재된 시스템을 통한 SSD 배열의 로그 기반 패리티 갱신 방법에 있어서,
(a) 데이터 갱신을 요청하는 단계;
(b) 상기 단계 (a)에서 갱신 요청된 데이터가 속한 스트라이프를 검색한 후, 패리티 로그를 계산하는 단계;
(c) 상기 단계 (b)에서 계산된 패리티 로그가 쓰여질 패리티 로그 영역이 있는지를 판단하는 단계; 및
(d) 상기 단계 (c)의 판단결과, 패리티 로그 영역이 없을 경우, 패리티 합병을 수행하는 단계
를 포함하는 SSD 배열의 로그 기반 패리티 갱신 방법.
A method for updating a log-based parity of an SSD array through a system as claimed in any one of claims 1 to 3,
(a) requesting data update;
(b) calculating a parity log after searching for the stripe to which the data requested to be updated in the step (a) belongs;
(c) determining whether there is a parity log area to be written in the parity log calculated in the step (b); And
(d) if parity log area is not present as a result of the determination in step (c), performing parity merge
Based parity update of the SSD array.
청구항 4에 있어서,
상기 단계 (b)의 패리티 로그 계산은 갱신 이전 데이터와 갱신 데이터 간의 변경된 부분을 로그 연산하여 계산하는 것
을 특징으로 하는 SSD 배열의 로그 기반 패리티 갱신 방법.
The method of claim 4,
The parity log calculation in the step (b) is performed by logarithmically computing the changed part between the data before update and the update data
Based parity update of the SSD array.
청구항 4에 있어서,
상기 단계 (d)의 패리티 합병을 수행하는 단계는,
(d1) 패리티 합병을 요청하는 단계;
(d2) 순차적으로 저장되어 있는 패리티 로그와 랜덤하게 저장되어 있는 갱신되기 이전의 패리티를 읽는 단계;
(d3) 상기 단계 (d2)에서 읽은 순차적으로 저장되어 있는 패리티 로그와 랜덤하게 저장되어 있는 갱신되기 이전의 패리티들을 XOR하여 새로운 패리티를 계산하는 단계; 및,
(d4) 상기 단계 (d3)에서 계산된 새로운 패리티를 쓰는 단계
를 포함하는 것을 특징으로 하는 SSD 배열의 로그 기반 패리티 갱신 방법.
The method of claim 4,
The performing the parity merge in the step (d)
(d1) requesting parity merge;
(d2) reading the parity previously stored in the randomly stored parity log;
(d3) calculating a new parity by XORing the sequentially stored parity logs read in step (d2) and the previously-updated parities that are randomly stored; And
(d4) writing the new parity calculated in the step (d3)
Based parity update of the SSD array.
청구항 1 내지 3의 어느 한 항에 기재된 로그 기반 패리티 갱신을 수행하는 SSD 배열에서의 블록 및 노드 결함을 복구하는 방법에 있어서,
(a) 결함 데이터의 소속 스트라이프를 검색하는 단계;
(b) 상기 단계 (a)의 결함 데이터의 종류를 구분하는 단계; 및
(c) 상기 단계 (b)의 종류에 따라 서로 다른 데이터를 읽은 후, 이 읽은 서로 다른 데이터를 XOR하여 새로운 데이터로 복구하는 단계
를 포함하는 SSD 배열의 로그 기반 패리티 갱신을 이용한 블록 및 노드 결함을 복구하는 방법.
A method for recovering a block and a node defect in an SSD array performing log-based parity update according to any one of claims 1 to 3,
(a) searching for a belonging stripe of defect data;
(b) classifying the type of defect data in the step (a); And
(c) reading different data according to the type of the step (b), and XORing the read different data to recover new data
A method for recovering a block and a node defect using log-based parity update of an SSD array comprising:
청구항 7에 있어서,
상기 단계 (b)의 결함 데이터의 종류는 패리티 로그, 새로운 데이터, 갱신 이전 데이터, 갱신 이전 패리티 중 어느 하나 인 것
을 특징으로 하는 SSD 배열의 로그 기반 패리티 갱신을 이용한 블록 및 노드 결함을 복구하는 방법.
The method of claim 7,
The type of the defect data in the step (b) is any one of a parity log, new data, pre-update data, and pre-update parity
A method for recovering block and node defects using log-based parity update of an SSD array.
청구항 7에 있어서,
상기 결함 데이터의 종류가 패리티 로그일 경우, 상기 단계 (c)의 서로 다른 데이터는 갱신 이후 데이터들과 순차적인 나머지 패리티 로그들인 것
을 특징으로 하는 SSD 배열의 로그 기반 패리티 갱신을 이용한 블록 및 노드 결함을 복구하는 방법.
The method of claim 7,
If the type of the defect data is a parity log, the different data in step (c) are the remaining parity logs sequentially with the data after the update
A method for recovering block and node defects using log-based parity update of an SSD array.
청구항 7에 있어서,
상기 결함 데이터의 종류가 새로운 데이터일 경우, 상기 단계 (c)의 서로 다른 데이터는 갱신 이전 데이터와 블록들에 순차적으로 배치되어 있는 패리티 로그들인 것
을 특징으로 하는 SSD 배열의 로그 기반 패리티 갱신을 이용한 블록 및 노드 결함을 복구하는 방법.
The method of claim 7,
If the type of the defect data is new data, the different data in the step (c) are parity logs sequentially arranged in the data and blocks before the update
A method for recovering block and node defects using log-based parity update of an SSD array.
청구항 7에 있어서,
상기 결함 데이터의 종류가 갱신 이전 데이터인 경우, 상기 단계 (c)의 서로 다른 데이터는 랜덤하게 배치되어 있는 갱신 이전 상태의 패리티들과 오류가 발생한 갱신 이전 데이터 이외의 나머지 갱신 이전 데이터들인 것
을 특징으로 하는 SSD 배열의 로그 기반 패리티 갱신을 이용한 블록 및 노드 결함을 복구하는 방법.
The method of claim 7,
If the type of the defect data is the data before the update, the different data in the step (c) are the data before the update other than the parity in the pre-update state and the data before the update in which the error occurred.
A method for recovering block and node defects using log-based parity update of an SSD array.
청구항 7에 있어서,
상기 결함 데이터의 종류가 갱신 이전 패리티인 경우에는 상기 단계 (c)의 서로 다른 데이터는 갱신 이전 데이터인 것
을 특징으로 하는 SSD 배열의 로그 기반 패리티 갱신을 이용한 블록 및 노드 결함을 복구하는 방법.











The method of claim 7,
And if the type of the defect data is a parity before updating, the different data in the step (c)
A method for recovering block and node defects using log-based parity update of an SSD array.











KR1020160170422A 2016-12-14 2016-12-14 System and method for log-based parity update of SSD array and to defect block and node failures recovery method using the same KR101986579B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160170422A KR101986579B1 (en) 2016-12-14 2016-12-14 System and method for log-based parity update of SSD array and to defect block and node failures recovery method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160170422A KR101986579B1 (en) 2016-12-14 2016-12-14 System and method for log-based parity update of SSD array and to defect block and node failures recovery method using the same

Publications (2)

Publication Number Publication Date
KR20180069176A true KR20180069176A (en) 2018-06-25
KR101986579B1 KR101986579B1 (en) 2019-10-01

Family

ID=62805859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160170422A KR101986579B1 (en) 2016-12-14 2016-12-14 System and method for log-based parity update of SSD array and to defect block and node failures recovery method using the same

Country Status (1)

Country Link
KR (1) KR101986579B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115793985A (en) * 2023-01-09 2023-03-14 苏州浪潮智能科技有限公司 Safe storage method, device, equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030034577A (en) * 2001-10-26 2003-05-09 한국전자통신연구원 Stripping system, mapping and processing method thereof
KR20130092482A (en) * 2012-02-09 2013-08-20 홍익대학교 산학협력단 Efficient raid scheme for reliable ssd
JP2014041645A (en) * 2008-02-12 2014-03-06 Netapp Inc Hybrid medium storage system architecture
KR20160058953A (en) * 2013-09-27 2016-05-25 인하대학교 산학협력단 Deduplication of parity data in ssd based raid systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030034577A (en) * 2001-10-26 2003-05-09 한국전자통신연구원 Stripping system, mapping and processing method thereof
JP2014041645A (en) * 2008-02-12 2014-03-06 Netapp Inc Hybrid medium storage system architecture
KR20130092482A (en) * 2012-02-09 2013-08-20 홍익대학교 산학협력단 Efficient raid scheme for reliable ssd
KR101445025B1 (en) 2012-02-09 2014-09-26 서울시립대학교 산학협력단 Efficient raid scheme for reliable ssd
KR20160058953A (en) * 2013-09-27 2016-05-25 인하대학교 산학협력단 Deduplication of parity data in ssd based raid systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115793985A (en) * 2023-01-09 2023-03-14 苏州浪潮智能科技有限公司 Safe storage method, device, equipment and storage medium

Also Published As

Publication number Publication date
KR101986579B1 (en) 2019-10-01

Similar Documents

Publication Publication Date Title
US10042853B2 (en) Flash optimized, log-structured layer of a file system
US10102150B1 (en) Adaptive smart data cache eviction
US9710317B2 (en) Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9946616B2 (en) Storage apparatus
US8880787B1 (en) Extent metadata update logging and checkpointing
US20150212752A1 (en) Storage system redundant array of solid state disk array
US9229870B1 (en) Managing cache systems of storage systems
US10740187B1 (en) Systems and methods of managing and creating snapshots in a cache-based storage system
US11347725B2 (en) Efficient handling of highly amortized metadata page updates in storage clusters with delta log-based architectures
US10664397B2 (en) Cache recovery method in a distributed storage system
US20160004644A1 (en) Storage Controller and Method for Managing Modified Data Flush Operations From a Cache
US9158478B2 (en) Storage system and storage control method
CN111124258B (en) Data storage method, device and equipment of full flash memory array and readable storage medium
Chan et al. Elastic parity logging for SSD RAID arrays: Design, analysis, and implementation
US20120011319A1 (en) Mass storage system and method of operating thereof
US10929066B1 (en) User stream aware file systems with user stream detection
Li et al. Elastic parity logging for SSD RAID arrays
US10474587B1 (en) Smart weighted container data cache eviction
KR101986579B1 (en) System and method for log-based parity update of SSD array and to defect block and node failures recovery method using the same
CN104205097A (en) De-duplicate method device and system
US10664268B2 (en) Data storage optimization using replication statistics to automatically generate NVMe stream identifiers
CN110737395B (en) I/O management method, electronic device, and computer-readable storage medium
US11592988B2 (en) Utilizing a hybrid tier which mixes solid state device storage and hard disk drive storage
CN116933250A (en) Method and system for protecting data from Lesu software attack
US10769020B2 (en) Sharing private space among data storage system data rebuild and data deduplication components to minimize private space overhead

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right