KR100701563B1 - 스토리지 제어 장치 및 방법 - Google Patents

스토리지 제어 장치 및 방법 Download PDF

Info

Publication number
KR100701563B1
KR100701563B1 KR1020050065647A KR20050065647A KR100701563B1 KR 100701563 B1 KR100701563 B1 KR 100701563B1 KR 1020050065647 A KR1020050065647 A KR 1020050065647A KR 20050065647 A KR20050065647 A KR 20050065647A KR 100701563 B1 KR100701563 B1 KR 100701563B1
Authority
KR
South Korea
Prior art keywords
storage device
information
area
disk
storage
Prior art date
Application number
KR1020050065647A
Other languages
English (en)
Other versions
KR20060101156A (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 KR20060101156A publication Critical patent/KR20060101156A/ko
Application granted granted Critical
Publication of KR100701563B1 publication Critical patent/KR100701563B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/1035Keeping track, i.e. keeping track of data and parity changes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

패리티를 이용하여 데이터의 용장화를 행하는 스토리지 장치에 있어서, 데이터/패리티를 저장하는 2개의 기억 장치가 고장났을 때의 재구축 처리를 개선하여, 효율 좋게 용장성을 회복하기 위해, 고장 디스크 #O의 데이터/패리티의 복원 중에 디스크 #1이 고장났을 때, 이미 복원되어 예비 디스크 HS #0에 기입되어 있는 데이터/패리티를 파기하지 않고, 다른 정상 디스크에 저장된 데이터/패리티를 이용하여, 디스크 #0의 미복원 영역과 디스크 #1의 데이터/패리티를 복원하여, HS #0의 대응하는 영역과 HS #1에 각각 기입한다.
캐시 메모리, 패리티, 스토리지 제어장치, 재구축수단

Description

스토리지 제어 장치 및 방법{STORAGE CONTROL APPARATUS AND METHOD}
도 1은 본 발명의 스토리지 제어 장치의 원리도.
도 2는 제1 스토리지 시스템의 구성도.
도 3은 재구축 처리의 개선안 을 도시하는 도면.
도 4는 개선안 1을 도시하는 도면.
도 5는 개선안 2를 도시하는 도면.
도 6은 개선안 4를 도시하는 도면.
도 7은 개선안 5를 도시하는 도면.
도 8은 개선안 6을 도시하는 도면.
도 9는 Main과 Sub의 현재 위치를 도시하는 도면.
도 10은 각 디스크의 복원 상태를 도시하는 도면.
도 11은 재구축 처리의 플로우차트.
도 12는 개선안 1의 복원 루틴의 플로우차트.
도 13은 개선안 1의 복원후 처리의 플로우차트.
도 14는 개선안 2~5의 복원 루틴의 플로우차트.
도 15는 개선안 2의 복원후 처리의 플로우차트.
도 16은 개선안 3의 복원후 처리의 플로우차트.
도 17은 개선안 4의 복원후 처리의 플로우차트.
도 18은 개선안 5의 복원후 처리의 플로우차트.
도 19는 개선안 6의 복원 상태를 도시하는 도면.
도 20은 프로그램 및 데이터의 제공 방법을 도시하는 도면.
도 21은 제2 스토리지 시스템의 구성도.
도 22는 제3 스토리지 시스템의 구성도.
도 23은 1 디스크 고장의 데이터 복원을 도시하는 도면.
도 24는 2 디스크 고장의 데이터 복원을 도시하는 도면.
도 25는 2 디스크 고장의 재구축 처리를 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
101: 스토리지 제어 장치
102-1, 102-2, 102-N: 기억 장치
103-1, 103-2: 예비 기억 장치
111, 112: 재구축 수단
201, 1901, 2001: 호스트 장치
202: RAID 장치
211: 컨트롤러
211, 1921, 2011: 프로세서
222, 1922, 2012, 2013: 메모리
223, 1923: 캐시 메모리
1801: 외부 장치
1802: 가반 기록 매체
1911: 호스트 버스 어댑터
Disk0, Disk1, Disk2, Disk3: 디스크
[특허문헌 1] 일본 특허공개 평성 03-240123호 공보
본 발명은, RAlD(Redundant Array of Inexpensive Disks)와 같은 복수의 기억 장치에 데이터 및 패리티를 분산하여 저장하고, 기억 장치의 고장시에 데이터 및 패리티의 재구축(Rebuild) 처리를 행하는 스토리지 제어 장치 및 방법에 관한 것이다.
RAID는, 복수의 하드디스크를 조합하여, 용장화된 1대의 하드디스크로서 관리하는 기술로서, 디스크에의 데이터 배치나 데이터의 용장화의 방법에 의해, RAlD0∼RAID6의 7개의 레벨로 분류되어 있다. 이 중, RAID3∼RAID6에서는, 데이터로부터 생성된 패리티를 데이터와는 별도로 저장함으로써, 용장화를 실현하고 있다. 디스크 고장시에는, 이 패리티를 이용하여 고장난 디스크의 데이터를 복원하는 재구축 처리가 행해진다(예를 들면, 특허 문헌1 참조).
RAID6은 2개의 디스크의 고장에 대응한 RAID 레벨이다. RAID6에서는, 서로 다른 2종류의 패리티 P와 Q가 각각이 서로 다른 디스크에 분산하여 저장되고, 1개의 디스크가 고장났을 때(1 디스크 고장)의 재구축 처리와 2개의 디스크가 고장났을 때(2 디스크 고장)의 재구축 처리에서는 복원 방법이 서로 다르다.
예를 들면, 도 23에 도시하는 바와 같이, 디스크(10∼14))의 5개의 디스크로 이루어지는 RAID 장치에 있어서, 디스크(10)가 고장나서 데이터 D0이 소실된 경우, 예비 디스크인 핫 스페어(15)를 이용하여 1 디스크 고장의 재구축 처리가 행해진다. 그리고, 다른 디스크(11∼13)에 저장된 데이터 D1, D2 및 패리티 P로부터 데이터 D0이 복원된다.
이에 반해, 도 24에 도시하는 바와 같이, 디스크(10, 11)이 고장나서 데이터 D0 및 D1이 소실된 경우, 핫 스페어(15, 16)을 이용하여 2 디스크 고장의 재구축 처리가 행해진다. 그리고, 다른 디스크(12∼14)에 저장된 데이터 D2 및 패리티 P, Q로부터 데이터 D0 및 D1이 복원된다.
일반적으로, RAID6에서는 데이터 및 패리티를 담당하는 디스크가 스트라이프마다 다르기 때문에, 고장 디스크에 저장된 정보 및 그 복원에 필요로 되는 정보의 종류도 스트라이프마다 달라진다. 따라서, 이하의 설명에서는, 각 디스크에 저장된 정보를 데이터/패리티라고 기재하기로 한다.
1 디스크 고장으로부터 2 디스크 고장으로 된 경우, 재구축 처리도 1 디스크 고장의 처리로부터 2 디스크 고장의 처리로 절환해서 행할 필요가 있다. 예를 들면, 도 25에 도시하는 바와 같이, 처음에 고장난 디스크 #0을 핫 스페어(HS)와 교체해서 1 디스크 고장의 재구축 처리를 실행하고 있는 동안에, 2번째의 디스크 #1 이 고장난 경우, 1 디스크 고장의 재구축 처리에서는 데이터/패리티의 복원을 할 수 없게 된다. 그래서, 1 디스크 고장의 재구축 처리를 중지하고, HS #0 및 HS #1을 대상으로 2 디스크 고장의 재구축 처리를 개시하는 것이 상정된다.
상술한 2 디스크 고장의 재구축 방법에는, 다음과 같은 문제가 있다.
도 25에 도시한 2 디스크 고장의 재구축 처리에서는, HS #0의 재구축 완료 영역에 이미 저장된 복원 데이터/패리티가 파기되고, 재차 처음부터 재구축이 실시되게 되기 때문에, 복원 데이터/패리티가 유효하게 활용되지 않는다.
또한, 1 디스크 고장의 재구축 처리에 비해서, 보다 큰 처리 코스트를 요하는 2 디스크 고장의 재구축 처리를, HS #0 및 HS #1의 전체 영역에 대해서 실시하기 때문에, 용장성의 회복까지 많은 시간이 걸린다.
본 발명의 과제는, 패리티를 이용하여 데이터의 용장화를 행하는 RAlD와 같은 스토리지 장치에 있어서, 데이터/패리티를 저장하는 2개의 기억 장치가 고장났을 때의 재구축 처리를 개선하여, 효율 좋게 용장성을 회복하는 것이다.
도 1은, 본 발명의 스토리지 제어 장치의 원리도이다. 도 1의 스토리지 제어 장치(101)는, 재구축 수단(111, 112)를 구비하고, 복수의 기억 장치(102-1∼102-N)에 데이터 및 패리티를 분산하여 저장하는 제어를 행함으로써, 데이터의 용장화를 실현한다.
재구축 수단(111)은, 기억 장치(102-1)가 고장났을 때, 그 이외의 기억 장치 에 저장된 정보를 이용하여 기억 장치(102-1)의 정보를 복원하여, 예비 기억 장치(103-1)에 기입한다. 재구축 수단(112)은, 기억 장치(102-1)의 정보를 복원하고 있는 동안에 기억 장치(102-2)가 고장났을 때, 기억 장치(102-1, 102-2) 이외의 기억 장치에 저장된 정보를 이용하여 기억 장치(102-1)의 미복원 영역의 정보와 기억 장치(102-2)의 정보를 복원하여, 예비 기억 장치(103-1)의 대응하는 영역과 예비 기억 장치(103-2)에 각각 기입한다.
각 기억 장치에는, 데이터 또는 패리티가 정보로서 저장되어 있다. 고장난 기억 장치의 정보는, 그 시점에서 고장나지 않은 정상적인 기억 장치에 저장된 정보를 이용하여 복원되어, 대응하는 예비 기억 장치에 기입된다. 기억 장치(102-1)의 정보를 복원하고 있는 동안에 기억 장치(102-2)가 고장났을 때, 기억 장치(102-1)의 복원 완료 영역의 정보는 그대로 예비 기억 장치(103-1) 내에 보존되고, 기억 장치(102-1)의 미복원 영역과 기억 장치(102-2)의 전체 영역을 대상으로 해서 복원 처리가 행해진다.
이러한 재구축 제어에 따르면, 1 디스크 고장으로부터 2 디스크 고장으로 되었을 때, 이미 복원되어 있는 정보가 소거되지 않고 유효하게 이용된다. 또한, 기억 장치(102-1)의 복원 완료 영역은 복원 대상으로부터 제외되기 때문에, 재구축 처리에 요하는 시간이 삭감된다. 또한, 기억 장치(102-1)의 복원 완료 영역에 대응하는 기억 장치(102-2)의 영역에 대해서는, 처리 코스트가 작은 1 디스크 고장의 재구축 처리를 적용할 수 있기 때문에, 한층 더 효율화가 가능하다.
스토리지 제어 장치(101)는, 예를 들면, 후술하는 도 2의 컨트롤러(211),도 21의 호스트 버스 어댑터(1911), 또는 도 22의 호스트 장치(2001)에 대응한다.
<발명을 실시하기 위한 최량의 형태>
이하, 도면을 참조하면서, 본 발명을 실시하기 위한 최량의 형태를 상세히 설명한다.
도 2는, 실시예의 스토리지 시스템의 구성예를 나타내고 있다. 도 2의 스토리지 시스템은, 호스트 장치(201) 및 RAID 장치(202)로 이루어지고, RAID 장치(202)는, 컨트롤러(211) 및 Disk#0∼Disk#3의 4개의 디스크를 구비하는 스토리지 장치에 대응한다.
각 디스크는 1개 이상의 자기 디스크 장치로 이루어지고, 호스트 장치(201)는 각 디스크를 1개의 기억 장치라고 간주하여 데이터의 리드/라이트를 행한다. 단, 컨트롤러(211)에 접속되는 디스크의 수는 4개로 한정되는 것은 아니고, 일반적으로는 보다 많은 디스크가 접속된다.
컨트롤러(211)는, 프로세서(221), 메모리(222) 및 캐쉬 메모리(223)를 구비하고, Disk#0∼Disk#3의 고장시의 재구축 처리를 행한다. 프로세서(221)는, 메모리(222)에 저장된 프로그램을 실행함으로써, 캐쉬 메모리(223)를 데이터 버퍼로서 이용하면서 재구축 처리를 행한다.
본 실시예에 있어서는, 2 디스크 고장의 재구축 처리를 개선하기 위해, 도 3에 도시하는 개선안 1∼6을 채용한다. 우선, 도 4 내지 도 8까지를 참조하면서, 각 개선안의 개요에 대하여 설명한다.
1. 개별 실행안(개선안 1)
컨트롤러(211)는, 1번째의 디스크의 재구축과 2번째의 디스크의 재구축을 독립적으로 행한다. 특히, 양쪽의 디스크의 고장 부분에 대응하는 이중 고장 부분의 재구축 처리에서는, 2개의 디스크의 데이터/패리티를 데이터 버퍼 상에서 복원하면서, 한쪽의 디스크의 복원 데이터/패리티만을 디스크에 라이트하고, 다른 한쪽의 디스크의 복원 데이터/패리티는 라이트하지 않고 파기한다.
예를 들면, 도 4에 도시하는 바와 같이, 처음에 디스크 #0이 고장나고, HS #0을 이용하여 디스크 #O의 데이터/패리티를 복원하고 있는 동안에 디스크 #1이 고장난 경우에 대해 설명한다. 이 경우, 디스크 #1이 고장날 때까지 동안에는, 정상적인 디스크 #1∼#3의 데이터/패리티를 이용하여 1 디스크 고장의 재구축 처리에 의해 디스크 #O의 데이터/패리티가 복원된다.
디스크 #1이 고장나면, HS #0에 대해서는, 재구축 완료 영역의 데이터/패리티를 파기하지 않고 그대로 유지하고, 나머지 부분의 데이터/패리티만을 2 디스크 고장의 재구축 처리에 의해 복원한다. 이 처리에서는, 정상적인 디스크 #2∼#3의 데이터/패리티를 이용하여 HS #0의 나머지 부분의 데이터/패리티가 복원된다. 이 때, 디스크 #1의 데이터/패리티도 동시에 생성되지만, 디스크 #1의 재구축 처리는 별도로 독립적으로 행해지기 때문에, 생성된 데이터/패리티는 파기된다.
HS #1에 대해서는, HS #0의 재구축 처리와 병행하여, 정상적인 디스크 #2∼#3의 데이터/패리티를 이용하여 2 디스크 고장의 재구축 처리에 의해 전체의 데이터/패리티를 복원한다. 이 때, 2 디스크 고장의 재구축 처리에 의해 동시에 생성되는 디스크 #0의 데이터/패리티는 파기된다.
이러한 재구축 처리에 따르면, 디스크 #1이 고장났을 때에, 디스크 #O의 재구축 처리가, 복원 대상의 디스크만이 고장나 있는 1 디스크 고장의 재구축 처리로부터, 복원 대상 이외에도 고장 디스크가 존재하는 2 디스크 고장의 재구축 처리로 절환되고, 복원 완료 영역의 데이터/패리티는 그대로 유지된다. 따라서, 도 25에 도시한 바와 같이 복원 완료 영역의 데이터/패리티를 재차 재복원할 필요가 없어, 도 25의 재구축 처리보다 빠르게 디스크 #0의 복원이 완료한다.
2. 동일한 진척 위치로 될 때까지 대기하는 안(개선안 2)
컨트롤러(211)는, 2번째의 디스크의 고장시에, 1번째의 디스크의 재구축 처리를 일단 정지하고, 2번째의 디스크만을 1번째와 동일한 진척 위치로 될 때까지 재구축한다. 그리고, 동일한 진척 위치로 되면, 그 이후는 양쪽 동시에 재구축한다.
예를 들면, 도 5에 도시하는 바와 같이, 처음에 디스크 #0이 고장나고, HS #0을 이용하여 디스크 #O의 데이터/패리티를 복원하고 있는 동안에 디스크 #1이 고장난 경우에 대해 설명한다. 디스크 #1이 고장날 때까지의 동작은, 도 4의 경우와 마찬가지이다.
디스크 #1이 고장나면, 처음에, HS #0의 재구축 완료 영역에 대응하는 HS #1의 데이터/패리티만을, HS #0의 재구축 완료 영역의 데이터/패리티와 정상적인 디스크 #2∼#3의 데이터/패리티를 이용하여 1 디스크 고장의 재구축 처리에 의해 복원한다. 그리고, 그 부분의 데이터/패리티가 복원되면, 다음으로, HS #0 및 HS #1의 나머지 부분의 데이터/패리티를, 정상적인 디스크 #2∼#3의 데이터/패리티를 이 용하여 2 디스크 고장의 재구축 처리에 의해 동시에 복원한다.
이러한 재구축 처리에 따르면, 개선안 1과 마찬가지의 이점 외에, 복원 중인 디스크 #O의 복원 완료 영역의 데이터/패리티를 다른 디스크 #1의 복원에 유효하게 이용할 수 있어, 디스크 #1의 재구축 처리가 효율화된다.
3. 혼재안(개선안 3)
개선안 1과 개선안 2의 혼재안이다. 컨트롤러(211)는, 처리 중에 2개의 디스크 HS #0 및 HS #1의 재구축 진척 위치를 모니터하면서, 복원 방법을 선택한다. 구체적으로는, 진척 위치의 차이를 체크하고, 그 차이가 소정의 임계값 이상이면 개선안 1을 적용하여, HS #0의 재구축을 우선시키고, 차이가 임계값 미만이면 개선안 2를 적용하여, 서로의 진척 위치가 동일하게 될 때까지 HS #1의 재구축을 행한다. 진척 위치의 차이의 체크는, 소정 단위의 데이터/패리티를 복원할 때마다 매회 행하거나, 혹은 일정 범위의 데이터/패리티를 복원할 때마다 행한다.
개선안 2를 적용한 경우, HS #0 및 HS #1의 진척 위치의 차이는, 용장성이 소실되어 있는 이중 고장 부분의 복원 개시를 대기시키는 시간에 대응하고, 진척 위치의 차이가 클수록 용장성의 회복은 지연되게 된다. 그래서, 대기 시간이 일정 시간 이상으로 되는 경우에는, 그것을 피하기 위해 개선안 1을 적용하여, HS #0 및 HS #1의 재구축 처리를 병행하여 행한다.
단, 개선안 1과는 달리, HS #1의 이중 고장 부분 이외의 데이터/패리티는, HS #0의 재구축 완료 영역의 데이터/패리티와 정상적인 디스크 #2∼#3의 데이터/패리티를 이용하여 1 디스크 고장의 재구축 처리에 의해 복원한다. 일반적으로, 1 디스크 고장의 재구축 처리에 비해서, 2 디스크 고장의 재구축 처리 쪽이 많은 계산량이 필요로 된다. 이 때문에, 선행하고 있는 HS #0의 2 디스크 고장의 재구축 처리보다, HS #1의 1 디스크 고장의 재구축 처리 쪽이 빠르게 진행하여, 시간과 함께 진척 위치의 차이가 줄어들 가능성이 높다.
이러한 재구축 처리에 따르면, 개선안 2와 마찬가지의 이점 외에, 대기에 의한 용장성 회복의 지연을 회피할 수 있다. 또한, 병행 처리에 의해 프로세서 자원 등이 유효하게 이용되는 것도 기대할 수 있다.
4. 이중 고장 부분을 먼저 복원하는 안(개선안 4)
컨트롤러(211)는, 2번째의 디스크의 고장시에, 1번째의 디스크의 현재의 진척 위치를 복원 완료 위치(후술하는 정지 위치)로서 보존하고, 그 위치로부터 양쪽 동시의 재구축을 행한다. 그리고, 양쪽 동시의 재구축이 최후까지 종료하면, 2번째의 디스크의 미완료 영역 복구를 위해, 2번째의 디스크의 처음부터 복원 완료 위치까지의 재구축을 행한다.
예를 들면, 도 6에 도시하는 바와 같이, 처음에 디스크 #0이 고장나고, HS #0을 이용하여 디스크 #O의 데이터/패리티를 복원하고 있는 동안에 디스크 #1이 고장난 경우에 대해 설명한다. 디스크 #1이 고장날 때까지의 동작은, 도 4인 경우와 마찬가지이다.
디스크 #1이 고장나면, 처음에, HS #0의 재구축 미완료 영역에 대응하는 HS #0 및 HS #1의 데이터/패리티를, 정상적인 디스크 #2∼#3의 데이터/패리티를 이용하여 2 디스크 고장의 재구축 처리에 의해 동시에 복원한다. 그리고, 그 부분의 데이터/패리티가 복원되면, 다음으로, HS #1의 나머지 부분의 데이터/패리티를, HS #0의 재구축 완료 영역의 데이터/패리티와 정상적인 디스크 #2∼#3의 데이터/패리티를 이용하여 1 디스크 고장의 재구축 처리에 의해 복원한다.
재구축 처리 중에 RAID6의 통상의 리드/라이트 액세스가 있었을 때는, 액세스 대상 데이터의 재구축 완료/미완료를 체크하거나, 혹은, 리드 요구에 대하여 데이터를 재구축하면서 회신하는 식으로, 통상의 리드/라이트 액세스를 모두 축퇴 동작으로 한다.
이러한 재구축 처리에 따르면, 개선안 2와 마찬가지의 이점 외에, 이중 고장 부분의 데이터/패리티를 먼저 복원함으로써, RAID 그룹으로서의 용장성을 단시간에 회복하는 것이 가능하게 된다.
5. 이중 고장 복원과 복원 완료 HS를 이용한 복원을 병행하여 실시하는 안(개선안 5)
컨트롤러(211)는, 개선안 4에 있어서 나중에 실시하고 있던 2번째의 디스크의 처음부터 복원 완료 위치까지의 재구축 처리를, 이중 고장 부분의 재구축 처리를 대기하지 않고 병행하여 실시한다.
예를 들면, 도 7에 도시하는 바와 같이, 처음에 디스크 #0이 고장나고, HS #0을 이용하여 디스크 #O의 데이터/패리티를 복원하고 있는 동안에 디스크 #1이 고장난 경우에 대해 설명한다. 디스크 #1이 고장날 때까지의 동작은, 도 4인 경우와 마찬가지이다.
디스크 #1이 고장나면, HS #0 및 HS #1의 이중 고장 부분의 데이터/패리티 를, 정상적인 디스크 #2∼#3의 데이터/패리티를 이용하여 2 디스크 고장의 재구축 처리에 의해 복원하는 처리와, HS #1의 나머지 부분의 데이터/패리티를, HS #0의 재구축 완료 영역의 데이터/패리티와 정상적인 디스크 #2∼#3의 데이터/패리티를 이용하여 1 디스크 고장의 재구축 처리에 의해 복원하는 처리를 병행하여 실시한다.
재구축 처리 중에 통상의 리드/라이트 액세스가 있었을 때에는, 개선안 4의 경우와 마찬가지로, 액세스 대상 데이터의 재구축 완료/미완료를 체크하거나, 혹은 축퇴 동작을 행한다.
이와 같은 재구축 처리에 따르면, RAlD 그룹으로서의 용장성의 회복은 개선안 4보다 지연되지만, 용장성이 소실된 이중 고장 부분과 용장성이 남아 있는 다른 부분의 복원 처리가 병행하여 행해지기 때문에, 전체의 복원에 요하는 시간이 단축된다.
6. 랜덤안(개선안 6)
컨트롤러(211)는, 캐쉬 메모리(223) 상의 비트맵을 이용하여, 디스크의 소정 역마다 재구축 동작을 행한다. 재구축 순서로서는, 상기 개선안 1∼5 중 어느 하나를 채용한다. 기본적으로는, 데이터/패리티의 보전의 관점으로부터 개선안 4의 순서를 채용하는 것이 바람직하지만, 별도의 개선안의 순서라도 동작 가능하다.
또한, 통상의 리드/라이트 액세스의 연장으로 재구축 동작이 행해졌을 때도, 비트맵에는 재구축 완료라고 기록한다. 이 때문에, 리드/라이트 액세스와는 관계없는 시퀀셜한 재구축과, 리드/라이트 액세스의 연장으로 행해지는 원 포인트 재구 축의 2 종류의 처리를 병용하여, 재구축 처리가 행해진다. 원포인트 재구축에서는, 리드 요구에 대하여 데이터를 복원한 경우, 컨트롤러(211)는 복원 데이터를 디스크의 대응 위치에 라이트한다.
컨트롤러(211)는, 재구축 대상의 디스크마다, 예를 들면, 1 스트라이프를 1 비트에 대응시킨 비트맵을 준비하여, 진척 상황을 관리한다. 만일, 비트맵이 소실된 경우에는, 처음부터 재구축을 개시한다. 1개의 논리 블록을 1 비트에 대응시킨 비트맵을 이용해도 된다.
또한, 처음에 비트맵용의 메모리 영역을 획득할 수 없었던 경우, 컨트롤러(211)는 이하의 어느 하나의 동작을 행한다.
·상술한 별도의 개선안으로 재구축을 실행한다.
·비트맵의 사이즈에 상한을 설정해 놓고, 이것을 초과한 비트맵을 필요로 하는 경우, 재구축은 자원의 획득을 대기하고 나서 행한다.
컨트롤러(211)는, 재구축 동작을 병행하여 행하는 것이 가능하고, 전원 오프/온을 고려하여, 비트맵의 백 업/리스토어의 기능도 갖는다. 컨트롤러(211)가 용장화(이중화)되어 있는 경우, 비트맵도 컨트롤러 사이에서 이중화되는 것이 기본이지만, 이중화하지 않아도 데이터 로스트로 이어지는 일은 없다. 상술한 바와 같이, 비트맵이 소실된 경우에는 재구축이 재시동된다.
예를 들면, 도 8에 도시하는 바와 같이, 처음에 디스크 #0이 고장나고, HS #0을 이용하여 디스크 #0의 데이터/패리티를 복원하고 있는 동안에 디스크 #1이 고장난 경우에 대해 설명한다.
컨트롤러(211)는, HS #0 및 HS #1의 각각에 대하여 비트맵을 생성하고, 각 스트라이프를 1 비트의 데이터로 관리한다. 재구축 미완료의 스트라이프에 대해서는 대응하는 비트에 "1"이 기록되고, 재구축 완료의 스트라이프에 대해서는“0"이 기록된다. HS #0의 재구축 완료 영역의 전체 스트라이프에 대해서는, 디스크 #1이 고장난 시점에서 "0"이 기록되어 있고, 나머지 스트라이프에 대해서는 재구축이 행해졌을 때에 "0"이 기록된다.
이러한 재구축 처리에 따르면, 개선안 1∼5와 마찬가지의 이점 외에, 원포인트 재구축에 의해 복원된 데이터/패리티를 디스크에 재기입하여 복원 완료 영역으로서 취급함으로써, 처리가 효율화된다.
다음으로, 도 9 ~ 도 19를 참조하면서, 상술한 각 개선안의 상세에 대하여 설명한다.
각 개선안의 재구축 처리는, 디스크의 고장을 계기로 하여 기동되거나, 또는 다른 재구축 처리에 의해 기동된다. 컨트롤러(211)는, 계기로 된 디스크를 담당 Main으로 지정하고, 필요에 따라서 다른 고장 디스크를 담당 Sub로서 추가한다. 재구축 처리에서는, 도 9에 도시하는 바와 같이, 담당 Main과 담당 Sub에서 공통으로 되는 현재 위치에 대하여, 복원 처리가 행해진다. 현재 위치라 함은, 현재 복원 처리가 실시되고 있는 장소를 나타낸다.
또, 컨트롤러(211)는, RAlD 장치(202)를 구성하는 전체 디스크의 정보를, 모든 개선안에 공통인 제어 정보로서 캐쉬 메모리(223)에 보유한다. 구체적으로는, 도 10에 도시하는 바와 같이, 각 디스크에 대하여, 복원 상태(복원 완료, 복원중 및 미복원), 복원 선두 위치, 및 정지 위치(필요하다면)의 정보가 보유된다. 단, 정상 디스크에 대해서는 모든 영역이 복원 완료로 설정된다.
고장 디스크의 복원 선두 위치는, 그 디스크를 담당 Main으로 해서 실시되고 있는 복원 처리의 현재 위치와 일치하고, 복원 처리가 미실시인 경우에는 그 디스크의 끝(도 9의 하단)에 설정된다. 복원 처리는, 복원 선두 위치로부터 위쪽을 향하는 방향으로 진행한다. 정지 위치는, 복원 처리를 정지할 장소를 나타낸다.
복원 상태는, 스트립, 논리 블록 등의 단위 영역마다 관리되고, 현재 위치, 복원 선두 위치 및 정지 위치 등의 위치 정보는, 그 단위 영역의 어드레스 또는 그 단위 영역이 속하는 스트라이프의 식별자를 이용하여 관리된다.
도 11은, 재구축 처리의 플로우차트이다. 컨트롤러(211)는, 우선 담당 Main의 끝(도 9의 하단)을 그 디스크의 현재 위치로서 설정하고(스텝 1101), 복원 루틴을 실행하여 복원 처리를 행한다(스텝 1102). 이 복원 처리에서는, 복원 대상 디스크의 복원 대상으로 되는 데이터/패리티가 다른 디스크의 데이터/패리티를 이용하여 생성되어, 대응하는 핫 스페어에 라이트된다. 1회의 복원 처리에서는, 논리 블록, 스트라이프 등의 소정 단위의 데이터/패리티가 복원되지만, 일반적으로는 스트라이프가 소정 단위로서 이용된다.
다음으로, 재구축 제어를 위한 복원후 처리를 행한다(스텝 1103). 이 복원후 처리에서는, 복원 선두 위치의 설정이나 복원 처리를 종료할지의 여부의 판정 등이 행해진다. 그 후, 복원후 처리에 있어서 복원 처리 종료라고 판정되었는지의 여부를 체크한다(스텝 1104). 복원 처리 종료라고 판정되지 않으면, 현재 위치를 1 스트라이프만큼 진행시켜(스텝 1105), 스텝 1102 이후의 처리를 반복하고, 복원 처리 종료라고 판정되면, 재구축 처리를 종료한다.
스텝 1102의 복원 루틴 및 스텝 1103의 복원후 처리는, 개선안마다 다르기 때문에, 이하, 개선안 1∼6에 대하여 순서대로 설명한다.
1. 개선안 1
개선안 1에서는, 도 11의 재구축 처리는 각 디스크의 고장을 계기로 하여 기동되고, 계기로 된 디스크가 담당 Main으로 설정되지만, 다른 고장 디스크가 담당 Sub로서 추가되는 일은 없다. 따라서, 2번째의 디스크가 고장난 후에는, 2개의 재구축 처리가 병행하여 실행되고, 각 재구축 처리에 있어서의 복원 대상 디스크는 담당 Main만으로 된다.
도 12는, 개선안 1의 복원 루틴의 플로우차트이다. 컨트롤러(211)는, 우선, 담당 Main을 복원 대상 디스크로 설정하고, 그 현재 위치를 설정하여(스텝 1201), 고장 디스크의 개수를 체크한다(스텝 1202). 그리고, 고장 디스크가 1개이면, 복원 방법을 1 디스크 고장의 재구축으로 결정한다(스텝 1203).
다음으로, 현재 위치의 스트라이프에 속하는 데이터/패리티 중, 1 디스크 고장의 재구축에 필요한 것을 정상 디스크로부터 리드하고(스텝 1205), 이들이 모두 리드되었는지의 여부를 체크한다(스텝 1206). 데이터/패리티가 모두 리드가능한 경우에는, 이들을 이용하여 동일한 스트라이프에 속하는 복원 대상 디스크의 데이터/패리티를 복원하여, 대응하는 핫 스페어에 라이트한다(스텝 1207).
스텝 1206에 있어서 리드 에러가 발생한 경우에는, 리드 대상의 디스크가 고 장난 것으로 판단한다. 따라서, 고장 디스크의 개수를 체크하고(스텝 1208), 그것이 2개이면, 스텝 1202 이후의 처리를 행한다.
그리고, 복원 방법을 2 디스크 고장의 재구축으로 변경하고(스텝 1204), 2 디스크 고장의 재구축에 필요한 데이터/패리티를 정상 디스크로부터 리드한다(스텝 1205). 데이터/패리티가 모두 리드가능한 경우에는, 이들을 이용하여 복원 대상 디스크의 데이터/패리티를 복원하여, 핫 스페어에 라이트한다(스텝 1207).
고장 디스크가 2개일 때에 또 리드 에러가 발생한 경우에는, 고장 디스크가 3개로 되기 때문에(스텝 1208), 복원 불가능이라고 판단하고, 에러 처리를 행한다(스텝 1209).
도 13은, 개선안 1의 복원후 처리의 플로우차트이다. 컨트롤러(211)는, 우선 복원 루틴에서 이용한 현재 위치를 담당 Main의 복원 선두 위치로 설정하고(스텝 13O1), 담당 Main의 모든 영역의 복원이 완료되었는지의 여부를 체크한다(스텝 1302). 여기서는, 복원 루틴에서 이용한 현재 위치가 담당 Main의 끝(도 9의 상단)에 도달해 있으면, 모든 영역의 복원이 완료된 것으로 판정된다. 모든 영역의 복원이 완료되어 있지 않으면, 복원 처리 계속이라고 판정하고(스텝 1303), 모든 영역의 복원이 완료하면, 복원 처리 종료라고 판정한다(스텝 1304).
예를 들면, 도 4에 도시한 바와 같이, 처음에 디스크 #0이 고장나면, 디스크 #0을 담당 Main으로 해서 재구축 처리가 기동된다. 이 때, 고장 디스크는 1개이므로(도 12의 스텝 1202), 복원 방법은 1 디스크 고장의 재구축으로 되고(스텝 1203), 정상적인 디스크 #1∼#3의 데이터/패리티 중, 디스크 #0의 데이터/패리티를 1 디스크 고장의 재구축에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1205). 그리고, 리드된 데이터/패리티를 이용하여 디스크 #0의 데이터/패리티가 복원되어, HS #0에 라이트된다(스텝 1207).
디스크 #0의 현재 위치는, 그 복원 선두 위치로서 설정되어(도 13의 스텝1301), 복원 처리 계속이라고 판정된다(스텝 1303). 복원 선두 위치는, 디스크 #O에 대한 리드/라이트 액세스 등의 다른 처리로부터 참조된다. 이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행된다(도 11의 스텝 1105).
다음으로, 디스크 #1이 고장나면, 고장 디스크는 2개로 되기 때문에(스텝 1202), 복원 방법은 2 디스크 고장의 재구축으로 되고(스텝 1204), 정상적인 디스크 #2∼#3의 데이터/패리티 중, 디스크 #0 및 #1의 데이터/패리티를 2 디스크 고장의 재구축에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1205). 그리고, 리드된 데이터/패리티를 이용하여 디스크 #0 및 #1의 데이터/패리티가 복원되고, 그 중 디스크 #0의 데이터/패리티가 HS #0에 라이트된다(스텝 1207).
복원후 처리에 대해서는, 디스크 #1의 고장전과 마찬가지이다. 이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행되어(스텝 1105), 디스크 #0의 모든 영역의 복원이 완료하면(스텝 1304), 디스크 #0의 재구축 처리를 종료한다(스텝 1104).
또한, 디스크 #1의 고장시에는, 디스크 #1을 담당 Main으로 해서 다른 1개의 재구축 처리가 기동된다. 이 때, 고장 디스크는 2개이기 때문에(스텝 1202), 복원 방법은 2 디스크 고장의 재구축 처리로 되고(스텝 1204), 정상적인 디스크 #2∼#3 의 데이터/패리티 중, 디스크 #0 및 #1의 데이터/패리티를 2 디스크 고장의 재구축 처리에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1205).
그리고, 리드된 데이터/패리티를 이용하여 디스크 #O 및 #1의 데이터/패리티가 복원되고, 그 중 디스크 #1의 데이터/패리티가 HS #1에 라이트된다(스텝 1207).
복원후 처리에 대해서는, 디스크 #0의 경우와 마찬가지이다. 이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행되어(스텝 1105), 디스크 #1의 모든 영역의 복원이 완료하면(스텝1304), 디스크 #1의 재구축 처리를 종료한다(스텝 1104).
2. 개선안 2
개선안 2에서는, 개선안 1과 마찬가지로, 도 11의 재구축 처리는 각 디스크의 고장을 계기로 하여 기동되고, 계기로 된 디스크가 담당 Main으로 설정된다. 2번째의 디스크가 고장나면, 1번째의 고장 디스크를 담당 Main으로 하는 재구축 처리가 중단되고, 2번째의 고장 디스크를 담당 Main으로 하는 재구축 처리가 개시된다. 그리고, 2번째의 고장 디스크의 현재 위치가 1번째와 동일한 진척 위치에 도달하면, 1번째의 고장 디스크가 담당 Sub로서 추가된다.
도 14는, 개선안 2의 복원 루틴의 플로우차트이다. 이 경우, 도 12의 복원 루틴과는 달리, 복원 대상 디스크는 담당 Main과 담당 Sub로 표시되고, 2개까지 설정할 수 있다. 또한, 복원 방법은, 고장 디스크의 개수가 아니고, 복원 대상 디스크의 개수에 기초하여 선택된다.
컨트롤러(211)는, 우선 담당 Main/담당 Sub를 복원 대상 디스크로 설정하고, 담당 Main의 현재 위치를 설정한다(스텝 1401). 이 때, 담당 Sub가 설정되어 있지 않으면, 담당 Main만이 복원 대상 디스크로 설정된다.
다음으로, 복원 대상 디스크의 개수를 체크하고(스텝 1402), 복원 대상 디스크가 1개이면, 복원 방법을 1 디스크 고장의 재구축으로 결정한다(스텝 1403). 그리고, 현재 위치의 스트라이프에 속하는 데이터/패리티 중, 1 디스크 고장의 재구축에 필요한 것을 정상 디스크로부터 리드하고(스텝 1405), 이들이 모두 리드되었는지의 여부를 체크한다(스텝 1406). 데이터/패리티가 모두 리드가능한 경우에는, 이들을 이용하여 동일한 스트라이프에 속하는 복원 대상 디스크의 데이터/패리티를 복원하여, 대응하는 핫 스페어에 라이트한다(스텝 1407).
스텝 1406에 있어서 리드 에러가 발생한 경우에는, 리드 대상의 디스크가 고장난 것으로 판단한다. 그래서, 복원 대상 디스크의 개수를 체크하여(스텝 1408), 그것이 1개이면, 고장 디스크를 복원 대상 디스크에 추가하고(스텝 1410), 스텝 1402 이후의 처리를 행한다.
그리고, 복원 방법을 2 디스크 고장의 재구축으로 변경하고(스텝 1404), 2 디스크 고장의 재구축에 필요한 데이터/패리티를 정상 디스크로부터 리드한다(스텝 1405). 데이터/패리티가 모두 리드가능한 경우에는, 이들을 이용하여 2개의 복원 대상 디스크의 데이터/패리티를 복원하여, 각각 대응하는 핫 스페어에 라이트한다(스텝 1407).
복원 대상 디스크가 2개일 때에 또 리드 에러가 발생한 경우에는, 고장 디스크가 3개로 되기 때문에(스텝 1408), 복원 불가능이라고 판단하고, 에러 처리를 행 한다(스텝 1409).
도 15는, 개선안 2의 복원후 처리의 플로우차트이다. 컨트롤러(211)는, 우선 복원 루틴 종료시의 담당 Main의 현재 위치를 담당 Main/Sub의 복원 선두 위치로 설정하고(스텝 1501), 이하의 조건 a가 만족되는지의 여부를 체크한다(스텝 1502).
조건 a:담당 Main 이외에 다른 고장 디스크가 존재하고, 담당 Main 및 그 고장 디스크 중의 어디에도 정지 위치가 설정되어 있지 않고, 또한, 그 고장 디스크의 복원 선두 위치가 담당 Main의 그것보다 뒤(아래쪽)이다.
다른 고장 디스크의 복원 선두 위치가 담당 Main보다 뒤인 경우, 담당 Main보다 복원 처리가 지연되고 있는 것을 의미한다. 조건 a가 만족되면, 담당 Main의 복원 선두 위치를 다른 고장 디스크의 정지 위치로 설정하고(스텝 1506), 담당 Main의 재구축 처리를 중단하기 위해 복원 처리 종료라고 판정한다(스텝 1508).
조건 a가 만족되지 않으면, 다음으로, 담당 Main의 모든 영역의 복원이 완료되었는지의 여부를 체크한다(스텝 1503). 모든 영역의 복원이 완료되었으면, 복원 처리 종료라고 판정한다(스텝 1508).
모든 영역의 복원이 완료되어 있지 않으면, 다음으로, 담당 Main에 정지 위치가 설정되어 있고, 또한 담당 Main의 현재 위치가 그 정지 위치인지의 여부를 체크한다(스텝 504). 현재 위치가 정지 위치이면, 다른 고장 디스크를 담당 Sub에 추가하고(스텝 1507), 복원 처리 계속이라고 판정한다(스텝 1505).
현재 위치가 정지 위치가 아닌 경우, 및, 정지 위치가 설정되어 있지 않은 경우에는, 그대로 복원 처리 계속이라고 판정한다(스텝 1505).
예를 들면, 도 5에 도시한 바와 같이, 처음에 디스크 #0이 고장나면, 디스크 #0을 담당 Main으로 해서 재구축 처리가 기동된다. 이 때, 복원 대상 디스크는 1개이므로(도 14의 스텝 1401), 복원 방법은 1 디스크 고장의 재구축으로 되고(스텝 1403), 정상적인 디스크 #1∼#3의 데이터/패리티 중, 디스크 #0의 데이터/패리티를 1 디스크 고장의 재구축에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 그리고, 리드된 데이터/패리티를 이용하여 디스크 #0의 데이터/패리티가 복원되어, HS #0에 라이트된다(스텝 1407).
디스크 #0의 현재 위치는, 그 복원 선두 위치로서 설정되고(도 15의 스텝 1501), 다른 고장 디스크는 없으므로(스텝 1502), 복원 처리 계속이라고 판정된다(스텝 1505). 이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복하여 실행된다(도 11의 스텝 1105).
다음으로, 디스크 #1이 고장나면, 담당 Main인 디스크 #0의 복원 선두 위치는 그 현재 위치와 일치하고 있고(스텝 1501), 다른 고장 디스크인 디스크 #1의 복원 선두 위치는 그 하단과 일치하고 있기 때문에, 조건 a가 만족된다(스텝 1502). 그래서, 디스크 #0의 복원 선두 위치가 디스크 #1의 정지 위치로 설정되어(스텝 1506), 복원 처리 종료라고 판정된다(스텝 1508). 이것에 의해, 디스크 #0을 담당 Main으로 하는 재구축 처리가 중단된다(스텝 1104).
이 때, 디스크 #1을 담당 Main으로 해서 다른 재구축 처리가 기동된다. 복원 대상 디스크는 1개이므로(스텝 1401), 복원 방법은 1 디스크 고장의 재구축으로 되고(스텝 1403), 디스크#0, #2 및 #3의 데이터/패리티 중, 디스크 #1의 데이터/패리티를 1 디스크 고장의 재구축에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 단, 디스크 #0에 대해서는, HS #0에 라이트된 복원 완료된 데이터/패리티가 리드된다.
그리고, 리드된 데이터/패리티를 이용하여 디스크 #1의 데이터/패리티가 복원되어, HS #1에 라이트된다(스텝 1407).
디스크 #1의 현재 위치는, 그 복원 선두 위치로서 설정되고(스텝 1501), 디스크 #1에는 이미 정지 위치가 설정되어 있기 때문에, 조건 a는 만족되지 않는다(스텝 1502). 또한, 디스크 #1의 현재 위치는 그 정지 위치에 도달해 있지 않으므로(스텝 1504), 복원 처리 계속이라고 판정된다(스텝 1505). 이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행된다(스텝 1105).
그리고, 디스크 #1의 현재 위치가 그 정지 위치에 도달하면(스텝 1504), 처리가 중단되어 있던 디스크 #0이 담당 Sub로서 추가되고(스텝 1507), 복원 처리 계속이라고 판정된다(스텝 1505). 이것에 의해, 현재 위치가 갱신된다(스텝 1105).
이것에 의해, 복원 대상 디스크는 2개로 되기 때문에(스텝 1401), 복원 방법은 2 디스크 고장의 재구축 처리로 되고(스텝 1404), 정상적인 디스크 #2∼#3의 데이터/패리티 중, 디스크 #0 및 #1의 데이터/패리티를 2 디스크 고장의 재구축 처리에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 그리고, 리드된 데이터/패리티를 이용하여 디스크 #0 및 #1의 데이터/패리티가 복원되어, 각각 HS #0 및 HS #1에 라이트된다(스텝 1407).
디스크 #1의 현재 위치는, 디스크 #0 및 #1의 복원 선두 위치로서 설정되고(스텝 1501), 디스크 #1의 현재 위치는 그 정지 위치를 넘어서 있기 때문에(스텝 1504), 복원 처리 계속이라고 판정된다(스텝 1505).
이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행되어 (스텝 1105), 디스크 #1의 모든 영역의 복원이 완료하면(스텝 1508), 디스크 #1을 담당 Main으로 하는 재구축 처리를 종료한다(스텝 1104). 이 시점에서, 담당 Sub인 디스크 #0의 현재 위치도 그 상단에 도달해 있기 때문에, 디스크 #0의 복원도 동시에 완료한다.
3. 개선안 3
개선안 3에서는, 개선안 2와 마찬가지로, 도 11의 재구축 처리는 각 디스크의 고장을 계기로 해서 기동되고, 계기로 된 디스크가 담당 Main으로 설정된다. 2번째의 디스크가 고장나면, 2개의 고장 디스크의 진척 위치의 차이에 따라서 개선안 1 또는 2가 선택된다.
진척 위치의 차이가 임계값 이상이면 개선안 1이 선택되고, 2개의 재구축 처리가 병행하여 실행된다. 단, 개선안 1과는 달리, 2번째의 고장 디스크의 데이터/패리티는, 1번째의 고장 디스크의 복원 완료된 데이터/패리티와 정상적인 디스크의 데이터/패리티를 이용하여 1 디스크 고장의 재구축 처리에 의해 복원된다.
그리고, 진척 위치의 차이가 임계값 미만으로 되면 개선안 2가 선택되고, 1번째의 고장 디스크를 담당 Main으로 하는 재구축 처리가 중단되고, 2번째의 고장 디스크를 담당 Main으로 하는 재구축 처리가 개시된다. 그리고, 2번째의 고장 디 스크의 현재 위치가 1번째와 동일한 진척 위치에 도달하면, 1번째의 고장 디스크가 담당 Sub로서 추가된다.
개선안 3의 복원 루틴의 플로우차트는 개선안 2와 마찬가지이고, 복원후 처리의 플로우차트는 도 16과 같이 된다. 도 16의 복원후 처리는, 도 15의 복원후 처리에 스텝 1603의 판정을 추가한 구성을 갖는다.
스텝 1603에 있어서, 컨트롤러(211)는, 다른 고장 디스크와 담당 Main의 복원 선두 위치의 차이를 임계값과 비교한다. 그리고, 복원 선두 위치의 차이가 임계값 미만이면, 담당 Main의 복원 선두 위치를 다른 고장 디스크의 정지 위치로 설정하고(스텝 1607), 복원 처리 종료라고 판정한다(스텝 1609). 또한, 복원 선두 위치의 차이가 임계값 이상이면, 스텝 1604 이후의 처리를 행한다.
따라서, 개선안 2에서 설명한 조건 a가 만족되고, 또한, 다른 고장 디스크와 담당 Main의 복원 선두 위치의 차이가 임계값 미만이면, 다른 고장 디스크에 정지 위치가 설정되고(스텝 1607), 그 이외의 경우는 정지 위치는 설정되지 않는다.
예를 들면, 도 5에 도시한 바와 같이, 처음에 디스크 #0이 고장나면, 디스크 #0을 담당 Main으로 해서 재구축 처리가 기동되고, 디스크 #1이 고장날 때까지 개선안 2와 마찬가지의 처리가 행해진다.
다음으로, 디스크 #1이 고장나면, 조건 a가 만족되기 때문에(도 16의 스텝 1602), 디스크 #0 및 #1의 복원 선두 위치의 차이가 임계값과 비교된다(스텝 1603). 여기서, 디스크 #0이 고장나고 나서 충분히 시간이 경과해 있는 경우에는, 디스크 #O의 복원 처리가 상당히 진행되어 있고, 복원 선두 위치의 차이는 임계값 을 초과해 있다고 생각된다. 이 경우, 스텝 1604 이후의 처리가 행해지고, 디스크 #0에는 정지 위치가 설정되어 있지 않으므로(스텝 1605), 복원 처리 계속이라고 판정된다(스텝 1606).
이 때, 복원 대상 디스크는 1개이므로(도 14의 스텝 1401), 복원 방법은 1 디스크 고장의 재구축으로 되고(스텝 1403), 디스크 #1∼#3의 데이터/패리티 중, 디스크 #0의 데이터/패리티를 1 디스크 고장의 재구축에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405).
여기서, 디스크 #1의 데이터/패리티가 리드된 경우, 리드 에러가 발생하여, 디스크 #1이 복원 대상 디스크에 추가되어(스텝1410), 복원 대상 디스크는 2개로 된다.
이 때문에, 복원 방법은 2 디스크 고장의 재구축 처리로 변경되고(스텝 1404), 정상적인 디스크 #2∼#3의 데이터/패리티 중, 디스크 #0 및 #1의 데이터/패리티를 2 디스크 고장의 재구축 처리에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 그리고, 리드된 데이터/패리티를 이용하여 디스크 #0 및 #1의 데이터/패리티가 복원되고, 그 중 디스크 #0의 데이터/패리티가 HS #0에 라이트된다(스텝 1407).
디스크 #0의 현재 위치는, 그 복원 선두 위치로서 설정되어(스텝 1601), 조건 a가 만족되지만(스텝 1602), 복원 선두 위치의 차이는 아직 임계값보다 크다(스텝 1603). 또한, 디스크 #0에는 정지 위치가 설정되어 있지 않으므로(스텝 1605), 복원 처리 계속이라고 판정된다(스텝 1606). 이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행된다(도 11의 스텝 1105).
또한, 디스크 #1의 고장시에는, 디스크 #1을 담당 Main으로 해서 다른 1개의 재구축 처리가 기동된다. 복원 대상 디스크는 1개이므로(스텝 1401), 복원 방법은 1 디스크 고장의 재구축으로 되고(스텝 1403), 디스크#0, #2 및 #3의 데이터/패리티 중, 디스크 #1의 데이터/패리티를 1 디스크 고장의 재구축에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 단, 디스크 #0에 대해서는, HS #0에 라이트된 복원 완료된 데이터/패리티가 리드된다.
그리고, 리드된 데이터/패리티를 이용하여 디스크 #1의 데이터/패리티가 복원되어, HS #1에 라이트된다(스텝 1407).
디스크 #1의 현재 위치는, 그 복원 선두 위치로서 설정되고(스텝 1601), 다른 고장 디스크인 디스크 #0의 복원 선두 위치는 담당 Main인 디스크 #1의 복원 선두 위치보다 앞에 있기 때문에, 조건 a는 만족되지 않는다(스텝 1602). 또한, 디스크 #1에는 정지 위치가 설정되어 있지 않으므로(스텝 1605), 복원 처리 계속이라고 판정된다(스텝 1606). 이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행된다(스텝 1105).
이렇게 해서, 디스크 #0을 담당 Main으로 하는 2 디스크 고장의 재구축 처리와, 디스크 #1을 담당 Main으로 하는 1 디스크 고장의 재구축 처리가 병행하여 실행되고, 디스크 #1의 복원 선두 위치가 서서히 디스크 #0의 복원 선두 위치에 접근해 온다.
그리고, 디스크 #0을 담당 Main으로 하는 재구축 처리에 있어서, 디스크 #0 및 #1의 복원 선두 위치의 차이가 임계값 미만으로 되면(스텝 1603), 디스크 #0의 복원 선두 위치가 디스크 #1의 정지 위치로 설정되어(스텝 1607), 복원 처리 종료라고 판정된다(스텝 1609). 이것에 의해, 디스크 #0을 담당 Main으로 하는 재구축 처리가 중단된다(스텝 1104).
그 후, 디스크 #1을 담당 Main으로 하는 재구축 처리만이 계속되지만, 디스크 #1에는 이미 정지 위치가 설정되어 있기 때문에, 역시 조건 a는 만족되지 않는다(스텝 1602). 또한, 디스크 #1의 현재 위치는 그 정지 위치에 도달해 있지 않으므로(스텝 1605), 복원 처리 계속이라고 판정된다(스텝 1606).
그리고, 디스크 #1의 현재 위치가 그 정지 위치에 도달하면(스텝 1605), 처리가 중단되어 있던 디스크 #0이 담당 Sub로서 추가되고(스텝 1608), 복원 처리 계속이라고 판정된다(스텝 1606). 이것에 의해, 현재 위치가 갱신된다(스텝 1105).
이것에 의해, 복원 대상 디스크는 2개로 되기 때문에(스텝 1401), 복원 방법은 2 디스크 고장의 재구축 처리로 되고(스텝 1404), 정상적인 디스크 #2∼#3의 데이터/패리티 중, 디스크 #0 및 #1의 데이터/패리티를 2 디스크 고장의 재구축 처리에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 그리고, 리드된 데이터/패리티를 이용하여 디스크 #O 및 #1의 데이터/패리티가 복원되어, 각각 HS #0 및 HS #1에 라이트된다(스텝 1407).
디스크 #1의 현재 위치는, 디스크 #0 및 #1의 복원 선두 위치로서 설정되고(스텝 1601), 디스크 #1의 현재 위치는 그 정지 위치를 넘어서 있기 때문에(스텝 1605), 복원 처리 계속이라고 판정된다(스텝 1606).
이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행되어 (스텝 1105), 디스크 #1의 모든 영역의 복원이 완료하면(스텝 1609), 디스크 #1을 담당 Main으로 하는 재구축 처리를 종료한다(스텝 1104). 이 시점에서, 담당 Sub인 디스크 #O의 현재 위치도 그 상단에 도달해 있으므로, 디스크 #O의 복원도 동시에 완료한다.
4. 개선안 4
개선안 4에서는, 도 11의 재구축 처리는 디스크의 고장을 계기로 해서 기동되거나, 혹은 다른 재구축 처리로부터 기동되고, 계기로 된 디스크가 담당 Main으로 설정된다. 전자의 계기에서는, RAID 그룹당 1개의 재구축 처리만이 기동된다. 따라서, 2번째의 디스크가 고장나도, 이미 RAID 그룹으로서 재구축 처리가 기동 완료이면, 새로운 재구축 처리는 기동되지 않는다.
2번째의 디스크가 고장하면, 1번째의 고장 디스크의 현재 위치가 2번째의 고장 디스크의 정지 위치로서 설정되고, 2번째의 고장 디스크가 담당 Sub로서 추가되어, 재구축 처리가 속행된다. 그리고, 1번째의 고장 디스크의 복원이 완료하면, 2번째의 고장 디스크를 담당 Main으로 해서, 그 하단으로부터 정지 위치까지의 재구축 처리가 행해진다. 개선안 4의 복원 루틴의 플로우차트는 개선안 2와 마찬가지이다.
도 17은, 개선안 4의 복원후 처리의 플로우차트이다. 컨트롤러(211)는, 우선 복원 루틴 종료시의 담당 Main의 현재 위치를 담당 Main/Sub의 복원 선두 위치로 설정하고(스텝 1701), 이하의 조건 b가 만족되는지의 여부를 체크한다(스텝 1702).
조건 b:담당 Main 이외에 다른 고장 디스크가 존재하고, 담당 Main 및 그 고장 디스크 중의 어디에도 정지 위치가 설정되어 있지 않다.
조건 b가 만족되면, 담당 Main의 복원 선두 위치를 다른 고장 디스크의 정지 위치로 설정하고, 그 고장 디스크를 담당 Sub에 추가한다(스텝 1706). 그리고, 담당 Main의 모든 영역의 복원이 완료되었는지의 여부를 체크한다(스텝 1703). 조건 b가 만족되지 않으면, 그대로 스텝 1703의 처리를 행한다.
모든 영역의 복원이 완료되어 있으면, 다른 고장 디스크가 있는지의 여부를 체크하고, 그러한 고장 디스크가 있으면, 그것을 담당 Main으로 하는 별도의 재구축 처리를 기동한다(스텝 1707). 그리고, 복원 처리 종료라고 판정한다(스텝 1708). 다른 고장 디스크가 없으면, 별도의 재구축 처리를 기동하지 않고 복원 처리 종료라고 판정한다(스텝 1708).
모든 영역의 복원이 완료되어 있지 않으면, 다음으로, 담당 Main의 현재 위치가 그 정지 위치인지의 여부를 체크한다(스텝 1704). 현재 위치가 정지 위치이면, 복원 처리 종료라고 판정한다(스텝 1708).
현재 위치가 정지 위치가 아닌 경우, 및, 정지 위치가 설정되어 있지 않은 경우에는, 그대로 복원 처리 계속이라고 판정한다(스텝 1705).
예를 들면, 도 6에 도시한 바와 같이, 처음에 디스크 #0이 고장나면, 디스크 #0을 담당 Main으로 해서 재구축 처리가 기동된다. 이 때, 복원 대상 디스크는 1개이므로(도 14의 스텝 1401), 복원 방법은 1 디스크 고장의 재구축으로 되고(스텝 1403), 정상적인 디스크 #1∼#3의 데이터/패리티 중, 디스크 #0의 데이터/패리티를 1 디스크 고장의 재구축에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 그리고, 리드된 데이터/패리티를 이용하여 디스크 #0의 데이터/패리티가 복원되어, HS #0에 라이트된다(스텝 1407).
디스크 #0의 현재 위치는, 그 복원 선두 위치로서 설정되고(도 17의 스텝 1701), 다른 고장 디스크는 없으므로(스텝 1702), 복원 처리 계속이라고 판정된다(스텝 1705). 이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행된다(도 11의 스텝 1105).
다음으로, 디스크 #1이 고장나면, 조건 b가 만족되어(스텝 1702), 디스크 #0의 복원 선두 위치가 디스크 #1의 정지 위치로 설정되고, 디스크 #1이 담당 Sub로서 추가된다(스텝 1706). 그러나, 디스크 #0에는 정지 위치가 설정되어 있지 않으므로(스텝 1704), 복원 처리 계속이라고 판정된다(스텝 1705).
이 때, 복원 대상 디스크는 2개로 되기 때문에(스텝 1401), 복원 방법은 2 디스크 고장의 재구축 처리로 되고(스텝 1404), 정상적인 디스크 #2∼#3의 데이터/패리티 중, 디스크 #0 및 #1의 데이터/패리티를 2 디스크 고장의 재구축 처리에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 그리고, 리드된 데이터/패리티를 이용하여 디스크 #0 및 #1의 데이터/패리티가 복원되어, 각각 HS #0 및 HS #1에 라이트된다(스텝 1407).
디스크 #O의 현재 위치는, 디스크 #0 및 #1의 복원 선두 위치로서 설정되고(스텝 1701), 디스크 #1에는 이미 정지 위치가 설정되어 있기 때문에, 조건 b는 만 족되지 않는다(스텝 1702). 또한, 디스크 #0에는 정지 위치가 설정되어 있지 않으므로(스텝 1704), 복원 처리 계속이라고 판정된다(스텝 1705).
이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행되어 (스텝 1105), 디스크 #0의 모든 영역의 복원이 완료하면(스텝 1703), 디스크 #1을 담당 Main으로 하는 별도의 재구축 처리가 기동되어(스텝 1707), 복원 처리 종료라고 판정된다(스텝 1708). 이것에 의해, 디스크 #0을 담당 Main으로 하는 재구축 처리가 종료한다(스텝 1104). 이 시점에서, 담당 Sub인 디스크 #1의 현재 위치는, 그 상단에 도달해 있다.
다음으로, 디스크 #1을 담당 Main으로 하는 재구축 처리에 있어서, 디스크 #1의 하단이 현재 위치로서 설정된다(스텝 1101). 이 때, 복원 대상 디스크는 1개이기 때문에(스텝 1401), 복원 방법은 1 디스크 고장의 재구축으로 되고(스텝 1403), 디스크#0, #2 및 #3의 데이터/패리티 중, 디스크 #1의 데이터/패리티를 1 디스크 고장의 재구축에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 단, 디스크 #0에 대해서는, HS #0에 라이트된 복원 완료된 데이터/패리티가 리드된다.
그리고, 리드된 데이터/패리티를 이용하여 디스크 #1의 데이터/패리티가 복원되어, HS #1에 라이트된다(스텝 1407).
디스크 #1의 현재 위치는, 그 복원 선두 위치로서 설정되고(스텝 1701), 디스크 #1에는 이미 정지 위치가 설정되어 있기 때문에, 조건 b는 만족되지 않는다(스텝 1702). 또한, 디스크 #1의 현재 위치는 그 정지 위치에 도달해 있지 않으므 로(스텝 1704), 복원 처리 계속이라고 판정된다(스텝 1705).
이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행되고 (스텝 1105), 디스크 #1의 현재 위치가 정지 위치에 도달한다. 이 때, 디스크 #1의 현재 위치는 그 상단에 도달해 있지 않기 때문에, 모든 영역의 복원이 완료되어 있지 않다고 판정된다(스텝 1703). 그러나, 현재 위치가 정지 위치와 일치하기 때문에(스텝 1704), 복원 처리 종료라고 판정된다(스텝 1708). 이것에 의해, 디스크 #1을 담당 Main으로 하는 재구축 처리가 종료하고(스텝 1104), 디스크 #1의 복원이 완료한다.
5. 개선안 5
개선안 5에서는, 개선안 1과 마찬가지로, 도 11의 재구축 처리는 각 디스크의 고장을 계기로 하여 기동되고, 계기로 된 디스크가 담당 Main으로 설정된다.
2번째의 디스크가 고장나면, 개선안 4와 마찬가지로, 1번째의 고장 디스크의 현재 위치가 2번째의 고장 디스크의 정지 위치로서 설정되고, 2번째의 고장 디스크가 담당 Sub로서 추가되어, 재구축 처리가 속행된다. 그것과 동시에, 2번째의 고장 디스크를 담당 Main으로 하는 재구축 처리가 기동되어, 1번째의 고장 디스크를 담당 Main으로 하는 재구축 처리와 병행하여 실행된다.
개선안 5의 복원 루틴의 플로우차트는 개선안 2와 마찬가지이고, 복원후 처리의 플로우차트는 도 18과 같이 된다. 도 18의 복원후 처리는, 도 17의 복원후 처리로부터 스텝 1707의 처리를 제외한 구성을 갖는다.
예를 들면, 도 7에 도시한 바와 같이, 처음에 디스크 #0이 고장나면, 디스크 #0을 담당 Main으로 해서 재구축 처리가 기동되고, 디스크 #1이 고장날 때까지 개선안 4와 마찬가지의 처리가 행해진다.
다음으로, 디스크 #1이 고장나면, 조건 b가 만족되어(스텝 1802), 디스크 #O의 복원 선두 위치가 디스크 #1의 정지 위치로 설정되고, 디스크 #1이 담당 Sub로서 추가된다(스텝 1806). 그러나, 디스크 #0에는 정지 위치가 설정되어 있지 않으므로(스텝 1804), 복원 처리 계속이라고 판정된다(스텝 1805).
이 때, 복원 대상 디스크는 2개로 되기 때문에(스텝 1401), 복원 방법은 2 디스크 고장의 재구축 처리로 되고(스텝 1404), 정상적인 디스크 #2∼#3의 데이터/패리티 중, 디스크 #0 및 #1의 데이터/패리티를 2 디스크 고장의 재구축 처리에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 그리고, 리드된 데이터/패리티를 이용하여 디스크 #0 및 #1의 데이터/패리티가 복원되어, 각각 HS #0 및 HS #1에 라이트된다(스텝 1407).
디스크 #0의 현재 위치는, 디스크 #0 및 #1의 복원 선두 위치로서 설정되고(스텝 1801), 디스크 #1에는 이미 정지 위치가 설정되어 있기 때문에, 조건 b는 만족되지 않는다(스텝 1802). 또한, 디스크 #0에는 정지 위치가 설정되어 있지 않으므로(스텝 1804), 복원 처리 계속이라고 판정된다(스텝 1805).
이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행되고(스텝 1105), 디스크 #0의 모든 영역의 복원이 완료하면(스텝 1803), 복원 처리 종료라고 판정된다(스텝 1807). 이것에 의해, 디스크 #0을 담당 Main으로 하는 재구축 처리가 종료한다(스텝 1104). 이 시점에서, 담당 Sub인 디스크 #1의 현재 위치는 그 상단에 도달해 있다.
또한, 디스크 #1의 고장시에는, 디스크 #1을 담당 Main으로 해서 다른 1개의 재구축 처리가 기동되고, 디스크 #1의 하단이 현재 위치로서 설정된다(스텝 1101). 이 때, 복원 대상 디스크는 1개이기 때문에(스텝 1401), 복원 방법은 1 디스크 고장의 재구축으로 되고(스텝 1403), 디스크#0, #2 및 #3의 데이터/패리티 중, 디스크 #1의 데이터/패리티를 1 디스크 고장의 재구축에 의해 복원하기 위해서 필요한 것이 리드된다(스텝 1405). 단, 디스크 #0에 대해서는, HS #0에 라이트된 복원 완료된 데이터/패리티가 리드된다.
그리고, 리드된 데이터/패리티를 이용하여 디스크 #1의 데이터/패리티가 복원되어, HS #1에 라이트된다(스텝 1407).
디스크 #1의 현재 위치는, 그 복원 선두 위치로서 설정되고(스텝 1801), 디스크 #1에는 이미 정지 위치가 설정되어 있기 때문에, 조건 b는 만족되지 않는다(스텝 1802). 또한, 디스크 #1의 현재 위치는 그 정지 위치에 도달해 있지 않으므로(스텝 1804), 복원 처리 계속이라고 판정된다(스텝 1805).
이러한 복원 루틴 및 복원후 처리가 1 스트라이프마다 반복해서 실행되고 (스텝 1105), 디스크 #1의 현재 위치가 정지 위치에 도달한다. 이 때, 디스크 #1의 현재 위치는 그 상단에 도달해 있지 않기 때문에, 모든 영역의 복원이 완료되어 있지 않다고 판정된다(스텝 1803). 그러나, 현재 위치가 정지 위치와 일치하므로(스텝 1804), 복원 처리 종료라고 판정된다(스텝 1807). 이것에 의해, 디스크 #1을 담당 Main으로 하는 재구축 처리가 종료한다(스텝 1104).
디스크 #0을 담당 Main으로 하는 2 디스크 고장의 재구축 처리와, 디스크 #1을 담당 Main으로 하는 1 디스크 고장의 재구축 처리는 병행하여 실행되고, 양쪽의 재구축 처리가 종료한 시점에서 디스크 #1의 복원이 완료한다.
6. 개선안 6
개선안 1∼5의 재구축 처리에 있어서, 각 디스크의 스트립이나 논리 블록과 같은 소정 영역마다 그 복원 상태를 나타내는 비트맵을, 제어 정보로서 추가한다. 디스크 전체에 대한 진척의 제어는, 개선안 1∼5에 의해 행해진다.
컨트롤러(211)는, 재구축 처리 또는 복원 루틴의 실행시에, 비트맵 중의 복원 위치에 대응하는 비트 정보를 참조한다. 그리고, 도 19에 도시한 바와 같이, 리드/라이트 액세스의 연장 등에 의해 이미 복원 완료이면, 복원 처리를 스킵한다. 이것에 의해, 불필요한 복원 처리의 코스트를 삭감할 수 있다.
도 20은, 컨트롤러(211)의 프로세서(221)이 처리에 이용하는 프로그램 및 데이터의 제공 방법을 나타내고 있다. 정보 처리 장치 등의 외부 장치(1801)나 가반 기록 매체(1802)에 저장된 프로그램 및 데이터는, RAID 장치(202)의 메모리(222)에 로드된다.
외부 장치(1801)는, 그 프로그램 및 데이터를 반송하는 반송 신호를 생성하여, 통신 네트워크 상의 임의의 전송 매체를 통하여 RAID 장치(202)에 송신한다. 가반 기록 매체(1802)는, 메모리 카드, 플렉시블 디스크, 광 디스크, 광 자기 디스크 등의 임의의 컴퓨터 판독 가능한 기록 매체이다. 프로세서(221)는, 그 데이터를 이용하여 그 프로그램을 실행하고, 필요한 처리를 행한다.
도 21 및 도 22는 스토리지 시스템의 다른 구성예를 나타내고 있다. 도 21은, 호스트 장치에 실장된 호스트 버스 어댑터가 재구축 처리를 행하는 예를 나타내고 있고, 도 22는, 호스트 장치에 실장된 소프트 웨어가 재구축 처리를 행하는 예를 나타내고 있다. 어느 구성에 있어서도, 필요한 프로그램 및 데이터는, RAlD 장치(202)의 경우와 마찬가지로 해서 제공된다.
도 21의 스토리지 시스템은, 호스트 장치(1901) 및 Disk#0∼Disk#3으로 이루어지고, 호스트 장치(1901)는, 호스트 버스 어댑터(1911)를 구비한다. 호스트 버스 어댑터(1911)는, 프로세서(1921), 메모리(1922) 및 캐쉬 메모리(1923)를 구비하고, Disk#0∼Disk#3의 고장시의 재구축 처리를 행한다. 이 때, 프로세서(1921)는, 메모리(1922)에 저장된 프로그램을 실행함으로써, 상술한 재구축 처리를 행한다.
도 22의 스토리지 시스템은, 호스트 장치(2001) 및 Disk#0∼Disk#3으로 이루어진다. 호스트 장치(2001)는, 프로세서(2011) 및 메모리(2012, 2013)를 구비하고, Disk#0∼Disk#3의 고장시의 재구축 처리를 행한다. 이 때, 프로세서(2011)는, 메모리(2012)에 저장된 프로그램을 실행함으로써, 메모리(2013)상에서 상술한 재구축 처리를 행한다.
또한, 이상의 실시예에서는, 디스크 장치로서 자기 디스크 장치가 이용되고 있지만, 본 발명은, 광 디스크 장치, 광 자기 디스크 장치 등의 다른 디스크 장치나, 테이프 장치와 같은 다른 기억 장치를 이용한 스토리지 시스템에 대해서도 적용 가능하다.
본 발명에 따르면, 복수의 기억 장치에 데이터 및 패리티를 분산하여 저장하는 스토리지 장치에 있어서, 2개의 기억 장치가 고장났을 때의 재구축 처리가 개선되어, 데이터의 용장성이 효율 좋게 회복한다.

