KR100300836B1 - 데이타재구성방법및데이타기억시스템 - Google Patents

데이타재구성방법및데이타기억시스템 Download PDF

Info

Publication number
KR100300836B1
KR100300836B1 KR1019970708335A KR19970708335A KR100300836B1 KR 100300836 B1 KR100300836 B1 KR 100300836B1 KR 1019970708335 A KR1019970708335 A KR 1019970708335A KR 19970708335 A KR19970708335 A KR 19970708335A KR 100300836 B1 KR100300836 B1 KR 100300836B1
Authority
KR
South Korea
Prior art keywords
data
stored
data storage
reconstruction
parity
Prior art date
Application number
KR1019970708335A
Other languages
English (en)
Other versions
KR19990021861A (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 KR19990021861A publication Critical patent/KR19990021861A/ko
Application granted granted Critical
Publication of KR100300836B1 publication Critical patent/KR100300836B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

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

본 발명의 목적은 데이타의 재구성이 성능 저하를 억제시키며 또한 추가의 여분의 데이타 기억 장치를 필요로 하지 않는 것에 있다. 시스템 중의 복수의 데이타 기억 장치 중 어느 하나가 고장이 나면, 그 고장난 기억 장치의 데이타를 다른 기억 장치의 데이타에 기초하여 재구성한다. 데이타의 재구성 방법은 데이타 기억 장치로부터 데이타를 판독하는 단계와, 패리티 데이타를 기억하는 기억 장치로부터 패리티 데이타를 판독하는 단계와, 고장난 기억 장치에 기억되어 있는 데이타를 이 데이타와 패리티 데이타의 논리 연산을 행함으로써 재구성하는 단계와, 기억 장치에 기억되어 있는 패리티 데이타를 재구성된 데이타로 치환하는 단계를 포함한다.

Description

데이타 재구성 방법 및 데이타 기억 시스템{DATA RECONSTRUCTION METHOD AND DATA STORAGE SYSTEM}
컴퓨터가 취급하는 데이타의 양이 증대함에 따라, HDD(하드 디스크 드라이브 장치)의 처리 능력의 향상 및 데이타 기억의 신뢰성의 향상이 요구되고 있다. 레이드(RAID: Redundant Array of Inexepensive Disks) 서브시스템(subsystem)은 이러한 요구에 부합되는 시스템 중 하나이다. 이 서브시스템은 복수의 HDD를 시스템적으로는 외관상 하나의 HDD로서 기능시킴으로써 대용량화, 처리 속도의 향상을 꾀하는 서브시스템이다. 또한, 높은 신뢰성의 확보, 즉, 패리티 데이타(parity data)를 설치함으로써 HDD 장해 발생시에 고장난 HDD에 축적된 데이타를 재구성할 수 있는 서브시스템이기도 하다. 이 데이타의 재구성은 HDD에 기억되는 데이타로부터 패리티 데이타라고 하는 여유 데이타(redundant data)를 계산하여 이 여유 데이타를 HDD에 기억함으로써 가능해진다.
이 고장난 HDD에 기억된 데이타의 재구성은 이하와 같이 행해진다. 도 1은 RAID5에 있어서의 5대의 HDD 각각에 기억되는 데이타 블럭(data blocks)의 구성을 도시한 도면이다. 여기서 RAID5란 생성된 패리티 데이타를 각각의 HDD에 분산시켜 기억하는 방식을 말한다. 도 1에 있어서, 「P」란 패리티 데이타를 나타내고 있다. 또한, 번호 1 내지 24는 데이타의 블럭 번호를 의미하고 있다. 데이타 블럭이란 HDD가 한번에 모아서 취급하는 데이타의 양이다. 이 데이타의 양은 1바이트 내지 수 섹터(통상, 1섹터는 12바이트)와 같이, 서브시스템에 의해서 고유하게 설정되어 있다.
이와 같이, 데이타를 4대에 분산하여 기억시키고, 이들의 데이타로부터 생성한 패리티 데이타를 나머지의 1대에 기억시킴으로써, 횡방향의 1렬의 데이타 배열(「Row 」)을 형성한다.
이 경우에 있어서, Row1에 있어서의 패리티 데이타는 이하의 단계에 의해 생성된다.
단계 1 : (1 EX-OR 2) = P1
단계 2 : (P1 EX-OR 3) = P2
단계 3 : (P2 EX-OR 4) = P
(단, EX-OR란 배타적 논리합을 의미함)
즉, 패리티 데이타는 HDD1과 HDD2에 기억되는 데이타의 배타적 논리합에 의해 P1을 구하고, 이 P1과 HDD3에 기억된 데이타와의 배타적 논리합에 의해 P2를 구하고, 또한 이 P2와 HDD4에 기억된 데이타와의 배타적 논리합을 구한다고 하는 3단계의 단계를 거쳐 산출된다. 이 패리티 데이타는 HDD 중 어느 것인가가 고장난 경우에 이 고장난 HDD에 기록된 데이타를 재구성하기 위해 필요한 데이타이다.
도 2는 HDD4가 고장난 경우의 데이타 구성을 도시한 도면이다. HDD4가 고장났기 때문에, Row1에서는 블럭4의 데이타가, Row2에서는 패리티 데이타가, Row3에서는 블럭9의 데이타가 상실되어 있다. 고장난 HDD4에 기록되어 있던 Row1의 블럭4를 판독할 경우, 블럭4의 데이타는 이하의 3개의 단계를 거침으로써 재구성된다.
단계 1 : (1 EX-OR 2) = P1
단계 2 : (P1 EX-OR 3) = P2
단계 3 : (P2 EX-OR P) = 4
이와 같이, 패리티 데이타라고 하는 여유 데이타를 설치하고 있기 때문에, 복수의 HDD 중 어느 것인가가 고장난 경우에 있어서도, 그 고장난 HDD에 기억된 데이타를 다른 정상적인 HDD에 기억된 데이타의 배타적 논리합 연산을 행함으로써 재구성할 수 있다. 이 배타적 논리합 연산은 HDD와 데이타 버스를 통해 접속되어 있는 패리티 생성 회로에 의해서 실행된다. 그리고, 이 배타적 논리합 연산에 의해 구해진 일시적인 데이타 P1, P2는 패리티 생성 회로에 접속된 패리티 버퍼에 일시적으로 기억된다.
그러나, 고장난 HDD가 존재하는 경우에 필요로 되는 데이타의 재구성에 있어서는, 다른 정상적인 HDD에 기억된 데이타를 데이타 버스로 전송한다고 하는 단계를 복수회 행할 필요가 있다. 상기한 예에 있어서는 3회 데이타 전송을 행할 필요가 있다. 이 데이타 전송은 시스템이 갖는 HDD의 수가 증대할수록 많아진다. 따라서, 데이타 재구성시에 있어서의 시스템의 성능(performance)은 정상 동작시에 비해 크게 저하하게 된다.
종래 기술로서, 통상 사용하는 HDD 외에, 통상은 사용하지 않지만, 고장난 HDD가 발생했을 때에 재구성된 데이타를 기억하기 위해 사용하는 예비(backup) HDD를 설치하여 두는 기술이 있다. 이것은, 데이타 재구성시에 있어서, 고장난 HDD 이외의 HDD에 기억된 데이타로부터 재구성된 재구성 데이타를 예비 HDD에 기억시키는 것이다. 그러나, 이 기술에 있어서 예비의 HDD는 통상적으로는 사용되지 않으므로 데이타 기억 시스템 전체에 있어서의 기억 용량이 저하하여 경제적이지 않다.
이와 같이 종래 기술에 있어서는 고장난 HDD가 존재하는 경우, HDD에 기억된 데이타의 판독 속도가 통상 동작시에 비해 저하한다고 하는 문제점이 있었다. 또한, 예비 HDD를 설치하면 시스템 전체의 기억 용량이 저하한다고 하는 문제점이 있었다.
그래서, 본 발명은 이러한 문제점을 감안하여 이루어진 것으로, 데이타 재구성시에 있어서의 성능의 저하를 억제하는 것을 목적으로 한다. 또한, 본 발명의 또 다른 목적은 여분의 데이타 기억 장치를 더 설치할 필요를 없애는 것이다.
〈발명의 개시〉
본 발명은 복수의 데이타 기억 장치를 갖는 시스템 중에 고장난 데이타 기억 장치가 존재하는 경우 고장난 데이타 기억 장치에 기억된 데이타를 다른 복수의 데이타 기억 장치에 기억된 데이타에 기초하여 재구성하는 방법에 있어서, 복수의 데이타 기억 장치로부터 데이타를 판독하는 단계와, 패리티 데이타가 기억된 데이타 기억 장치로부터 패리티 데이타를 판독하는 단계와, 데이타와 패리티 데이타의 논리 연산을 행함으로써 고장난 데이타 기억 장치에 기억된 데이타를 재구성하는 단계와, 데이타 기억 장치에 기억된 패리티 데이타를 재구성 데이타로 치환하여 기억하는 단계를 갖는 방법을 제공한다.
또 다른 발명은 복수의 데이타 기억 장치를 갖는 시스템 중에 고장난 데이타 기억 장치가 존재하는 경우, 고장난 데이타 기억 장치에 기억된 데이타를 다른 복수의 데이타 기억 장치에 기억된 데이타에 기초하여 재구성하는 방법에 있어서, 복수의 데이타 기억 장치로부터 데이타 블럭을 판독하는 단계와, 어드레스 영역을 지정함으로써 패리티 데이타 블럭이 기억된 데이타 기억 장치로부터 어드레스 영역에 저장된 패리티 데이타 블럭을 판독하는 단계와, 데이타 블럭과 패리티 데이타 블럭과의 논리 연산을 행함으로써 재구성 데이타 블럭을 획득하는 단계와, 어드레스 영역에 재구성 데이타 블럭을 저장하는 단계를 갖는 방법을 제공한다.
이들 발명은 또한 데이타 기억 장치에 기억된 패리티 데이타가 재구성 데이타로 치환되어 있는지의 여부를 나타내는 관리 테이블(management table)을 준비하는 단계를 갖고 있더라도 좋다. 구체적으로는 이 관리 테이블은 어드레스 영역의 범위 및 그 범위에 재구성 데이타가 저장되어 있는지의 여부를 나타내고 있다.
이 관리 테이블을 참조함으로써 어드레스 영역에 재구성 데이타 블럭이 저장되어 있는지의 여부를 판단한다. 재구성 데이타 블럭이 저장되어 있는 경우에는, 재구성 데이타 블럭을 외부로 출력한다. 재구성 데이타 블럭이 저장되어 있지 않는 경우에는, 고장난 데이타 기억 장치 이외의 데이타 기억 장치에 기억된 데이타 블럭 및 어드레스 영역에 저장된 패리티 데이타 블럭에 기초하여 재구성 데이타 블럭을 구하여 재구성 데이타 블럭을 외부로 출력한다. 이 때, 이 어드레스 영역에 재구성 데이타 블럭을 저장함과 함께 관리 테이블이 갱신된다.
또 다른 발명은, 패리티 데이타를 기억함으로써 데이타 기억 수단 중 어느 것인가에 고장이 생긴 경우에 있어서도 그 고장난 데이타 기억 수단에 기억된 데이타를 재구성할 수 있는 복수의 데이타 기억 수단을 갖는 데이타 기억 시스템에 있어서, 데이타 및 패리티 데이타가 기억된 복수의 데이타 기억 수단과, 상기 데이타 기억 수단에 접속된 데이타 버스와, 상기 데이타 버스에 접속되며 어느 것인가의 데이타 기억 수단에 기억된 데이타를 재구성하기 위해 다른 복수의 데이타 기억 수단에 기억된 데이타 및 패리티 데이타에 기초하여 재구성 데이타를 생성하는 연산 수단과, 재구성 데이타를 데이타 기억 수단에 기억된 패리티 데이타로 치환하여 기록하는 수단을 갖는 시스템을 제공한다.
또 다른 발명은, 패리티 데이타를 기억함으로써 데이타 기억 수단 중 어느 것인가에 고장이 생긴 경우에 있어서도, 그 고장난 데이타 기억 수단에 기억된 데이타를 재구성할 수 있는 복수의 데이타 기억 수단을 갖는 데이타 기억 시스템에 있어서, 지정된 어드레스 영역에 패리티 데이타 블럭이 기억된 제1 데이타 기억 수단과, 데이타 블럭이 기억된 적어도 하나의 제2 데이타 기억 수단과, 어느 것인가의 제2 데이타 기억 수단에 기억된 데이타 블럭을 재구성하기 위해 제1 데이타 기억 수단에 기억된 패리티 데이타 블럭 및 나머지 제2 데이타 기억 수단에 기억된데이타 블럭에 기초하여 재구성 데이타 블럭을 생성하는 연산 수단과, 어드레스 영역에 재구성 데이타 블럭을 저장하는 수단을 갖는 시스템을 제공한다.
본 발명은 데이타 재구성 방법(data reconstruction method) 및 데이타 기억 시스템(data storage system)에 관한 것으로, 특히, 복수의 데이타 기억 장치 중 일부가 고장난 경우 그 장치에 기억된 데이타를 재구성하는 방법 및 장치에 관한 것이다.
도 1은 RAID5에 있어서의 5대의 HDD의 각각 기억되는 데이타 구성을 도시한 도면.
도 2는 HDD4가 고장난 경우의 데이타 블럭의 구성을 도시한 도면.
도 3은 5대의 HDD가 접속된 RAID 시스템의 구성도.
도 4는 패리티 데이타의 치환 상황과 구체적인 태그(tag)와의 관계를 도시한 도면.
도 5는 패리티 데이타로의 치환 관리 테이블의 구성도.
도 6은 실제의 패리티 데이타로의 치환 관리 테이블의 구체예를 도시한 도면.
〈발명을 실시하기 위한 최적의 형태〉
이하 본 발명의 바람직한 실시예에 대해 소위 RAID5라고 불리우는 시스템을 예로 설명한다. 도 3은 5대의 HDD가 접속된 RAID 시스템의 구성도이다. 복수의 데이타 버스 Bus1, Bus2에는, 복수의 데이타 기억 수단(1)이 인터페이스(2)를 통해 접속되어 있다. 이 데이타 버스 Bus1, Bus2에는 버퍼(3)의 한 단이 접속되어 있다. 버퍼(3)의 다른 단은 캐쉬 메모리(4) 및 호스트 인터페이스 칩(5)에 접속되어 있다. 또한, 데이타 버스 Bus1, Bus2에는 패리티 발생 회로(6)가 접속되어 있고, 이 패리티 발생 회로(6)에는 패리티 메모리(7)가 접속되어 있다. 또, 이 시스템에있어서의 데이타 전송은 도시하지 않는 DMAC(직접·메모리·액세스·제어기)에 의해서 제어되어 있다. 또한, 시스템 전체에 있어서의 제어·관리는 도시하지 않은 MPU에 의해서 행해지고 있다.
여기서, 데이타 버스 Bus1, Bus2의 각각은 복수의 데이타 라인(예를 들면 16개)으로 구성되어 있다. 또한, 인터페이스(2)는 복수의 데이타 버스 Bus1, Bus2와 데이타 기억 수단(1) 간에서의 임의의 전송을 가능하게 하는 것이다. 데이타 기억 수단(1)은 데이타 및 패리티 데이타를 기억하기 위한 것으로, 본 실시예에서는 전형적인 기억 장치인 HDD(하드 디스크 드라이브 장치)를 예로 설명하고 있다. 그러나, 데이타 기억 수단은 HDD로 한정시키지 않고, 광자기 디스크, CD-ROM, DAT, 또한 EEPROM 등의 반도체 메모리로 할 수 있음은 당연하다.
버퍼(3)는 호스트 인터페이스 칩(5)과 복수의 데이타 버스 Bus1, Bus2 간에서의 데이타 전송을 행하기 위한 것이다. 호스트 인터페이스 칩(5)은 이 시스템과 호스트 컴퓨터 간에서의 데이타 전송을 행하는 것이다. 캐쉬 메모리(4)는 데이타 버스 Bus1, Bus2로 전송되고, 버퍼(3)로부터 출력된 데이타, 또는 호스트 인터페이스 칩(5)을 통해 호스트 컴퓨터로부터 전송된 데이타를 일시적으로 기억하기 위한 것이다.
또한, 패리티 발생 회로(6)는 어느 것인가의 데이타 기억 수단(1)에 기억된 데이타를 재구성하기 위해 다른 복수의 데이타 기억 수단에 기억된 데이타 및 패리티 데이타에 기초하여 재구성 데이타를 생성하기 위한 것이다. 본 실시예에서는 데이타 버스 Bus1, Bus2에 전송된 데이타 또는, 패리티 메모리(7)에 기억된 데이타에 기초하여 배타적 논리합 연산을 실행하고, 패리티 데이타를 구하는 것이다. 패리티 데이타의 생성에는 여러가지 패리티 연산 방법이 종래부터 제안되어 있지만, 본 실시예에서는, 전형적인 배타적 논리를 이용하고 있다. 패리티 메모리(7)는 이 패리티 발생 회로(6)에 의해 계산된 패리티 데이타를 일시적으로 기억시키기 위한 메모리이다.
또한, 패리티 발생 회로(6)는 2개의 데이타 버스 Bus1, Bus2로부터 데이타를 인출(fetch)하여 이들 데이타로부터 패리티 데이타를 생성하고, 그것을 패리티 메모리(7)로 전송할 수 있다. 또한, 하나의 데이타 버스로 전송된 데이타와 패리티 메모리(7)로부터 판독된 패리티 데이타에 기초하여 새로운 패리티 데이타를 생성하고, 이것을 다시 패리티 메모리(7)에 저장하거나, 다른 데이타 버스로 전송할 수도 있다.
또한, 본 시스템은, 도시하지는 않았지만, 관리 수단(management means)으로서 레지스터(register)를 갖고 있다. 이 레지스터는 후에 상술하는 관리 테이블을 갖고 있다. 도시하지 않은 MPU는 이 관리 테이블의 내용의 참조 및 내용의 재기록을 행하고 있다. 다음에, 생성된 패리티 데이타를 각각의 HDD에 분산시켜서 기억하는 RAID5에 있어서의 고장 발생시의 회로 동작에 대해 설명하기로 한다. 또, 본 발명은 RAID5에 한정되지 않고 하나의 HDD를 패리티 데이타 기억용의 HDD로서 정하고, 모든 패리티 데이타를 이 HDD에 기억한다고 하는 RAID3 등의 데이타를 재구성하는 기능을 갖는 디스크 어레이 시스템에 이용할 수 있음은 당연하다.
도 2에서 도시한 바와 같이, HDD4가 고장난 경우의 재구성에 대해 설명하기로 한다. HDD4가 고장났기 때문에, Row1에서는 블럭4의 데이타가, Row2에서는 패리티 데이타가, Row3에서는 블럭9의 데이타가 상실되어 있다. 고장난 HDD4에 기록되어 있던 Row1의 블럭4를 판독하는 경우, 블럭4의 데이타는 이하의 4 단계를 거침으로써 재구성된다.
단계 1 : (1 EX-OR 2) = P1
단계 2 : (P1 EX - OR 3) = P2
단계 3 : (P2 EX - OR P) = 4
단계 4 : 4→P
(1) 단계 1
HDD1 및 HDD2로부터, 블럭1 및 블럭2의 데이타를 각각 판독하고, 데이타 버스 Bus1, Bus2로 전송한다. 이들 전송된 데이타 블럭은 패리티 발생 회로(6)에 입력된다. 패리티 발생 회로(6)는 블럭1 및 블럭2의 데이타의 배타적 논리합을 구함으로써 패리티 블럭 P1을 생성한다. 이 패리티 블럭 P1은 패리티 메모리(7)에 기억된다.
(2) 단계 2
HDD3으로부터 블럭3의 데이타를 판독하여 어느 것인가의 데이타 버스로 전송한다. 이 전송된 데이타 블럭은 패리티 발생 회로(6)에 입력된다. 패리티 발생 회로(6)는 이 블럭3과 패리티 메모리(7)에 기억되어 있는 패리티 블럭 P1의 배타적 논리합을 구함으로써 패리티 블럭 P2를 생성한다. 이 패리티 블럭 P2는 패리티 메모리(7)에 기억된다.
(3) 단계 3
어드레스 영역을 지정함으로써 HDD5로부터 이 영역에 저장된 패리티 블럭 P의 데이타를 판독하여 어느 것인가의 데이타 버스로 전송한다. 전송된 패리티 블럭 P는 패리티 발생 회로(6)로 입력된다. 패리티 발생 회로(6)는 이 패리티 블럭 P와 패리티 메모리(7)에 기억되어 있는 패리티 블럭 P2의 배타적 논리합을 구함으로써 재구성 데이타 블럭 A를 생성한다. 이 재구성 데이타 블럭 A는 고장난 HDD4에 기억되어 있는 데이타 블럭과 동일하며, 이에 따라 HDD4에 기억되어 있던 데이타를 재구성할 수 있다. 이 재구성 데이타 블럭 A는 패리티 메모리(7)에 기억된다.
(4) 단계 4
단계 3에서 생성된 재구성 데이타 블럭 A를 패리티 메모리(7)로부터 판독하여 데이타 버스를 통해 패리티 블럭 P가 기억되어 있는 HDD5로 전송한다. 이 재구성 데이타 블럭 A는 HDD5의 패리티 블럭 P가 기억되어 있던 어드레스 영역에 치환되어 기억된다. 즉, 상기 지정된 어드레스 영역에 재구성 데이타 블럭을 저장한다. 또, 단계 3에 있어서 재구성된 데이타 블럭 A를 패리티 메모리(7)에 일시적으로 기억하지 않고, 직접 HDD5로 전송하여도 좋다.
이상의 단계에 의해, Row1에 대해 HDD5에 기억되어 있는 데이타가 패리티 데이타로부터 재구성된 데이타(고장난 HDD4에 기억된 데이타에 대응하며, 데이타의 내용이 동일한 데이타)로 치환된다. 이 패리티 데이타로의 치환의 상황은 이하에서 상술하는 바와 같은 관리 테이블로 관리된다.
호스트 컴퓨터 등의 시스템 외부로부터, 시스템이 고장난 HDD에 기억된 데이타에 대한 판독 요구를 수신한 경우, 요구된 데이타에 대응하는 재구성 데이타가 HDD에 기억되어 있는지의 여부를 관리 테이블에 의해 판단한다. 재구성 데이타가 HDD에 기억되어 있는 경우에는, 그 재구성 데이타를 요구된 데이타로서 호스트 컴퓨터로 출력한다. 재구성 데이타가 HDD에 기억되어 있지 않는 경우에는 정상적인다른 복수의 HDD에 기억된 데이타 및 패리티 데이타에 기초하여 고장난 HDD에 기억되어 있던 데이타를 재구성하여 그 재구성된 데이타를 호스트 컴퓨터로 출력한다. 이 때, 패리티 데이타를 재구성 데이타로 치환하여 HDD에 기억함과 함께, 지정된 어드레스 영역의 내용이 재구성 데이타를 나타내도록 관리 테이블의 내용도 갱신된다.
이와 같이, 패리티 데이타가 기억되어 있던 어드레스 영역에는 재구성 데이타가 저장되기 때문에, 이미 계산된 데이타를 다시 호스트 컴퓨터가 액세스하는 경우에는 이 재구성 데이타를 판독하여 호스트 컴퓨터에 대해 출력하면 된다. 따라서, 다시 패리티 연산을 실행할 필요가 없기 때문에 고장난 HDD가 존재하는 경우에 있어서도 시스템의 성능의 저하를 억제할 수 있다.
또, Row3에 대해서도 상술된 단계와 동일하게 데이타의 치환이 행해진다. Row2에 대해서는 고장난 HDD4에 기억되어 있는 데이타는 패리티 데이타로서, 호스트 컴퓨터가 판독하는 데이타가 아니기 때문에 데이타의 치환을 행할 필요는 없다.
고장난 HDD를 고장나지 않는 새로운 HDD로 치환한 경우, 기억되어 있는 재구성 데이타를 다시 패리티 데이타로 치환하는 것을 행한다. 이를 위해서는, 2가지방법이 고려된다. 제1 방법은, 새로운 HDD로 교환한 후에 그 이외의 HDD에 기억되어 있는 데이타의 배타적 논리합을 계산함으로써 고장난 HDD에 기억되어 있던 데이타를 재구성하여 이 데이타를 새로운 HDD에 다시 기억시키는 방법이다. 제2 방법은, 재구성 데이타에 대해서는 이미 HDD에 기억되어 있는 패리티 데이타와 치환되어 있으므로, 이 재구성 데이타를 새로운 HDD에 복사(copy)시켜, 재구성 데이타로 치환되어 있지 않는 것만 배타적 논리합 연산에 의해 데이타의 재구성을 실행하는 방법이다. 제2 방법의 쪽이 재구성시의 데이타 전송의 횟수가 감소됨으로써 시스템의 성능이 향상되기 때문에 바람직하다.
또, 고장난 HDD를 새로운 HDD로 치환하고, 이 새로운 HDD에 대해 고장난 HDD에 기억되어 있던 데이타를 기록한 경우, 재구성 데이타를 이 이상 기억해 둘 필요가 없기 때문에, HDD에 기억된 재구성 데이타는 패리티 데이타로 복원된다. 이것은 관리 테이블을 참조하여 재구성 데이타가 저장되어 있는 어드레스 영역에 패리티 데이타를 저장함으로써 달성된다.
패리티 데이타로의 치환 상황을 나타내는 관리 테이블에 대해 설명하기로한다. 이 테이블은 어드레스 영역의 범위 및 그 범위의 데이타가 패리티 데이타로부터 재구성 데이타로 치환되어 있는지의 여부를 나타내고 있다. 본 실시예에서는 이 테이블은 16-비트의 레지스터의 5워드로 기록되어 있다. 현재 패리티 데이타로의 치환 상황은 최저한 그 어드레스 영역의 범위에 저장되어 있는 데이타가 패리티 데이타인지, 재구성 데이타인지를 나타낼 필요가 있다. 다만, 실제 시스템에 있어서는 그 이외에도, 데이타의 치환 작업 중인지의 여부 등의 정보도 필요하므로 그들의 정보도 나타내고 있다. 이러한 치환 상황은 3-비트로 구성되는 태그(TAG)로 표현되고 있다. 이에 따라 패리티 데이타가 재구성된 데이타로 치환되었는지의 여부, 또한 호스트로부터 액세스되어 패리티 데이타를 재구성 데이타로 현재 치환하고 있는 중인지의 여부, 또한 고장난 HDD가 정상적인 HDD로 교환되어 재구성 데이타를 패리티 데이타로 복귀하는 작업을 현재 행하고 있는지의 여부를 나타내고 있다. 도 4는 패리티 데이타의 치환 상황과 구체적인 태그의 관계를 도시한 도면이다.
도 5는 패리티 데이타로의 치환 관리 테이블의 구성도이다. 16-비트 레지스터의 1워드째에는, 도 4에 도시한 바와 같은 3-비트의 태그가 설정된다. 2워드째 내지 3워드째에는, 태그가 나타내는 상황의 어드레스 범위에 있어서의 개시 어드레스가 설정되어 있다. 또한, 4워드째 내지 5워드째에는, 종료 어드레스가 설정되어 있다. 이 어드레스는 통상 LBA(Logic Block Adress)라 불리고 있다.
실제의 관리 테이블은 상기한 바와 같은 레지스터가 복수개 가능하다. 도 6은 실제 패리티 데이타로의 치환 관리 테이블의 구체예를 도시한 도면이다. 이 도면에 있어서, 각각의 어드레스는 이하와 같은 상황에 있는 것을 나타내고 있다. 즉, 어드레스 0 - 9999의 범위 및 어드레스 30000 - 39999의 범위는 고장난 HDD가 그대로 접속되며 패리티 치환이 종료한 상황(레지스터1, 레지스터4), 어드레스 10000 - 1999의 범위는 고장난 HDD가 그대로 접속되며 패리티 치환의 작업 중의 상황(레지스터2), 그리고 어드레스 20000 - 29999의 범위는 고장난 HDD가 그대로 접속되었지만 치환 작업을 시작하고 있지 않은 상황(레지스터3)에 있는 것을 나타내고 있다.
본 실시예에 있어서의 이와 같은 관리 테이블은 레지스터 이외에도 불휘발성의 기억 수단, 예를 들면 EEPROM이나 액세스 가능한 HDD 등에 기록하여도 좋다. 패리티 데이타와 재구성 데이타가 혼재하여 기억되는 상황이 발생하는 본 발명에 있어서는 어떤 어드레스에 기억된 데이타가 패리티 데이타인지, 또는 재구성 데이타인지를 확실하게 기억해 둘 필요가 있다. 불휘발성의 기억 수단에 기록하면, 정전(停電) 등에 의해 전원이 꺼진 경우에 있어서도 관리 테이블이 소실되지 않고 안전하기 때문이다.
또, 패리티 데이타를 재구성 데이타로 치환하는 어드레스 영역의 범위는 임의로 설정하여도 좋다. 고장난 HDD의 상실된 데이타를 전부 복원시킬 때는, 치환하는 범위를 HDD의 전 용량분으로 지정하면 좋다. 그러나, 디스크 어레이 시스템의 어드레스 공간은 방대하여 그 모든 영역을 치환의 대상으로 하면 계산 시간이 방대하게 될 염려가 있다. 따라서, 빈번히 호스트 컴퓨터가 액세스 할 가능성이 높은 소정의 영역만을 치환의 대상으로 하여도 좋다. 또한, 선택에 의해 호스트 컴퓨터로부터의 액세스와는 독립적으로 패리티 데이타의 치환을 실행하는 것도 가능하다. 호스트 컴퓨터로부터의 액세스가 적을 때에는 다음 액세스를 예상하여 치환을 미리 실행하는 것도 유효하다.
〈산업상의 이용 가능성〉
이와 같이 본 발명에서는, 데이타 기억 장치에 기억된 패리티 데이타를 재구성 데이타로 치환하여 기억하기 때문에, 예비 드라이브 등의 여유 데이타 기억 장치를 더 설치하지 않고, 데이타 재구성시에 있어서의 성능 저하를 억제하는 것이 가능해진다.

Claims (15)

  1. 복수의 데이타 기억 장치를 갖는 시스템 중에 고장난 데이타 기억 장치가 존재하는 경우, 고장난 상기 데이타 기억 장치에 기억된 데이타를 다른 상기 복수의 데이타 기억 장치에 기억된 데이타에 기초하여 재구성하는 방법(data reconstruction method)에 있어서,
    상기 복수의 데이타 기억 장치로부터 데이타를 판독하는 단계와,
    패리티 데이타(parity data)가 기억되어 있는 상기 데이타 기억 장치로부터 상기 패리티 데이타를 판독하는 단계와,
    상기 데이타와 상기 패리티 데이타의 논리 연산(logical operations)을 행함으로써 고장난 상기 데이타 기억 장치에 기억된 데이타를 재구성하는 단계와,
    상기 데이타 기억 장치에 기억된 상기 패리티 데이타를 상기 재구성 데이타로 치환하여 기억하는 단계
    를 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  2. 제1항에 있어서, 상기 데이타 기억 장치에 기억된 상기 패리티 데이타가 상기 재구성 데이타로 치환되고 있는지의 여부를 나타내는 관리 테이블(management table)을 준비하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  3. 제2항에 있어서, 상기 시스템의 외부로부터 고장난 상기 데이타 기억 장치에 기억된 데이타에 대한 판독 요구를 수신하는 단계와,
    상기 관리 테이블을 참조하여, 상기 요구된 데이타에 대응하는 상기 재구성 데이타가 상기 데이타 기억 장치에 기억되어 있는지의 여부를 판단하는 단계와,
    상기 재구성 데이타가 상기 데이타 기억 장치에 기억되어 있는 경우에는, 상기 재구성 데이타를 외부로 출력하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  4. 제2항에 있어서, 상기 시스템의 외부로부터 고장난 상기 데이타 기억 장치에 기억된 데이타에 대한 판독 요구를 수신하는 단계와,
    상기 관리 테이블을 참조하여, 상기 요구된 데이타에 대응하는 상기 재구성 데이타가 상기 데이타 기억 장치에 기억되어 있는지의 여부를 판단하는 단계와,
    상기 재구성 데이타가 상기 데이타 기억 장치에 기억되어 있지 않는 경우에는 고장난 상기 데이타 기억 장치 이외의 상기 데이타 기억 장치에 기억된 상기 데이타 및 상기 패리티 데이타에 기초하여 재구성 데이타를 구하는 단계와,
    상기 재구성 데이타를 외부로 출력하는 단계와,
    상기 데이타 기억 장치에 기억된 상기 패리티 데이타를 상기 재구성 데이타로 치환하여 기억하는 단계와,
    상기 관리 테이블을 갱신하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 고장난 상기 데이타 기억 장치가 새로운 상기 데이타 기억 장치로 치환된 경우, 상기 데이타 기억 장치에 기억된 상기 재구성 데이타를 상기 패리티 데이타로 치환하여 기억하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  6. 복수의 데이타 기억 장치를 갖는 시스템 중에 고장난 데이타 기억 장치가 존재하는 경우, 고장난 상기 데이타 기억 장치에 기억된 데이타를 다른 상기 복수의 데이타 기억 장치에 기억된 데이타에 기초하여 재구성하는 방법에 있어서,
    상기 복수의 데이타 기억 장치로부터 데이타 블럭(data blocks)을 판독하는 단계와,
    어드레스 영역을 지정함으로써, 패리티 데이타 블럭이 기억된 상기 데이타 기억 장치로부터 상기 어드레스 영역에 저장된 상기 패리티 데이타 블럭을 판독하는 단계와,
    상기 데이타 블럭과 상기 패리티 데이타 블럭과의 논리 연산을 행함으로써 재구성 데이타 블럭을 획득하는 단계와,
    상기 어드레스 영역에 상기 재구성 데이타 블럭을 저장하는 단계
    를 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  7. 제6항에 있어서, 상기 어드레스 영역의 범위(range) 및 상기 어드레스 영역에 상기 재구성 데이타 블럭이 저장되어 있는지의 여부를 나타내는 관리 테이블을 준비하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  8. 제7항에 있어서, 상기 시스템이 고장난 상기 데이타 기억 장치에 기억된 데이타 블럭에 대한 판독 요구를 수신한 경우, 상기 관리 테이블을 참조하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  9. 제8항에 있어서, 상기 관리 테이블을 참조하여, 상기 어드레스 영역에 상기 재구성 데이타 블럭이 저장되어 있는지의 여부를 판단하는 단계와,
    상기 재구성 데이타 블럭이 저장되어 있는 경우에는, 상기 재구성 데이타 블럭을 외부로 출력하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  10. 제8항에 있어서, 상기 관리 테이블을 참조하여, 상기 어드레스 영역에 상기 재구성 데이타 블럭이 저장되어 있는지의 여부를 판단하는 단계와,
    상기 재구성 데이타 블럭이 저장되어 있지 않는 경우에는, 고장난 상기 데이타 기억 장치 이외의 상기 데이타 기억 장치에 기억된 상기 데이타 블럭 및 상기 어드레스 영역에 저장된 상기 패리티 데이타 블럭에 기초하여 재구성 데이타 블럭을 구하는 단계와,
    상기 재구성 데이타 블럭을 외부로 출력하는 단계와,
    상기 어드레스 영역에 상기 재구성 데이타 블럭을 저장하는 단계와,
    상기 관리 테이블을 갱신하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  11. 제6항 내지 제10항 중 어느 한 항에 있어서, 고장난 상기 데이타 기억 장치가 새로운 상기 데이타 기억 장치로 치환된 경우, 상기 어드레스 영역에 상기 패리티 데이타 블럭을 저장하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 재구성 방법.
  12. 패리티 데이타를 기억함으로써, 복수의 데이타 기억 수단 중 어느 것인가에 고장이 생긴 경우에도 그 고장난 데이타 기억 수단에 기억되어 있는 데이타를 재구성할 수 있는, 복수의 데이타 기억 수단을 갖는 데이타 기억 시스템(data storage system)에 있어서,
    데이타 및 패리티 데이타가 기억된 복수의 데이타 기억 수단과,
    상기 데이타 기억 수단에 접속된 데이타 버스(data bus)와,
    상기 데이타 버스에 접속되며, 어느 것인가의 상기 데이타 기억 수단에 기억된 상기 데이타를 재구성하기 위해 다른 상기 복수의 데이타 기억 수단에 기억된 상기 데이타 및 상기 패리티 데이타에 기초하여 재구성 데이타를 생성하는 연산 수단과,
    상기 데이타 기억 수단에 기억된 상기 패리티 데이타를 상기 재구성 데이타로 치환하여 기록하는 수단
    을 포함하는 것을 특징으로 하는 데이타 기억 시스템.
  13. 제12항에 있어서, 상기 데이타 기억 수단에 기억된 상기 패리티 데이타가 상기 재구성 데이타로 치환되고 있는지의 여부를 나타내는 관리 수단(management means)
    을 더 포함하는 것을 특징으로 하는 데이타 기억 시스템.
  14. 패리티 데이타를 기억함으로써, 데이타 기억 수단 중 어느 것인가에 고장이 생긴 경우에도 고장난 상기 데이타 기억 수단에 기억된 데이타를 재구성 할 수 있는, 복수의 데이타 기억 수단을 갖는 데이타 기억 시스템에 있어서,
    지정된 어드레스 영역에 패리티 데이타 블럭이 기억되어 있는 제1 데이타 기억 수단과,
    데이타 블럭이 기억되어 있는 적어도 하나의 제2 데이타 기억 수단과,
    어느 것인가의 상기 제2 데이타 기억 수단에 기억되어 있는 상기 데이타 블럭을 재구성하기 위해 상기 제1 데이타 기억 수단에 기억되어 있는 상기 패리티 블럭 및 나머지 상기 제2 데이타 기억 수단에 기억되어 있는 상기 데이타 블럭에 기초하여 재구성 데이타 블럭을 생성하는 연산 수단과,
    상기 어드레스 영역에 상기 재구성 데이타 블럭을 저장하는 수단
    을 포함하는 것을 특징으로 하는 데이타 기억 시스템.
  15. 제14항에 있어서, 상기 어드레스 영역의 범위 및 상기 어드레스 영역에 상기 재구성 데이타 블럭이 저장되어 있는지의 여부를 나타내는 관리 수단
    을 더 포함하는 것을 특징으로 하는 데이타 기억 시스템.
KR1019970708335A 1995-06-08 1995-06-08 데이타재구성방법및데이타기억시스템 KR100300836B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1995/001157 WO1996042083A1 (fr) 1995-06-08 1995-06-08 Methode de reconstruction de donnees et systeme de stockage de donnees

Publications (2)

Publication Number Publication Date
KR19990021861A KR19990021861A (ko) 1999-03-25
KR100300836B1 true KR100300836B1 (ko) 2001-09-03

Family

ID=14125995

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970708335A KR100300836B1 (ko) 1995-06-08 1995-06-08 데이타재구성방법및데이타기억시스템

Country Status (3)

Country Link
EP (1) EP0831484A1 (ko)
KR (1) KR100300836B1 (ko)
WO (1) WO1996042083A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2923702B2 (ja) 1991-04-01 1999-07-26 株式会社日立製作所 記憶装置及びそのデータ修復方法
JP5776436B2 (ja) 2011-08-22 2015-09-09 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849978A (en) * 1987-07-02 1989-07-18 International Business Machines Corporation Memory unit backup using checksum
JPH05314674A (ja) * 1991-04-01 1993-11-26 Hitachi Ltd 記憶装置の障害回復システム及びその方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849978A (en) * 1987-07-02 1989-07-18 International Business Machines Corporation Memory unit backup using checksum
JPH05314674A (ja) * 1991-04-01 1993-11-26 Hitachi Ltd 記憶装置の障害回復システム及びその方法

Also Published As

Publication number Publication date
KR19990021861A (ko) 1999-03-25
WO1996042083A1 (fr) 1996-12-27
EP0831484A1 (en) 1998-03-25

Similar Documents

Publication Publication Date Title
US7093158B2 (en) Data redundancy in a hot pluggable, large symmetric multi-processor system
US5579474A (en) Disk array system and its control method
KR960001748B1 (ko) 컴퓨터 시스템 동작방법과 컴퓨터 시스템용의 기억 장치 및 기억제어장치
US7206991B2 (en) Method, apparatus and program for migrating between striped storage and parity striped storage
US7069465B2 (en) Method and apparatus for reliable failover involving incomplete raid disk writes in a clustering system
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
US6430702B1 (en) Fault tolerant memory
KR100275900B1 (ko) 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
JP2912802B2 (ja) ディスクアレイ装置の故障対処方法および装置
US6912669B2 (en) Method and apparatus for maintaining cache coherency in a storage system
JP3304115B2 (ja) 構成可能な冗長アレイ記憶装置
US6442659B1 (en) Raid-type storage system and technique
US7308599B2 (en) Method and apparatus for data reconstruction after failure of a storage device in a storage array
US7600152B2 (en) Configuring cache memory from a storage controller
US6859888B2 (en) Data storage array apparatus storing error information without delay in data access, and method, program recording medium, and program for the same
US8112679B2 (en) Data reliability bit storage qualifier and logical unit metadata
US20030115437A1 (en) Disk array apparatus and data update method therein
JPH0642193B2 (ja) Dasdアレイのための更新記録方法及び装置
JP2000099282A (ja) ファイル管理システム
JPH0769873B2 (ja) コンピユータのためのメモリ装置及びメモリ構成方法
EP0303856A2 (en) Method and apparatus for maintaining duplex-paired devices by means of a dual copy function
KR100300836B1 (ko) 데이타재구성방법및데이타기억시스템
JP2001043031A (ja) 分散パリティ生成機能を備えたディスクアレイ制御装置
JP2006178926A (ja) 複数のオブジェクトベースのストレージ装置を使用したストレージ装置、システム、および方法
JP3155836B2 (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee