KR101716305B1 - 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법 - Google Patents

레이드 6 시스템 및 그것을 이용한 데이터 복호 방법 Download PDF

Info

Publication number
KR101716305B1
KR101716305B1 KR1020160076665A KR20160076665A KR101716305B1 KR 101716305 B1 KR101716305 B1 KR 101716305B1 KR 1020160076665 A KR1020160076665 A KR 1020160076665A KR 20160076665 A KR20160076665 A KR 20160076665A KR 101716305 B1 KR101716305 B1 KR 101716305B1
Authority
KR
South Korea
Prior art keywords
decoding
raid
matrix
ecc
data
Prior art date
Application number
KR1020160076665A
Other languages
English (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 KR1020160076665A priority Critical patent/KR101716305B1/ko
Application granted granted Critical
Publication of KR101716305B1 publication Critical patent/KR101716305B1/ko

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/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법에 관한 것이다. 본 발명에 따르면, 복수의 디스크를 가지는 레이드(RAID) 시스템을 이용한 데이터 복구 방법에 있어서, 에러가 발생한 적어도 하나의 상기 디스크에 대해 에러 정정을 위한 ECC(Error Correcting Code) 디코딩을 수행하는 단계와, 상기 ECC 디코딩 이후 복구에 실패한 대상 디스크가 2개 이하 존재할 경우 기 설정된 P 및 Q 행렬 방정식을 사용하는 레이드 6 디코딩을 수행하여 해당 디스크를 복구하는 단계와, 상기 대상 디스크가 3개 이상 존재할 경우 상기 P 및 Q 행렬 방정식을 통합하여 생성한 단일 행렬 방정식 내의 검사 행렬을 이용하여 신뢰 전파(Belif Propagation) 디코딩을 수행하는 단계, 및 상기 신뢰 전파 디코딩에 의해 복호화된 상기 대상 디스크에 대해 상기 ECC 디코딩을 재수행하는 단계를 포함하는 레이드 6 시스템을 이용한 데이터 복구 방법을 제공한다.
본 발명에 따르면, 저가의 RAID 기법으로 높은 신뢰성을 확보할 수 있으며 패리티 오버헤드의 추가 없이 디코딩 실패율을 낮출 수 있으며 SSD(Solid State Driver)에 적용 시 SSD의 기대 수명을 확장할 수 있는 이점이 있다.

Description

레이드 6 시스템 및 그것을 이용한 데이터 복호 방법{RAID 6 system and data decoding method using thereof}
본 발명은 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법에 관한 것으로서, 보다 상세하게는 높은 신뢰성을 확보할 수 있는 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법에 관한 것이다.
데이터 신뢰성이 중요한 스토리지 시스템(Storage System)은 강력한 ECC(Error Correcting Code; 오류정정부호) 기법뿐만 아니라 RAID(Redundant Array of Independent Disks; 레이드) 기법을 적용한다. 최근 기업용 스토리지나 데이터 센터의 SSD(Solid State Driver) 컨트롤러에도 레이드 시스템이 적용되어 고신뢰성의 저장 장치로 활용된다.
레이드 기법은 데이터를 여러 대의 디스크에 저장함에 따라 입출력 작업이 균형을 이루며 겹치게 되어 전체적인 성능이 개선된다. 의료 및 기타 과학분야의 사진 등 대형 레코드가 저장된 데이터 센터 스토리지는 기존의 단순 RAID 기법의 복호 신호처리만으로 충분한 데이터 신뢰성을 갖지 못한다.
그러므로 복소의 레이드 기법을 적용하거나 고가의 높은 성능의 레이드 기법을 채택하고 있다. 하지만 이 경우 연산의 복잡도가 높아지고 비용이 고가인 문제점이 있다.
본 발명의 배경이 되는 기술은 한국공개특허 제1998-047273호(1998.09.15 공개)에 개시되어 있다.
본 발명은 높은 신뢰성을 확보할 수 있는 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법을 제공하는데 목적이 있다.
본 발명은, 복수의 디스크를 가지는 레이드 6(RAID 6) 시스템을 이용한 데이터 복구 방법에 있어서, 에러가 발생한 적어도 하나의 상기 디스크에 대해 에러 정정을 위한 ECC(Error Correcting Code) 디코딩을 수행하는 단계와, 상기 ECC 디코딩 이후 복구에 실패한 대상 디스크가 2개 이하 존재할 경우 기 설정된 P 및 Q 행렬 방정식을 사용하는 레이드 6 디코딩을 수행하여 해당 디스크를 복구하는 단계와, 상기 대상 디스크가 3개 이상 존재할 경우 상기 P 및 Q 행렬 방정식을 통합하여 생성한 단일 행렬 방정식 내의 검사 행렬을 이용하여 신뢰 전파(Belif Propagation) 디코딩을 수행하는 단계, 및 상기 신뢰 전파 디코딩에 의해 복호화된 상기 대상 디스크에 대해 상기 ECC 디코딩을 재수행하는 단계를 포함하는 레이드 6 시스템을 이용한 데이터 복구 방법을 제공한다.
또한, 상기 기 설정된 P 및 Q 행렬 방정식은 아래의 수학식으로 정의될 수 있다.
Figure 112016059256648-pat00001
여기서, Di = [di ,0, di ,1, …, di ,m-1]T로서, m개의 이진 데이터로 된 i번째 데이터 블록(i=0,1,…,n-1), n은 데이터 블록의 개수, gi는 유한체 GF(2m)에 의해 생성되는 계수, P 및 Q는 m개의 이진 데이터로 된 P 패리티 블록 및 Q 패리티 블록을 나타낸다.
여기서, 상기 레이드 6 시스템을 이용한 데이터 복구 방법은, 상기 ECC 디코딩을 재수행한 결과 복구에 실패한 디스크가 2개 이하로 감소한 경우 상기 레이드 6 디코딩을 수행하여 해당 디스크를 복구하는 단계를 더 포함할 수 있다.
또한, 상기 단일 행렬 방정식은 아래의 수학식으로 정의될 수 있다.
Figure 112016059256648-pat00002
.
여기서, I는 m×m 크기의 단위행렬, 0은 m×m 크기의 영행렬, Gi는 gi에 대응하는 m×m 크기의 행렬을 나타낸다.
그리고, 본 발명은, 복수의 디스크를 가지는 레이드 6(RAID 6) 시스템에 있어서, 에러가 발생한 적어도 하나의 상기 디스크에 대해 에러 정정을 위한 ECC(Error Correcting Code) 디코딩을 수행하는 제1 디코딩부와, 상기 ECC 디코딩 이후 복구에 실패한 대상 디스크가 2개 이하 존재할 경우 기 설정된 P 및 Q 행렬 방정식을 사용하는 레이드 6 디코딩을 수행하여 해당 디스크를 복구하는 제2 디코딩부와, 상기 대상 디스크가 3개 이상 존재할 경우 상기 P 및 Q 행렬 방정식을 통합하여 생성한 단일 행렬 방정식 내의 검사 행렬을 이용하여 신뢰 전파(Belif Propagation) 디코딩을 수행하는 제3 디코딩부, 및 상기 제1 내지 제3 디코딩부의 동작을 제어하고, 상기 ECC 디코딩 이후의 복구 여부를 판단하는 제어부를 포함하며, 상기 제1 디코딩부는, 상기 신뢰 전파 디코딩에 의해 복호화된 상기 대상 디스크에 대해 상기 ECC 디코딩을 재수행하는 레이드 6 시스템을 제공한다.
또한, 기 설정된 P 및 Q 행렬 방정식은 아래의 수학식으로 정의될 수 있다.
Figure 112016059256648-pat00003
여기서, Di = [di ,0, di ,1, …, di ,m-1]T로서, m개의 이진 데이터로 된 i번째 데이터 블록(i=0,1,…,n-1), n은 데이터 블록의 개수, gi는 유한체 GF(2m)에 의해 생성되는 계수, P 및 Q는 m개의 이진 데이터로 된 P 패리티 블록 및 Q 패리티 블록을 나타낸다.
또한, 상기 제2 디코딩부는, 상기 ECC 디코딩을 재수행한 결과 복구에 실패한 디스크가 2개 이하로 감소한 경우 상기 레이드 6 디코딩을 수행하여 해당 디스크를 복구할 수 있다.
본 발명에 따른 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법에 따르면, 저가의 RAID 기법으로 높은 신뢰성을 확보할 수 있으며 패리티 오버헤드의 추가 없이 디코딩 실패율을 낮출 수 있으며 SSD(Solid State Driver)에 적용 시 SSD의 기대 수명을 확장할 수 있는 이점이 있다.
도 1은 레이드 6 시스템의 저장 방식을 설명하는 도면이다.
도 2는 본 발명의 실시예에 따른 레이드 6 시스템의 구성을 나타낸 도면이다.
도 3은 도 1의 시스템을 이용한 데이터 복호 방법을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 복호 방법과 기존의 레이드 6 복호 방법 간의 성능을 비교한 도면이다.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
본 발명은 저가로 구현 가능하고 높은 신뢰성을 확보할 수 있는 레이드(RAID) 6 시스템 및 그것을 이용한 데이터 복호 방법을 제안한다.
일반적으로 레이드 시스템은 복수의 디스크를 하나의 가상 디스크로 구성하여 데이터를 분산 저장하고 대용량 저장 장치를 구축할 수 있다. 레이드 시스템은 복구 기능을 가지며 복구 방식 등에 따라 여러 가지 레벨로 분류된다.
그 중에서 레이드 5 시스템은 하나의 여분 디스크를 구비하여 한 개의 디스크의 오류를 복구할 수 있으며, 레이드 6 시스템은 두 개의 여분 디스크를 사용하여 최대 두 개의 디스크까지 복구할 수 있다. 다만 오류가 발생한 디스크가 3개 이상일 때는 복구가 불가능하다. 레이드 6 시스템은 두 개의 패리티(P, Q)를 사용하며 소위 P+Q 중복(여분) 기법으로도 불린다.
본 발명의 상세한 설명에 앞서 레이드 6 시스템의 기본 구조를 설명한다.
도 1은 레이드 6 시스템의 저장 방식을 설명하는 도면이다. 이러한 도 1은 레이드 6 시스템의 데이터 및 패리티 저장 구조를 나타낸다. 세로축은 스트라입(stripe) 넘버이고, 가로축은 디스크(disk) 넘버를 나타낸다.
도 1에 도시된 것과 같이 레이드 6 시스템은 각 스트라입 당 n개의 데이터 블록과 2개의 패리티 블록을 포함한다. 이러한 각각의 블록은 전체 n+2 개의 디스크에 분산 저장된다.
도 1은 n = 5인 예로서, 7개(n+2 개)의 디스크를 가지는 레이드 6 시스템에서, 각 스트라입마다 5개(n개)의 데이터 블록(D0~D4)과 2개의 패리티 블록(P,Q)을 디스크에 분산 저장한 것을 나타낸다.
간단한 예로서, 스트라입 0의 경우 D(0,0), D(0,1), D(0,2), D(0,3), D(0,4), P(0), Q(0)를 포함하고, 스트라입 1의 경우 D(1,0), D(1,1), D(1,2), D(1,3), P(1), Q(1), D(1,4)를 포함한다. 여기서, D(j,i)는 j번째 스트라입에 포함된 i번째 데이터 블록(i=0,1,…,n-1)을 나타내고, P(j)와 Q(j)는 j번째 스트라입에 포함된 P 패리티 블록과 Q 패리티 블록을 나타낸다.
이때, 스트라입 인덱스 j를 생략하여 표현하면, 각 스트라입 별 저장되는 데이터 블록은 모두 Di(i=0,1,…,n-1)의 형태로 간단히 표현될 수 있고, 패리티 블록은 P, Q의 형태로 간단히 표현될 수 있다.
이하에서는 설명의 편의상 n개의 데이터 블록은 Di(i=0,1,…,n-1)로 명명하고, P와 Q 패리티 블록은 각각 P, Q로 명명하여 설명한다. 여기서 각각의 블록은 m개의 이진 데이터로 구성된다.
일반적으로 레이드 6 시스템은 디스크에 오류 발생 시 복구를 위한 관계 식으로 아래의 수학식 1에 개시된 P 및 Q 행렬 방정식을 사용한다. 수학식 1의 구성은 기 공지된 것에 해당한다.
Figure 112016059256648-pat00004
수학식 1에서, Di = [di ,0, di ,1, …, di ,m-1]T로서, m개의 이진 데이터로 된 i번째 데이터 블록(i=0,1,…,n-1)을 나타내고, n은 데이터 블록의 개수이며, gi는 유한체 GF(2m)에 의해 생성되는 계수이고, P 및 Q는 m개의 이진 데이터로 된 P 패리티 블록 및 Q 패리티 블록을 각각 나타낸다. GF는 Galois Field를 나타낸다.
물론
Figure 112016059256648-pat00005
는 XOR 연산을 나타낸다. 도 1의 예시의 경우 P = D0
Figure 112016059256648-pat00006
D1
Figure 112016059256648-pat00007
D2
Figure 112016059256648-pat00008
D3
Figure 112016059256648-pat00009
D4 로 정의할 수 있고, Q = gOD0
Figure 112016059256648-pat00010
g1D1
Figure 112016059256648-pat00011
g2D2
Figure 112016059256648-pat00012
g3D3
Figure 112016059256648-pat00013
g4D4 로 정의할 수 있다.
상술한 바와 같이 레이드 6 시스템은 두 개의 패리티를 사용하며 그에 대응하는 두 개의 행렬 방정식을 사용하여 최대 2개의 디스크 오류까지 복구할 수 있다. 이러한 두 행렬 방정식은 레이드 6 시스템에서 기 공지된 것에 해당하므로 더욱 상세한 설명은 생략한다.
이하의 본 발명의 실시예는 레이드 6 시스템에서 오류가 발생한 디스크가 3개 이상인 경우에도 데이터 복구가 가능한 방법을 제시한다. 본 발명의 실시예에 따른 레이드 6 시스템 및 그것을 이용한 데이터 복구 방법을 상세히 설명하면 다음과 같다.
도 2는 본 발명의 실시예에 따른 레이드 6 시스템의 구성을 나타낸 도면이다. 도 2를 참조하면, 본 발명의 실시예에 따른 레이드 6 시스템(100)은 제1 디코딩부(110), 제2 디코딩부(120), 제3 디코딩부(130), 그리고 제어부(140)를 포함한다.
제어부(140)는 제1 내지 제3 디코딩부(130)의 동작과 디코딩 흐름을 제어한다. 또한, 제어부(140)는 ECC 디코딩 또는 레이드 6 디코딩 이후의 복구 여부 즉, 성공 또는 실패 여부를 판단한다.
제1 디코딩부(110)는 에러가 발생한 적어도 하나의 디스크에 대해 에러 정정을 위한 ECC(Error Correcting Code) 디코딩을 수행한다. 레이드 6 시스템은 복수의 디스크 중 적어도 하나의 디스크에 에러가 발생할 경우 ECC 디코딩을 먼저 수행한다.
도 1의 예시의 경우, 제어부(140)에 의해 7개 디스크 중 적어도 하나에 오류가 발생한 것이 감지되면 제1 디코딩부(110)는 ECC 디코딩을 통해 해당 디스크의 복구를 시도한다. 레이드 6 시스템에서 에러 발생 초기에 ECC 디코딩을 수행하는 것은 공지된 기술이다.
여기서, 제어부(140)는 ECC 디코딩 이후에도 복구에 실패한 디스크가 존재하는 것으로 판단되면 제2 디코딩부(120)를 통하여 레이드 6 디코딩을 수행하도록 제어한다. 레이드 6 디코딩의 경우 2개 이하의 디스크를 복구할 수 있다.
따라서, ECC 디코딩 이후 복구에 실패한 대상 디스크가 2개 이하(1개 또는 2개) 존재하는 경우, 제2 디코딩부(120)는 기 설정된 P 및 Q 행렬 방정식을 사용하는 레이드 6 디코딩을 수행하여 해당 디스크를 복구한다. 기 설정된 P 및 Q 행렬 방정식은 앞서 수학식 1에 정의한 바 있다.
하지만, ECC 디코딩 이후 복구에 실패한 대상 디스크가 3개 이상 존재할 경우는 수학식 1에 의한 레이드 6 디코딩 방식 만으로는 복구가 곤란하다. 이 경우 제어부(140)는 제3 디코딩부(130)에 의한 신뢰 전파(Belif Propagation) 디코딩을 수행하도록 제어한다.
즉, 복구에 실패한 대상 디스크가 3개 이상 존재할 경우, 제3 디코딩부(130)는 수학식 1에 도시한 P 및 Q 행렬 방정식을 통합하여 생성한 단일 행렬 방정식 내의 검사 행렬을 이용하여 신뢰 전파 디코딩을 수행한다. 단일 행렬 방정식의 구성은 추후 상세히 설명할 것이다. 신뢰 전파 디코딩 이후에 업데이트된 채널 정보는 제1 디코딩부(110)로 피드백된다.
제1 디코딩부(110)는 신뢰 전파 디코딩에 의해 복호화된 대상 디스크에 대해 ECC 디코딩을 재수행한다. 신뢰 전파 디코딩 결과는 ECC 디코딩을 돕는 역할을 한다. 따라서, ECC 디코딩을 재수행한 이후 복구에 실패한 디스크가 2개 이하(1개 또는 2개)로 감소한 것으로 확인되면, 제어부(140)는 제2 디코딩부(120)를 통하여 레이드 6 디코딩을 수행함으로써 해당 디스크들을 모두 복구한다.
이와 같이 신뢰 전파 디코딩을 하는 이유는 ECC 디코딩 이후 복구에 실패한 대상 디스크의 개수를 2개 이하로 만들기 위한 것으로, 초기 ECC 디코딩 이후 복구에 실패한 디스크가 3개 이상일 때는 신뢰 전파 디코딩 이후 ECC 디코딩과 RAID 6 디코딩을 한번 씩 더 수행함으로써 기존에 복구에 실패한 디스크들의 복구가 가능하게 한다.
본 발명의 실시예에서 신뢰 전파 디코딩에 사용되는 단일 행렬 방정식은 수학식 1에 개시된 P 행렬 방정식과 Q 행렬 방정식을 통합하여 생성한다. 그 구체적인 전개 과정은 다음과 같다.
먼저, 수학식 1의 P 및 Q 행렬 방정식을 수학식 2의 형태로 재정렬한다.
Figure 112016059256648-pat00014
여기서, I는 m×m 크기의 단위행렬, 0은 m×m 크기의 영행렬, Gi는 gi에 대응하는 m×m 크기의 행렬을 나타낸다.
수학식 2는 수학식 1의 P 및 Q 행렬 방정식의 우변을 모두 좌변으로 이항하여 0으로 만들고, 좌변은 n개의 데이터 항, 1개의 P 패리티 항, 1개의 Q 패리티 항의 순서로 정렬한 것을 나타낸다.
다만, 수학식 2에서 P 행렬 방정식 내의 Q 패리티 항(0·Q)은 기존 수학식 1의 P 식에 없던 항으로 영행렬을 곱하여 표현하고 있으며, 마찬가지로, 수학식 2의 Q 행렬 방정식 내의 P 패러티 항(0·P)도 기존 수학식 1의 Q 식에 없던 항으로 영행렬을 곱하여 표현하고 있다. 그밖의 나머지 항들은 대각선이 1로 구성된 단위 행렬을 곱하면 된다.
수학식 2와 같이 정렬된 P 및 Q 행렬 방정식을 동일 속성의 항끼리 상하로 배열하여 통합하면 아래의 수학식 3과 같은 단일 행렬 방정식을 생성할 수 있다.
Figure 112016059256648-pat00015
수학식 3의 각 파라미터는 앞서 수학식 1과 2를 통하여 설명한 바 있으므로 상세한 설명은 생략한다. 제3 디코딩부(130)는 수학식 3의 단일 행렬 방정식의 좌변에 위치한 좌측 검사 행렬을 이용하여 신뢰 전파 디코딩을 수행한다.
신뢰 전파 디코딩은 LDPC 복호를 위해 기 제안된 방식으로 검사행렬의 원소가 1인 경우 그 위치에 해당하는 체크 노드와 비트 노드를 연결하며 연결된 각 노드가 패리티 검사 조건을 만족하도록 확률 및 부가정보 값을 갱신하여 수행한다. 신뢰 전파 디코딩은 기 공지된 방법으로 그 구성 및 원리에 대한 구체적인 설명은 생략한다.
이하에서는 상술한 레이드 6 시스템을 이용한 데이터 복호 방법에 관하여 설명한다. 도 3은 도 1의 시스템을 이용한 데이터 복호 방법을 나타낸 도면이다.
먼저, 에러가 발생한 적어도 하나의 상기 디스크에 대해 에러 정정을 위한 ECC(Error Correcting Code) 디코딩을 수행한다(S310). 이후, 해당 디스크의 복구 성공 여부를 판단한다(S320). 만일, 복구가 성공하면 시스템을 종료하고 복구가 실패한 경우에는 레이드 6 디코딩을 수행한다(S330).
레이드 6 디코딩은 2개 이하의 디스크까지 복구가 가능하므로, S320 단계의 판단 결과, 복구가 실패한 대상 디스크가 2개 이하일 때는 레이드 6 디코딩을 통해 대상 디스크를 복구할 수 있으며, 대상 디스크가 3개 이상일 때는 복구가 불가능하다. 특별히 시스템 오류가 없다고 가정할 때 본 실시예에서 S330 단계의 수행 결과 복구가 실패했다는 것은 대상 디스크의 수가 3개 이상인 것을 의미한다.
따라서 S330 단계 이후에 복구 성공 여부를 판단하여(S340), 복구가 성공한 경우는 시스템을 종료하고, 실패한 경우 즉, 대상 디스크가 3개 이상인 경우는 단일 행렬 방정식을 이용하여 신뢰 전파 디코딩을 수행한다(S350).
그리고, 신뢰 전파 디코딩에 의해 복호화된 대상 디스크에 대해 ECC 디코딩을 재수행하고(S310), ECC 디코딩의 재수행 이후 복호 성공 여부를 재판단한다(S320). 만일, 복구에 실패한 디스크가 2개 이하로 감소한 경우는 다시 레이드 6 디코딩을 수행하여 해당 디스크를 모두 복구한다(S330).
도 4는 본 발명의 실시예에 따른 데이터 복호 방법과 기존의 레이드 6 복호 방법 간의 성능을 비교한 도면이다. 도 4에서 가로 축은 SNR(신호 대 잡음)이고 세로 축은 디코딩 실패율을 나타낸다.
기존의 레이드 6 복호 방법의 경우 신뢰 전파 디코딩 단계를 사용하지 않으며 오류 디스크가 3개 이상일 때는 단지 복호 실패를 통보하고 종료한다. 도 4를 참조하면, 본 실시예에 따른 복호 기법(Proposed system)은 기존의 복호 기법(general system)에 비하여 디코딩 실패율을 낮추고 시스템의 신뢰성을 향상시키는 것을 확인할 수 있다.
이상과 같은 본 발명에 따른 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법에 따르면, 저가의 RAID 기법으로 높은 신뢰성을 확보할 수 있으며 패리티 오버헤드의 추가 없이 디코딩 실패율을 낮출 수 있으며 SSD(Solid State Driver)에 적용 시 SSD의 기대 수명을 확장할 수 있는 이점이 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
100: 레이드 6 시스템 110: 제1 디코딩부
120: 제2 디코딩부 130: 제3 디코딩부
140: 제어부

Claims (6)

  1. 복수의 디스크를 가지는 레이드 6(RAID 6) 시스템을 이용한 데이터 복구 방법에 있어서,
    에러가 발생한 적어도 하나의 상기 디스크에 대해 에러 정정을 위한 ECC(Error Correcting Code) 디코딩을 수행하는 단계;
    상기 ECC 디코딩 이후 복구에 실패한 대상 디스크가 2개 이하 존재할 경우 기 설정된 P 및 Q 행렬 방정식을 사용하는 레이드 6 디코딩을 수행하여 해당 디스크를 복구하는 단계;
    상기 대상 디스크가 3개 이상 존재할 경우 상기 P 및 Q 행렬 방정식을 통합하여 생성한 단일 행렬 방정식 내의 검사 행렬을 이용하여 신뢰 전파(Belif Propagation) 디코딩을 수행하는 단계; 및
    상기 신뢰 전파 디코딩에 의해 복호화된 상기 대상 디스크에 대해 상기 ECC 디코딩을 재수행하는 단계를 포함하며,
    상기 기 설정된 P 및 Q 행렬 방정식은 아래의 수학식으로 정의되는 레이드 6 시스템을 이용한 데이터 복구 방법:
    Figure 112016059256648-pat00016

    여기서, Di = [di ,0, di ,1, …, di ,m-1]T로서, m개의 이진 데이터로 된 i번째 데이터 블록(i=0,1,…,n-1), n은 데이터 블록의 개수, gi는 유한체 GF(2m)에 의해 생성되는 계수, P 및 Q는 m개의 이진 데이터로 된 P 패리티 블록 및 Q 패리티 블록을 나타낸다.
  2. 청구항 1에 있어서,
    상기 ECC 디코딩을 재수행한 결과 복구에 실패한 디스크가 2개 이하로 감소한 경우 상기 레이드 6 디코딩을 수행하여 해당 디스크를 복구하는 단계를 더 포함하는 레이드 6 시스템을 이용한 데이터 복구 방법.
  3. 청구항 1에 있어서,
    상기 단일 행렬 방정식은 아래의 수학식으로 정의되는 레이드 6 시스템을 이용한 데이터 복구 방법:
    Figure 112016059256648-pat00017

    여기서, I는 m×m 크기의 단위행렬, 0은 m×m 크기의 영행렬, Gi는 gi에 대응하는 m×m 크기의 행렬을 나타낸다.
  4. 복수의 디스크를 가지는 레이드 6(RAID 6) 시스템에 있어서,
    에러가 발생한 적어도 하나의 상기 디스크에 대해 에러 정정을 위한 ECC(Error Correcting Code) 디코딩을 수행하는 제1 디코딩부;
    상기 ECC 디코딩 이후 복구에 실패한 대상 디스크가 2개 이하 존재할 경우 기 설정된 P 및 Q 행렬 방정식을 사용하는 레이드 6 디코딩을 수행하여 해당 디스크를 복구하는 제2 디코딩부;
    상기 대상 디스크가 3개 이상 존재할 경우 상기 P 및 Q 행렬 방정식을 통합하여 생성한 단일 행렬 방정식 내의 검사 행렬을 이용하여 신뢰 전파(Belif Propagation) 디코딩을 수행하는 제3 디코딩부; 및
    상기 제1 내지 제3 디코딩부의 동작을 제어하고, 상기 ECC 디코딩 이후의 복구 여부를 판단하는 제어부를 포함하며,
    상기 제1 디코딩부는,
    상기 신뢰 전파 디코딩에 의해 복호화된 상기 대상 디스크에 대해 상기 ECC 디코딩을 재수행하며,
    상기 기 설정된 P 및 Q 행렬 방정식은 아래의 수학식으로 정의되는 레이드 6 시스템:
    Figure 112016059256648-pat00018

    여기서, Di = [di ,0, di ,1, …, di ,m-1]T로서, m개의 이진 데이터로 된 i번째 데이터 블록(i=0,1,…,n-1), n은 데이터 블록의 개수, gi는 유한체 GF(2m)에 의해 생성되는 계수, P 및 Q는 m개의 이진 데이터로 된 P 패리티 블록 및 Q 패리티 블록을 나타낸다.
  5. 청구항 4에 있어서,
    상기 제2 디코딩부는,
    상기 ECC 디코딩을 재수행한 결과 복구에 실패한 디스크가 2개 이하로 감소한 경우 상기 레이드 6 디코딩을 수행하여 해당 디스크를 복구하는 레이드 6 시스템.
  6. 청구항 4에 있어서,
    상기 단일 행렬 방정식은 아래의 수학식으로 정의되는 레이드 6 시스템:
    Figure 112016059256648-pat00019

    여기서, I는 m×m 크기의 단위행렬, 0은 m×m 크기의 영행렬, Gi는 gi에 대응하는 m×m 크기의 행렬을 나타낸다.
KR1020160076665A 2016-06-20 2016-06-20 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법 KR101716305B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160076665A KR101716305B1 (ko) 2016-06-20 2016-06-20 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160076665A KR101716305B1 (ko) 2016-06-20 2016-06-20 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법

Publications (1)

Publication Number Publication Date
KR101716305B1 true KR101716305B1 (ko) 2017-03-14

Family

ID=58460164

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160076665A KR101716305B1 (ko) 2016-06-20 2016-06-20 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법

Country Status (1)

Country Link
KR (1) KR101716305B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647110A (zh) * 2018-03-30 2018-10-12 深圳忆联信息系统有限公司 一种增强型raid保护方法及ssd
CN113312204A (zh) * 2021-07-28 2021-08-27 杭州阿姆科技有限公司 基于双层raid信息的增强型纠错方法及深度纠错方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980047273U (ko) * 1996-12-28 1998-09-25 양재신 전방 길이가 조절되는 자동차의 시트 쿠션
KR100602610B1 (ko) * 1998-03-26 2006-07-19 소니 가부시끼 가이샤 복조장치 및 복조방법
KR20150022725A (ko) * 2013-08-23 2015-03-04 실리콘 모션 인코포레이티드 플래시 메모리의 저장 유닛에 액세스하기 위한 방법 및 그 방법을 사용하는 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980047273U (ko) * 1996-12-28 1998-09-25 양재신 전방 길이가 조절되는 자동차의 시트 쿠션
KR100602610B1 (ko) * 1998-03-26 2006-07-19 소니 가부시끼 가이샤 복조장치 및 복조방법
KR20150022725A (ko) * 2013-08-23 2015-03-04 실리콘 모션 인코포레이티드 플래시 메모리의 저장 유닛에 액세스하기 위한 방법 및 그 방법을 사용하는 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647110A (zh) * 2018-03-30 2018-10-12 深圳忆联信息系统有限公司 一种增强型raid保护方法及ssd
CN113312204A (zh) * 2021-07-28 2021-08-27 杭州阿姆科技有限公司 基于双层raid信息的增强型纠错方法及深度纠错方法

Similar Documents

Publication Publication Date Title
US10572345B2 (en) First responder parities for storage array
US9417963B2 (en) Enabling efficient recovery from multiple failures together with one latent error in a storage array
US8601348B2 (en) Error checking addressable blocks in storage
US9529670B2 (en) Storage element polymorphism to reduce performance degradation during error recovery
CN109643258B (zh) 使用高速率最小存储再生擦除代码的多节点修复
KR102102728B1 (ko) 스케일러블 스토리지 보호
US8433979B2 (en) Nested multiple erasure correcting codes for storage arrays
EP1327936B1 (en) Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US7254754B2 (en) Raid 3+3
JP6153541B2 (ja) 消失エラー訂正符号を用いてストレージ・アレイにデータを格納する方法、システム及びプログラム
KR101543369B1 (ko) 병렬 리드-솔로몬 레이드 아키텍처, 장치, 및 방법
US7836379B1 (en) Method for computing buffer ECC
US8484506B2 (en) Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality
US9058291B2 (en) Multiple erasure correcting codes for storage arrays
US20120017140A1 (en) Non-mds erasure codes for storage systems
US10558524B2 (en) Computing system with data recovery mechanism and method of operation thereof
US20120198195A1 (en) Data storage system and method
CN109358980B (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
US20070124648A1 (en) Data protection method
US7555701B2 (en) Method and system for recovering from multiple drive failures
KR101716305B1 (ko) 레이드 6 시스템 및 그것을 이용한 데이터 복호 방법
US6859890B2 (en) Method for reducing data/parity inconsistencies due to a storage controller failure
US20150178162A1 (en) Method for Recovering Recordings in a Storage Device and System for Implementing Same
JP5360666B2 (ja) 複数のディスクアレイのi/o動作を実行する方法及びシステム
US10353771B1 (en) Managing data storage

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200309

Year of fee payment: 4