[go: up one dir, main page]

KR101566467B1 - 데이터 복원을 용이하게 하기 위한 트리플 패리티 인코딩 - Google Patents

데이터 복원을 용이하게 하기 위한 트리플 패리티 인코딩 Download PDF

Info

Publication number
KR101566467B1
KR101566467B1 KR1020147011826A KR20147011826A KR101566467B1 KR 101566467 B1 KR101566467 B1 KR 101566467B1 KR 1020147011826 A KR1020147011826 A KR 1020147011826A KR 20147011826 A KR20147011826 A KR 20147011826A KR 101566467 B1 KR101566467 B1 KR 101566467B1
Authority
KR
South Korea
Prior art keywords
parity
row
diagonal
storage devices
diagonal parity
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020147011826A
Other languages
English (en)
Other versions
KR20140074371A (ko
Inventor
준웨이 카오
샤오 린
Original Assignee
엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 filed Critical 엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Publication of KR20140074371A publication Critical patent/KR20140074371A/ko
Application granted granted Critical
Publication of KR101566467B1 publication Critical patent/KR101566467B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
    • 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)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

복수의 저장 장치를 가지는 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 예시가 개시된다.

Description

데이터 복원을 용이하게 하기 위한 트리플 패리티 인코딩{TRIPLE PARITY ENCODING TO FACILITATE DATA RECOVERY}
여기에서 달리 지적되지 않는다면, 본 섹션에서 설명되는 접근법은 본 출원에서 청구범위에 대한 선행 기술이 아니며, 본 섹션에 포함함으로써 선행 기술로 인정되지 않는다.
데이터를 저장하거나 유지하기 위한 저장 시스템은 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD) 또는 직접 접근 저장 장치(DASD)와 같은 다양한 데이터 저장 장치를 포함할 수 있다. 이러한 저장 시스템은, 클라이언트 또는 호스트 컴퓨터에 직접적으로 부착된 디스크 어셈블리, 저장 영역 네트워크 또는 저장 영역 네트워크-부착형 저장 환경을 포함할 수 있는 하나 이상의 유형의 저장 아키텍처에 따라 구현될 수 있다. 일부 예시에서, 하나 이상의 저장 장치가 실패(fail)하거나 하나 이상의 저장 장치 상에 저장된 데이터의 일부가 오류가 생기는(corrupted) 경우 [예컨대, 체크섬(checksum) 또는 미디어 판독 에러] 데이터는 손실될 수 있다. 데이터의 손실을 피하기 위하여, 하나 이상의 방법이 저장 시스템에서 구현될 수 있다. 이러한 하나 이상의 방법은 미러링(mirroring), 백업 또는 패리티 보호(parity protection)를 포함할 수 있다.
본 개시는, 저장 어레이와 연관된 실패(failure)로부터의 복원을 용이하게 하기 위한 일부 예시적인 방법을 설명한다. 저장 어레이는 복수의 저장 장치를 가질 수 있다. 복수의 저장 장치는 복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치(row parity storage device), 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치(diagonal parity storage) 및 제2 사선 패리티 저장 장치를 포함할 수 있다. 이러한 예시적인 방법은 복수의 데이터 저장 장치에 대한 제1 로우 패리티를 결정하는 단계를 포함할 수 있다. 제1 로우 패리티는 복수의 데이터 저장 장치에 걸칠(span) 수 있고 제1 로우 패리티 저장 장치 상에 저장될 수 있다. 이후, 제1 사선 패리티 세트를 따라 제1 사선 패리티가 결정될 수 있다. 제1 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있고 제1 사선 패리티 저장 장치 상에 저장될 수 있다. 예시적인 방법은 또한 제2 사선 패리티 세트를 따라 제2 사선 패리티를 결정할 수 있다. 제2 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있고 제2 사선 패리티 저장 장치 상에 저장될 수 있다. 이후 복수의 데이터 저장 장치에 대한 제2 로우 패리티가 결정될 수 있다. 제2 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있으며 제2 로우 패리티 저장 장치 상에 저장될 수 있다. 일부 예시에서, 제2 로우 패리티의 하나 이상의 로우의 적어도 일부는 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함할 수 있다.
본 개시는 또한 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 예시적인 장치를 설명한다. 저장 어레이는 복수의 저장 장치를 가질 수 있다. 복수의 저장 장치는 복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치, 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치 및 제2 사선 패리티 저장 장치를 포함할 수 있다. 이러한 예시적인 장치는 로직(logic)을 가지는 복원 관리기(recovery manager)를 포함할 수 있다. 로직은 복수의 데이터 저장 장치에 대한 제1 로우 패리티를 결정하도록 구성될 수 있다. 제1 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있으며 제1 로우 패리티 저장 장치 상에 저장될 수 있다. 로직은 또한, 제1 사선 패리티 세트를 따라 제1 사선 패리티를 결정하도록 구성될 수 있다. 제1 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있으며 제1 사선 패리티 저장 장치 상에 저장될 수 있다. 로직은 또한 제2 사선 패리티 세트를 따라 제2 사선 패리티를 결정하도록 구성될 수 있다. 제2 사선 패리티는 복수의 데이터 저장 장치 및 제1 로우 패리티 저장 장치 중 하나를 제외하고 모두에 걸칠 수 있으며 제2 사선 패리티 저장 장치 상에 저장될 수 있다. 로직은 또한 복수의 데이터 저장 장치에 대한 제2 로우 패리티를 결정하도록 구성될 수 있다. 제2 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있으며 제2 로우 패리티 저장 장치 상에 저장될 수 있다. 일부 예시에서, 제2 로우 패리티의 하나 이상의 로우(row)의 적어도 일부는 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함할 수 있다.
본 개시는 또한 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 예시적인 시스템을 설명한다. 이러한 예시적인 시스템은 복수의 저장 장치를 가질 수 있다. 복수의 저장 장치는 복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치, 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치 및 제2 사선 패리티 저장 장치를 포함할 수 있다. 예시적인 시스템은 또한 로직을 가지는 복원 관리기를 포함할 수 있다. 로직은 복수의 데이터 저장 장치에 대한 제1 로우 패리티를 결정하도록 구성될 수 있다. 제1 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있으며 제1 로우 패리티 저장 장치 상에 저장될 수 있다. 로직은 또한, 제1 사선 패리티 세트를 따라 제1 사선 패리티를 결정하도록 구성될 수 있다. 제1 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 자장 장치 중 하나를 제외한 모두에 걸칠 수 있으며 제1 사선 패리티 저장 장치 상에 저장될 수 있다. 로직은 또한 제2 사선 패리티 세트를 따라 제2 사선 패리티를 결정하도록 구성될 수 있다. 제1 로우 패리티 저장 장치 및 제2 사선 패리티는 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있고 제2 사선 패리티 저장 장치 상에 저장될 수 있다. 로직은 또한 복수의 데이터 저장 장치에 대한 제2 패리티를 결정하도록 구성될 수 있다. 제2 로우 패리티는 복수의 저장 장치에 걸칠 수 있으며, 제2 로우 패리티 저장 장치 상에 저장될 수 있다. 일부 예시에서, 제2 로우 패리티의 하나 이상의 로우의 적어도 일부는 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함할 수 있다.
본 개시는 또한 예시적인 컴퓨터 프로그램 제품을 설명한다. 일부 예시에서, 컴퓨터 프로그램 제품은 복수의 저장 장치를 가지는 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 명령어를 가지는 비일시적인 매체를 포함할 수 있다. 복수의 저장 장치는 복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치, 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치 및 제2 사선 패리티 저장 장치를 포함할 수 있다. 명령어는, 로직에 의하여 실행되면, 로직으로 하여금 복수의 데이터 저장 장치에 대한 제1 로우 패리티를 결정하도록 한다. 제1 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있으며 제1 로우 패리티 저장 장치 상에 저장될 수 있다. 명령어는 또한 로직으로 하여금 제1 사선 패리티 세트를 따라 제1 사선 패리티를 결정하도록 할 수 있다. 제1 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있고 제1 사선 패리티 저장 장치 상에 저장될 수 있다. 명령어는 또한 로직으로 하여금 제2 사선 패리티 세트를 따라 제2 사선 패리티를 결정하도록 할 수 있다. 제2 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있으며 제2 사선 패리티 저장 장치 상에 저장될 수 있다. 명령어는 또한 로직으로 하여금 복수의 데이터 저장 장치에 대한 제2 로우 패리티를 결정하도록 할 수 있다. 제2 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있으며 제2 로우 패리티 저장 장치 상에 저장될 수 있다. 일부 예시에서, 제2 로우 패리티의 하나 이상의 로우의 적어도 일부는 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함할 수 있다.
이상의 요약은 단순히 예시적인 것으로서 어떠한 방식으로든 제한적으로 의도된 것이 아니다. 이하의 상세한 설명과 도면을 참조함으로써, 상술된 예시적인 양태들, 실시예들, 그리고 특징들에 더하여, 추가적인 양태들, 실시예들, 그리고 특징들 또한 명확해질 것이다.
본 개시의 전술한 특징 및 다른 특징은 첨부 도면과 결합하여, 다음의 설명 및 첨부된 청구범위로부터 더욱 충분히 명백해질 것이다. 이들 도면은 본 개시에 따른 단지 몇 개의 실시예를 묘사할 뿐이고, 따라서, 그 범위를 제한하는 것으로 고려되어서는 안 될 것임을 이해하면서, 본 개시는 첨부 도면의 사용을 통해 더 구체적이고 상세하게 설명될 것이다.
도 1은 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 예시적인 시스템을 도시하고;
도 2는 복원 관리기에 대한 예시적인 아키텍처의 블록도를 도시하고;
도 3a 내지 3d는 저장 어레이에 대한 트리플 패리티 인코딩과 연관된 예시적인 패리티 테이블을 예시하고;
도 4는 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 예시적인 방법의 흐름도이고;
도 5는 예시적인 컴퓨터 프로그램 제품의 블록도를 도시하며;
도 6은 예시적인 컴퓨팅 장치를 도시하고, 모두 본 개시의 적어도 일부 실시예에 따라 배열된다.
이하의 상세한 설명에서 본 개시의 일부를 이루는 첨부된 도면이 참조된다. 문맥에서 달리 지시하고 있지 않은 한, 통상적으로, 도면에서 유사한 부호는 유사한 컴포넌트를 나타낸다. 상세한 설명, 도면, 그리고 청구범위에 설명되는 예시적인 예시 또는 실시예는 제한적으로 여겨지지 않는다. 본 개시에서 제시되는 대상의 범위 또는 사상에서 벗어나지 않으면서도 다른 예시 또는 실시예가 이용되거나, 다른 변경이 이루어질 수 있다. 여기에서 일반적으로 설명되고, 도면에 도시되는 본 개시의 양태는 다양한 다른 구성으로 배열, 대체, 조합, 및 설계 될 수 있음과 이 모두가 여기에서 명백하게 고려되고 본 개시의 일부가 됨이 기꺼이 이해될 것이다.
본 개시는, 그 중에서도, 복수의 저장 장치를 가지는 저장 어레이와 연관된 실패(failure)로부터의 복원을 용이하게 하는 것에 관련된 방법, 장치, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다.
본 개시에서 고려된 바와 같이, 저장 장치가 실패하거나 하나 이상의 저장 장치 상에 저장된 정보 또는 데이터의 일부가 오류가 생기는 경우 데이터의 손실을 방지하기 위한 하나 이상의 기법(scheme)이 저장 시스템에서 구현될 수 있다. 또한, 본 개시에서 고려된 바와 같이, 이러한 하나 이상의 기법은 미러링(mirroring), 백업, 패리티 보호를 포함할 수 있다. 미러링은 미러 데이터에 요구되는 자원의 측면에서 비싼 해결책이고 백업은 백업들 사이에 수정된 데이터를 보호할 수 없다.
일부 예시에서, 패리티 보호는 미러링 또는 백업에 대한 대안으로 선호될 수 있다. 보통 싱글 패리티로 지칭되는 패리티 보호의 일 유형은 단일 저장 장치 상의 오류 있는 데이터 또는 또는 단일 저장 장치 실패로부터의 손실 데이터의 복원을 고려하는, 데이터의 리던던트 인코딩(redundant encoding)을 제공할 수 있다. 보통 더블 패리티로 지칭되는 패리티 보호의 다른 유형은 두 개의 저장 장치 실패, 두 개의 저장 장치 상의 오류 있는 데이터 또는 저장 장치 실패 및 저장 장치 상의 오류 있는 데이터의 조합을 가지는 저장 시스템 내 손실된 데이터의 복원을 고려하는, 데이터의 리던던트 인코딩을 제공할 수 있다. 그러나, 일부 저장 시스템은 상당수의 저장 장치를 포함할 수 있으며, 시스템이 커질수록 3 개의 저장 장치 실패 또는 3 개의 저장 장치 상의 오류 있는 데이터의 확률이 더 커질 수 있다. 따라서, 3 개의 저장 장치 실패, 3 개의 저장 장치 상의 오류 있는 데이터 또는 저장 장치 실패 및 저장 장치 상의 오류 있는 데이터의 조합을 가지는 저장 시스템에서의 손실된 데이터의 복원을 고려하는 패리티 보호에 대한 필요가 존재한다.
일부 예시에서, 저장 어레이와 연관된 실패로부터의 복원은 트리플 패리티 인코딩 기법에 의하여 용이해질 수 있다. 이러한 예시에서, 저장 어레이는 복수의 저장 장치를 가질 수 있다. 복수의 저장 장치는 복수의 데이터 저장 장치 및 복수의 패리티 저장 장치를 포함할 수 있다. 이러한 패리티 저장 장치는 제1 로우 패리티 저장 장치, 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치 및 제2 사선 패리티 저장 장치를 포함할 수 있다. 이러한 예시에서, 복수의 데이터 저장 장치에 대한 제1 로우 패리티가 결정될 수 있다. 제1 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있고 제1 로우 패리티 저장 장치 상에 저장될 수 있다. 이후 제1 사선 패리티 세트를 따라 제1 사선 패리티가 결정될 수 있다. 제1 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있으며 제1 사선 패리티 저장 장치 상에 저장될 수 있다. 제2 사선 패리티 세트를 따라 제2 사선 패리티가 또한 결정될 수 있다. 제2 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있고 제2 사선 패리티 저장 장치 상에 저장될 수 있다. 이후 복수의 데이터 저장 장치에 대한 제2 로우 패리티가 결정될 수 있다. 제2 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있으며 제2 로우 패리티 저장 장치 상에 저장될 수 있다. 이러한 예시에서, 제2 로우 패리티의 하나 이상의 로우의 적어도 일부는 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함할 수 있다.
도 1은 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 예시적인 시스템을 예시한다. 도 1에서 도시된 바와 같이, 시스템(100)은 통신 채널(130)을 통하여 저장 어레이(120)에 결합된 컴퓨팅 플랫폼(110)을 포함한다. 또한, 도 1에서 도시된 바와 같이, 컴퓨팅 플랫폼(110)은 프로세싱 요소(112), 메모리(114) 및 저장 어레이 컨트롤러(116)를 포함한다. 일부 예시에서, 도 1에서 도시된 바와 같이, 프로세싱 요소(112), 시스템 메모리(114) 및 저장 어레이 컨트롤러(116)는 통신 링크(118)를 통하여 통신적으로 결합할 수 있다.
일부 예시에서, 도 1에 도시된 바와 같이, 저장 어레이 컨트롤러(116)는 복원 관리기(117) 및 저장 관리기(119)를 포함할 수 있다. 시스템 메모리(114)가 또한 도 1에 도시되며 운영 체제(115)를 포함한다. 일부 예시에서, 운영 체제(115)는 메모리(114)에서 유지될 수 있으며 프로세싱 요소(112)에 의해 실행되도록 구성될 수 있다. 또한, 운영 체제(115)는 저장 관리기(119)와 협업하여 저장 어레이(120)로부터 판독하고 저장 어레이(120)에 기록(write)할 수 있다.
또한, 도 1에 도시된 바와 같이, 저장 어레이(120)는 데이터 저장 장치(122-1 내지 122-m)를 포함할 수 있으며, 여기서 m은 1보다 큰 임의의 양의 정수를 나타낸다. 저장 어레이(120)는 또한, 로우 패리티 저장 장치(123), 사선 패리티 저장 장치(124), 사선 패리티 저장 장치(125) 및 로우 패리티 저장 장치(126)와 같이 도 1에 도시된 4 개의 패리티 저장 장치를 포함할 수 있다. 저장 어레이(120)의 복수의 저장 장치는, 도 1 에 도시된 바와 같이, 통신 채널(130)을 통하여 저장 어레이 컨트롤러(116)에 통신적으로 결합되고 상호 연결될 수 있다.
일부 예시에 따르면, 저장 어레이 컨트롤러(116)는 사용자(또는 클라이언트)에 의해 요청된 정보 또는 데이터에 액세스하도록 저장 어레이(120)와 협력할 수 있다. 데이터는 비디오 테이프, 광학, DVD(digital versatile disk), 자기 테이프, 버블 메모리, 전자 랜덤 액세스 메모리(random access memory), 마이크로 전자 기계 또는 데이터 또는 패리티 정보를 저장하도록 구성된 임의의 다른 유사한 저장 매체와 같은 임의의 유형의 연결된 저장 장치 상에 저장될 수 있다. 도 1에 도시되지 않았지만, 저장 어레이 컨트롤러(116) 및 저장 어레이(120)는 개별로 인터페이스 회로를 포함하여 컴퓨팅 플랫폼(110)을 통신 채널(130)을 통하여 저장 어레이(120)에 통신적으로 결합할 수 있다. 이러한 예시에서, 통신 채널(130)은 USB(Universal Serial Bus), PCI-익스프레스, SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment) 또는 SCSI(small computer system interface)를 포함하지만 이에 제한되지 않도록 다양한 통신 프로토콜을 따라 동작할 수 있다. 일부 예시에 따르면, 저장 어레이 컨트롤러(116)는 저장 어레이(120)와 협력하여 사용자(또는 클라이언트)에 의해 요청된 정보 또는 데이터를 액세스할 수 있다. 데이터는 비디오 테이프, 광학, DVD, 자기 테이프, 버블 메모리, 전자 랜덤 액세스 메모리, 마이크로 전기 기계 또는 데이터 또는 패리티 정보를 저장하도록 구성된 임의의 다른 유사한 저장 매체와 같은 임의의 유형의 연결된 저장 장치 상에 저장될 수 있다. 도 1에 도시되지 않았지만, 저장 어레이 컨트롤러(116) 및 저장 어레이(120)는 별도로 인터페이스 회로를 포함하여 컴퓨팅 플랫폼(110)을 통신 채널(130)을 통하여 저장 어레이(120)에 통신적으로 결합할 수 있다. 이러한 예시에서, 통신 채널(130)은 다양한 통신 프로토콜을 따라 동작하여 USB, PCI-익스프레스, SATA, PATA 또는 SCSI를 포함할 수 있으나, 이에 제한되지는 않는다.
일부 예시에서, 이하에서 더 설명되는 바와 같이, 복원 관리기(117)는 저장 어레이(120)와 연관된 실패로부터의 복원을 용이하게 하기 위한 로직 및/또는 특징(feature)을 포함할 수 있다. 실패는 저장 어레이(120)로부터의 하나 이상의 저장 장치의 완전한 실패 및/또는 저장 어레이(120)로부터의 하나 이상의 저장 장치 상의 오류 있는 데이터 또는 정보 [예컨대, 체크섬 에러(checksum error)]를 포함할 수 있다. 이러한 예시에서, 복원 관리기(117)는 저장 어레이(120)의 4 개의 패리티 저장 장치를 이용하는 트리플 패리티 인코딩 기법을 구현할 수 있다.
일부 예시에 따르면, 트리플 패리티 인코딩 기법을 구현하는 경우, 저장 어레이(120)는 n 데이터 저장 장치 및 4 개의 패리티 저장 장치를 포함할 수 있고, 여기서 n= p-1이며, p는 3보다 큰 소수(prime number)이다. 이러한 예시에서, 저장 어레이(120)의 복수의 저장 장치 각각은 복원 관리기(117)에 의해 청크(chunk)로 분할될 수 있다. 복수의 저장 장치 각각은 이후 복원 관리기(117)에 의해 각 저장 장치에 동일한 수의 청크를 포함하는 스트라이프(stripe)로 더 구성될 수 있다. 또한, 복수의 저장 장치 각각은 (p-1)2 청크로 스트라이핑될 수 있다. 부 예시에서, 복수의 저장 장치는 RAID(Redundant Array of Independent Disks) 기법 (예컨대, RAID 6)에 따라 스트라이핑될 수 있지만, 본 개시는 RAID 스트라이핑 기법만으로 한정되지 않는다.
도 2는 복원 관리기에 대한 예시적인 아키텍처의 블록도를 도시한다. 도 1에서 시스템(100)에 대하여 상술한 바와 같이, 저장 어레이 컨트롤러(116)는 복원 관리기(117)를 포함한다. 일부 예시에서, 복원 관리기(117)는 저장 어레이(120)와 같은 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하도록 배열되거나 구성되는 특징 및/또는 로직을 포함한다.
도 2의 예시적인 복원 관리기(117)는 복원 로직(210), 제어 로직(220), 메모리(230) 및 입력/출력(I/O) 인터페이스(240)를 포함한다. 도 2에서 예시된 바와 같이, 복원 로직(210)은 제어 로직(220), 메모리(230) 및 I/O 인터페이스(240)에 결합된다. 복원 로직(210)은 스트라이프 특징(212), 로우 특징(214), 사선 특징(216) 또는 복원 특징(218) 또는 이들의 임의의 합리적인 조합을 더 포함할 수 있다.
일부 예시에서, 도 2의 블록도에 도시되는 요소는 본 개시에서 설명된 바와 같이 복원 관리기(117)를 지원하거나 가능하게 하도록 구성될 수 있다. 주어진 복원 관리기(117)는 도 2에 도시된 모든 요소 또는 도 2에 도시된 바 보다 많은 요소를 포함할 수 있다. 예컨대, 복원 로직(210) 및 제어 로직(220)은 복원 관리기(117)의 특징을 구현하도록 폭넓은 로직 장치를 개별로 또는 총괄적으로 표현할 수 있다. 예시적인 로직 장치는 컴퓨터, 마이크로 프로세서, 마이크로 컨트롤러, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 멀티코어/멀티 스레드형 마이크로프로세서의 격리된 스레드 또는 코어 또는 이들의 조합 중 하나 이상을 포함할 수 있다.
일부 예시에서, 도 2에 도시된 바와 같이, 복원 로직(210)은 스트라이프 특징(212), 로우 특징(214), 사선 특징(216) 또는 복원 특징(218)을 포함한다. 복원 로직(210)은 이러한 특징 중 하나 이상을 사용하여 동작을 수행하도록 구성될 수 있다. 이하에서 보다 상세히 설명되는 바와 같이, 예시적인 동작은 스트라이핑 기법에 따라 저장 장치를 스트라이프로 구성하는 단계를 포함할 수 있다. 예시적인 동작은 또한 스트라이핑 기법에 따라 저장될 로우 및 사선 패리티 세트를 결정하는 단계 및 결정된 로우 및 사선 패리티 세트를 이용하여 저장 어레이[예컨대, 저장 어레이(120)]와 연관된 실패로부터의 복원을 용이하게 하는 단계를 포함할 수 있다.
일부 예시에서, 제어 로직(220)은 복원 관리기(117)의 전반적인 동작을 제어하도록 구성될 수 있다. 상술한 바와 같이, 제어 로직(220)은 실행 가능한 콘텐츠 또는 명령어와 함께 동작하여 복원 관리기(117)의 제어를 수행하도록 구성된 폭넓은 로직 장치 중 임의의 것을 나타낼 수 있다. 일부 교대적인 예시에서, 제어 로직(220)의 특징 및 기능이 복원 로직(210) 내에 구현될 수 있다.
일부 예시에 따르면, 메모리(230)는 실행 가능한 콘텐츠 또는 명령어를 저장하도록 배열된다. 실행 가능한 콘텐츠 또는 명령어는 제어 로직(220) 및/또는 복원 로직(210)에 의해 이용되어 복원 관리기(117)의 특징 또는 요소를 수행 또는 활성화할 수 있다. 메모리(230)는 또한 로우 또는 사선 패리티(예컨대, 구조 알고리즘)를 결정하고 스트라이핑 기법에 따른 로우 또는 사선 패리티를 저장하는 것과 연관된 정보를 적어도 임시로 유지하도록 배열될 수 있다.
메모리(230)는 휘발성 메모리, 비휘발성 메모리, 플래쉬 메모리, 프로그램 가능한 변수 또는 상태, RAM(random access memory), ROM(read-only memory) 또는 기타 정적 또는 동적 저장 매체 중 하나 이상을 포함하는 폭넓은 메모리 매체를 포함할 수 있으나, 이에 제한되지 않는다.
일부 예시에서, I/O 인터페이스(240)는 복원 관리기(117) 및 저장 어레이 컨트롤러(116)에 통신적으로 결합될 수 있는 요소 또는 장치 간의 인터페이스를 제공할 수 있다. 예컨대, 도 1에 대하여 상술한 바와 같이, 저장 어레이 컨트롤러(116)는 통신 링크(118)를 통하여 프로세싱 요소(112) 또는 메모리(114)에 통신적으로 결합하도록 구성될 수 있거나 통신 채널(130)을 통하여 저장 어레이(120)에 통신적으로 결합하도록 구성될 수 있다. I/O 인터페이스(240)는 예컨대, 다양한 무선 및/또는 유선 통신 프로토콜에 따라 동작하도록 구성되어 복원 관리기(117)가 통신 링크(118) 또는 통신 채널(130)[예컨대, I2C(Inter-Integrated Circuit), SMBus(System Management Bus), SPI (Serial Peripheral Interface Bus) USB, SATA, PATA, SCSI, eSATA, PCI-Express, IEEE 802.1, IEEE 802.11, IEEE 802.16, GSM, GPRS, EDGE, W-CDMA, HSPA, LTE, CDMA-2000, EV-DO 등]을 통하여 통신하는 것을 허용하도록 구성될 수 있다.
도 3a 내지 도 3d는 저장 어레이에 대한 트리플 패리티 인코딩과 연관된 예시적인 패리티 테이블을 도시한다. 일부 예시에서, 저장 어레이는 도 1에 도시된 바와 같은 저장 어레이(120)와 유사할 수 있다. 도 3a 내지 도 3d에 도시된 바와 같이, 테이블(310), 테이블(320), 테이블(330) 및 테이블(340)은 4 개의 패리티 저장 장치의 사용에 적어도 부분적으로 기초하여 구성될 수 있다. 이러한 패리티 테이블은 트리플 패리티 인코딩 기법의 예시를 제공한다. 이러한 트리플 패리티 인코딩 기법은 저장 어레이(120)의 3 개까지의 실패(완전 장치 실패 또는 데이터 오류)와 연관된 실패로부터의 복원을 용이하게 할 수 있다. 이러한 예시에서, 도 1에서 도시된 4 개의 패리티 저장 장치에 더하여, 저장 어레이는 또한 4 개의 데이터 저장 장치를 포함한다. 도 3a 내지 도 3d에서 도시된 바와 같이, 4 개의 데이터 저장 장치와 연관된 패리티는 칼럼 헤더(122-1 내지 122-4)(column header)로 도시되고 4 개의 패리티 저장 장치와 연관된 패리티는 칼럼 헤더(123 내지 126)로 도시된다.
일부 예시에 따라, 상술한 바와 같이, 저장 어레이(120)의 저장 장치는 (p-1)2 개의 청크(chunk)로 분할될 수 있으며, 여기서 p는 3보다 큰 소수이다. 도 3a 내지 도 3d에 대하여 상술한 예시적인 저장 어레이에 대하여는 p=5이다. 따라서, 이러한 예시에서, 저장 어레이(120)의 저장 장치는 (5-1)2 = 16 개의 청크로 분할될 수 있다. 16 개의 청크로 분할된 결과로서, 도 3a 내지 도 3d에 도시된 패리티 테이블 각각은 16 로우를 포함한다.
일부 예시에서, 도 3a 내지 도 3d에 도시된 트리플 패리티 인코딩 기법은 이하에서 도시된 바와 같이 하나 이상의 예시적인 수학식 또는 알고리즘을 구현하는 것에 적어도 부분적으로 기초할 수 있다. 예시적인 수학식은 데이터 저장 장치(122-1 내지 122-4) 각각에 대하여 다음의 가정에 적어도 부분적으로 기초할 수 있다.
p는 3보다 큰 소수이고,
데이터 저장 장치는 D로 표현되고,
D(k, j), (k = 0,1,…p-2) 및 (j = 0,1,…,(p-1)2 - 1)이고, 여기서 j는 데이터 저장 장치 k 상의 j 번째 청크이다.
예시적인 수학식은 또한, 패리티 저장 장치 (123 내지 126) 각각에 대하여 다음의 가정에 적어도 부분적으로 기초할 수 있다.
p는 3보다 큰 소수이고,
패리티 저장 장치는 DP로 표현되고,
DP(i,j), (i = 1, 2, 3, 4) 및 (j = 0,1,…,(p-1)2 - 1)이고, j는 패리티 저장 장치 i 상의 j 번째 청크이다.
일부 예시에서, 데이터 저장 장치(122-1 내지 122-4)에 걸치는 제1 로우 패리티는 예시적인 수학식 1에 따라 결정될 수 있다. 이러한 예시에서, 제1 로우 패리티는 도 3a의 테이블(310)의 최우측 칼럼에서 식별되며 로우 패리티 저장 장치(123)에 저장될 수 있다.
Figure 112014041630788-pct00001
일부 예시에서, 제1 사선 패리티 세트를 따라 제1 사선 패리티가 예시적인 수학식 2에 따라 결정될 수 있다. 이하에서 보다 상세히 설명되는 바와 같이, 제1 사선 패리티는 로우 패리티 저장 장치(123) 및 데이터 저장 장치(122-1 내지 122-4) 중 하나를 제외한 모두에 걸칠 수 있다. 이러한 예시에서, 제1 사선 패리티는 도 3b의 테이블(320)의 최우측 칼럼에서 식별되며 사선 패리티 저장 장치(124)에 저장될 수 있다.
Figure 112014041630788-pct00002
일부 예시에 따르면, 테이블(320)에서 도시된 바와 같이, 주어진 스트라이프의 각 제1 사선 패리티 세트에 속하는 모든 청크가 주어진 스트라이프에 저장되도록, 제1 사선 패리티 세트에 따른 제1 사선 패리티는 (p-1)2 로우 내에서 둘러싸는 제1 사선 패리티 세트에 적어도 부분적으로 기초하여 정의될 수 있다. 예컨대, 테이블(320)의 최우측 로우에서 "0"으로 식별되는 제1 사선 패리티 세트는 1 로우에서 데이터 저장 장치(122-1), 4 로우에서 데이터 저장 장치(122-3), 3 로우에서 데이터 저장 장치(122-4) 및 2 로우에서 로우 패리티 저장 장치(123)로부터의 청크를 포함한다. 또한, "0"으로 식별된 제1 사선 패리티 세트가 로우 패리티 저장 장치(123) 및 데이터 저장 장치(122-1 내지 122-4) 중 하나를 제외한 모두에 걸침을 주목한다. 제외되는 하나의 저장 장치는 데이터 저장 장치(122-2)이다. 또한, 다른 제1 사선 패리티 세트 또한, 로우 패리티 저장 장치(123) 및 데이터 저장 장치(122-1 내지 122-4) 중 하나를 제외한 모두에 걸칠 수 있다.
일부 예시에서, 제2 사선 패리티 세트에 따른 제2 사선 패리티는 예시적인 수학식 3에 따라 결정될 수 있다. 이하에서 더 설명되는 바와 같이, 제1 사선 패리티는 로우 패리티 저장 장치(123) 및 데이터 저장 장치(122-1 내지 122-4) 중 하나를 제외한 모두에 걸칠 수 있다. 이러한 예시에서, 제2 사선 패리티는 도 3c의 테이블(330)의 최우측 로우에서 식별되며 사선 패리티 저장 장치(125)에 저장될 수 있다.
Figure 112014041630788-pct00003
일부 예시에 따르면, 테이블(330)에서 도시된 바와 같이, 주어진 스트라이프의 각 제1 사선 패리티 세트에 속하는 모든 청크가 주어진 스트라이프에 저장되도록, 제2 사선 패리티 세트를 따라 제2 사선 패리티가 (p-1)2 로우에서 둘러싸는 제2 사선 패리티 세트에 적어도 부분적으로 기초하여 정의될 수 있다. 또한, 테이블(320)에 대하여 상술한 바와 유사하게, 제1 사선 패리티 세트는 로우 패리티 저장 장치(123) 및 데이터 저장 장치(122-1 내지 122-4) 중 하나를 제외한 모두에 걸친다.
일부 예시에서, 데이터 저장 장치(122-1 내지 122-4)에 걸치는 제2 로우 패리티가 예시적인 수학식 4에 따라 결정될 수 있다. 이러한 예시에서, 제2 로우 패리티는 도 3d의 테이블(340)의 최우측 로우에서 식별되며 로우 패리티 저장 장치(126)에 저장될 수 있다.
Figure 112014041630788-pct00004
일부 예시에 따르면, 테이블(340)에서 도시된 바와 같이, 제2 로우 패리티는 데이터 저장 장치(122-1 내지 122-4)에 걸칠 수 있다. 또한, 이러한 예시에서, 결정된 제2 로우 패리티 중 적어도 일부는 데이터 저장 장치 중 4개 모두 보다는 데이터 저장 장치의 일부에 기초할 수 있다. 예컨대, 테이블(340)의 2 로우에서 로우 패리티는 4 개의 데이터 저장 장치 중 3개에 기초하여 결정된 패리티를 나타내고 로우 12에서의 로우 패리티는 4 개의 데이터 저장 장치 중 2 개에 기초하여 결정된 로우 패리티를 나타낸다.
일부 예시에 따르면, 복원 관리기(117)는 (예컨대, 복원 특징(218)을 통하여) 저장 어레이(120)와 연관된 다양한 상이한 유형의 실패로부터 복원하도록 구성된 로직 및/또는 특징을 포함할 수 있다. 예컨대, 3 개의 데이터 저장 장치가 실패하면, 로우 패리티 저장 장치(126)에 저장된 제2 로우 패리티와 연관된 하나 이상의 로우 패리티 값 및 사선 패리티 저장 장치(125)에 저장된 제2 사선 패리티와 연관된 하나 이상의 사선 패리티 값을 이용할 수 있는 복원 관리기(117) 제1 로우-사선 패리티(RDP) 기법을 구현할 수 있다. 복원 관리기(117)는 또한 사선 패리티 저장 장치(124)에 저장된 제1 사선 패리티와 연관된 하나 이상의 사선 패리티 값 및 로우 패리티 저장 장치(123)에 저장된 제1 로우 패리티와 연관된 하나 이상의 로우 패리티 값을 이용하는 제2 RDP 기법을 구현할 수 있다. 이러한 예시에서, 제1 및 제2 RDP 기법을 구현함으로써, 3 개의 실패한 저장 장치에서 유지되는 데이터가 복원될 수 있다.
일부 예시에서, 데이터 저장 장치 및 패리티 저장 장치의 조합이 실패할 수 있거나 데이터 오류를 가질 수 있다. 예컨대, 데이터 저장 장치 및 로우 패리티 저장 장치(123)와 사선 패리티 저장 장치(124) 양자 중 하나는 실패할 수 있거나 데이터 오류를 가질 수 있다. 복원 관리기(117)는 사선 패리티 저장 장치(124)에 저장된 제1 사선 패리티와 연관된 하나 이상의 사선 패리티 값 및 로우 패리티 저장 장치(126)에 저장된 제2 로우 패리티와 연관된 하나 이상의 로우 패리티 값을 이용하는 단일 RDP 기법을 구현할 수 있다. 이러한 예시에서, 단일 RDP 기법을 구현하는 결과로서, 실패한 데이터 저장 장치에서 유지된 데이터는 복원될 수 있고 패리티 값은 로우 패리티 저장 장치(123) 및 사선 패리티 저장 장치(124)에 저장될 수 있다.
상술한 예시적인 실패는 단지 어떻게 복원 관리기(117)가 하나 이상의 RDP 기법을 구현하여 저장 어레이(120)의 실패되거나 데이터 오류가 있는 저장 장치에 저장된 데이터 또는 패리티 값을 복원할 수 있는 가의 두 예시이다. 다양한 다른 RDP 기법은 데이터 및 패리티 값을 복원하도록 로우 패리티 저장 장치(123, 126) 또는 사선 패리티 저장 장치(124, 125)에 저장된 로우 및 사선 패리티 값을 이용함으로써 구현될 수 있다.
도 4는 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 예시적인 방법의 흐름도를 예시한다. 일부 예시에서, 도 1에 도시된 바와 같은 시스템(100)은 도 4에 도시된 흐름도에 관한 예시적인 방법을 예시하도록 이용된다. 도 2에 도시된 바와 같은 복원 관리기(117)는 또한 예시적인 방법을 예시하도록 이용될 수 있다. 그러나, 도 1 또는 도 2에 도시되거나 도 1 또는 도 2에 대하여 설명된 바와 같은 구현예에 제한되지 않는다. 예시적인 방법은 도 1 또는 도 2에 도시된 요소 중 하나 이상을 가지는 다른 시스템 또는 관리기 상에 구현될 수 있다.
블록(410)(저장 장치를 스트라이핑)에서 시작하면, 복원 관리기(117)는 [예컨대, 스트라이프 특징(212)을 통하여] 저장 어레이(120)의 저장 장치를 스트라이핑하도록 구성된 로직 및/또는 특징을 포함할 수 있다. 일부 예시에서, 저장 장치는 청크로 분할될 수 있으며, 이후 각 저장 장치에서 동일한 수의 청크를 포함하는 스트라이프로 구성될 수 있다. 앞서 설명된 바와 같이, 저장 어레이(120)의 저장 장치는 (p-1)2로 분할될 수 있고, p에 대하여 5의 값을 가지면, 이는 (5-1)2 개 또는 16 개의 청크와 같다.
블록(410)으로부터 블록(420)(제1 로우 패리티를 결정)으로 계속되면, 복원 관리기(117)는 [예컨대, 로우 특징(214)을 통하여] 제1 로우 패리티를 결정하도록 구성된 로직 및/또는 특징을 포함할 수 있다. 일부 예시에서, 로우 특징(214)은 예시적인 수학식 1을 수행하여 제1 로우 패리티를 결정할 수 있다. 이러한 예시에서, 제1 로우 패리티는 로우 패리티 저장 장치(123)에 저장될 수 있다.
블록(420)으로부터 블록(430)(제1 사선 패리티를 결정)으로 계속되면, 복원 관리기(117)는 [예컨대, 사선 특징(216)을 통하여] 제1 사선 패리티를 결정하도록 구성된 로직 및/또는 특징을 포함할 수 있다. 일부 예시에서, 사선 특징(214)은 예시적인 수학식 2를 수행하여 제1 사선 패리티를 결정할 수 있다. 이러한 예시에서, 제1 사선 패리티는 사선 패리티 저장 장치(124)에 저장될 수 있다.
블록(430)으로부터 블록(440)(제2 사선 패리티를 결정)으로 계속되면, 복원 관리기(117)는 [예컨대, 사선 특징(216)을 통하여] 제2 사선 패리티를 결정하도록 구성된 로직 및/또는 특징을 포함할 수 있다. 일부 예시에서, 사선 특징(216)은 예시적인 수학식 3을 수행하여 제2 사선 패리티를 결정할 수 있다. 이러한 예시에서, 제2 사선 패리티는 사선 패리티 저장 장치(125)에 저장될 수 있다.
블록(440)으로부터 블록(450)(제2 로우 패리티를 결정)으로 계속되면, 복원 관리기(117)는 [예컨대, 로우 특징(214)을 통하여] 제2 로우 패리티를 결정하도록 구성된 로직 및/또는 특징을 포함할 수 있다. 일부 예시에서, 로우 특징(214)은 예시적인 수학식 4를 수행하여 제2 로우 패리티를 결정할 수 있다. 이러한 예시에서, 제2 로우 패리티는 로우 패리티 저장 장치(126)에 저장될 수 있다.
블록(450)으로부터 결정 블록(460)(실패 또는 데이터 오류)으로 계속되면, 복원 관리기(117)는 [예컨대, 복원 특징(218)을 통하여] 실패 또는 데이터 오류가 저장 어레이(120)의 저장 장치 중 하나 이상에 발생했는지 여부를 결정하도록 구성된 로직 및/또는 특징을 포함할 수 있다. 실패 또는 데이터 오류가 발생했으면, 프로세스는 블록(470)으로 이동한다. 아니면, 프로세스는 블록(480)으로 이동한다.
결정 블록(460)으로부터 블록(470)(데이터/패리티 복원을 수행)으로 이동하면, 복원 관리기(117)는 [예컨대, 복원 특징(218)을 통하여] 하나 이상의 복원 기법을 수행하도록 구성된 로직 및/또는 특징을 포함할 수 있다. 일부 예시에서, 하나 이상의 복원 기법은 저장 어레이(120)의 저장 장치와 연관된 장치 실패 및/또는 데이터 오류로부터 손실된 데이터 또는 패리티 정보를 복원하기 위한 RDP 기법을 포함할 수 있다.
블록(470)으로부터 결정 블록(480)(스트라이핑될 새로운 정보?)으로 계속되면, 복원 관리기(117)는 새로운 정보 또는 데이터가 [예컨대, 스트라이프 특징(212)을 통하여] 저장 어레이(120)의 저장 장치 상에 스트라이핑될 필요가 있는지 여부를 결정하도록 구성된 로직 및/또는 특징을 포함할 수 있다. 새로운 정보 또는 데이터가 스트라이핑될 필요가 있으면, 프로세스는 블록(420)으로 이동하며 로우/사선 패리티가 결정될 수 있다. 아니면, 프로세스는 결정 블록(460)으로 이동한다.
도 5는 예시적인 컴퓨터 프로그램 제품(500)의 블록도를 도시한다. 일부 예시에서, 도 5에 도시된 바와 같이, 컴퓨터 프로그램 제품(500)은 저장 어레이[예컨대, 저장 어레이(120)]와 연관된 실패로부터의 복원을 용이하게 하기 위한 명령어(504)를 또한 포함할 수 있는 신호 포함 매체(502)를 포함한다. 저장 어레이는 복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치, 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치 및 제2 사선 패리티 저장 장치를 포함하는 복수의 저장 장치를 가질 수 있다. 명령어(504)는, 로직[예컨대, 복원 로직(210)]에 의하여 실행되는 경우, 로직으로 하여금 복수의 데이터 저장 장치에 대한 제1 로우 패리티를 결정하도록 할 수 있다. 제1 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있으며, 제1 로우 패리티 저장 장치 상에 저장될 수 있다. 명령어(504)는 또한 로직으로 하여금 제1 사선 패리티 세트를 따라 제1 사선 패리티를 결정하도록 할 수 있다. 제1 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있으며 제1 사선 패리티 저장 장치 상에 저장될 수 있다. 명령어(504)는 또한 로직으로 하여금 제2 사선 패리티 세트를 따라 제2 사선 패리티를 결정하도록 할 수 있다. 제2 사선 패리티는 제1 로우 패리티 저장 장치 및 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸칠 수 있으며, 제2 사선 패리티 저장 장치 상에 저장될 수 있다. 명령어(504)는 또한 로직으로 하여금 복수의 데이터 저장 장치에 대하여 제2 로우 패리티를 결정하도록 할 수 있다. 제2 로우 패리티는 복수의 데이터 저장 장치에 걸칠 수 있으며 제2 로우 패리티 저장 장치 상에 저장될 수 있다. 일부 예시에서, 제2 로우 패리티의 하나 이상의 로우의 적어도 일부는 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함할 수 있다.
도 5에 도시된 바와 같이, 일부 예시에서, 컴퓨터 제품(500)은 컴퓨터 판독 가능 매체(506), 기록 가능 매체(508) 및 통신 매체(510) 중 하나 이상을 포함할 수 있다. 이러한 요소들을 둘러싼 점선 박스는 신호 포함 매체(502) 내에 포함되는 상이한 유형의 매체를 도시하지만, 이에 제한되지는 않는다. 이러한 유형의 매체는 로직[예컨대, 복원 로직(210)]에 의해 실행될 명령어(504)를 분배할 수 있다. 컴퓨터 판독 가능 매체(506) 및 기록 가능 매체(508)는 플렉서블 디스크, HDD(hard disk drive), CD(Compact Disc), DVD(Digital Versatile Disk), 디지털 테이프, 컴퓨터 메모리 등을 포함할 수 있으나, 이에 제한되지는 않는다. 통신 매체(510)는, 디지털 및/또는 아날로그 통신 매체(예컨대, 광 섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크, 등)을 포함할 수 있으나, 이에 제한되지는 않는다.
도 6은 예시적인 컴퓨팅 장치(600)를 예시한다. 일부 예시에서, 도 1 내지 도 2에 도시된 복원 관리기(117)는 컴퓨팅 장치(600) 상에 구현될 수 있다. 이러한 예시에서, 컴퓨팅 장치(600)의 요소는 지속적인 저장 블록을 할당하기 위해 또는 지속적인 저장 블록에 액세스하기 위한 파일 시스템 또는 어플리케이션에 대하여 배열되거나 구성될 수 있다. 기초적인 구성(601)에서, 컴퓨팅 장치(600)는 하나 이상의 프로세서(610) 및 시스템 메모리(620)를 포함할 수 있다. 메모리 버스(630)가 프로세서(610) 및 시스템 메모리(620) 사이의 통신을 위하여 사용될 수 있다.
요구되는 구성에 따라, 프로세서(610)는 마이크로프로세서(μP), 마이크로컨트롤러(μC), 디지털 신호 프로세서(DSP), 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 프로세서(610)는 레벨 1 캐시(611) 및 레벨 2 캐시(612)와 같은 하나 이상의 레벨(level)의 캐시(cache), 프로세서 코어(613), 및 레지스터(614)를 포함할 수 있다. 프로세서 코어(613)는 산술 논리 연산장치(arithmetic logic unit; ALU), 부동 소수점 장치(floating point unit; FPU), 디지털 신호 처리 코어(DSP Core), 또는 그들의 임의의 조합을 포함할 수 있다. 메모리 컨트롤러(615)가 또한 프로세서(610)와 함께 사용될 수 있고, 또는 일부 구현예에서 메모리 컨트롤러(615)는 프로세서(610)의 내적인 일부일 수 있다.
요구되는 구성에 따라, 시스템 메모리(620)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 시스템 메모리(620)는 보통 운영 체제(621), 하나 이상의 어플리케이션(application)(622), 및 프로그램 데이터(624)를 포함할 수 있다. 어플리케이션(622)은 도 2에 도시된 복원 관리기(117) 아키텍처에 관하여 설명된 작용을 포함하는 여기에서 기술된 바와 같은 기능을 수행하도록 배열되는 명령어(623)를 포함할 수 있다. 프로그램 데이터(624)는 명령어(623)를 수행 (예컨대, 로우/사선 패리티를 결정)하기 위해 유용한 복원 데이터(625)를 포함할 수 있다. 일부 예시에서, 어플리케이션(622)은 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 운영 체제(621) 상에서 프로그램 데이터(624)와 동작하도록 배열될 수 있다. 이러한 기술된 기초적인 구성은 도 6에서 파선(601) 내의 컴포넌트들에 의해 도시된다.
컴퓨팅 장치(600)는 기초적인 구성(601)과 임의의 요구되는 장치 및 인터페이스(interface) 사이의 통신을 용이하게 하도록 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(640)가 저장 인터페이스 버스(641)를 통한 기초적인 구성(601) 및 하나 이상의 데이터 저장 장치(650) 사이의 통신을 용이하게 하도록 사용될 수 있다. 데이터 저장 장치(650)는 이동식 저장 장치(651), 고정식 저장 장치(652), 또는 그 조합일 수 있다. 이동식 저장 장치 및 고정식 저장 장치의 예를 몇 가지 들자면, 플렉서블 디스크 드라이브(flexible disk drive) 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다목적 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(SSD), 및 테이프 드라이브 등을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈(program module), 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성의 이동식 및 고정식 매체를 포함할 수 있다.
시스템 메모리(620), 이동식 저장 장치(651) 및 고정식 저장 장치(652)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 요구되는 정보를 저장하도록 사용될 수 있고, 컴퓨팅 장치(600)에 의해 접근될 수 있는 임의의 기타 매체를 포함하나, 이에 제한되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(600)의 일부일 수 있다.
컴퓨팅 장치(600)는 또한 버스/인터페이스 컨트롤러(640)를 통한 다양한 인터페이스 장치(예컨대, 출력 장치, 주변 인터페이스, 및 통신 인터페이스)로부터 기초적인 구성(601)으로의 통신을 용이하게 하기 위한 인터페이스 버스(642)를 포함할 수 있다. 예시적인 출력 인터페이스(660)는 그래픽 처리 유닛(661) 및 오디오 처리 유닛(662)을 포함할 수 있으며, 이는 하나 이상의 A/V 포트(663)를 통하여 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(670)는 직렬 인터페이스 컨트롤러(671) 또는 병렬 인터페이스 컨트롤러(672)를 포함할 수 있으며, 이는 하나 이상의 I/O 포트(673)를 통하여 입력 장치(예컨대, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 기타 주변 장치(예컨대, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 인터페이스(680)는 네트워크 컨트롤러(681)를 포함하며, 이는 하나 이상의 통신 포트(682)를 통하여 네트워크 통신 상에서 하나 이상의 다른 컴퓨팅 장치(690)와의 통신을 용이하게 하도록 배열될 수 있다. 네트워크 통신 연결은 통신 매체의 일 예시이다. 통신 매체는 일반적으로 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 기타 수송 메커니즘(transport mechanism)과 같은, 변조된 데이터 신호에서의 기타 데이터에 의해 구현될 수 있고 임의의 정보 전달 매체를 포함할 수 있다. "변조된 데이터 신호"는 신호 내에 정보를 인코딩하는 방식으로 설정되거나 변경된 하나 이상의 특성을 갖는 신호일 수 있다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 유선 연결(direct-wired connection)과 같은 유선 매체, 및 음향, 라디오 주파수(RF), 적외선(IR) 및 기타 무선 매체와 같은 무선 매체를 포함할 수 있으나, 이에 제한되지 않는다. 여기에서 사용된 컴퓨터 판독 가능 매체라는 용어는 저장 매체 및 통신 매체 둘 다를 포함할 수 있다.
컴퓨팅 장치(600)는 휴대 전화기, 개인 휴대용 단말기(PDA), 개인 미디어 재생 장치, 무선 웹워치 장치, 개인 헤드셋 장치, 특정 용도 장치, 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 소형 폼팩터 휴대용(모바일) 전자 장치의 일부로 구현될 수 있다. 컴퓨팅 장치(600)는 또한 랩탑 컴퓨터나 랩탑이 아닌 컴퓨터 구성 둘 다를 포함하는 개인 컴퓨터로 구현될 수 있거나 워크스테이션 또는 서버 구성에 구현될 수 있다.
본 개시에서 이루어지는 "반응하는" 또는 "응답하여"라는 용어에 대한 참조는 특정한 특징 및/또는 구조로의 반응에 제한되지 않는다. 특징은 또한 다른 특징 및/또는 구조에의 반응할 수 있고 또한 그 특징 및/또는 구조 내에 위치할 수 있다. 또한, "결합" 또는 "반응" 또는 "응답하여" 또는 "통신하여" 등과 같은 용어 또는 어구가 여기에서 또는 이어지는 청구항에서 사용되는 경우, 이러한 용어는 넓게 해석되어야 한다. 예컨대, "결합되는"이라는 어구는 그 어구가 사용되는 문맥에 적절하게 통신적으로, 전기적으로 및/또는 동작적으로 결합되는 것을 지칭할 수 있다.
당업자라면, 여기서 설명된 형식으로 장치 및/또는 프로세스를 기술하고, 이후, 공학 실무를 사용하여 그러한 기술된 장치(예컨대, 송신기, 수신기, 무선 장치, 컴퓨팅 플랫폼, 컴퓨팅 장치 등) 및/또는 방법을 데이터 처리 시스템에 통합한다는 것은 당해 분야에서는 일반적이란 것을 인식할 것이다. 즉, 여기서 기술된 장치 및/또는 방법의 적어도 일부는 합당한 실험 량을 통해 데이터 처리 시스템에 통합될 수 있다. 당업자라면, 전형적인 데이터 처리 시스템은 일반적으로 시스템 유닛 하우징, 비디오 디스플레이 장치, 휘발성 및 비휘발성 메모리 같은 메모리, 마이크로프로세서 및 디지털 신호 프로세서와 같은 프로세서, 운영 체제, 드라이버, 그래픽 사용자 인터페이스 및 애플리케이션 프로그램과 같은 컴퓨터 엔티티(computational entities), 터치 패드 또는 스크린 같은 하나 이상의 상호작용 장치, 및/또는 피드백 루프 및 제어 모터(예를 들면, 위치 및/또는 속도를 감지하기 위한 피드백; 컴포넌트 및/또는 양(quantities)을 이동하고 및/또는 조정하기 위한 제어 모터)를 포함하는 제어 시스템 중 하나 이상을 일반적으로 포함한다는 것을 인식할 것이다. 전형적인 데이터 처리 시스템은 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템에서 전형적으로 발견되는 바와 같은 임의의 적절한 상업적으로 이용 가능한 컴포넌트를 이용하여 구현될 수 있다.
여기에서 기술된 대상은 때때로 상이한 다른 컴포넌트 또는 요소 내에 포함되거나 접속된 상이한 컴포넌트 또는 요소를 도시한다. 도시된 그러한 아키텍처는 단순히 예시적인 것이고, 사실상 동일한 기능을 달성하는 다른 많은 아키텍처가 구현될 수 있다는 것이 이해되어야 한다. 개념적으로, 동일한 기능을 달성하기 위한 컴포넌트의 임의의 배치는 원하는 기능이 달성되도록 유효하게 "연관"된다. 이에 따라, 특정 기능을 달성하기 위해 여기서 결합된 임의의 두 개의 컴포넌트는, 아키텍처 또는 중간 컴포넌트와는 무관하게, 원하는 기능이 달성되도록 서로 "연관"된 것으로 볼 수 있다. 마찬가지로, 연관된 임의의 두 개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작적으로 접속"되거나 또는 "동작적으로 연결"되는 것으로 간주될 수 있고, 그와 같이 연관될 수 있는 임의의 두 개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작적으로 연결가능"한 것으로 볼 수 있다. 동작적으로 연결가능하다는 것의 특정예는 물리적으로 양립가능(mateable)하고 및/또는 물리적으로 인터액팅하는 컴포넌트 및/또는 무선으로 인터액팅이 가능하고 및/또는 무선으로 인터액팅하는 컴포넌트 및/또는 논리적으로 인터액팅하고 및/또는 논리적으로 인터액팅이 가능한 컴포넌트를 포함하지만, 이에 한정되는 것은 아니다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어의 사용에 대하여, 당업자는 맥락 및/또는 응용에 적절하도록, 복수를 단수로 및/또는 단수를 복수로 해석할 수 있다. 다양한 단수/복수의 치환은 명확성을 위해 여기에서 명시적으로 기재될 수 있다.
당업자라면, 일반적으로 본 개시에 사용되며 특히 첨부된 청구범위(예를 들어, 첨부된 청구범위)에 사용된 용어들이 일반적으로 "개방적(open)" 용어(예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는"으로, 용어 "갖는"는 "적어도 갖는"으로, 용어 "포함하다"는 "포함하지만 이에 한정되지 않는" 등으로 해석되어야 함)로 의도되었음을 이해할 것이다. 또한, 당업자라면, 도입된 청구항의 기재사항의 특정 수가 의도된 경우, 그러한 의도가 청구항에 명시적으로 기재될 것이며, 그러한 기재사항이 없는 경우, 그러한 의도가 없음을 또한 이해할 것이다. 예를 들어, 이해를 돕기 위해, 이하의 첨부 청구범위는 "적어도 하나" 및 "하나 이상" 등의 도입 구절의 사용을 포함하여 청구항 기재사항을 도입할 수 있다. 그러나, 그러한 구절의 사용이, 부정관사 "하나"("a" 또는 "an")에 의한 청구항 기재사항의 도입이, 그러한 하나의 기재사항을 포함하는 발명들로, 그러한 도입된 청구항 기재사항을 포함하는 특정 청구항을 제한함을 암시하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구절인 "하나 이상" 또는 "적어도 하나" 및 "하나"("a" 또는 "an")과 같은 부정관사(예를 들어, "하나"는 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 전형적으로 해석되어야 함)를 포함하는 경우에도 마찬가지로 해석되어야 한다. 이는 청구항 기재사항을 도입하기 위해 사용된 정관사의 경우에도 적용된다. 또한, 도입된 청구항 기재사항의 특정 수가 명시적으로 기재되는 경우에도, 당업자라면 그러한 기재가 전형적으로 적어도 기재된 수(예를 들어, 다른 수식어가 없는 "두개의 기재사항"을 단순히 기재한 것은, 전형적으로 적어도 두 개의 기재사항 또는 두 개 이상의 기재사항을 의미함)를 의미하도록 해석되어야 함을 이해할 것이다. 또한, "A, B 및 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 및 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). "A, B 또는 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 또는 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). 또한 당업자라면, 실질적으로 임의의 이접 접속어(disjunctive word) 및/또는 두 개 이상의 대안적인 용어들을 나타내는 구절은, 그것이 상세한 설명, 청구범위 또는 도면에 있는지와 상관없이, 그 용어들 중의 하나, 그 용어들 중의 어느 하나, 또는 그 용어들 두 개 모두를 포함하는 가능성을 고려했음을 이해할 것이다. 예를 들어, "A 또는 B"라는 구절은 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
다양한 양상 및 실시예들이 여기에서 개시되었지만, 다른 양상 및 실시예들이 당업자에게 명확할 것이다. 본 개시에 기재된 다양한 양상 및 실시예는 예시의 목적으로 제시된 것이고, 제한하려고 의도된 것이 아니며, 진정한 범위와 사상은 이하 청구범위에 의해 나타낸다.

Claims (53)

  1. 복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치(row parity storage device), 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치(diagonal parity storage device) 및 제2 사선 패리티 저장 장치를 포함하는 복수의 저장 장치를 가지는 저장 어레이(storage array)와 연관된 실패(failure)로부터의 복원을 용이하게 하기 위한 방법으로서,
    상기 복수의 데이터 저장 장치에 대한 제1 로우 패리티를 결정하는 단계 - 상기 제1 로우 패리티는 상기 복수의 데이터 저장 장치에 걸치고(span) 상기 제1 로우 패리티 저장 장치 상에 저장됨 -;
    제1 사선 패리티 세트를 따라 제1 사선 패리티를 결정하는 단계 - 상기 제1 사선 패리티는 상기 제1 로우 패리티 저장 장치 및 상기 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸치고, 상기 결정된 제1 사선 패리티는 상기 제1 사선 패리티 저장 장치 상에 저장됨-;
    제2 사선 패리티 세트를 따라 제2 사선 패리티를 결정하는 단계 - 상기 제2 사선 패리티는 상기 제1 로우 패리티 저장 장치 및 상기 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸치고, 상기 결정된 제2 사선 패리티는 상기 제2 사선 패리티 저장 장치 상에 저장됨-; 및
    상기 복수의 데이터 저장 장치에 대하여 제2 로우 패리티를 결정하는 단계
    를 포함하고,
    상기 제2 로우 패리티는 상기 복수의 데이터 저장 장치에 걸치고 상기 제2 로우 패리티 저장 장치 상에 저장되고,
    상기 제2 로우 패리티의 하나 이상의 로우(row)의 적어도 일부는 상기 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 복수의 저장 장치는 n 개의 데이터 저장 장치를 포함하고, n=p-1이고 p는 3 보다 큰 소수(prime number)인, 방법.
  3. 제2항에 있어서,
    상기 복수의 저장 장치 각각을 청크(chunk)로 분할하는 단계; 및
    상기 복수의 저장 장치 각각을 각 저장 장치 내 동일한 수의 청크를 포함하는 스트라이프(stripe)로 구성(organizing)하는 단계
    를 더 포함하고,
    상기 복수의 저장 장치 각각은 (p-1)2 청크로 스트라이핑(striping)되는, 방법.
  4. 제3항에 있어서,
    상기 제1 로우 패리티 및 상기 제2 로우 패리티를 결정하는 단계는, (p-1)2 로우를 별도로 포함하는 결정된 제1 로우 패리티 및 결정된 제2 로우 패리티에 적어도 부분적으로 기초하여 별도로 정의되는 상기 제1 로우 패리티 및 상기 제2 로우 패리티를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 제1 사선 패리티 세트를 따라 상기 제1 사선 패리티를 결정하는 단계는, 주어진 스트라이프의 각 제1 사선 패리티 세트에 속하는 모든 청크가 상기 주어진 스트라이프에 저장되도록, (p-1)2 로우 내에서 둘러싸는 상기 제1 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제1 사선 패리티를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제2 사선 패리티 세트를 따라 상기 제2 사선 패리티를 결정하는 단계는, 주어진 스트라이프의 각 제2 사선 패리티 세트에 속하는 모든 청크가 상기 주어진 스트라이프에 저장되도록, 상기 (p-1)2 로우 내에 부분적으로 둘러싸는 상기 제2 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제2 사선 패리티를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하는 것은, 상기 제2 로우 패리티와 연관된 하나 이상의 로우 패리티 값 및 상기 제2 사선 패리티와 연관된 하나 이상의 사선 패리티 값을 이용하는 제1 로우-사선 패리티(RDP) 기법의 구현을 가능하게 하는 것 및 이후 상기 제1 사선 패리티와 연관된 하나 이상의 사선 패리티 값 및 상기 제1 로우 패리티와 연관된 하나 이상의 로우 패리티 값을 이용하는 제2 RDP 기법의 구현을 가능하게 하는 것을 포함하는, 방법.
  8. 제3항에 있어서,
    상기 복수의 저장 장치 각각은 RAID (Redundant Array of Independent Disks) 기법에 따라 스트라이핑되는, 방법.
  9. 제1항에 있어서,
    상기 복수의 저장 장치는 하드 디스크 드라이브, 솔리드 스테이트 디스크 드라이브, 직접 접근 저장 장치(direct access storage device), 자기 테이프, 버블 메모리(bubble memory), 광학 저장 매체, 전자 임의 접근 또는 디지털 다용도 디스크 중 적어도 하나를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 저장 어레이와 연관된 실패는 상기 복수의 저장 장치 중 하나 이상에서의 실패 또는 상기 복수의 저장 장치 중 하나 이상과 연관된 체크섬 에러(checksum error)의 조합(combination)을 포함하는 상기 저장 장치 어레이와 연관된 3 개의 동시 실패를 포함하는, 방법.
  11. 복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치, 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치 및 제2 사선 패리티 저장 장치를 포함하는 복수의 저장 장치를 가지는 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하는 장치로서,
    로직을 가지는 복원 관리기(recovery manager)를 포함하고,
    상기 로직은
    상기 복수의 데이터 저장 장치에 대한 제1 로우 패리티를 결정하고 - 상기 제1 로우 패리티는 상기 복수의 데이터 저장 장치에 걸치고 상기 제1 로우 패리티 저장 장치 상에 저장됨 -;
    제1 사선 패리티 세트를 따라 제1 사선 패리티를 결정하고 - 상기 제1 사선 패리티는 상기 제1 로우 패리티 저장 장치 및 상기 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸치고, 상기 결정된 제1 사선 패리티는 상기 제1 사선 패리티 저장 장치 상에 저장됨 -;
    제2 사선 패리티 세트를 따라 제2 사선 패리티를 결정하고 - 상기 제2 사선 패리티는 상기 제1 로우 패리티 저장 장치 및 상기 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸치고, 상기 결정된 제2 사선 패리티는 상기 제2 사선 패리티 저장 장치 상에 저장됨 -; 및
    상기 복수의 데이터 저장 장치에 대한 제2 로우 패리티를 결정하도록 구성되고,
    상기 제2 로우 패리티는 상기 복수의 데이터 저장 장치에 걸치고 상기 제2 로우 패리티 저장 장치 상에 저장되고, 상기 제2 로우 패리티의 하나 이상의 로우의 적어도 일부는 상기 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함하는, 장치.
  12. 제11항에 있어서,
    상기 복수의 저장 장치는 n 개의 데이터 저장 장치를 포함하고, n=p-1이고 p는 3 보다 큰 소수인, 장치.
  13. 제12항에 있어서, 상기 로직은,
    상기 복수의 저장 장치 각각을 청크로 분할하고,
    상기 복수의 저장 장치 각각을 각각의 저장 장치와 동일한 수의 청크를 포함하는 스트라이프로 구성하도록 더 구성되며,
    상기 복수의 저장 장치 각각은 (p-1)2 청크로 스트라이핑되는, 장치.
  14. 제13항에 있어서,
    상기 제1 로우 패리티 및 상기 제2 로우 패리티를 결정하는 것은, (p-1)2 로우를 개별로 포함하는 결정된 제1 로우 패리티 및 결정된 제2 로우 패리티에 적어도 부분적으로 기초하여 개별로 정의되는 상기 제1 로우 패리티 및 상기 제2 로우 패리티를 포함하는, 장치.
  15. 제14항에 있어서,
    상기 제1 사선 패리티 세트를 따라 상기 제1 사선 패리티를 결정하는 것은, 주어진 스트라이프의 각 제1 사선 패리티 세트에 속하는 모든 청크가 상기 주어진 스트라이프에 저장되도록, (p-1)2 로우 내에 둘러싸는 상기 제1 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제1 사선 패리티를 포함하는, 장치.
  16. 제15항에 있어서,
    상기 제2 사선 패리티 세트를 따라 상기 제2 사선 패리티를 결정하는 것은, 주어진 스트라이프의 각 제2 사선 패리티 세트에 속하는 모든 청크가 상기 주어진 스트라이프에 저장되도록, 상기 (p-1)2 로우 내에 부분적으로 둘러싸는 상기 제2 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제2 사선 패리티를 포함하는, 장치.
  17. 제16항에 있어서,
    상기 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하는 것은, 상기 제2 로우 패리티와 연관된 하나 이상의 로우 패리티 값 및 상기 제2 사선 패리티와 연관된 하나 이상의 사선 패리티 값을 이용하는 제1 로우-사선 패리티(RDP) 기법의 구현을 가능하게 하는 것 및 이후 상기 제1 사선 패리티와 연관된 하나 이상의 사선 패리티 값 및 상기 제1 로우 패리티와 연관된 하나 이상의 로우 패리티 값을 이용하는 제2 RDP 기법의 구현을 가능하게 하는 것을 포함하는, 장치.
  18. 제13항에 있어서,
    상기 복수의 저장 장치 각각은 RAID (Redundant Array of Independent Disks) 기법에 따라 스트라이핑되는, 장치.
  19. 제11항에 있어서,
    상기 저장 어레이와 연관된 실패는 상기 복수의 저장 장치 중 하나 이상에서의 실패 또는 상기 복수의 저장 장치 중 하나 이상과 연관된 체크섬 에러(checksum error)의 조합을 포함하는 상기 저장 장치 어레이와 연관된 3 개의 동시 실패를 포함하는, 장치.
  20. 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하기 위한 시스템으로서,
    복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치, 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치 및 제2 사선 패리티 저장 장치를 포함하는 복수의 저장 장치 및
    로직을 가지는 복원 관리기를 포함하고,
    상기 로직은
    상기 복수의 데이터 저장 장치에 대한 제1 로우 패리티를 결정하고 - 상기 제1 로우 패리티는 상기 복수의 데이터 저장 장치에 걸치고 상기 제1 로우 패리티 저장 장치 상에 저장됨 -;
    제1 사선 패리티 세트를 따라 제1 사선 패리티를 결정하고 - 상기 제1 사선 패리티는 상기 제1 로우 패리티 저장 장치 및 상기 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸치고, 상기 결정된 제1 사선 패리티는 상기 제1 사선 패리티 저장 장치 상에 저장됨 -;
    제2 사선 패리티 세트를 따라 제2 사선 패리티를 결정하고 - 상기 제2 사선 패리티는 상기 제1 로우 패리티 저장 장치 및 상기 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸치고, 상기 결정된 제2 사선 패리티는 상기 제2 사선 패리티 저장 장치 상에 저장됨 -; 및
    상기 복수의 데이터 저장 장치에 대한 제2 로우 패리티를 결정하도록 구성되고,
    상기 제2 로우 패리티는 상기 복수의 데이터 저장 장치에 걸치고 상기 제2 로우 패리티 저장 장치 상에 저장되고, 상기 제2 로우 패리티의 하나 이상의 로우의 적어도 일부는 상기 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함하는, 시스템.
  21. 제20항에 있어서,
    상기 복수의 저장 장치는 n 개의 데이터 저장 장치를 포함하고, n=p-1이고 p는 3 보다 큰 소수인, 시스템.
  22. 제21항에 있어서, 상기 로직은,
    상기 복수의 저장 장치 각각을 청크로 분할하고,
    상기 복수의 저장 장치 각각을 각각의 저장 장치와 동일한 수의 청크를 포함하는 스트라이프로 구성하도록 더 구성되며,
    상기 복수의 저장 장치 각각은 (p-1)2 청크로 스트라이핑되는, 시스템.
  23. 제22항에 있어서,
    상기 제1 로우 패리티 및 상기 제2 로우 패리티를 결정하는 것은, (p-1)2 로우를 개별로 포함하는 결정된 제1 로우 패리티 및 결정된 제2 로우 패리티에 적어도 부분적으로 기초하여 개별로 정의되는 상기 제1 로우 패리티 및 상기 제2 로우 패리티를 포함하는, 시스템.
  24. 제23항에 있어서,
    상기 제1 사선 패리티 세트를 따라 상기 제1 사선 패리티를 결정하는 것은, 주어진 스트라이프의 각 제1 사선 패리티 세트에 속하는 모든 청크가 상기 주어진 스트라이프에 저장되도록, (p-1)2 로우 내에 둘러싸는 상기 제1 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제1 사선 패리티를 포함하는, 시스템.
  25. 제24항에 있어서,
    상기 제2 사선 패리티 세트를 따라 상기 제2 사선 패리티를 결정하는 것은, 주어진 스트라이프의 각 제2 사선 패리티 세트에 속하는 모든 청크가 상기 주어진 스트라이프에 저장되도록, 상기 (p-1)2 로우 내에 부분적으로 둘러싸는 상기 제2 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제2 사선 패리티를 포함하는, 시스템.
  26. 제25항에 있어서,
    상기 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하는 것은, 상기 제2 로우 패리티와 연관된 하나 이상의 로우 패리티 값 및 상기 제2 사선 패리티와 연관된 하나 이상의 사선 패리티 값을 이용하는 제1 로우-사선 패리티(RDP) 기법의 구현을 가능하게 하는 것 및 이후 상기 제1 사선 패리티와 연관된 하나 이상의 사선 패리티 값 및 상기 제1 로우 패리티와 연관된 하나 이상의 로우 패리티 값을 이용하는 제2 RDP 방법의 구현을 가능하게 하는 것을 포함하는, 시스템.
  27. 제20항에 있어서,
    상기 복수의 저장 장치 각각은 RAID (Redundant Array of Independent Disks) 기법에 따라 스트라이핑되는, 시스템.
  28. 제20항에 있어서,
    상기 복수의 저장 장치는 하드 디스크 드라이브, 솔리드 스테이트 디스크 드라이브, 직접 접근 저장 장치(direct access storage device), 자기 테이프, 버블 메모리(bubble memory), 광학 저장 매체, 전자 임의 접근 또는 디지털 다용도 디스크 중 적어도 하나를 포함하는, 시스템.
  29. 복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치, 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치 및 제2 사선 패리티 저장 장치를 포함하는 복수의 저장 장치를 가지는 저장 어레이와 연관된 실패로부터 복원을 용이하게 하기 위한 명령어를 가지는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어는, 로직에 의하여 실행되면, 상기 로직으로 하여금,
    상기 복수의 데이터 저장 장치에 대한 제1 로우 패리티를 결정하고 - 상기 제1 로우 패리티는 상기 복수의 데이터 저장 장치에 걸치고 상기 제1 로우 패리티 저장 장치 상에 저장됨 -;
    제1 사선 패리티 세트를 따라 제1 사선 패리티를 결정하고 - 상기 제1 사선 패리티는 상기 제1 로우 패리티 저장 장치 및 상기 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸치고, 상기 결정된 제1 사선 패리티는 상기 제1 사선 패리티 저장 장치 상에 저장됨 -;
    제2 사선 패리티 세트를 따라 제2 사선 패리티를 결정하고 - 상기 제2 사선 패리티는 상기 제1 로우 패리티 저장 장치 및 상기 복수의 데이터 저장 장치 중 하나를 제외한 모두에 걸치고, 상기 결정된 제2 사선 패리티는 상기 제2 사선 패리티 저장 장치 상에 저장됨 -; 및
    상기 복수의 데이터 저장 장치에 대한 제2 로우 패리티를 결정하도록 하고,
    상기 제2 로우 패리티는 상기 복수의 데이터 저장 장치에 걸치고 상기 제2 로우 패리티 저장 장치 상에 저장되고, 상기 제2 로우 패리티의 하나 이상의 로우의 적어도 일부는 상기 복수의 데이터 저장 장치의 일부에 기초하여 결정된 제2 로우 패리티를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  30. 제29항에 있어서,
    상기 복수의 저장 장치는 n 개의 데이터 저장 장치를 포함하고, n=p-1이고 p는 3 보다 큰 소수인, 비일시적 컴퓨터 판독가능 저장 매체.
  31. 제30항에 있어서, 상기 로직은,
    상기 복수의 저장 장치 각각을 청크로 분할하고,
    상기 복수의 저장 장치 각각을 각각의 저장 장치와 동일한 수의 청크를 포함하는 스트라이프로 구성하도록 더 구성되며,
    상기 복수의 저장 장치 각각은 (p-1)2 청크로 스트라이핑되는, 비일시적 컴퓨터 판독가능 저장 매체.
  32. 제31항에 있어서,
    상기 저장 어레이와 연관된 실패로부터의 복원을 용이하게 하는 명령어는, 상기 로직으로 하여금, 상기 제2 로우 패리티와 연관된 하나 이상의 로우 패리티 값 및 상기 제2 사선 패리티와 연관된 하나 이상의 사선 패리티 값을 이용하는 제1 로우-사선 패리티(RDP) 기법의 구현을 가능하게 하고; 그리고 이후 상기 제1 사선 패리티와 연관된 하나 이상의 사선 패리티 값 및 상기 제1 로우 패리티와 연관된 하나 이상의 로우 패리티 값을 이용하는 제2 RDP 방법의 구현을 더 가능하게 하도록 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  33. 제31항에 있어서,
    상기 복수의 저장 장치 각각은 RAID (Redundant Array of Independent Disks) 기법에 따라 스트라이핑되는, 비일시적 컴퓨터 판독가능 저장 매체.
  34. 저장 어레이의 데이터 복원을 용이하게 하기 위한 방법으로서,
    스트라이핑 기법에 따라 복수의 저장 장치를 스트라이프로 구성하는 단계;
    상기 스트라이핑 기법에 따라 제1 로우 패리티, 제2 로우 패리티, 제1 사선 패리티 및 제2 사선 패리티를 결정하는 단계;
    상기 제1 로우 패리티와 연관된 하나 이상의 로우 패리티 값 및 상기 제1 사선 패리티와 연관된 하나 이상의 사선 패리티를 이용하는 제1 로우-사선 패리티(RDP) 기법을 구현하는 단계; 및
    상기 제2 사선 패리티와 연관된 하나 이상의 사선 패리티 값 및 상기 제2 로우 패리티와 연관된 하나 이상의 로우 패리티 값을 이용하는 제2 RDP 기법을 구현하는 단계
    를 포함하는 방법.
  35. 제34항에 있어서,
    상기 복수의 저장 장치는 n 개의 데이터 저장 장치를 포함하고, n=p-1이고 p는 3 보다 큰 소수(prime number)를 포함하는, 방법.
  36. 제34항에 있어서,
    상기 복수의 저장 장치 각각을 청크(chunk)로 분할하는 단계
    를 더 포함하고, 그리고
    상기 스트라이핑 기법은 상기 복수의 저장 장치 각각에서 동일한 수의 청크를 구성(organizing)하는 것을 포함하고,
    상기 복수의 저장 장치 각각은 (p-1)2 청크로 스트라이핑(striping)되고, n=p-1이고 p는 3 보다 큰 소수(prime number)를 포함하는, 방법.
  37. 제36항에 있어서,
    상기 스트라이핑 기법에 따라 상기 제1 로우 패리티 및 상기 제2 로우 패리티를 결정하는 것은 (p-1)2 로우를 별도로 포함하는 결정된 제1 로우 패리티 및 결정된 제2 로우 패리티에 적어도 부분적으로 기초하여 별도로 정의되는 상기 제1 로우 패리티 및 상기 제2 로우 패리티를 포함하는, 방법.
  38. 제36항에 있어서,
    상기 복수의 저장 장치 각각은 RAID (Redundant Array of Independent Disks) 기법에 따라 스트라이핑되는, 방법
  39. 제37항에 있어서,
    상기 제1 사선 패리티 세트를 따라 상기 제1 사선 패리티를 결정하는 것은, (p-1)2 로우 내에서 둘러싸는 상기 제1 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제1 사선 패리티를 포함하고, 주어진 스트라이프의 각 제1 사선 패리티 세트에 속하는 상기 청크는 상기 주어진 스트라이프에 저장되는, 방법.
  40. 제39항에 있어서,
    상기 제2 사선 패리티 세트를 따라 상기 제2 사선 패리티를 결정하는 것은, 상기 (p-1)2 로우 내에 부분적으로 둘러싸는 상기 제2 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제2 사선 패리티를 포함하고, 주어진 스트라이프의 각 제2 사선 패리티 세트에 속하는 상기 청크는 상기 주어진 스트라이프에 저장되는, 방법.
  41. 제34항에 있어서,
    상기 복수의 저장 장치는 하드 디스크 드라이브, 솔리드 스테이트 디스크 드라이브, 직접 접근 저장 장치, 자기 테이프, 버블 메모리, 광학 저장 매체, 전자 임의 접근 또는 디지털 다용도 디스크 중 적어도 하나를 포함하는, 방법.
  42. 제34항에 있어서,
    상기 데이터 복원과 연관된 실패는 상기 복수의 저장 장치 중 하나 이상에서의 실패 또는 상기 복수의 저장 장치 중 하나 이상과 연관된 체크섬 에러(checksum error)의 조합(combination)을 포함하는, 방법.
  43. 스트라이핑 기법에 따라 복수의 저장 장치를 스트라이프로 구성하고;
    상기 스트라이핑 기법에 따라 제1 로우 패리티, 제2 로우 패리티, 제1 사선 패리티 및 제2 사선 패리티를 결정하고;
    상기 제1 로우 패리티와 연관된 하나 이상의 로우 패리티 값 및 상기 제1 사선 패리티와 연관된 하나 이상의 사선 패리티를 이용하는 제1 로우-사선 패리티(RDP) 기법을 구현하고; 및
    상기 제2 사선 패리티와 연관된 하나 이상의 사선 패리티 값 및 상기 제2 로우 패리티와 연관된 하나 이상의 로우 패리티 값을 이용하는 제2 RDP 기법을 구현하도록 구성된 복원 관리기
    를 포함하는 장치.
  44. 제43항에 있어서,
    상기 복수의 저장 장치는 n 개의 데이터 저장 장치를 포함하고, n=p-1이고 p는 3 보다 큰 소수인, 장치.
  45. 제43항에 있어서,
    상기 복원 관리기는
    상기 복수의 저장 장치 각각을 청크(chunk)로 분할하도록 더 구성되고; 그리고
    상기 스트라이핑 기법은 상기 복수의 저장 장치 각각에서 동일한 수의 청크를 구성하는 것을 포함하고,
    상기 복수의 저장 장치 각각은 (p-1)2 청크로 스트라이핑되고, n=p-1이고 p는 3 보다 큰 소수인, 장치.
  46. 제45항에 있어서,
    상기 스트라이핑 기법에 따라 상기 제1 로우 패리티 및 상기 제2 로우 패리티를 결정하는 것은, (p-1)2 로우를 별도로 포함하는 결정된 제1 로우 패리티 및 결정된 제2 로우 패리티에 적어도 부분적으로 기초하여 별도로 정의되는 상기 제1 로우 패리티 및 상기 제2 로우 패리티를 포함하는, 장치.
  47. 제45항에 있어서,
    상기 복수의 저장 장치 각각은 RAID 기법에 따라 스트라이핑되는, 장치
  48. 제46항에 있어서,
    상기 제1 사선 패리티 세트를 따라 상기 제1 사선 패리티를 결정하는 것은, (p-1)2 로우 내에서 둘러싸는 상기 제1 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제1 사선 패리티를 포함하고, 주어진 스트라이프의 각 제1 사선 패리티 세트에 속하는 상기 청크는 상기 주어진 스트라이프에 저장되는, 장치.
  49. 제48항에 있어서,
    상기 제2 사선 패리티 세트를 따라 상기 제2 사선 패리티를 결정하는 것은, 상기 (p-1)2 로우 내에 부분적으로 둘러싸는 상기 제2 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제2 사선 패리티를 포함하고, 주어진 스트라이프의 각 제2 사선 패리티 세트에 속하는 상기 청크는 상기 주어진 스트라이프에 저장되는, 장치.
  50. 제43항에 있어서,
    상기 복수의 저장 장치는 하드 디스크 드라이브, 솔리드 스테이트 디스크 드라이브, 직접 접근 저장 장치, 자기 테이프, 버블 메모리, 광학 저장 매체, 전자 임의 접근 또는 디지털 다용도 디스크 중 적어도 하나를 포함하는, 장치.
  51. 제43항에 있어서,
    데이터 복원과 연관된 실패는 상기 복수의 저장 장치 중 하나 이상에서의 실패 또는 상기 복수의 저장 장치 중 하나 이상과 연관된 체크섬 에러의 조합을 포함하는, 장치.
  52. 저장 어레이의 데이터 복원을 용이하게 하기 위한 시스템으로서,
    복수의 데이터 저장 장치, 제1 로우 패리티 저장 장치, 제2 로우 패리티 저장 장치, 제1 사선 패리티 저장 장치, 제2 사선 패리티 저장 장치 및 복원 관리기를 포함하고,
    상기 복원 관리기는,
    스트라이핑 기법에 따라 상기 복수의 저장 장치를 스트라이프로 구성하고;
    상기 스트라이핑 기법에 따라 제1 로우 패리티, 제2 로우 패리티, 제1 사선 패리티 및 제2 사선 패리티를 결정하고;
    상기 제1 로우 패리티와 연관된 하나 이상의 로우 패리티 값 및 상기 제1 사선 패리티와 연관된 하나 이상의 사선 패리티를 이용하는 제1 로우-사선 패리티(RDP) 기법을 구현하고; 및
    상기 제2 사선 패리티와 연관된 하나 이상의 사선 패리티 값 및 상기 제2 로우 패리티와 연관된 하나 이상의 로우 패리티 값을 이용하는 제2 RDP 기법을 구현하도록 구성된, 시스템.
  53. 제52항에 있어서,
    상기 스트라이핑 기법에 따라 상기 제1 로우 패리티 및 상기 제2 로우 패리티를 결정하는 것은 (p-1)2 로우를 별도로 포함하는 결정된 제1 로우 패리티 및 결정된 제2 로우 패리티에 적어도 부분적으로 기초하여 별도로 정의되는 상기 제1 로우 패리티 및 상기 제2 로우 패리티를 포함하고,
    상기 제1 사선 패리티 세트를 따라 상기 제1 사선 패리티를 결정하는 것은, (p-1)2 로우 내에서 둘러싸는 상기 제1 사선 패리티 세트에 적어도 부분적으로 기초하여 정의되는 상기 제1 사선 패리티를 포함하고, 주어진 스트라이프의 각 제1 사선 패리티 세트에 속하는 청크는 상기 주어진 스트라이프에 저장되는, 시스템.
KR1020147011826A 2011-11-02 2011-11-02 데이터 복원을 용이하게 하기 위한 트리플 패리티 인코딩 Expired - Fee Related KR101566467B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/081693 WO2013063777A1 (en) 2011-11-02 2011-11-02 Triple parity encoding to facilitate data recovery

Publications (2)

Publication Number Publication Date
KR20140074371A KR20140074371A (ko) 2014-06-17
KR101566467B1 true KR101566467B1 (ko) 2015-11-05

Family

ID=48191208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147011826A Expired - Fee Related KR101566467B1 (ko) 2011-11-02 2011-11-02 데이터 복원을 용이하게 하기 위한 트리플 패리티 인코딩

Country Status (4)

Country Link
US (2) US8645751B2 (ko)
JP (1) JP5993018B2 (ko)
KR (1) KR101566467B1 (ko)
WO (1) WO2013063777A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467094B2 (en) 2016-03-04 2019-11-05 Samsung Electronics Co., Ltd. Method and apparatus for performing data recovery in a raid storage

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529675B2 (en) * 2013-07-26 2016-12-27 Huawei Technologies Co., Ltd. Data recovery method, data recovery device and distributed storage system
KR20160097657A (ko) 2015-02-09 2016-08-18 에스케이하이닉스 주식회사 데이터 저장 장치 그리고 그것의 동작 방법
CN106339179B (zh) * 2015-07-06 2020-11-17 上海宝存信息科技有限公司 主机装置、存取系统、以及存取方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1324200A2 (en) 2001-12-28 2003-07-02 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US20050102470A1 (en) 2003-11-11 2005-05-12 Nec Corporation Disk array device
US7613984B2 (en) 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640484B2 (en) 2001-12-28 2009-12-29 Netapp, Inc. Triple parity technique for enabling efficient recovery from triple failures in a storage array
US7085953B1 (en) * 2002-11-01 2006-08-01 International Business Machines Corporation Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array
US6792391B1 (en) 2002-11-15 2004-09-14 Adeptec, Inc. Method and system for three disk fault tolerance in a disk array
US7093159B1 (en) * 2002-12-12 2006-08-15 Adaptec, Inc. Method and system for four disk fault tolerance in a disk array
US7353423B2 (en) * 2004-09-24 2008-04-01 International Business Machines Corporation System and method for improving the performance of operations requiring parity reads in a storage array system
US8990495B2 (en) * 2011-11-15 2015-03-24 Emc Corporation Method and system for storing data in raid memory devices
US8327185B1 (en) * 2012-03-23 2012-12-04 DSSD, Inc. Method and system for multi-dimensional raid

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1324200A2 (en) 2001-12-28 2003-07-02 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7613984B2 (en) 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
US20050102470A1 (en) 2003-11-11 2005-05-12 Nec Corporation Disk array device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467094B2 (en) 2016-03-04 2019-11-05 Samsung Electronics Co., Ltd. Method and apparatus for performing data recovery in a raid storage

Also Published As

Publication number Publication date
KR20140074371A (ko) 2014-06-17
US8645751B2 (en) 2014-02-04
US9223652B2 (en) 2015-12-29
US20140115426A1 (en) 2014-04-24
WO2013063777A1 (en) 2013-05-10
US20130238929A1 (en) 2013-09-12
JP5993018B2 (ja) 2016-09-14
JP2015501491A (ja) 2015-01-15

Similar Documents

Publication Publication Date Title
EP2703991B1 (en) Scalable storage protection
US8171379B2 (en) Methods, systems and media for data recovery using global parity for multiple independent RAID levels
US8082465B1 (en) Auto-adapting cache memory system and method
US9836369B2 (en) Storage system to recover and rewrite overwritten data
US20190163587A1 (en) Shared storage parity on raid
US8799745B2 (en) Storage control apparatus and error correction method
US8732411B1 (en) Data de-duplication for information storage systems
US20130227346A1 (en) Controlling nonvolatile memory device and nonvolatile memory system
US10860447B2 (en) Database cluster architecture based on dual port solid state disk
US8484506B2 (en) Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality
US10503620B1 (en) Parity log with delta bitmap
US11809274B2 (en) Recovery from partial device error in data storage system
KR101566467B1 (ko) 데이터 복원을 용이하게 하기 위한 트리플 패리티 인코딩
US20190171523A1 (en) Erased memory page reconstruction using distributed coding for multiple dimensional parities
US9280431B2 (en) Prioritizing backups on a disk level within enterprise storage
EP3794451B1 (en) Parity log with by-pass
US10740189B2 (en) Distributed storage system
US9268640B1 (en) Limiting data loss on parity RAID groups
US20160139991A1 (en) Parity-layout generating method, parity-layout generating apparatus, and storage system
US11544005B2 (en) Storage system and processing method
US9886344B2 (en) Storage system and storage apparatus
CN111858133B (zh) 用于通用evenodd编码的扩展
US20220137829A1 (en) Providing preferential treatment to metadata over user data
US20200363958A1 (en) Efficient recovery of resilient spaces
CN106557268B (zh) 一种存储数据的方法

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

Patent event date: 20140430

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20140430

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20150427

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20150813

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20151030

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20151102

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20190810