[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR19980022356A - 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법 - Google Patents

알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법 Download PDF

Info

Publication number
KR19980022356A
KR19980022356A KR1019960041479A KR19960041479A KR19980022356A KR 19980022356 A KR19980022356 A KR 19980022356A KR 1019960041479 A KR1019960041479 A KR 1019960041479A KR 19960041479 A KR19960041479 A KR 19960041479A KR 19980022356 A KR19980022356 A KR 19980022356A
Authority
KR
South Korea
Prior art keywords
data
parity
disk drive
storage area
upper block
Prior art date
Application number
KR1019960041479A
Other languages
English (en)
Other versions
KR100275900B1 (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 김광호
Priority to KR1019960041479A priority Critical patent/KR100275900B1/ko
Priority to DE19723909A priority patent/DE19723909B4/de
Priority to US08/935,201 priority patent/US6070249A/en
Priority to JP25686297A priority patent/JP3742494B2/ja
Publication of KR19980022356A publication Critical patent/KR19980022356A/ko
Application granted granted Critical
Publication of KR100275900B1 publication Critical patent/KR100275900B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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

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

가. 청구범위에 기재된 발명이 속한 기술분야: RAID(Redundant Arrays of Inexpensive Disks) 서브 시스템에 관한 것이다.
나. 발명이 해결하려고 하는 기술적 과제: RAID 서브시스템의 결함내성과 성능향상
다. 그 발명의 해결방법의 요지: 본 발명에서는 디스크 어레이를 데이타를 저장하기 위한 적어도 두 개 이상의 데이타 디스크 드라이브와 소정 디스크 드라이브 고장 시 사용하기 위한 예비 디스크 드라이브와 패러티 체크용 패러티 데이타를 저장하기 위한 패러티 디스크 드라이브로 구성하고, 상기 패러티 디스크 드라이브의 패러티 데이타를 분할하고 분할된 데이타를 상기 패러티 디스크 드라이브와 예비 디스크 드라이브에 각각 저장함으로써, 디스크 어레이를 구성하는 디스크 드라이브의 페일시 데이타 복구를 향상 시키고 예비 디스크 드라이브의 활용성도 높인다.
라. 발명의 중요한 용도: 대용량 저장장치에 사용된다.

Description

알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
본 발명은 대용량 저장 시스템에 관한 것으로, 특히 RAID(Redundant Arrays of Inexpensive Disks) 서브 시스템의 결함내성과 성능향상을 위한 분할 패러티 예비 디스크 구현 방법에 관한 것이다.
컴퓨터시스템의 성능은 중앙처리장치와 입출력 서브시스템에 의해 좌우된다. 최근 VLSI(Very Large-scale Intergration) 기술의 발전으로 중앙처리장치의 처리속도는 크게 향상되었음에도 불구하고 입출력 서브시스템의 성능개선이 느리게 이루어지고 있기 때문에 전체 시스템의 실행시간 중에서 입출력에 소요되는 시간의 비율이 점차 증대되고 있는 실정이다. 또한 입출력 서브시스템의 오류발생 시 데이타 복구 비용이 점차 증가함에 따라 뛰어난 성능과 신뢰성을 갖춘 입출력 서브 시스템의 개발 필요성이 대두되었다. 입출력 성능 향상을 위한 연구들 중의 하나가 RAID(Redundant Arrays of Inexpensive Disks) 서브 시스템에 관한 것이다. 일반적인 입출력 서브시스템은 하나의 디스크 드라이브에 순차적인 입출력을 하는데 반하여 RAID 서브 시스템은 다수의 디스크 드라이브로 구성된 디스크 어레이에 데이타를 분산 저장하여 입출력을 병렬로 수행함으로써 입출력을 빠르게 처리한다. 그리고, 간단한 패러티 정보를 이용하여 오류발생 시 데이타 복원을 가능토록 하여 신뢰성을 향상시킬 수 있게 하였다. 현재 RAID 관련 기술은 이론정립 단계를 지나 상용화 단계에 있다. 대학에서는 RAID 알고리즘에 관한 연구와 시뮬레이션(simulation)을 이용한 실험을 통해 활발한 이론적 연구를 지속하고 있으며, 기업에서는 다양한 성능측정을 통해 개선점을 도출함으로써 입출력 성능개선과 신뢰성 확보를 위한 노력을 계속하고 있다. 디스크 어레이는 디스크 드라이브의 입출력 향상의 일환으로 크레이(Cray)와 같은 슈퍼 컴퓨터에 이전부터 사용되어져 왔으나 RAID의 개념정립은 1988년 미국의 버클리대학의 세명의 컴퓨터 과학자에 의해 발표되면서 시작되었다.
도 1은 통상적인 RAID 서브 시스템의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, RAID 서브 시스템은 디스크 어레이 컨트롤러 4와 다수의 디스크 드라이브 6-0∼6-n으로 구성된 디스크 어레이 6으로 구성된다. 디스크 어레이 컨트롤러 4는 호스트 시스템 2와 디스크 어레이 6 사이에 위치하며 호스트 시스템 2에서의 데이타 리드/라이트 명령에 의거하여 그에 따른 데이타를 디스크 어레이 6의 다수의 디스크 드라이브 6-0∼6-n 로부터/에 리드/라이트 한다. 이때 디스크 어레이 컨트롤러 4는 디스크 어레이 6의 각 디스크 드라이브에 데이타를 분산 저장하며, 입출력을 병렬로 처리하고, 간단한 패러티 정보를 이용하여 오류발생 시 데이타 복원을 가능토록 제어한다.
도 2는 도 1의 디스크 어레이 컨트롤러 4의 구체 블럭구성도이다. 도 2를 참조하면, 디스크 어레이 컨트롤러 4는 호스트 인터페이스 컨트롤러 10, 프로세서 12, 메모리 14, 버퍼 메모리 16 및 어레이 컨트롤러 18로 구성한다. 호스트 인터페이스 컨트롤러 10은 호스트 시스템 2와 프로세서 12 사이에 송수신되는 데이타를 인터페이싱한다. 프로세서 12는 디스크 어레이 서브시스템의 전반적인 동작 제어를 수행한다. 메모리 14는 인터페이스 컨트롤러 10와도 연결되며 프로세서 12의 제어 프로그램이 저장된 롬(ROM) 및 제어동작시 발생되는 데이타를 일시 저장하기 위한 램(RAM)을 포함한다. 버퍼 메모리 16은 프로세서 12의 제어 하에 호스트 시스템 2와 디스크 어레이 6 사이에 송수신되는 데이타 및 데이타 기록/재생 명령을 일시 저장한다. 그리고 어레이 컨트롤러 18은 프로세서 12와 디스크 어레이 6 사이에 송수신되는 각종 데이타를 인터페이싱 제어한다.
이러한 구성의 RAID 서브 시스템은 디스크 드라이브에 데이타의 분산 또는 스트라이핑(striping), 중복 데이타를 가진 디스크 미러링(mirroring) 등의 디스크 어레이 정책으로 입출력 디바이스의 성능향상, 용량확장 및 신뢰성 구축을 목적으로 한다. RAID 이론은 입출력 디바이스 중에서 카트리지 테입과 같은 순차적 접근 디바이스에도 적용이 가능하지만 그 적용의 주요 관심의 대상은 하드 디스크 디바이스(hard disk device)이다.
RAID는 그 특성에 따라 6가지 RAID 레벨(레벨0∼레벨5)로 나누어져 있다. 6가지 RAID레벨은 각 특성에 맞는 환경에 장단점을 가지고 있으며 여러 가지 응용분야에 사용된다. 또한 각각의 RAID 레벨은 여러 종류의 데이타 저장장치나 신뢰성 문제에 대한 해결책을 제공한다.
각 RAID 레벨 구조에 관한 내용을 간단히 설명하면 하기와 같다.
RAID 레벨 0 :
데이타의 신뢰성 측면보다는 성능에 관심을 두고 디스크 어레이 상의 모든 디스크 드라이브에 데이타를 분산하여 저장한다. 디스크 어레이에 있는 디스크 드라이브와의 연결을 위해 각기 다른 제어기를 사용한다. RAID 레벨 0은 각기 다른 컨트롤러를 사용하여 데이타를 동시에 접근케 함으로써 입출력성능을 향상 시키는 장점이 있다.
RAID 레벨 1 :
모든 디스크 드라이브의 내용을 복사 디스크 드라이브에 동일하게 저장하는데, 이 방식을 통상 미러링방식이라고 한다. 미러링방식은 디스크 드라이브의 성능을 향상시키나 경제적인 부담이 있다. 즉, RAID 레벨 1은 데이타 베이스 시스템과 같은 대용량의 디스크 공간이 필요한 시스템에서 50%의 디스크 공간 밖에 사용할 수 없다는 단점이 있다. 그리고 동일한 데이타가 복사 디스크 드라이브에 존재하므로 신뢰성 유지에는 가장 좋다.
RAID 레벨 2 :
RAID 레벨 1의 단점인 경제적 부담을 줄이기 위한 방법으로서 시도된 것이다. RAID 레벨 2는 데이타를 바이트 단위로 디스크 어레이를 구성하는 각 디스크 드라이브에 분산 저장한다. 그리고 오류인식과 오류정정을 위하여 해밍코드를 사용하므로 데이타 디스크 드라이브 이외에 몇개의 검사 디스크 드라이브를 가지고 있다.
RAID 레벨 3 :
한번 입출력 요구될 때 데이타가 병렬로 디스크 드라이브에 입출력되며 패러티 데이타는 별도의 디스크 드라이브에 저장된다. 또한 디스크 구동용 스핀들 모터는 모든 디스크 드라이브가 동시에 데이타를 입출력할 수 있게 동기화 되어 있다. 따라서 입출력이 동시에 일어나지 않아더라도 높은 병렬 입출력화에 의해 상당히 빠른 데이타 전송이 가능하다. 만약 하나의 디스크 드라이브에 페일(Fail)이 발생하였더라도 현재 정상 동작하고 있는 디스크 드라이브와 패러티 디스크 드라이브를 이용하여 페일된 데이타를 복원할 수가 있다. 이때에는 전체 데이타 레이트(data rate)가 떨어진다.
RAID 레벨 3은 매우 빠른 데이타 전송율이 요구되는 응용(application)에, 즉 슈퍼 컴퓨터나 화상정보용 전용 프로세서(image manipulation processor) 등에 사용된다. RAID 레벨 3은 롱 데이타 블럭(long data block)(예컨데, 50개 정도의 데이타 블럭)의 전송에는 높은 효율을 보이나 쇼트 데이타 블럭 데이타(short data block)(예컨데, 5개 정도의 데이타 블럭)의 전송에는 비효율적이다. 또한 RAID 레벨 3은 리던던시(redundancy)를 위한 하나의 디스크 드라이브를 데이타 디스크 드라이브와 함께 사용함으로써 RAID 레벨 1 보다는 적은 디스크 드라이브가 필요하나 컨트롤러가 더욱 복잡해지고 비싸진다.
RAID 레벨 4 :
RAID 레벨 4에서는 데이타들은 디스크 어레이를 구성하는 다수의 디스크 드라이브에 스트라이프드 어크로스(striped across)되며(스트라이프드 어크로스된다는 것은, 디스크 드라이브들의 저장영역이 블럭단위의 스트라이핑 사이즈로 다수개 나누어져 있는데 데이타가 상기 디스크 드라이브들에 저장될 때는 스트라이핑 사이즈만큼의 데이타가 각각의 디스크 드라이브에 교차되게 저장되는 것을 의미한다), 데이타가 이용되어 계산된 패러티 데이타는 상기 디스크 어레이내 별도로 마련된 디스크 드라이브에 저장된다.
RAID 레벨 4는 데이타가 페일 시 복원 가능하며 리드(read) 성능은 RAID 레벨 1과 비슷하다. 그러나 라이트(write) 성능은 패러티 정보가 특별히 마련된 디스크 드라이브에 제공되어야 하는 특성 때문에(병목현상(bottle neck)이 발생 함) 싱글 디스크 드라이브에 비해 현저히 떨어진다. 이에 따라 RAID 레벨 4는 라이트 성능이 개선된 RAID 레벨 5로 보충되었다.
RAID 레벨 5 :
RAID 레벨 5에서의 데이타는 디스크 어레이내 각 디스크 드라이브에 스트라이프드 어크로스되며 패러티데이타 또한 라이트시 병목현상을 없애기 위해 모든 드라이브에 분산 저장된다. RAID 레벨 5에서는 데이타 라이트 시 패러티를 다시 계산하기 위해 전 드라이브에서 라이트된 데이타를 리드하여야 하기 때문에 속도는 여전히 RAID 레벨 4 만큼 느리다. 그러나 RAID 레벨 5는 데이타 동시 입출력 전송 처리가 가능하며 페일난 디스크 드라이브의 데이타도 복원할 수 있다.
RAID 레벨 5는 롱 데이타 라이트에 효과적이나, 만약 응용(application)이 데이타 리드에 비중을 많이 두어졌거나 어레이 설계(array design)가 라이트 성능 개선에 비중을 두었다면 쇼트 데이타 라이트에도 양호한 효과를 거둘 수가 있다. 물론 데이타 블럭의 사이즈를 작게 해도 어느 정도의 성능과 데이타 활용성(availability)을 거둘 수 있다. 또한 RAID 레벨 5는 논-어레이 디바이스(non array device)에 비해 가격면에서 매우 효과적이다.
RAID 레벨 5의 구조는 디스크 어레이를 구성하고 있는 한 디스크 드라이브의 고장이 발생하더라도 자료의 손실을 가져오지 않는 구조로 되어 있다. 그렇더라도 드라이브 고장시 즉각적인 복원 작업이 이루어 지지 않을 경우에는 추가적인 고장이 또 발생할 수 있고 그러면 자료의 손실이 유발된다. 그래서 RAID 레벨 5 구조에서는 자료의 유실을 방지하기 위해 온라인 예비 디스크 드라이브(on-line spare disk drive, or hot-spare disk drive)도 또한 마련해 두고 있다.
도 3은 RAID 레벨 5 구조를 적용한 디스크 어레이를 일예로 보여주고 있다. 도 3을 참조하면, RAID 레벨 5 구조를 적용한 디스크 어레이는 데이타를 저장하는 5개의 디스크 드라이브(이하 데이타 드라이브라 약칭함) S1∼S5와 하나의 예비 디스크 드라이브(이하 예비 드라이브라 약칭함) SP로 구성되어 있다. 데이타 드라이브는 그 저장영역이 도 3에 도시된 바와 같이 n개의 블럭 BLK0∼BLKn-1으로 이루어져 있다. 단위 블럭의 크기는 스트라이핑 사이즈(striping)라 불리워지며, 통상 512바이트 정도이다. 데이타는 데이타 드라이브 S1∼S5의 첫 번째 블럭 BLK0에 차례로 저장되고 첫 번째 블럭 BLK0에 다 저장되면 두 번째 블럭 BLK1에 차례로 저장된다. 즉, 데이타가 디스크 어레이에 저장되는 순서는 다음과 같다. 드라이브 S1의 첫 번째 블럭 BLK0 → 드라이브 S2의 첫 번째 블럭 BLK0 → .... → 드라이브 S5의 첫 번째 블럭 BLK0 → 드라이브 S1의 두 번째 블럭 BLK1 → 드라이브 S2의 두 번째 블럭 BLK1 → .... .... → 드라이브 S5의 n째 블럭 BLKn-1.
데이타가 데이타 드라이브 S1∼S5에 저장될 때에는 패러티 데이타도 각 데이타 드라이브에 분산되어 저장된다. 도 3에서, 데이타 드라이브의 첫 번째 블럭 BLK0에서 동그라미 표시된 데이타가 패러티 데이타이다. 도 3에 도시된 패러티 데이타를 보면, 제1 데이타 드라이브 S1에서는 첫 번째 비트에, 제2 데이타 드라이브 S2에서는 두 번째 비트에, 제3 데이타 드라이브 S3에서는 세 번째 비트에, .... 등의 배치기법으로 분산 저장되어 있음을 알수 있다.
각 데이타 드라이브 S1∼S5에 분산 저장된 k번째 패러티데이타는 그 패러티 데이타가 저장된 드라이브외 나머지 드라이브의 k번째 데이타들의 배타적 논리합에 의해서 생성된다. 이를 도 4를 참조하여 더욱 상세히 설명한다.
도 4는 데이타 드라이브 S1∼S5에 분산 저장된 패러티 데이타의 생성 및 배치 기법을 설명하기 위한 예시도이다. 도 4를 참조하면, 첫 번째 비트 데이타 중 패러티 데이타 1는 제1 데이타 드라이브 S1에 있으며, 상기 제1 데이타 드라이브 S1을 제외한 나머지 데이타 드라이브 S2∼S5의 첫 번째 비트 데이타를 배타적 논리합에 의해 구해진다. 두 번째 비트 데이타 중 패러티 데이타 0은 제2 데이타 드라이브 S2에 있으며, 상기 제2 데이타 드라이브 S2를 제외한 나머지 데이타 드라이브 S1, S3∼S5의 첫 번째 비트 데이타를 배타적 논리합에 의해 구해진다. 나머지 세 번째 비트 데이타중 패러티 데이타 0, 네 번째 비트 데이타중 패러티데이타 1, 다섯 번째 비트 데이타중 패러티 데이타 1도 상기한 동일한 방법으로 구해진다. 상기 패러티 데이타를 구하는 방법을 식으로 표현하면 하기 수학식 1과 같다. 하기 수학식 1에서는 배타적 논리합 기호이다.
[수학식 1]
S1의 패러티 데이타 = S2S3S4S5 = 1011 = 1
S2의 패러티 데이타 = S1S3S4S5 = 1010 = 0
S3의 패러티 데이타 = S1S2S4S5 = 0101 = 0
S4의 패러티 데이타 = S1S2S3S5 = 1110 = 1
S5의 패러티 데이타 = S1S2S3S4 = 0001 = 1
이러한 방법의 패러티 데이타 배치로 패러티 데이타들은 도 3 및 도 4에 도시된 데이타 드라이브 S1∼S5에 분산되어 저장된다.
도 3 및 도 4를 참조하여 설명한 RAID 레벨 5 구조의 디스크 어레이에서, 데이타 드라이브 S1∼S4는 데이타 및 패러티 데이타를 저장하는데 사용되지만, 예비 드라이브 SP는 디스크 어레이가 정상적으로 동작할 때 사용되지 않는다. 상기 예비 드라이브 SP는 정상적으로 동작시에 대기하고 있다가 디스크 어레이의 특정 데이타 드라이브가 고장이 나면 그 데이타 드라이브를 대신하여 사용된다. 만약 도 3에서 데이타 드라이브 S1이 고장났다면 디스크 어레이 컨트롤러는 나머지 데이타 드라이브들 S2∼S5의 데이타를 배타적 논리합을 하여 데이타의 드라이브 S1의 데이타들을 복원하고, 복원된 데이타를 대기하고 있는 예비 드라이브 SP에 기록한다.
상술한 RAID 레벨 5 구조에서 디스크 어레이 내 예비 드라이브 SP는 디스크 어레이가 정상 동작시에는 사용되지 않고 대기만 하고 있으므로 자원 낭비라 할 수 있다. 이는 RAID 서브 시스템의 성능을 떨어뜨리게 하는 요인이 된다.
따라서 본 발명의 목적은 RAID 서브 시스템의 결함내성과 성능향상을 위한 방법을 제공하는데 있다.
본 발명의 다른 목적은 RAID 레벨 5 구조에서 예비 드라이브의 비효율적 사용을 개선하는 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 RAID 레벨 4 구조에서 발생하는 병목현상을 해결하는 분할 패러티 예비 디스크 방법을 제공하는데 있다.
상기한 목적에 따라, 본 발명은, 다수의 디스크 드라이브로 구성된 디스크 어레이에 데이타를 분산 저장하고 입출력을 병렬로 수행하는 RAID 서브 시스템의 결함내성과 성능향상을 위한 방법에 있어서, 상기 디스크 어레이를 데이타를 저장하기 위한 적어도 두 개 이상의 데이타 디스크 드라이브와 소정 디스크 드라이브 고장 시 사용하기 위한 예비 디스크 드라이브와 패러티 체크용 패러티 데이타를 저장하기 위한 패러티 디스크 드라이브로 구성하는 과정과, 상기 패러티 디스크 드라이브의 패러티 데이타를 분할하고 분할된 데이타 데이타를 상기 패러티 디스크 드라이브와 예비 디스크 드라이브에 각각 저장하는 과정으로 이루어 진다.
본 발명에서는 데이타를 저장하기 위한 데이타 디스크 드라이브를 데이타 드라이브로, 소정 디스크 드라이브 고장 시 사용하기 위한 예비 디스크 드라이브를 예비 드라이브로, 패러티 체크용 패러티 데이타를 저장하기 위한 패러티 디스크 드라이브를 패러티 드라이브로 약칭한다.
도 1은 하드 디스크 디바이스에 적용된 통상적인 RAID 서브 시스템 블럭 구성도
도 2는 도 1의 디스크 어레이 컨트롤러 4의 상세 블럭구성도
도 3은 RAID 레벨 5 구조를 적용한 디스크 어레이 일예도
도 4는 RAID 레벨 5 구조의 데이타 드라이브 S1∼S5에 분산 저장된 패러티 데이타의 생성 및 배치 기법을 설명하기 위한 예시도
도 5는 본 발명의 실시예에 따른 RAID 서브 시스템 블럭 구성도
도 6은 디스크 어레이 컨트롤러 4에서 수행되는 초기화 제어 흐름도
도 7은 도 6에 따른 초기화 제어에 의한 디스크 어레이 6의 상태를 설명하기 위한 도면
도 8은 초기화 제어 결과에 의한 디스크 어레이 6내 디스크 드라이브들의 포맷도
도 9는 데이타 드라이브들 S1∼S4내 특정 하나의 데이타 드라이브가 페일되었을 경우 본 발명의 실시예에 따른 데이타 복원 제어 흐름도
도 10은 각 소패러티 그룹당 하나의 데이타 드라이브가 페일되었을 경우 본 발명의 실시예에 따른 데이타 복원 제어 흐름도
도 11은 패러티 드라이브 PR과 예비 드라이브 SP 중 어느 하나가 페일되었을 경우 본 발명의 실시예에 따른 데이타 복원 제어 흐름도
도 12는 제2 패러티 그룹 40내 하나의 데이타 드라이브와 예비 드라이브 SP가 각각 페일 되었을 경우 본 발명의 실시예에 따른 데이타 복원 제어 흐름도
도 13은 정상동작모드시 RAID 레벨 4에서의 데이타 리드/라이트 동작을 설명하기 의한 도면
도 14는 정상모드시 본 발명의 실시예에 따라 제1패러티그룹 30에 있는 데이타 드라이브들로부터/에 데이타 리드/라이트하는 동작을 설명하기 위한 도면
도 15는 정상모드시 본 발명의 실시예에 따라 제2패러티그룹 40에 있는 데이타 드라이브들에 데이타 라이트하는 동작을 설명하기 위한 도면
이하 본 발명의 바람직한 실시예가 첨부한 도면을 참조하여 상세히 설명될 것이다. 도면들중 동일한 구성요소들은 가능한한 어느 곳에서든지 동일한 참조번호 또는 동일한 부호로 나타내고 있음에 유의해야 한다.
또한 하기 설명에서 디스크 어레이를 구성하는 디스크 드라이브의 갯수 등과 같은 많은 특정 상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나 있다. 이들 특정 상세들 없이 본 발명이 실시될 수 있다는 것은 이 기술분야에서 통상의 지식을 가진자에게 자명할 것이다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
본 발명의 실시예에서는 다수의 디스크 드라이브로 구성되는 디스크 어레이를 RAID 레벨 4와 RAID 레벨 5의 구조를 합친 구조로 한다. 즉, 본 발명의 실시예에 따른 디스크 어레이는 RAID 레벨 4 구조에서 사용하는 패러티 드라이브와 RAID 레벨 5 구조에서 사용하는 예비 드라이브를 다수의 데이타 드라이브와 함께 사용한다.
도 5는 본 발명의 실시예에 따른 RAID 서브 시스템 블럭 구성도이다. 도 5를 참조하면, 디스크 어레이 컨트롤러 4는 버스를 통해 호스트 시스템 2와 연결되며 버스를 통해 디스크 어레이 6과 연결된다. 상기 디스크 어레이 컨트롤러 4는 디스크 어레이 6에 있는 각 디스크 드라이브에 데이타를 분산 저장하며 입출력을 병렬로 처리하고 패러티데이타를 이용하여 오류발생 시 데이타 복원을 가능토록 제어한다. 특히 본 발명의 실시예에 따른 디스크 어레이 컨트롤러 4의 주요 동작은 분할 패러티 예비 디스크 제어를 수행한다는 것이다. 분할 패러티 예비 디스크 제어는 자세히 후술되겠지만, 크게 초기화 제어모드 부분과 정상 제어모드 부분 그리고, 드라이브 페일시 데이타를 복원하는 데이타복원 제어모드 부분으로 이루진다.
본 발명의 실시예에 따른 디스크 어레이 6은 4개의 데이타 드라이브 S1∼S4와, 1개의 패러티 드라이브 PR과, 예비 디스크 드라이브 SP로 구성한다. 본 발명에서는 도 5에서 보여주는 바와 같이 총 6개의 디스크 드라이브를 이용하여 디스크 어레이 6을 구성하였으나 이는 실례의 편리성을 위해 구성한 것이다. 그러므로 상기 디스크 어레이 6의 디스크 드라이브 구성은 사용자의 요구 수준에 따라 달라질 수 있음을 이해해야 한다. 디스크 어레이 6의 디스크 드라이브들 S1∼S4, PR, SP는 해당 저장영역이 스트라이핑 사이즈(예를 들면, 512바이트)의 블럭들로 나뉘어져 있다.
하기에서는 본 발명의 실시예에 따라 초기화 제어모드, 정상동작모드, 및 데이타복원 제어모드에 대한 동작이 상세히 설명될 것이다. 먼저 초기화 제어모드 동작을 설명한다.
초기화 제어모드
상기 디스크 드라이브들 S1∼S4, PR, SP는 디스크 어레이 컨트롤러 4의 초기화 제어시 소패러티 그룹으로 나누어지고 해당 저장영역이 상위블럭과 하위 블럭로 나누어진다.
디스크 어레이 컨트롤러 4의 초기화 제어 설명에 관련된 도면은 도 6, 도 7 및 도 8이다. 도 6은 디스크 어레이 컨트롤러 4에서 수행되는 초기화 제어 흐름도이고, 도 7은 도 6에 따른 초기화 제어에 의한 디스크 어레이 6의 상태를 설명하기 위한 도면이며, 도 8은 초기화 제어 결과에 의한 디스크 어레이 6내 디스크 드라이브들의 포맷도이다.
지금 도 5,6,7,8을 참조하여 디스크 어레이 컨트롤러 4의 초기화 제어 동작과 그에 따른 디스크 어레이 6내의 디스크 드라이브들의 상태를 설명한다. 도 5의 디스크 어레이 컨트롤러 4는 호스트 시스템 2로부터 시스템 초기화 명령을 받으면, 이를 도 6의 100단계에서 체크하고 102단계로 진행한다. 디스크 어레이 컨트롤러 4는 102단계에서 초기화 제어 기능을 인에이블시키고 분할-온 플레그(Splilt-On Flag) SOF를 세트시키고 104단계로 진행한다. 104단계에서는 디스크 어레이 6을 구성하는 디스크 드라이브들 즉, 데이타 드라이브들 S1∼S4, 패러티 드라이브 PR, 및 예비 드라이브 PR의 중간 실린더 값을 구해 상위블럭과 하위블럭으로 나눈다. 도 7 또는 도 8을 참조하면, 참조번호 50A, 52A, 54A, 56A, 58A, 60A가 해당 디스크 드라이브의 상위블럭이고, 참조번호 50B, 52B, 54B, 56B, 58B, 60B가 해당 디스크 드라이브의 하위블럭이다. 도 8에서 데이타 드라이브 S1∼S4를 보면, 상위 및 하위블럭들은 블럭단위(1 BLK)로 나눠어져 있고 그 블럭데이타들 UBD_0, UBD_1,..., UBD_m 및 LBD_0, LD_1,..., LBD_m (여기서, m은 4의 배수)이 스트라이핑 어크로스되어 있음을 보여주고 있다. 여기서 블럭데이타라 함은 단위블럭(예컨데, 512바이트 크기)에 저장된 데이타들을 총칭하는 말이다.
도 6을 계속 참조하면, 디스크 어레이 컨트롤러 4는 상기 104단계를 수행 후 106단계로 가서, 디스크 어레이 6내 예비 드라이브 SP의 상태를 체크한다. 만약 이상이 존재하면 110단계로 가서 호스트 시스템 2로 에러통보를 하고, 이상이 존재하지 않으면 112단계로 진행한다. 112단계에서는 패러티 드라이브 SP의 하위블럭 58A에 저장되어 있는 하위블럭패러티데이타 LPR을 예비 드라이브 SP의 상위블럭 60A로 복사한다. 패러티 드라이브 PR에 저장된 패러티 데이타들은 데이타 드라이브들 S1∼S4에 데이타들을 배타적 논리합함에 의해 계산된 값이다. 도 7을 참조하면, 드라이브들 S1∼S4에 상위블럭 데이타들 UBD(▲로 표시)이 배타적 논리합되어 상위블럭 패러티 데이타 UPR이 되고, 상기 UPR(▲로 표시)은 패러티 드라이브 PR의 상위블럭 58A에 저장되어있음을 볼수 있다. 또한, 드라이브들 S1∼S4에 하위블럭 데이타들 LBD(■로 표시)이 배타적 논리합되어 하위블럭 패러티 데이타 LPR이 되고, 상기 LPR(■로 표시)은 패러티 드라이브 PR의 하위블럭 58B 저장되어 있음을 볼수 있다. 상기 하위블럭 패러티 데이타 LPR은 도 6의 112단계에 복사 제어에 의해 예비 드라이브 SP의 상위블럭 60A에 저장됨을 볼 수 있다.
디스크 어레이 컨트롤러 4는 도 6의 114단계에서의 복사가 완료되었는가를 판단하고, 완료되었으면 116단계로 진행한다. 116단계에서는 예비 드라이브 SP를 제외한 나머지 드라이브들 즉, 데이타 드라이브들 S1∼S4 및 패러티 드라이브 PR을 두 개의 소패러티 그룹으로 정의한다. 본 발명의 일실시예에서는 도 7 및 도 8에 도시된 바와 같이 데이타 드라이브 S1과 S2를 제1 패러티 그룹 30으로 정의하고, 데이타 드라이브 S3, S4 및 패러티 드라이브 PR을 제2 패러티 그룹 40으로 정의한다.
그후 디스크 어레이 컨트롤러 4는 118단계로 진행하여 소패러티 그룹들중 패러티 드라이브 PR이 포함된 소패러티 그룹 즉, 제2 패러티 그룹 40에 속한 디스크드라이브들 S3, S4, PR의 상위블럭 데이타들 UBD, UPR(도 7에서 ○으로 표시됨)를 이용하여 소그룹 상위블럭패러티 데이타 GUPR을 생성한다. 그리고 120단계에서 예비 드라이브 SP의 하위블럭 60B에 상기 소그룹 상위블럭 패러티 데이타 GUPR(도 7에서 ○으로 표시됨)을 기록한다. 그후 디스크 어레이 컨트롤러 4는 122단계에서 기록이 완료되었는가를 판단하고, 기록이 완료되었으면 124단계로 진행한다.
디스크 어레이 컨트롤러 4는 124단계로 진행하여 소패러티 그룹들중 패러티 드라이브 PR이 포함된 소패러티 그룹 즉, 제2 패러티 그룹 40에 속한 디스크드라이브들 S3, S4, PR의 하위블럭 데이타들 LBD, LR(도 7에서 ×로 표시됨)를 이용하여 소그룹 하위블럭패러티 데이타 GLPR을 생성한다. 그리고 126단계에서 패러티 드라이브 PR의 하위블럭 58B에 상기 소그룹 하위블럭 패러티 데이타 GLPR(도 7에서 ×로 표시됨)을 기록한다. 그후 디스크 어레이 컨트롤러 4는 128단계에서 기록이 완료되었는가를 판단하고, 기록이 완료되었으면 130단계로 진행한다.
130단계에서 디스크 어레이 컨트롤러 4는 초기화 제어 시작시 세트된 분할-온 플레그 SOF를 리셋하고 패러티 분할이 완료되었음을 알리는 분할패러티 예비 플레크(Split Parity Spare Flag) SPSF를 세트한 후, 132단계에서 정상동작모드로 전환시킨다.
도 6에 따른 초기화 제어가 완료된 후의 디스크 어레이 6의 상태를 도 7 및 도 8을 참조하여 보면, 패러티 드라이브 PR의 상위블럭 58A에는 상위블럭 패러티 데이타 UPR이, 하위블럭 58B에는 소그룹 하위블럭 패러티데이타 GLPR이 저장되어 있고, 예비 드라이브 SP의 상위블럭 60A에는 하위블럭 패러티 데이타 LR이, 하위블럭 60B에는 소그룹 상위블럭 패러티데이타 GUPR이 저장되어 있다.
이제 이러한 초기화 제어모드가 종료 후 본 발명에 따른 정상적인 상태에서의 동작 제어가 하기에서 상세히 설명될 것이다.
정상동작모드
먼저 본 발명의 실시예에 따른 정상동작모드와의 비교를 위해 기존 RAID 레벨 4에서의 정상적인 동작을 도 13을 참조하여 설명한다. RAID 레벨 5에서 디스크 어레이 컨트롤러는 데이타의 리드동작에서, (A)에서 보여주듯이 해당 데이타드라이브 S2에서 데이타 OD를 바로 읽어낸다. 그리고 라이트동작에서는 다음과 같이 제어한다. 우선 새로운 데이타 ND를 해당 데이타 드라이브 S2에 라이트한다. 그후 상기 새로운 데이타 ND에 대한 패러티 데이타를 생성하기 위해 상기 데이타 드라이브 S2를 제외한 나머지 디스크 드라이브들 즉, S1, S3, S4, P1에서 상기 새로운 데이타 ND의 저장위치와 대응되는 저장 위치에서 데이타들 OD, OP를 읽어내 배타적 논리합하여 변경된 데이타를 EX를 생성하고, 상기 EX를 데이타 드라이브 S2에 새롭게 저장된 ND와 배타적 논리합하여 새로운 패러티 데이타 NP를 생성한다. 그런후 상기 생성된 패러티 데이타 NP를 패러티 드라이브 PR에 기록한다.
이에 반해, 본 발명의 실시예에 따른 정상 모드 제어는 도 14 및 도 15와 같다. 도 14는 정상모드시 제1패러티그룹 30에 있는 데이타 드라이브들 S1,S2로부터/에 데이타 리드/라이트하는 동작을 설명하기 위한 도면이고, 도 15는 정상모드시 제2패러티그룹 40에 있는 데이타 드라이브들 S3,S4로부터/에 데이타 리드/라이트하는 동작을 설명하기 위한 도면이다.
먼저 도 14를 참조하여, 제1패러티그룹 30에 있는 데이타 드라이브들 S1,S2로부터/에 데이타 리드/라이트하는 동작을 설명한다. 디스크 어레이 컨트롤러 4는 데이타의 리드동작에서, 도 14의 (A)에서 보여주듯이 종래 방식과 마찬가지로 해당 데이타드라이브 S2에서 데이타 OD를 바로 읽어낸다.
그리고, 제1패러티그룹 30의 데이타드라이브에 대한 라이트동작에서는 도 14의 (B)에서 보여주는 바와 같이 동작한다. 도 14 (B)를 참조하여 더욱 상세히 설명하면, 우선 새로운 데이타 ND를 해당 데이타 드라이브 예를 들면, S2에 라이트한다. 그후 상기 새로운 데이타 ND에 대한 패러티 데이타를 생성하기 위해 상기 데이타 드라이브 S2를 제외한 데이타 드라이브들 즉, S1, S3, S4내 상기 새로운 데이타 ND의 저장 위치에 대응되는 저장 위치에서 데이타들 OD를 읽어낸다. 만약 읽어낸 데이타 OD의 저장 위치가 상위블럭이면 상기 데이타는 상위블럭 데이타들 UBD이므로 디스크 어레이 컨트롤러 4는 읽어낸 상기 상위블럭 데이타들 UBD를 패러티 드라이브 PR의 상위블럭 58A에서 읽어낸 상위블럭 패러티 데이타 O_UPR과 배타적 논리합하여 변경된 데이타를 EX1을 생성한다. 그후 상기 변경된 데이타 EX1을 데이타 드라이브 S2에 새롭게 저장된 데이타 ND와 배타적 논리합하여 새로운 상위블럭 패러티 데이타 N_UPR를 생성한다. 그런후 상기 생성된 상위블럭 패러티 데이타 N_UPR을 패러티 드라이브 PR의 상위블럭 58A에 기록한다. 한편 데이타 드라이브 S1, S3, S4에서 읽어낸 데이타 OD의 저장위치가 하위블럭이면 상기 데이타는 하위블럭 데이타들 LBD이므로 디스크 어레이 컨트롤러 4는 읽어낸 상기 하위블럭 데이타들 LBD를 예비 드라이브 SP의 상위블럭 60A에서 읽어낸 하위블럭 패러티 데이타 O_LPR과 배타적 논리합하여 변경된 데이타를 EX2를 생성한다. 그후 상기 변경된 데이타 EX2를 데이타 드라이브 S2에 새롭게 저장된 데이타 ND와 배타적 논리합하여 새로운 하위블럭 패러티 데이타 N_LPR를 생성한다. 그런후 상기 생성된 하위블럭 패러티 데이타 N_LPR을 예비 드라이브 SP의 상위블럭 60A에 기록한다.
만약 본 발명의 실시예에 따른 라이트동작에서, 새로운 데이타 ND가 제2 패러티그룹 40에 속한 어느 하나의 데이타 드라이브(S3 또는 S4)에 라이트된다면 도 15에 도시된 바와 같이 동작한다. 도 15에서는 데이타 드라이브 S3에 새로운 데이타 ND가 라이트될 때의 동작을 일예로 하고 있다. 먼저 도 15의 (A)에서 보여 주듯이 도 14의 (B)에 도시된 바와 동일한 동작을 수행한다. 그래서 패러티 드라이브 PR 및 예비드라이브 SP의 상위블럭에 각각 라이트되어 있던 상위블럭(또는 하위블럭) 패러티 데이타를 새로운 상위블럭(또는 하위블럭)패러티 데이타 N_UPR(또는 N_LPR)로 변경시킨다. 그 뿐만 아니라 패러티 드라이브 PR 및 예비드라이브 SP의 하위블럭에 각각 라이트되어 있던 소그룹 하위블럭 패러티 데이타 및 소그룹 상위블럭 패러티데이타를 새로운 소그룹 하위블럭 패러티데이타 N_GPLR 및 소그룹 상위블럭 패러티데이타 N_GPUR로 변경시킨다. 소그룹 상위블럭(또는 하위블럭) 패러티 데이타가 변경되는 동작을 도 15의 (B)를 참조하여 설명한다.
도 15의 (B)를 보면, 데이타 드라이브 S3에 새롭게 저장된 새로운 데이타 ND에 대한 패러티 데이타를 생성하기 위해 상기 새로운 데이타 ND와 데이타 드라이브 S4내 상기 새로운 데이타 ND의 저장 위치에 대응되는 저장 위치에 있는 데이타 OD를 배타적 논리합하여 변경된 데이타 GEX를 생성한다.
먼저 상기 ND 및 OD의 저장 위치가 상위블럭이면 상기 변경된 데이타 GEX는 상위블럭 데이타 GUBD이므로 디스크 어레이 컨트롤러 4는 변경된 상위블럭 데이타 GUBD를, 패러티 드라이브 PR의 상위블럭 58A에서 읽어낸 상위블럭 패러티 데이타 O_GUPR과 배타적 논리합하여 새로운 소그룹 상위블럭 패러티데이타 N_GUPR을 생성한다. 그런후 상기 생성된 소그룹 상위블럭 패러티데이타 N_GUPR을 예비 드라이브 SP의 하위블럭 60B에 기록한다.
다음으로 상기 ND 및 OD의 저장 위치가 하위블럭이면 상기 변경된 데이타 GEX는 하위블럭 데이타 GLBD이다. 상기 하위블럭데이타 GLBD는 새로운 소그룹 하위블럭패러티 데이타 N_GLPR을 의미하므로, 디스크 어레이 컨트롤러 4는 상기 생성된 소그룹 하위블럭 패러티데이타 N_GLPR을 패러티 드라이브 PR의 하위블럭 58B에 기록한다.
다음으로 디스크 어레이 6내 소정 디스크 드라이브가 페일되었을 경우 본 발명의 실시예에 따른 데이타 복원 제어가 하기에서 상세히 설명될 것이다.
데이타 복원 모드 제어
RAID 서브 시스템이 동작중 디스크 어레이 6내 소정 디스크 드라이브가 페일되는 경우는 하기와 같은 가지 수일 경우 본 발명의 실시예에 의해 데이타 복원이 가능하다.
(1) 데이타 드라이브들 S1∼S4내 특정 하나의 데이타 드라이브가 페일되었을 경우, (2) 각 소패러티 그룹당 하나의 데이타 드라이브가 페일되었을 경우, (3) 패러티 드라이브 PR과 예비 드라이브 SP 중 어느 하나가 페일되었을 경우, (4) 제2 패러티 그룹 40내 하나의 데이타 드라이브와 예비 드라이브 SP가 각각 페일 되었을 경우 등이 있다.
먼저 데이타 드라이브들 S1∼S4내 특정 하나의 데이타 드라이브가 페일되었을 경우, 본 발명의 실시예에 따른 데이타 복원 동작을 설명한다. S1∼S4내 특정 하나의 데이타 드라이브가 페일되었을 경우, 본 발명의 실시예에 따른 데이타 복원 동작은 도 9와 같은 제어 흐름에 따라 수행된다. 하기 설명에서는 디스크 어레이 6내 데이타 드라이브 S1이 페일났다고 가정한다.
데이타 드라이브 S1이 페일 났을 때 본 발명에 따른 데이타 복원 과정은, 데이타 드라이브 S1의 데이타를 저장할 수 있도록 예비 드라이브 SP를 마련하고, 페일난 S1의 데이타를 복원해서 상기 예비 드라이브 SP에 저장시키는 것으로 요약된다.
도 5,7,8 및 도 9를 참조하여 이를 더욱 상세히 설명하면, 디스크 어레이 컨트롤러 4는 도 9의 200단계에서 페일난 데이타 드라이브 S1을 검출한다. 그러면 202단계에서 복원플레그(ReCoVery Flag) RCVF를 세트하고 204단계로 진행한다. 204단계에서 디스크 어레이 컨트롤러 4는 예비 드라이브 SP의 상위블럭 60A에 저장된 하위블럭 패러티 데이타 LPR을 패러티 드라이브 PR의 하위블럭으로 복사시킨다. 이렇게 하므로 예비 드라이브 SP에는 데이타 드라이브 S1의 데이타를 저장할 수 있는 저장영역이 마련된다.
그후 디스크 어레이 컨트롤러 4는 206단계로 진행하여 페일나지 않은 데이타 드라이브들 S2, S3, S4와 패러티 드라이브 PR의 데이타를 배타적 논리합하여 페일난 데이타 드라이브 S1의 데이타를 복원시킨다. 그후 208단계에서 복원된 데이타 드라이브 S1의 데이타를 예비 드라이브 SP에 기록한다. 210단계에서는 기록 완료되었는가를 판단하고 만약 기록이 완료되었으면 212단계로 진행한다.
디스크 어레이 컨트롤러 4는 212단계에서 드라이브 테이블을 재구성시킨다. 즉, 데이타 드라이브 S1을 예비 드라이브 SP로 대체시키도록 드라이브 테이블 다시 구성한다. 그후 214단계에서 분할 패러티 예비 플레그 SPSF를 리셋시키고, 216단계에서 복원플레그 RCVF도 리셋시킨다. 분할 패러티 예비 플레그 SPSF가 리셋되므로 이후에는 본 발명의 실시예에 따른 예비 드라이브 SP를 이용한 패러티 체크는 더 이상 수행하지 않게 된다.
다음으로 각 소패러티 그룹당 하나의 데이타 드라이브가 페일되었을 경우, 본 발명의 실시예에 따른 데이타 복원 동작을 설명한다. 각 소패러티 그룹당 하나의 데이타 드라이브가 페일되었을 경우 본 발명의 실시예에 따른 데이타 복원은 도 10과 같은 제어 흐름에 따라 수행된다. 하기 설명에서는 제1패러티그룹 30내 데이타 드라이브 S1이 페일났고 제2패러티그룹 40내 데이타 드라이브 S3이 페일났다고 가정한다.
데이타 드라이브 S1 및 S3이 페일 났을 때 본 발명에 따른 데이타 복원과정은, 데이타 드라이브 S3의 데이타를 저장할 수 있도록 예비 드라이브 SP를 마련하고, 제2 패러티그룹 40내 페일나지 않은 나머지 드라이브들(데이타 드라이브 S4 및 패러티 드라이브 PR)과 예비드라이브 SP을 이용하여 페일난 S3의 데이타를 복원해서 상기 예비 드라이브 SP에 저장시키며, 페일나지 않은 나머지 모든 드라이브들 즉, 데이타 드라이브 S2, S4, 패러티 드라이브 PR 및 복원된 S3의 데이타를 저장하고 있는 예비 드라이브 SP를 이용하여 페일난 S1의 데이타를 복원해서 패러티 드라이브 PR에 저장시키는 것으로 요약된다.
도 5,7,8 및 도 10을 참조하여 이를 더욱 상세히 설명하면, 디스크 어레이 컨트롤러 4는 도 10의 300단계에서 각 패러티 그룹에서 페일난 데이타 드라이브들 S1 및 S3을 검출한다. 그러면 302단계에서 복원플레그(ReCoVery Flag) RCVF를 세트하고, 304단계에서 교체 패러티 플레그(RePlace Parity Flag) RPPF를 세트한다. 그후 306단계에서 디스크 어레이 컨트롤러 4는 예비 드라이브 SP의 상위블럭 60A에 저장된 하위블럭 패러티데이타 LPR와 패러티 드라이브 PR의 하위블럭 58B에 저장된 소그룹 하위블럭 패러티데이타 GLPR를 교체시킨다. 그 결과 패러티 드라이브 PR의 하위블럭 58B에는 하위블럭 패러티데이타 LPR이 존재하게 되고 예비 드라이브 SP의 상위블럭 60A에는 소그룹 하위블럭 패러티데이타 GLPR이 존재하게 된다. 그런후 308단계에서 세트된 교체 패러티 플레그(RePlace Parity Flag) RPPF를 리셋시킨다.
그후 디스크 어레이 컨트롤러 4는 도 10의 310단계로 진행하여 제2 패러티 그룹 40에서 페일나지 않은 데이타 드라이브 S4, 패러티 드라이브 PR 및 예비 드라이브 SP의 데이타를 이용하여 제2 패러티 그룹 40에서 페일난 데이타 드라이브 S3의 데이타를 복원시킨다. 더욱 구체적으로 설명하면, 데이타 드라이브 S4의 상위블럭 데이타 UBD, 패러티 드라이브 PR의 상위블럭 패러티데이타 UPR, 및 예비 드라이브 SP의 하위블럭 60B에 저장된 소그룹 상위블럭 패러티데이타 GUPR을 배타적 논리합하여 페일난 데이타 드라이브 S3의 상위블럭 데이타를 복원시킨다. 그리고 데이타 드라이브 S4의 하위블럭 데이타 LBD, 패러티 드라이브 PR의 상위블럭 60A에 저장된 소그룹 하위블럭 패러티데이타 GLPR을 배타적 논리합하여 페일난 데이타 드라이브 S3의 하위블럭 데이타를 복원시킨다. 그후 디스크 어레이 컨트롤러 4는 312단계로 진행하여 상기 복원된 데이타 즉, 페일난 데이타 드라이브 S3의 상하위 블럭데이타를 예비 드라이브 SP에 기록한다. 314단계에서는 기록 완료되었는가를 판단하고 만약 기록이 완료되었으면 316단계로 진행한다.
316단계에서 디스크 어레이 컨트롤러 4는 페일나지 않은 데이타 드라이브 S2, S4와 페일난 데이타 드라이브 S3의 복원된 데이타를 저장하고 있는 예비드라이브 PR, 및 패러티 드라이브 PR의 데이타들을 이용하여 제1 패러티 그룹 30에서 페일난 데이타 드라이브 S1의 데이타를 복원한다. 더욱 구체적으로 설명하면, 데이타 드라이브 S1, S2의 상위블럭 데이타 UBD, 패러티 드라이브 PR의 상위블럭 패러티데이타 UPR, 및 예비 드라이브 SP의 상위블럭 60A에 저장된 복원된 S3의 상위블럭데이타를 배타적 논리합하여 페일난 데이타 드라이브 S1의 상위블럭 데이타를 복원한다. 그리고 데이타 드라이브 S1, S2의 하위블럭 데이타 LD, 패러티 드라이브 PR의 하위블럭 패러티데이타 LPR, 및 예비 드라이브 SP의 하위블럭 60B 저장된 복원된 S3의 하위블럭데이타를 배타적 논리합하여 페일난 데이타 드라이브 S1의 하위블럭 데이타를 복원시킨다.
그후 디스크 어레이 컨트롤러 4는 318단계로 진행하여 상기 복원된 데이타 즉, 페일난 데이타 드라이브 S1의 상하위 블럭데이타를 패러티 드라이브 PR에 기록한다. 320단계에서는 기록 완료되었는가를 판단하고 만약 기록이 완료되었으면 322단계로 진행한다.
디스크 어레이 컨트롤러 4는 322단계에서 드라이브 테이블을 재구성시킨다. 즉, 데이타 드라이브 S1을 패러티 드라이브 PR로 대체시키고 데이타 드라이브 S3를 예비 드라이브 SP로 대체시키도록 드라이브 테이블 다시 구성한다. 그후 324단계에서 분할 패러티 예비 플레그 SPSF를 리셋시키고, 326단계에서 복원플레그 RCVF도 리셋시킨다. 상기 분할 패러티 예비 플레그 SPSF가 리셋되므로 이후에는 본 발명의 실시예에 따른 패러티 드라이브 PR 및 예비 드라이브 SP를 이용한 패러티 체크는 더 이상 수행하지 않게 된다.
다음으로 패러티 드라이브 PR과 예비 드라이브 SP 중 어느 하나가 페일되었을 경우 본 발명의 실시예에 따른 데이타 복원 동작을 설명한다. 패러티 드라이브 PR과 예비 드라이브 SP 중 어느 하나가 페일되었을 경우 본 발명의 실시예에 따른 데이타 복원 동작은 도 11과 같은 제어 흐름에 따라 수행된다.
패러티 드라이브 PR과 예비 드라이브 SP 중 어느 하나가 페일되었을 때 본 발명에 따른 데이타 복원과정은 하기와 같이 요약될 수 있다. 먼저 패러티 드라이브 PR이 페일되었을 때는 이미 예비 드라이브 SP의 상위블럭 60A에는 하위블럭 패러티 데이타 LPR이 저장되어 있으므로 데이타 드라이브 S1, S2, S3, S4의 상위블럭 데이타 UBD을 이용하여 페일된 상위블럭 패러티 데이타 UPR을 복원하고 예비 드라이브 SP에 저장시킨다. 다음으로 예비 드라이브 SP가 페일되었을 때는 페일된 예비 드라이브 SP에 저장된 하위블럭 패러티 데이타 LPR만 페일된 것이므로 데이타 드라이브 S1, S2, S3, S4의 하위블럭 데이타 LBD을 이용하여 페일된 하위블럭 패러티 데이타 LPR을 복원하고 패러티 드라이브 PR에 저장시킨다.
도 5,7,8 및 도 11을 참조하여 이를 더욱 상세히 설명하면, 디스크 어레이 컨트롤러 4는 도 11의 400단계에서 각 패러티 그룹에서 페일난 드라이브(패러티 드라이브 PR 또는 예비드라이브 SP)를 검출한다. 그러면 402단계에서 복원플레그(ReCoVery Flag) RCVF를 세트하고, 404단계에서 패러티 드라이브 PR이 페일되었는지 예비 드라이브 SP가 페일되었는지를 판단한다. 만약 패러티 드라이브 PR이 페일되었다면 디스크 어레이 컨트롤러 4는 406단계 내지 414단계를 수행한다. 그리고 예비 드라이브 SP가 페일되었다면 416단계 내지 422단계를 수행한다.
패러티 드라이브 PR 페일시 디스크 어레이 컨트롤러 4는 406단계에서 예비 드라이브 SP의 상위블럭 60A에 저장된 하위블럭 패러티데이타 LPR을 하위블럭 60B로 복사한다. 그후 408단계에서 디스크 어레이 6내 모든 데이타 드라이브들 S1, S2, S3, S4의 상위블럭 데이타 UBD를 배타적 논리합하여 패러티 드라이브 PR 페일시 사라진 상위블럭 패러티데이타 UPR을 복원한다. 그리고 410단계에서는 상기 복원된 상위블럭 패러티데이타 UPR을 예비 드라이브 SP의 상위블럭 60A에 기록한다. 412단계에서는 기록 완료되었는가를 판단하고 만약 기록이 완료되었으면 414단계로 진행한다. 414단계에서 디스크 어레이 컨트롤러 4는 드라이브 테이블을 패러티 드라이브 PR이 예비 드라이브 SP로 대체되도록 재구성한다.
한편, 예비 드라이브 SP 페일시 디스크 어레이 컨트롤러 4는 416단계에서 디스크 어레이 6내 모든 데이타 드라이브들 S1, S2, S3, S4의 하위블럭 데이타 LBD를 배타적 논리합하여 예비 드라이브 SP 페일시 사라진 하위블럭 패러티데이타 LR을 복원한다. 그리고 418단계에서는 상기 복원된 하위블럭 패러티데이타 LPR을 패러티 드라이브 PR의 하위블럭 58B에 기록한다. 420단계에서는 기록 완료되었는가를 판단하고 만약 기록이 완료되었으면 422단계로 진행한다. 422단계에서 디스크 어레이 컨트롤러 4는 예비 드라이브 SP가 사용되지 못하도록 드라이브 테이블을 재구성한다.
그후 디스크 어레이 컨트롤러 4는 424단계에서 분할 패러티 예비 플레그 SPSF를 리셋시키고, 426단계에서 복원플레그 RCVF도 리셋시킨다.
마지막으로 제2패러티 그룹 40에 있는 하나의 데이타 드라이브와 예비 드라이브 SP가 페일되었을 경우, 본 발명의 실시예에 따른 데이타 복원 동작을 설명한다. 제2패러티 그룹 40에 있는 하나의 데이타 드라이브와 예비 드라이브 SP가 페일되었을 경우 본 발명의 실시예에 따른 데이타 복원은 도 12와 같은 제어 흐름에 따라 수행된다. 하기 설명에서는 제2패러티그룹 40내 페일난 하나의 데이타 드라이브를 S3으로 가정한다.
데이타 드라이브 S3 및 예비 드라이브 SP가 페일났을 때 본 발명에 따른 데이타 복원과정은, 디스크 어레이 6내 페일나지 않은 모든 데이타 드라이브들 S1, S2, S4와 패러티 드라이브 PR의 상위블럭 데이타 UBD, UPR를 이용하여 페일난 데이타 드라이브 S3의 상위블럭데이타를 복원시켜 패러티 드라이브 PR의 상위블럭 58A에 저장시키고, 제2 패러티 그룹 40내 페일나지 않은 데이타 드라이브인 S4의 하위블럭 데이타 LBD와 패러티 드라이브 PR의 하위블럭 58B에 저장된 소그룹 하위블럭 패러티 데이타 GLPR를 이용하여 페일난 데이타 드라이브 S3의 하위블럭데이타를 복원시켜 패러티 드라이브 PR의 하위블럭 58B 저장시키는 것으로 요약된다.
도 5,7,8 및 도 12을 참조하여 이를 더욱 상세히 설명하면, 디스크 어레이 컨트롤러 4는 도 12의 500단계에서 페일난 데이타 드라이브들 S3 및 페일난 패러티 드라이브 PR을 검출한다. 그러면 502단계에서 복원플레그(ReCoVery Flag) RCVF를 세트하고 504단계로 진행한다.
도 12의 504단계에서 디스크 어레이 컨트롤러 4는 디스크 어레이 6내 페일나지 않은 모든 데이타 드라이브들 S1, S2, S4와 패러티 드라이브 PR의 상위블럭 데이타 UBD, UPR를 배타적 논리합하여 페일난 데이타 드라이브 S3의 상위블럭데이타를 복원시킨다. 그후 506단계로 진행하여 상기 복원된 데이타 드라이브 S3의 상위블럭 데이타를 패러티 드라이브 PR의 상위블럭 58A에 기록한다. 디스크 어레이 컨트롤러 4는 508단계에서 기록 완료되었는가를 판단하고 만약 기록이 완료되었으면 510단계로 진행한다.
그후 디스크 어레이 컨트롤러 4는 510단계에서 제2 패러티 그룹 40내 페일나지 않은 데이타 드라이브인 S4의 하위블럭 데이타 LBD와 패러티 드라이브 PR의 하위블럭 58B에 저장된 소그룹 하위블럭 패러티 데이타 GLPR을 배타적 논리합하여 페일난 데이타 드라이브 S3의 하위블럭데이타를 복원시킨다. 그후 512단계로 진행하여 상기 복원된 데이타 드라이브 S3의 하위블럭 데이타를 패러티 드라이브 PR의 하상블럭 58B에 기록한다. 디스크 어레이 컨트롤러 4는 514단계에서 기록 완료되었는가를 판단하고 만약 기록이 완료되었으면 516단계로 진행한다.
516단계에서 디스크 어레이 컨트롤러 4는 데이타 드라이브 S3를 패러티 드라이브 PR로 대체되게 드라이브 테이블을 재구성한다. 그후 518단계에서 분할 패러티 예비 플레그 SPSF를 리셋시키고, 520단계에서 복원플레그 RCVF도 리셋시킨다. 상기 분할 패러티 예비 플레그 SPSF가 리셋되므로 이후에는 본 발명의 실시예에 따른 패러티 드라이브 PR 및 예비 드라이브 SP를 이용한 패러티 체크는 더 이상 수행하지 않게 된다.
상술한 본 발명의 설명에서는 디스크 드라이브의 갯수, 소 패러티 그룹의 수, 페일 발생한 디스크 드라이브 등의 구체적인 실시예에 관해 설명하였으나, 여러가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 따라서 본 발명의 범위는 설명된 실시예에 의하여 정할 것이 아니고 특허청구의 범위와 특허청구의 범위의 균등한 것에 의해 정해 져야 한다.
상술한 바와 같이 본 발명은 분할 패러티 예비 디스크 기법을 사용하므로 하기와 같은 효과가 있다. 첫 번째로, 예비 디스크 드라이브를 정상동작시에도 사용가능하게 함으로써 자원의 효율적인 관리가 된다. 두 번째로, 패러티 디스크 드라이브의 패러티데이타를 분할하여 예비 디스크 드라이브에 저장함으로써 기존 패러티 디스크 드라이브의 작업 부하를 줄이고 시스템의 전체적인 성능을 향상시킨다. 데이타 디스크 드라이브를 소패러티 그룹으로 구분하여 그 패러티 결과값을 패리터 드라이브의 미사용 영역에 저장함으로써 여러 가지 예상가능한 페일상황에도 데이타 복원을 가능하게 한다.

Claims (11)

  1. 다수의 디스크 드라이브로 구성된 디스크 어레이에 데이타를 분산 저장하고 입출력을 병렬로 수행하는 알에이아이디 서브 시스템의 결함내성과 성능향상을 위한 방법에 있어서, 상기 디스크 어레이를 데이타를 저장하기 위한 적어도 두 개 이상의 데이타 디스크 드라이브와 소정 디스크 드라이브 고장 시 사용하기 위한 예비 디스크 드라이브와 패러티 체크용 패러티 데이타를 저장하기 위한 패러티 디스크 드라이브로 구성하는 과정과, 상기 패러티 디스크 드라이브의 패러티 데이타를 분할하고 분할된 데이타 데이타를 상기 패러티 디스크 드라이브와 예비 디스크 드라이브에 각각 저장하는 과정으로 이루어 짐을 특징으로 하는 분할패러티 예비 디스크 구현방법.
  2. 제1항에 있어서, 상기 디스크 어레이는 데이타 저장용 4개의 데이타 디스크 드라이브, 하나의 패러티 디스크 드라이브 및 예비 디스크 드라이브로 구성됨을 특징으로 하는 분할 패러티 예비 디스크 구현방법.
  3. 패러티 디스크 드라이브, 예비 디스크 드라이브 및 다수의 데이타 디스크 드라이브로 구성된 디스크 어레이에 데이타를 분산 저장하여 입출력을 병렬로 수행하여 알에아이디 서브 시스템의 결함내성과 성능향상을 위한 방법에 있어서, 상기 패러티 디스크 드라이브에 저장된 패러티 정보를 상하위블럭으로 분할하고 패러티 디스크 드라이브의 상위블럭 저장영역과 예비 디스크 드라이브의 상위블럭 저장영역에 분할된 상하위블럭 패러티정보를 각각 저장시키는 과정과, 상기 예비 디스크 드라이브를 제외한 나머지 디스크 드라이브들중 소정 갯수를 선택하여 소패러티 그룹으로 각각 정의하고 상기 패러티 디스크 드라이브를 포함하는 소패러티 그룹의 디스크 드라이브들을 이용해 소그룹 패러티정보를 생성하는 과정과, 상기 생성된 소그룹 패러티정보를 상하위블럭으로 분할하고 상기 패러티 디스크 드라이브의 하위블럭 저장영역과 상기 예비 디스크 드라이브의 하위블럭 저장영역에 분할된 소그룹 상하위블럭 패러티정보를 각각 저장하는 과정으로 이루어짐을 특징으로 하는 분할 패러티 예비 디스크 구현방법.
  4. 제3항에 있어서, 상기 소패러티 그룹은 상기 패러티 디스크 드라이브를 포함하지 않은 다수의 데이타 디스크 드라이브로 구성된 제1 패러티 그룹과 상기 패러티 디스크 드라이브를 포함한 다수의 데이타 디스크 드라이브로 구성된 제2 패러티 그룹으로 이루어짐을 특징으로 하는 분할 패러티 예비 디스크 구현방법.
  5. 제4항에 있어서, 상기 디스크 드라이브의 상하위블럭은 각 디스크 드라이브의 중간실린더값을 기준으로 나눠짐을 특징으로 하는 분할 패러티 예비 디스크 구현방법.
  6. 디스크 어레이가, 데이타저장영역이 상하위블럭으로 나뉘어져 있으며 데이타 저장용인 다수의 데이타 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 상위블럭 패러티정보를 상위블럭 저장영역에 저장하며 소그룹 상하위블럭 패러티정보를 만들기 위해 정의된 소패러티 그룹의 디스크 드라이브들 중 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타에 대한 소그룹 하위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 패러티 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타들에 대한 하위블럭 패러티 정보를 상위블럭 저장영역에 저장하며 상기 소패러티 그룹내의 데이타 디스크 드라이브들 및 패러티 디스크 드라이브의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 소그룹 상위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 예비 디스크 드라이브로 구성된 알에이아이디 서브 시스템에서 상기 소패러티그룹외의 하나의 데이타 디스크 드라이브가 페일 났을 경우의 데이타 복원방법에 있어서, 페일난 상기 데이타 디스크 드라이브의 상하위블럭 데이타를 저장할 수 있도록 상기 예비 디스크 드라이브의 상위블럭 저장영역에 저장된 하위블럭 패러티정보를 패러티 디스크 드라이브의 하위블럭 저장영역으로 복사하는 제1과정과, 페일나지 않은 디스크 어레이의 나머지 디스크 드라이브들의 상하위블럭데이타를 이용하여 페일난 상기 데이타 디스크 드라이브의 상하위블럭데이타를 복원하는 제2과정과, 상기 복원된 상하위블럭데이타를 상기 예비 디스크 드라이브의 상하위블럭 저장영역에 기록하는 제3과정으로 이루어짐을 특징으로 하는 방법.
  7. 디스크 어레이가, 데이타저장영역이 상하위블럭으로 나뉘어져 있으며 데이타 저장용인 다수의 데이타 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 상위블럭 패러티정보를 상위블럭 저장영역에 저장하며 소그룹 상하위블럭 패러티정보를 만들기 위해 정의된 소패러티 그룹의 디스크 드라이브들 중 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타에 대한 소그룹 하위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 패러티 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타들에 대한 하위블럭 패러티 정보를 상위블럭 저장영역에 저장하며 상기 소패러티 그룹내의 데이타 디스크 드라이브들 및 패러티 디스크 드라이브의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 소그룹 상위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 예비 디스크 드라이브로 구성된 알에이아이디 서브 시스템에서 상기 소패러티그룹내 하나의 데이타 디스크 드라이브와 상기 소패러티그룹외 하나의 데이타 디스크 드라이브가 페일 났을 경우의 데이타 복원방법에 있어서, 예비 디스크 드라이브의 상위블럭저장영역에 저장된 하위블럭 패러티 정보와 패러티 디스크 드라이브의 하위블럭 저장영역에 저장된 소그룹 하위블럭 패러티정보를 교체시키는 제1과정과, 상기 소패러티그룹에서 페일나지 않은 데이타 디스크 드라이브와 패러티 디스크 드라이브의 상하위블럭데이타 및 예비디스크 드라이브의 상하위블럭데이타를 이용하여 소패러티그룹내 페일난 데이타 디스크 드라이브의 상하위블럭데이타를 복원하는 제2과정과, 상기 제2과정에서 복원된 상하위블럭데이타를 예비 디스크 드라이브의 상하위블럭 저장영역에 기록시키는 제3과정과, 디스크 어레이에서 페일나지 않은 데이타 드라이브들과 패러티 드라이브 드라이브 및 상기 제2과정에서 복원된 상하위블럭데이타를 저장하고 있는 예비 디스크 드라이브의 상하위블럭데이타를 이용하여 소패러티그룹외에서 페일난 데이타 디스크 드라이브의 상하위블럭데이타를 복원하는 제4과정과, 상기 제4과정에서 복원된 상하위블럭데이타를 패러티 디스크 드라이브의 상하위블럭 저장영역에 기록시키는 제5과정으로 이루어짐을 특징으로 하는 방법.
  8. 디스크 어레이가, 데이타저장영역이 상하위블럭으로 나뉘어져 있으며 데이타 저장용인 다수의 데이타 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 상위블럭 패러티정보를 상위블럭 저장영역에 저장하며 소그룹 상하위 패러티정보를 만들기 위해 정의된 소패러티 그룹의 디스크 드라이브들 중 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타에 대한 소그룹 하위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 패러티 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타들에 대한 하위블럭 패러티 정보를 상위블럭 저장영역에 저장하며 상기 소패러티 그룹내의 데이타 디스크 드라이브들 및 패러티 디스크 드라이브의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 소그룹 상위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 예비 디스크 드라이브로 구성된 알에이아이디 서브 시스템에서 상기 패러티 디스크 드라이브와 예비 디스크 드라이브중 어느 하나가 페일 났을 경우의 데이타 복원방법에 있어서, 상기 패러티 드라이브이 페일되었을 시의 과정이 예비 디스크 드라이브의 상위블럭 저장영역에 저정된 하위블럭패러티정보를 하위블럭저장영역으로 복사하는 제1단계와, 디스크 어레이내 모든 데이타 드라이브들의 상위블럭데이타를 이용하여 페일된 상위블럭 패러티 데이타을 복원하여 상기 예비 디스크 드라이브의 상위블럭저장영역으로 기록시키는 제2단계로 이루어지고, 상기 예비 드라이브가 페일되었을 시의 과정이 상기 디스크 어레이내 모든 데이타 드라이브들의 하위블럭데이타를 이용하여 페일된 하위블럭 패러티 데이타를 복원하고 패러티 드라이브의 하위블럭 저장영역에 기록시키는 것으로 이루어짐을 특징으로 하는 방법.
  9. 디스크 어레이가, 데이타저장영역이 상하위블럭으로 나뉘어져 있으며 데이타 저장용인 다수의 데이타 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 상위블럭 패러티정보를 상위블럭 저장영역에 저장하며 소그룹 상하위블럭 패러티정보를 만들기 위해 정의된 소패러티 그룹의 디스크 드라이브들 중 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타에 대한 소그룹 하위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 패러티 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타들에 대한 하위블럭 패러티 정보를 상위블럭 저장영역에 저장하며 상기 소패러티 그룹내의 데이타 디스크 드라이브들 및 패러티 디스크 드라이브의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 소그룹 상위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 예비 디스크 드라이브로 구성된 알에이아이디 서브 시스템에서 예비 디스크 드라이브와 상기 소패러티그룹내 한개의 데이타 디스크 드라이브가 페일 났을 경우의 데이타 복원방법에 있어서, 상기 디스크 어레이내 페일나지 않은 모든 데이타 디스크 드라이브들과 패러티 디스크 드라이브의 상위블럭 데이타를 이용하여 페일난 데이타 디스크 드라이브의 상위블럭데이타를 복원시키는 제1과정과, 상기 제1과정에서 복원된 상위블럭데이타를 상기 패러티 디스크 드라이브의 상위블럭 저장영역에 기록시키는 제2과정과, 소패러티그룹내 페일나지 않은 데이타 디스크 드라이브의 하위블럭 데이타와 패러티 디스크 드라이브의 하위블럭 저장영역에 저장된 소그룹 하위블럭 패러티 데이타를 이용하여 페일난 데이타 디스크 드라이브의 하위블럭데이타를 복원시키는 제3과정과, 상기 제3과정에서 복원된 하위블럭데이타를 패러티 디스크 드라이브의 하위블럭저장영역에 기록시키는 제4과정으로 이루어짐을 특징으로 하는 방법.
  10. 디스크 어레이가, 데이타저장영역이 상하위블럭으로 나뉘어져 있으며 데이타 저장용인 다수의 데이타 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 상위블럭 패러티정보를 상위블럭 저장영역에 저장하며 소그룹 상하위블럭 패러티정보를 만들기 위해 정의된 소패러티 그룹의 디스크 드라이브들 중 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타에 대한 소그룹 하위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 패러티 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타들에 대한 하위블럭 패러티 정보를 상위블럭 저장영역에 저장하며 상기 소패러티 그룹내의 데이타 디스크 드라이브들 및 패러티 디스크 드라이브의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 소그룹 상위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 예비 디스크 드라이브로 구성된 알에이아이디 서브 시스템에서 정상모드시 상기 소패러티그룹외의 데이타 디스크 드라이브로의 데이타 라이트 방법에 있어서, 상기 소패러티그룹외의 하나의 데이타 디스크 드라이브로 새로운 데이타를 라이트함에 따라 상기 새로운데이타에 대한 패러티데이타를 생성하기 위해 상기 하나의 데이타를 제외한 모든 데이타 디스크 드라이브에서 상기 새로운 데이타에 대응되는 오래된 데이타를 읽어오는 제1과정과, 상기 오래된 데이타의 저장위치가 상위블럭 저장영역이면 상기 오랜된 데이타를 상기 패러티 디스크 드라이브의 상위블럭 저장영역중 상기 오랜된 데이타 저장위치에 대응된 상위블럭 패러티데이타와 배타적 논리합을 하고, 그 결과값을 상기 새로운 데이타와 배타적 논리합하여 새로운 상위블럭 패러티정보를 생성하는 제2과정과, 생성된 상기 새로운 상위블럭 패리터정보를 상기 패러티 디스크 드라이브의 상위블럭 저장영역에 라이트하는 제3과정과, 상기 오래된 데이타의 저장위치가 하위블럭 저장영역이면 상기 오랜된 데이타를 상기 예비 디스크 드라이브의 상위블럭 저장영역중 상기 오랜된 데이타 저장위치에 대응된 하위블럭 패러티데이타와 배타적 논리합을 하고, 그 결과값을 상기 새로운 데이타와 배타적 논리합하여 새로운 하위블럭 패러티정보를 생성하는 제4과정과, 생성된 상기 새로운 하위블럭 패리터정보를 상기 예비 디스크 드라이브의 상위블럭 저장영역에 라이트하는 제5과정으로 이루어짐을 특징으로 하는 방법.
  11. 디스크 어레이가, 데이타저장영역이 상하위블럭으로 나뉘어져 있으며 데이타 저장용인 다수의 데이타 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 상위블럭 패러티정보를 상위블럭 저장영역에 저장하며 소그룹 상하위블럭 패러티정보를 만들기 위해 정의된 소패러티 그룹의 디스크 드라이브들 중 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타에 대한 소그룹 하위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 패러티 디스크 드라이브와, 상기 데이타 디스크 드라이브들의 하위블럭 저장영역에 저장된 하위블럭 데이타들에 대한 하위블럭 패러티 정보를 상위블럭 저장영역에 저장하며 상기 소패러티 그룹내의 데이타 디스크 드라이브들 및 패러티 디스크 드라이브의 상위블럭 저장영역에 저장된 상위블럭 데이타들에 대한 소그룹 상위블럭 패러티정보를 하위블럭 저장영역에 저장하고 있는 예비 디스크 드라이브로 구성된 알에이아이디 서브 시스템에서 정상모드시 상기 소패러티그룹내의 데이타 디스크 드라이브로의 데이타 라이트 방법에 있어서, 상기 소패러티그룹내의 하나의 데이타 디스크 드라이브로 새로운 데이타를 라이트함에 따라 상기 새로운데이타에 대한 전체 패러티데이타를 생성하기 위한 제1과정이 상기 하나의 데이타를 제외한 모든 데이타 디스크 드라이브에서 상기 새로운 데이타에 대응되는 오래된 데이타를 읽어오는 단계와, 상기 오래된 데이타의 저장위치가 상위블럭 저장영역이면 상기 오랜된 데이타를 상기 패러티 디스크 드라이브의 상위블럭 저장영역중 상기 오랜된 데이타 저장위치에 대응된 상위블럭 패러티데이타와 배타적 논리합을 하고, 그 결과값을 상기 새로운 데이타와 배타적 논리합하여 새로운 상위블럭 패러티정보를 생성하는 단계와, 생성된 상기 새로운 상위블럭 패리터정보를 상기 패러티 디스크 드라이브의 상위블럭 저장영역에 라이트하는 단계와, 상기 오래된 데이타의 저장위치가 하위블럭 저장영역이면 상기 오랜된 데이타를 상기 예비 디스크 드라이브의 상위블럭 저장영역중 상기 오랜된 데이타 저장위치에 대응된 하위블럭 패러티데이타와 배타적 논리합을 하고, 그 결과값을 상기 새로운 데이타와 배타적 논리합하여 새로운 하위블럭 패러티정보를 생성하는 단계와, 생성된 상기 새로운 하위블럭 패리터정보를 상기 예비 디스크 드라이브의 상위블럭 저장영역에 라이트하는 단계로 이루어지고, 상기 새로운 데이타에 대한 소그룹 패러티데이타를 생성하기 위한 제2과정이 상기 새로운 데이타와 새로운 데이타의 저장 위치에 대응되는 소패러티 그룹의 나머지 데이타 디스크 드라이브의 오래된 데이타를 배타적 논리합하여 변경된 소그룹 데이타를 생성하는 단계와, 상기 새로운 데이타의 저장 위치가 상위블럭 저장영역이면 상기 변경된 소그룹 데이타를 상기 패러티 디스크 드라이브의 상위블럭 저장영역내 상기 새로운데이타의 저장위치에 대응되는 상위블럭 패러티 데이타와 배타적 논리합하여 새로운 소그룹 상위블럭 패러티데이타를 생성하는 단계와, 생성된 상기 새로운 소그룹 상위블럭 패러티데이타를 상기 예비디스크 드라이브의 하위블럭 저장영역에 라이트하는 단계와, 상기 새로운 데이타의 저장 위치가 하위블럭 저장영역이면 상기 변경된 소그룹 데이타를 새로운 소그룹 하위블럭 패러티데이타로서 상기 패러티 디스크 드라이브의 하위블럭 저장영역에 라이트하는 단계로 이루어짐을 특징으로 하는 방법.
KR1019960041479A 1996-09-21 1996-09-21 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법 KR100275900B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1019960041479A KR100275900B1 (ko) 1996-09-21 1996-09-21 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
DE19723909A DE19723909B4 (de) 1996-09-21 1997-06-06 Verfahren zum Verbessern der Fehlerfestigkeit und Leistungsfähigkeit eines RAID-Untersystems
US08/935,201 US6070249A (en) 1996-09-21 1997-09-22 Split parity spare disk achieving method in raid subsystem
JP25686297A JP3742494B2 (ja) 1996-09-21 1997-09-22 大容量記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960041479A KR100275900B1 (ko) 1996-09-21 1996-09-21 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법

Publications (2)

Publication Number Publication Date
KR19980022356A true KR19980022356A (ko) 1998-07-06
KR100275900B1 KR100275900B1 (ko) 2000-12-15

Family

ID=19474748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960041479A KR100275900B1 (ko) 1996-09-21 1996-09-21 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법

Country Status (4)

Country Link
US (1) US6070249A (ko)
JP (1) JP3742494B2 (ko)
KR (1) KR100275900B1 (ko)
DE (1) DE19723909B4 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100363221B1 (ko) * 2000-11-10 2002-12-05 디스크뱅크(주) 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법
KR100463841B1 (ko) * 2002-02-25 2004-12-29 한국전자통신연구원 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법
WO2010005421A2 (en) * 2008-07-07 2010-01-14 Hewlett-Packard Development Company, L.P. Dynamically expanding storage capacity of a storage volume
KR20210093821A (ko) * 2016-02-23 2021-07-28 에스케이텔레콤 주식회사 Raid 기반의 스토리지 장치

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272442B1 (en) * 1999-02-04 2001-08-07 Dell Usa, L.P. Taking in-use computer drives offline for testing
US6058054A (en) * 1999-03-31 2000-05-02 International Business Machines Corporation Method and system for providing an instant backup in a RAID data storage system
US6532548B1 (en) * 1999-09-21 2003-03-11 Storage Technology Corporation System and method for handling temporary errors on a redundant array of independent tapes (RAIT)
US6675318B1 (en) * 2000-07-25 2004-01-06 Sun Microsystems, Inc. Two-dimensional storage array with prompt parity in one dimension and delayed parity in a second dimension
DE10101805A1 (de) * 2001-01-17 2002-07-18 Siemens Ag Netzwerk mit mehreren Teilnehmern sowie Teilnehmer für ein derartiges Netzwerk
US6862692B2 (en) 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US20020165942A1 (en) * 2001-01-29 2002-11-07 Ulrich Thomas R. Data path accelerator with variable parity, variable length, and variable extent parity groups
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
JP2002259062A (ja) * 2001-02-28 2002-09-13 Hitachi Ltd 記憶装置システム及び記憶装置システムにおけるデータの複写方法
US7222257B1 (en) * 2001-06-12 2007-05-22 Emc Corporation Method and system for repairing a redundant array of disk drives
DE60131028D1 (de) * 2001-08-31 2007-11-29 Legend Beijing Ltd Verfahren zum sichern und wiederherstellen von daten in der festplatte eines computers
JP2004326357A (ja) * 2003-04-23 2004-11-18 Internatl Business Mach Corp <Ibm> 冗長化ブロックを有する記憶システム、並びに、当該記憶システムの制御装置、制御方法、プログラム及び記録媒体
US7254754B2 (en) * 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
US7281177B2 (en) * 2003-07-14 2007-10-09 International Business Machines Corporation Autonomic parity exchange
US7379974B2 (en) * 2003-07-14 2008-05-27 International Business Machines Corporation Multipath data retrieval from redundant array
US7533325B2 (en) * 2003-07-14 2009-05-12 International Business Machines Corporation Anamorphic codes
US9489150B2 (en) 2003-08-14 2016-11-08 Dell International L.L.C. System and method for transferring data between different raid data storage types for current data and replay data
US7613945B2 (en) 2003-08-14 2009-11-03 Compellent Technologies Virtual disk drive system and method
JP2005100259A (ja) * 2003-09-26 2005-04-14 Hitachi Ltd ドライブの2重障害を防止するアレイ型ディスク装置、プログラム、及び方法
US7302603B2 (en) * 2003-11-20 2007-11-27 International Business Machines Corporation Host-initiated data reconstruction for improved RAID read operations
JP4634049B2 (ja) * 2004-02-04 2011-02-16 株式会社日立製作所 ディスクアレイ装置における異常通知制御
US8601035B2 (en) 2007-06-22 2013-12-03 Compellent Technologies Data storage space recovery system and method
US20060112219A1 (en) * 2004-11-19 2006-05-25 Gaurav Chawla Functional partitioning method for providing modular data storage systems
CN101467122B (zh) * 2006-05-24 2012-07-04 克姆佩棱特科技公司 数据分级磁盘位置优化系统和方法
EP2021904A2 (en) * 2006-05-24 2009-02-11 Compellent Technologies System and method for raid management, reallocation, and restriping
CN102124527A (zh) 2008-05-16 2011-07-13 弗森-艾奥公司 用于检测和替代失效的数据存储器的装置、系统和方法
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8468292B2 (en) 2009-07-13 2013-06-18 Compellent Technologies Solid state drive data storage system and method
US9146851B2 (en) 2012-03-26 2015-09-29 Compellent Technologies Single-level cell and multi-level cell hybrid solid state drive
US20150089328A1 (en) * 2013-09-23 2015-03-26 Futurewei Technologies, Inc. Flex Erasure Coding of Controllers of Primary Hard Disk Drives Controller
CN103810062B (zh) * 2014-03-05 2015-12-30 华为技术有限公司 慢盘检测方法和装置
US11334434B2 (en) 2020-02-19 2022-05-17 Seagate Technology Llc Multi-level erasure system with cooperative optimization
US11372553B1 (en) 2020-12-31 2022-06-28 Seagate Technology Llc System and method to increase data center availability using rack-to-rack storage link cable

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5130992A (en) * 1990-04-16 1992-07-14 International Business Machines Corporaiton File-based redundant parity protection in a parallel computing system
US5258984A (en) * 1991-06-13 1993-11-02 International Business Machines Corporation Method and means for distributed sparing in DASD arrays
US5331646A (en) * 1992-05-08 1994-07-19 Compaq Computer Corporation Error correcting code technique for improving reliablility of a disk array
DE4392143C1 (de) * 1992-05-21 1996-11-21 Fujitsu Ltd Platten-Array-Vorrichtung
US5388108A (en) * 1992-10-23 1995-02-07 Ncr Corporation Delayed initiation of read-modify-write parity operations in a raid level 5 disk array
JP2912802B2 (ja) * 1993-10-14 1999-06-28 富士通株式会社 ディスクアレイ装置の故障対処方法および装置
US5530948A (en) * 1993-12-30 1996-06-25 International Business Machines Corporation System and method for command queuing on raid levels 4 and 5 parity drives
US5488701A (en) * 1994-11-17 1996-01-30 International Business Machines Corporation In log sparing for log structured arrays
US5533190A (en) * 1994-12-21 1996-07-02 At&T Global Information Solutions Company Method for maintaining parity-data consistency in a disk array

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100363221B1 (ko) * 2000-11-10 2002-12-05 디스크뱅크(주) 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법
KR100463841B1 (ko) * 2002-02-25 2004-12-29 한국전자통신연구원 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법
WO2010005421A2 (en) * 2008-07-07 2010-01-14 Hewlett-Packard Development Company, L.P. Dynamically expanding storage capacity of a storage volume
WO2010005421A3 (en) * 2008-07-07 2010-07-22 Hewlett-Packard Development Company, L.P. Dynamically expanding storage capacity of a storage volume
KR20210093821A (ko) * 2016-02-23 2021-07-28 에스케이텔레콤 주식회사 Raid 기반의 스토리지 장치

Also Published As

Publication number Publication date
DE19723909B4 (de) 2004-04-01
DE19723909A1 (de) 1998-04-02
JP3742494B2 (ja) 2006-02-01
JPH10111767A (ja) 1998-04-28
KR100275900B1 (ko) 2000-12-15
US6070249A (en) 2000-05-30

Similar Documents

Publication Publication Date Title
KR100275900B1 (ko) 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
JP3187730B2 (ja) Raid記憶サブシステムにおけるデータのスナップショットコピー作成方法及びその装置
US8392752B2 (en) Selective recovery and aggregation technique for two storage apparatuses of a raid
US5124987A (en) Logical track write scheduling system for a parallel disk drive array data storage subsystem
US7600152B2 (en) Configuring cache memory from a storage controller
US6922752B2 (en) Storage system using fast storage devices for storing redundant data
JPH06202817A (ja) ディスクアレイ装置及びそのデータ更新方法
JP4815825B2 (ja) ディスクアレイ装置及びその再構築方法
US6301711B1 (en) System and method for the network support of full motion video using a redundant array of inexpensive disks
US20050193273A1 (en) Method, apparatus and program storage device that provide virtual space to handle storage device failures in a storage system
JP2005099995A (ja) 磁気ディスク装置のディスク共有方法及びシステム
JPH07261945A (ja) ディスクアレイ装置およびディスクアレイの区分け方法
JP2857288B2 (ja) ディスクアレイ装置
JPH06230903A (ja) ディスクアレイ装置の障害回復方法、およびディスクアレイ装置
JP3597349B2 (ja) 記憶サブシステムおよびその障害回復方法
JPH07306758A (ja) ディスクアレイ装置及びその制御方法
JPH08286844A (ja) パリティ生成制御方法およびディスク制御装置
JPH1031563A (ja) 記憶装置
JP3584665B2 (ja) 可搬媒体を用いたライブラリ記憶装置
JP2019121279A (ja) ディスクアレイコントローラ、ストレージ装置、ストレージ装置の復旧方法、及びディスクアレイコントローラの復旧プログラム
JP3793544B2 (ja) ディスクアレイ装置及びその制御方法
JP2857289B2 (ja) ディスクアレイ装置
JP2010224803A (ja) ディスクアレイ装置
JPH07210333A (ja) アレイ型ディスクシステムの制御方式

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19960921

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 19960921

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: 19981224

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 19990524

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 19981224

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

J201 Request for trial against refusal decision
PJ0201 Trial against decision of rejection

Patent event date: 19990622

Comment text: Request for Trial against Decision on Refusal

Patent event code: PJ02012R01D

Patent event date: 19990524

Comment text: Decision to Refuse Application

Patent event code: PJ02011S01I

Appeal kind category: Appeal against decision to decline refusal

Decision date: 20000728

Appeal identifier: 1999101002137

Request date: 19990622

J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 19990622

Effective date: 20000728

PJ1301 Trial decision

Patent event code: PJ13011S01D

Patent event date: 20000802

Comment text: Trial Decision on Objection to Decision on Refusal

Appeal kind category: Appeal against decision to decline refusal

Request date: 19990622

Decision date: 20000728

Appeal identifier: 1999101002137

PS0901 Examination by remand of revocation
S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
PS0701 Decision of registration after remand of revocation

Patent event date: 20000907

Patent event code: PS07012S01D

Comment text: Decision to Grant Registration

Patent event date: 20000810

Patent event code: PS07011S01I

Comment text: Notice of Trial Decision (Remand of Revocation)

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20000925

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20000926

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20030808

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20040331

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20050802

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20060830

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20060830

Start annual number: 7

End annual number: 7

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20080809