Claims (26)

  1. 복수의 기억 장치에 데이터 및 패리티를 분산하여 저장하는 제어를 행함으로써 데이터의 용장화를 실현하는 스토리지 제어 장치로서,
    상기 복수의 기억 장치 중 제1 기억 장치가 고장났을 때, 상기 제1 기억 장치 이외의 기억 장치에 저장된 정보를 이용하여 상기 제1 기억 장치의 정보를 복원하여, 제1 예비 기억 장치에 기입하는 제1 재구축 수단과,
    상기 제1 기억 장치의 정보를 복원하고 있는 동안에 제2 기억 장치가 고장났을 때, 상기 제1 기억 장치의 복원 완료 영역의 정보를 상기 제1 예비 기억 장치 내에 보유한 채로, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된 정보를 이용하여 상기 제1 기억 장치의 미복원 영역의 정보와 제2 기억 장치의 정보를 복원하여, 상기 제1 예비 기억 장치의 대응하는 영역과 제2 예비 기억 장치에 각각 기입하는 제2 재구축 수단
    을 포함하는 것을 특징으로 하는 스토리지 제어 장치.
  2. 제1항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 기억 장치의 미복원 영역의 정보를 복원하는 처리와 상기 제2 기억 장치의 정보를 복원하는 처리를 각각 독립적으로 병행하여 실행하는 것을 특징으로 하는 스토리지 제어 장치.
  3. 제1항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 제어 장치.
  4. 제1항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 기억 장치의 복원 진척 위치와 상기 제2 기억 장치의 복원 진척 위치의 차이를 임계값과 비교하여, 상기 복원 진척 위치의 차이가 상기 임계값 이상이면, 상기 제1 기억 장치의 미복원 영역의 정보를 복원하는 처리와 상기 제2 기억 장치의 정보를 복원하는 처리를 각각 독립적으로 병행하여 실행하고, 상기 복원 진척 위치의 차이가 상기 임계값 미만이면, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 제어 장치.
  5. 제1항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 제어 장치.
  6. 제1항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 처리와, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 처리를, 병행하여 실행하는 것을 특징으로 하는 스토리지 제어 장치.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 제1 및 제2 기억 장치의 소정 영역마다 복원 완료인지의 여부를 나타내는 비트맵 정보를 저장하는 저장 수단을 더 구비하고, 상기 제2 재구축 수단은, 상 기 비트맵 정보를 참조하면서 복원 완료 이외의 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 제어 장치.
  8. 제7항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치에 대한 액세스 요구가 발생했을 때, 액세스 대상의 정보를 복원하고, 상기 비트맵 정보의 상기 액세스 대상의 정보에 대응하는 위치에 복원 완료라고 기록하는 것을 특징으로 하는 스토리지 제어 장치.
  9. 데이터의 용장화를 실현하기 위해, 데이터 및 패리티를 분산하여 저장하는 복수의 기억 장치와,
    상기 복수의 기억 장치 중 제1 기억 장치가 고장났을 때, 상기 제1 기억 장치 이외의 기억 장치에 저장된 정보를 이용하여 상기 제1 기억 장치의 정보를 복원하여, 제1 예비 기억 장치에 기입하는 제1 재구축 수단과,
    상기 제1 기억 장치의 정보를 복원하고 있는 동안에 제2 기억 장치가 고장났을 때, 상기 제1 기억 장치의 복원 완료 영역의 정보를 상기 제1 예비 기억 장치 내에 보유한 채로, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된 정보를 이용하여 상기 제1 기억 장치의 미복원 영역의 정보와 제2 기억 장치의 정보를 복원하여, 상기 제1 예비 기억 장치의 대응하는 영역과 제2 예비 기억 장치에 각각 기입하는 제2 재구축 수단을 포함하는 것을 특징으로 하는 스토리지 장치.
  10. 복수의 기억 장치에 데이터 및 패리티를 분산하여 저장하는 제어를 행함으로써, 데이터의 용장화를 실현하는 프로세서를 위한 프로그램을 기록한 기록 매체로서,
    상기 복수의 기억 장치 중 제1 기억 장치가 고장났을 때, 상기 제1 기억 장치 이외의 기억 장치에 저장된 정보를 이용하여 상기 제1 기억 장치의 정보를 복원하여, 제1 예비 기억 장치에 기입하고,
    상기 제1 기억 장치의 정보를 복원하고 있는 동안에 제2 기억 장치가 고장났을 때, 상기 제1 기억 장치의 복원 완료 영역의 정보를 상기 제1 예비 기억 장치 내에 보유한 채로, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된 정보를 이용하여 상기 제1 기억 장치의 미복원 영역의 정보와 제2 기억 장치의 정보를 복원하여, 상기 제1 예비 기억 장치의 대응하는 영역과 제2 예비 기억 장치에 각각 기입하는 처리를 상기 프로세서에 실행시키는 것을 특징으로 하는 프로그램을 기록한 기록매체.
  11. 복수의 기억 장치에 데이터 및 패리티를 분산하여 저장함으로써, 데이터의 용장화를 실현하는 스토리지 제어 방법으로서,
    상기 복수의 기억 장치 중 제1 기억 장치가 고장났을 때, 상기 제1 기억 장치 이외의 기억 장치에 저장된 정보를 이용하여 상기 제1 기억 장치의 정보를 복원하여, 제1 예비 기억 장치에 기입하고,
    상기 제1 기억 장치의 정보를 복원하고 있는 동안에 제2 기억 장치가 고장났을 때, 상기 제1 기억 장치의 복원 완료 영역의 정보를 상기 제1 예비 기억 장치 내에 보유한 채로, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된 정보를 이용하여 상기 제1 기억 장치의 미복원 영역의 정보와 제2 기억 장치의 정보를 복원하여, 상기 제1 예비 기억 장치의 대응하는 영역과 제2 예비 기억 장치에 각각 기입하는 것을 특징으로 하는 스토리지 제어 방법.
  12. 제9항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 장치.
  13. 제9항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 기억 장치의 복원 진척 위치와 상기 제2 기억 장치의 복원 진척 위치의 차이를 임계값과 비교하여, 상기 복원 진척 위치의 차이가 상기 임계값 이상이면, 상기 제1 기억 장치의 미복원 영역의 정보를 복원하는 처리와 상기 제2 기억 장치의 정보를 복원하는 처리를 각각 독립적으로 병행하여 실행하고, 상기 복원 진척 위치의 차이가 상기 임계값 미만이면, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 장치.
  14. 제9항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 장치.
  15. 제9항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 처리와, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 처리를, 병행하여 실행하는 것을 특징으로 하는 스토리지 장치.
  16. 제9항, 제12항, 제13항, 제14항, 제15항 중 어느 한 항에 있어서,
    상기 제1 및 제2 기억 장치의 소정 영역마다 복원 완료인지의 여부를 나타내는 비트맵 정보를 저장하는 저장 수단을 더 구비하고, 상기 제2 재구축 수단은, 상기 비트맵 정보를 참조하면서 복원 완료 이외의 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 장치.
  17. 제10항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 프로그램을 기록한 기록매체.
  18. 제10항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 기억 장치의 복원 진척 위치와 상기 제2 기억 장치의 복원 진척 위치의 차이를 임계값과 비교하여, 상기 복원 진척 위치의 차이가 상기 임계값 이상이면, 상기 제1 기억 장치의 미복원 영역의 정보를 복원하는 처리와 상기 제2 기억 장치의 정보를 복원하는 처리를 각각 독립적으로 병행하여 실행하고, 상기 복원 진척 위치의 차이가 상기 임계값 미만이면, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 프로그램을 기록한 기록매체.
  19. 제10항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 프로그램을 기록한 기록매체.
  20. 제10항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 처리와, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 처리를, 병행하여 실행하는 것을 특징으로 하는 프로그램을 기록한 기록매체.
  21. 제10항, 제17항, 제18항, 제19항, 제20항 중 어느 한 항에 있어서,
    상기 제1 및 제2 기억 장치의 소정 영역마다 복원 완료인지의 여부를 나타내는 비트맵 정보를 저장하는 저장 수단을 더 구비하고, 상기 제2 재구축 수단은, 상기 비트맵 정보를 참조하면서 복원 완료 이외의 영역의 정보를 복원하는 것을 특징으로 하는 프로그램을 기록한 기록매체.
  22. 제11항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 제어 방법.
  23. 제11항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 기억 장치의 복원 진척 위치와 상기 제2 기억 장치의 복원 진척 위치의 차이를 임계값과 비교하여, 상기 복원 진척 위치의 차이가 상기 임계값 이상이면, 상기 제1 기억 장치의 미복원 영역의 정보를 복원하는 처리와 상기 제2 기억 장치의 정보를 복원하는 처리를 각각 독립적으로 병행하여 실행하고, 상기 복원 진척 위치의 차이가 상기 임계값 미만이면, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 제어 방법.
  24. 제11항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원한 후, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 제어 방법.
  25. 제11항에 있어서,
    상기 제2 재구축 수단은, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 복원 완료 영역에 대응하는 영역의 정보를 이용하여, 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 처리와, 상기 제1 및 제2 기억 장치 이외의 기억 장치에 저장된, 상기 제1 기억 장치의 미복원 영역에 대응하는 영역의 정보를 이용하여, 상기 제1 기억 장치의 미복원 영역 및 상기 제2 기억 장치의 대응하는 영역의 정보를 복원하는 처리를, 병행하여 실행하는 것을 특징으로 하는 스토리지 제어 방법.
  26. 제11항, 제22항, 제23항, 제24항, 제25항 중 어느 한 항에 있어서,
    상기 제1 및 제2 기억 장치의 소정 영역마다 복원 완료인지의 여부를 나타내는 비트맵 정보를 저장하는 저장 수단을 더 구비하고, 상기 제2 재구축 수단은, 상기 비트맵 정보를 참조하면서 복원 완료 이외의 영역의 정보를 복원하는 것을 특징으로 하는 스토리지 제어 방법.
KR1020050065647A 2005-03-15 2005-07-20 스토리지 제어 장치 및 방법 KR100701563B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2005-00073669 2005-03-15
JP2005073669A JP4754852B2 (ja) 2005-03-15 2005-03-15 ストレージ制御装置および方法

Publications (2)

Publication Number Publication Date
KR20060101156A KR20060101156A (ko) 2006-09-22
KR100701563B1 true KR100701563B1 (ko) 2007-03-30

Family

ID=36648659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050065647A KR100701563B1 (ko) 2005-03-15 2005-07-20 스토리지 제어 장치 및 방법

Country Status (5)

Country Link
US (1) US7809979B2 (ko)
EP (1) EP1703397A3 (ko)
JP (1) JP4754852B2 (ko)
KR (1) KR100701563B1 (ko)
CN (1) CN100392611C (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4303187B2 (ja) * 2004-11-10 2009-07-29 富士通株式会社 プログラム、記憶制御方法及び記憶装置
TWI295021B (en) * 2004-12-10 2008-03-21 Infortrend Technology Inc Storage system and method for handling bad storage device data therefor
JP2008046986A (ja) * 2006-08-18 2008-02-28 Hitachi Ltd ストレージシステム
JP4499776B2 (ja) * 2007-10-31 2010-07-07 富士通株式会社 ストレージ制御装置、方法、及びプログラム
US7877626B2 (en) * 2007-12-31 2011-01-25 Datadirect Networks, Inc. Method and system for disk storage devices rebuild in a data storage system
US7979635B2 (en) * 2008-02-14 2011-07-12 International Business Machines Corporation Apparatus and method to allocate resources in a data storage library
JP5286956B2 (ja) * 2008-06-13 2013-09-11 富士通株式会社 制御方法、ディスクアレイ装置
JP2010049637A (ja) * 2008-08-25 2010-03-04 Hitachi Ltd 計算機システム、ストレージシステム及び構成管理方法
JP5107196B2 (ja) * 2008-09-18 2012-12-26 株式会社東芝 情報処理装置および再構築処理および修復処理の制御方法
JP5207988B2 (ja) * 2009-01-07 2013-06-12 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、プログラム、及び記憶媒体
CN101482733B (zh) * 2009-02-04 2011-10-19 浙江中控技术股份有限公司 一种数据冗余的方法及装置
JP5218147B2 (ja) * 2009-02-26 2013-06-26 富士通株式会社 ストレージ制御装置,ストレージ制御方法およびストレージ制御プログラム
JP5391993B2 (ja) * 2009-10-19 2014-01-15 富士通株式会社 ディスクアレイ装置
US8341457B2 (en) * 2010-03-11 2012-12-25 Lsi Corporation System and method for optimizing redundancy restoration in distributed data layout environments
US8726070B2 (en) * 2010-09-27 2014-05-13 Dell Products L.P. System and method for information handling system redundant storage rebuild
US8782339B2 (en) * 2010-10-11 2014-07-15 Open Invention Network, Llc Storage system having cross node data redundancy and method and computer readable medium for same
CN102055797A (zh) * 2010-11-29 2011-05-11 北京卓微天成科技咨询有限公司 一种云存储的数据存取的方法、装置及系统
CN102164165B (zh) * 2011-02-18 2013-06-12 杭州宏杉科技有限公司 一种网络存储系统的管理方法及装置
JP5729043B2 (ja) * 2011-03-17 2015-06-03 富士通株式会社 ストレージ装置および制御装置
JP5472947B2 (ja) * 2012-03-08 2014-04-16 株式会社東芝 ビデオサーバ装置及びそのリビルド処理制御方法
JP5891890B2 (ja) * 2012-03-26 2016-03-23 富士通株式会社 ストレージシステム、ストレージ装置およびデータ復元方法
CN102681794B (zh) * 2012-04-23 2014-12-10 浪潮(北京)电子信息产业有限公司 基于双控制器实现磁盘冗余阵列保护的方法及系统
CN102684782A (zh) * 2012-05-08 2012-09-19 成都瑞凌科信息技术有限公司 Epon系统的保护装置和数据冗余备份方法及监控方法
JP6039699B2 (ja) * 2012-07-23 2016-12-07 株式会社日立製作所 ストレージシステム及びデータ管理方法
CN103902232B (zh) * 2012-12-28 2018-11-09 联想(北京)有限公司 一种写入的数据的方法及装置
CN103970481B (zh) * 2013-01-29 2017-03-01 国际商业机器公司 重建存储器阵列的方法和装置
JP6171616B2 (ja) * 2013-06-24 2017-08-02 富士通株式会社 ストレージ制御装置、及びストレージ制御プログラム
US9501360B2 (en) * 2013-07-01 2016-11-22 International Business Machines Corporation Rebuilding data while reading data in a dispersed storage network
JP2015210658A (ja) 2014-04-25 2015-11-24 富士通株式会社 記憶制御装置、データ復旧プログラム、およびデータ復旧方法
CN106227627A (zh) * 2016-08-22 2016-12-14 浪潮(北京)电子信息产业有限公司 一种raid在数据恢复后再插入新磁盘的数据分布方法及系统
CN108228086B (zh) * 2016-12-21 2021-07-16 伊姆西Ip控股有限责任公司 Raid重建的方法和设备
US10437691B1 (en) * 2017-03-29 2019-10-08 Veritas Technologies Llc Systems and methods for caching in an erasure-coded system
CN110058961B (zh) * 2018-01-18 2023-05-05 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
CN110058965B (zh) * 2018-01-18 2023-07-28 伊姆西Ip控股有限责任公司 存储系统中的数据重建方法及设备
CN111381997B (zh) * 2018-12-28 2024-03-01 杭州宏杉科技股份有限公司 一种raid重建方法及装置
CN110389724B (zh) * 2019-07-23 2023-06-06 深圳忆联信息系统有限公司 基于固态硬盘的parity page识别方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259359A (ja) 1999-03-04 2000-09-22 Toshiba Corp Raid装置および記録媒体
JP2004164675A (ja) 2004-01-26 2004-06-10 Fujitsu Ltd ディスクアレイ装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0786810B2 (ja) 1990-02-16 1995-09-20 富士通株式会社 アレイディスク装置
US5271012A (en) * 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US5579475A (en) * 1991-02-11 1996-11-26 International Business Machines Corporation Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
JPH05341918A (ja) * 1992-05-12 1993-12-24 Internatl Business Mach Corp <Ibm> 二重化デイスク記憶装置システムを構成するための接続装置
EP0632376B1 (en) 1993-06-30 1998-02-11 International Business Machines Corporation Encoding and rebuilding the data content of up to two unavailable DASDs in a DASD array
US5666512A (en) * 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US5862158A (en) 1995-11-08 1999-01-19 International Business Machines Corporation Efficient method for providing fault tolerance against double device failures in multiple device systems
JP3597349B2 (ja) * 1997-09-05 2004-12-08 株式会社日立製作所 記憶サブシステムおよびその障害回復方法
US6353895B1 (en) * 1998-02-19 2002-03-05 Adaptec, Inc. RAID architecture with two-drive fault tolerance
US6516425B1 (en) 1999-10-29 2003-02-04 Hewlett-Packard Co. Raid rebuild using most vulnerable data redundancy scheme first
US6647514B1 (en) 2000-03-23 2003-11-11 Hewlett-Packard Development Company, L.P. Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
JP2002123372A (ja) 2000-10-18 2002-04-26 Nec Corp キャッシュメモリ付きディスクアレイ装置及びそのエラー制御方法並びにその制御プログラムを記録した記録媒体
JP3617631B2 (ja) * 2001-07-19 2005-02-09 富士通株式会社 ストレージ制御装置及びその制御方法
JP2003085019A (ja) 2001-09-07 2003-03-20 Toshiba Corp ディスク管理装置、ディスク管理方法及びディスク管理プログラム
US6976187B2 (en) * 2001-11-08 2005-12-13 Broadcom Corporation Rebuilding redundant disk arrays using distributed hot spare space
US7055058B2 (en) * 2001-12-26 2006-05-30 Boon Storage Technologies, Inc. Self-healing log-structured RAID
US6993701B2 (en) 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7073115B2 (en) 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US7080278B1 (en) * 2002-03-08 2006-07-18 Network Appliance, Inc. Technique for correcting multiple storage device failures in a storage array
US7103796B1 (en) * 2002-09-03 2006-09-05 Veritas Operating Corporation Parallel data change tracking for maintaining mirrored data consistency
US6952794B2 (en) * 2002-10-10 2005-10-04 Ching-Hung Lu Method, system and apparatus for scanning newly added disk drives and automatically updating RAID configuration and rebuilding RAID data
CN1253791C (zh) * 2002-11-22 2006-04-26 华为技术有限公司 5级独立冗余磁盘阵列中多盘失败情况下的读写操作方法
US7475211B2 (en) * 2004-02-13 2009-01-06 International Business Machines Corporation Method and system for restoring data
US7249277B2 (en) * 2004-03-11 2007-07-24 Hitachi, Ltd. Disk array including plural exchangeable magnetic disk unit
US20050210318A1 (en) * 2004-03-22 2005-09-22 Dell Products L.P. System and method for drive recovery following a drive failure
JP2007087039A (ja) * 2005-09-21 2007-04-05 Hitachi Ltd ディスクアレイシステム及びその制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259359A (ja) 1999-03-04 2000-09-22 Toshiba Corp Raid装置および記録媒体
JP2004164675A (ja) 2004-01-26 2004-06-10 Fujitsu Ltd ディスクアレイ装置

Also Published As

Publication number Publication date
CN100392611C (zh) 2008-06-04
KR20060101156A (ko) 2006-09-22
EP1703397A3 (en) 2008-07-02
CN1834932A (zh) 2006-09-20
US20060212748A1 (en) 2006-09-21
JP4754852B2 (ja) 2011-08-24
JP2006259894A (ja) 2006-09-28
EP1703397A2 (en) 2006-09-20
US7809979B2 (en) 2010-10-05

Similar Documents

Publication Publication Date Title
KR100701563B1 (ko) 스토리지 제어 장치 및 방법
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
US5758054A (en) Non-volatile memory storage of write operation identifier in data storage device
US6467023B1 (en) Method for logical unit creation with immediate availability in a raid storage environment
US5959860A (en) Method and apparatus for operating an array of storage devices
US5469453A (en) Data corrections applicable to redundant arrays of independent disks
JP3618529B2 (ja) ディスクアレイ装置
US7480909B2 (en) Method and apparatus for cooperative distributed task management in a storage subsystem with multiple controllers using cache locking
US6990611B2 (en) Recovering data from arrays of storage devices after certain failures
JP4815825B2 (ja) ディスクアレイ装置及びその再構築方法
US8060772B2 (en) Storage redundant array of independent drives
US20110264949A1 (en) Disk array
US20040037120A1 (en) Storage system using fast storage devices for storing redundant data
GB2414592A (en) Decreasing failed disk reconstruction time in a RAID data storage system
US8386837B2 (en) Storage control device, storage control method and storage control program
JPH08263227A (ja) ディスクアレイにおけるパリティデータの無矛盾性保持方法
CN110187830A (zh) 一种加速磁盘阵列重建的方法及系统
CN106527983B (zh) 一种数据存储方法以及磁盘阵列
JP2857288B2 (ja) ディスクアレイ装置
US7174476B2 (en) Methods and structure for improved fault tolerance during initialization of a RAID logical unit
KR20030073982A (ko) 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법
JP2002123372A (ja) キャッシュメモリ付きディスクアレイ装置及びそのエラー制御方法並びにその制御プログラムを記録した記録媒体
CN118779146A (zh) 数据存储方法、设备、介质及产品
JPH07200190A (ja) デイスクアレイ装置
MXPA99003253A (en) Expansion of the number of drives in a raid set while maintaining integrity of migrated data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130304

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150224

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 14