KR20030070346A - 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법 - Google Patents

레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법 Download PDF

Info

Publication number
KR20030070346A
KR20030070346A KR1020020009859A KR20020009859A KR20030070346A KR 20030070346 A KR20030070346 A KR 20030070346A KR 1020020009859 A KR1020020009859 A KR 1020020009859A KR 20020009859 A KR20020009859 A KR 20020009859A KR 20030070346 A KR20030070346 A KR 20030070346A
Authority
KR
South Korea
Prior art keywords
block
disk drive
data
disk
error
Prior art date
Application number
KR1020020009859A
Other languages
English (en)
Other versions
KR100463841B1 (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 KR10-2002-0009859A priority Critical patent/KR100463841B1/ko
Priority to US10/173,658 priority patent/US20030163757A1/en
Publication of KR20030070346A publication Critical patent/KR20030070346A/ko
Application granted granted Critical
Publication of KR100463841B1 publication Critical patent/KR100463841B1/ko

Links

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

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)

Abstract

본 발명은 레이드 서브 시스템에 관한 것으로, 특히 데이터 입출력을 위해 처음 접근하는 에러 디스크 드라이브의 블록에 대해 블록을 재생성하며, 재생성된 블록의 데이터를 예비 디스크 드라이브의 블록에 저장한 후에 복구 이미지에 블록의 복구를 알리는 회복 정보를 기록함으로써, 이후 복구된 블록에 대해 데이터 입출력 요구가 있을 때 에러 디스크 드라이브의 블록을 복구하기 위한 연산 과정을 거치지 않고 예비 디스크 드라이브의 블록을 이용하여 호스트 컴퓨터가 요구한 데이터를 입출력시킬 수 있음으로 에러 모드에서의 시스템의 응답 속도를 향상시킬 수 있고 연산에 따른 시스템의 부하를 감소시킬 수 있는 효과가 있다.
또한, 데이터 입출력 과정에서 에러 디스크 드라이브의 블록에 저장된 데이터를 복구할 수 있음으로써, 에러 디스크 드라이브의 복구 시점에서 복구 이미지의 회복 정보를 토대로 복구되지 않은 블록만 선택적으로 복구하기 때문에 복구에 따른 비용 및 시간을 절감할 수 있는 효과가 있다.

Description

레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서 데이터 입출력 및 복구 방법{RAID SUBSYSTEM AND DATA INPUT/OUTPUT AND REBUILDING METHOD IN DEGRADED MODE}
본 발명은 레이드 서브 시스템에 관한 것으로, 특히 데이터의 입출력 및 가용성을 향상시키기 위한 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서 데이터 입출력 및 복구 방법에 관한 것이다.
인터넷의 급속한 발달로 인한 데이터의 폭발적인 증가는 스토리지 업계에 많은 변화를 주었다. 스토리지 업계는 이러한 대용량 데이터에 대한 입출력 성능(I/O Performance), 신뢰성(reliability), 가용성(Availability) 및 스토로지의 관리(storage management)를 위해서 기존의 레이드(RAID : Redundant Arrays of Independent Disks)를 SAN(Storage Area Network) 환경으로 접목시키는데 관심이 고조되고 있다.
레이드는 다수의 디스크 드라이브로 구성된 디스크어레이에 데이터를 분산저장하여 입출력을 병렬로 수행함으로써 입출력을 빠르게 처리하여 데이터의 고성능 입출력을 보장하고, 간단한 패리티 정보를 이용하여 오류 발생 시에 데이터 복원을 가능하도록 신뢰성 및 고 가용성을 보장하는 수단이다.
이러한 레이드는 그 특성에 따라 6가지 레이드 레벨(레벨0∼레벨5)로 나누어져 있다. 6가지 레이드 레벨은 각 특성에 맞는 환경에 장단점을 가지고 있으며 여러 가지 응용 분야에 사용된다. 또한 각각의 레이드 레벨은 여러 종류의 데이터 저장 장치나 신뢰성 문제에 대한 해결책을 제공한다.
각 레이드 레벨 구조 중에서 특히 본 발명에 적용되는 레벨 5의 레이드 서브 시스템의 구조에 대한 설명은 도 8을 참조하여 설명하기로 한다.
도 8은 종래 기술에 따른 일반적인 레벨 5의 레이드 서브 시스템의 디스크어레이 구조에서 본 발명의 입출력 및 복구 방법을 지원하기 위한 예비디스크가 추가된 디스크어레이 구조를 도시한 블록 도이다.
레이드 레벨 5 구조를 적용한 디스크어레이는 데이터를 저장하는 5개의 디스크 드라이브(S1∼S5)와 하나의 예비 디스크 드라이브(SP) 구성되어 있다. 디스크 드라이브(S1∼S5)는 그 저장 영역이 n개의 블록 BLK0∼BLKn-1로 이루어져 있으며 단위 블록 크기는 스트라이핑 (striping) 사이즈라 불리워진다. 데이터는 디스크 드라이브(S1∼S5)의 첫 번째 블록 BLK0에 차례로 저장되고 첫 번째 블록 BLK0에 다 저장되면 두 번째 블록 BLK1에 차례로 저장된다. 즉, 데이터가 디스크어레이에 저장되는 순서는 다음과 같다. 디스크 드라이브(S1)의 첫 번째 블록 BLK0 → 디스크 드라이브(S2) BLK0 → ......... → 디스크 드라이브(S5)의 첫 번째 블록 BLK0 →디스크 드라이브(S1)의 두 번째 블록 BLK1 → 디스크 드라이브(S2)의 두 번째 블록 BLK1 → ..... ..... .... ..... ..... → 디스크 드라이브(S5)의 n 번째 블록 BLKn-1.
상기와 같은 배치 기법을 이용하여 패리티 데이터들은 디스크 드라이브 S1∼S5에 분산되어 저장된다.
예비 디스크 드라이브(SP)는 디스크어레이가 정상적으로 동작할 때 사용되지 않는다. 예비 디스크 드라이브(SP)는 정상적으로 동작시에 대기하고 있다가 디스크어레이의 특정 디스크 드라이브가 고장이 나면 고장난 디스크 드라이브를 교체하여 사용된다. 만약 디스크 드라이브 중에서 S1이 고장났다면 디스크어레이 컨트롤러는 나머지 디스크 드라이브(S2∼S5)의 데이터를 배타적 논리합(XOR : eXclusive OR)을 하여 디스크 드라이브(S1)의 데이터를 복원하고, 복원된 데이터를 대기하고 있는 예비 디스크 드라이브(SP)에 기록한다.
종래의 디스크어레이에 설치된 예비 디스크 드라이브(SP)는 단순히 디스크 드라이브(S2∼S5) 중에서 어느 하나에 에러가 발생했을 때 복구용으로 사용된다.
레이드 서브 시스템에서 오류(또는 에러)가 발생된 디스크 드라이브를 복구하는 방식으로는 예비 디스크(SP : Sparing Disk) 드라이브를 사용하는 것이 있는데, 그 종류로는 전용 예비 구조(dedicated sparing scheme), 분산형 예비 구조(distributed sparing scheme), 패리티 예비 구조(parity sparing scheme) 등이 있다.
전용 예비 구조는 디스크 에러 시에 여분의 디스크를 사용하여 즉각적으로디스크를 복구하는 방식으로 온라인 예비 디스크 방식이라고도 하는데, 이때 예비 디스크는 디스크 에러 발생 시에만 사용된다. 분산형 예비 구조와 패리티 예비 구조의 경우는 별도의 예비 디스크를 두지 않으며 레이드를 구성하는 디스크들에 복구를 위한 블록들이 분산되어져 있는 방식으로 이는 에러 발생 시에 하나의 특정 디스크에 대한 병목 현상을 방지하고 에러가 발생한 디스크를 빠르게 복구하기 위한 방식이다.
그러나, 상기와 같은 방법은 디스크에 에러가 발생했을 때 데이터를 복구하기 위한 것으로 디스크 에러 모드의 데이터 입력(또는 출력) 과정에 있어서 에러 디스크 드라이브의 블록 복구하기 위해 연산 과정이 필요함으로 데이터의 입출력에 서 디스크 성능을 보장하지 못하고, 연산 과정을 거쳐서 데이터를 입출력시킴으로써 입출력 응답 속도가 저하되는 문제점이 있다.
또한, 디스크어레이 중에서 에러 발생한 디스크 드라이브의 블록에 기록된 데이터를 복구할 때 에러 디스크의 모든 블록에 대해서 패리티 연산을 수행하여 데이터를 복구하기 때문에 시스템에 부하를 가중시켜 시스템의 성능을 저하시키는 문제점이 있다.
이러한 문제점을 해결하기 위해서 디스크 에러 모드에서 입출력의 성능과 가용성을 향상시키기 위한 기법으로, 디스크 에러 발생 시에 패리티 블록을 일반 데이터 블록으로 용도를 변경하는 방법이 있다.
그러나, 에러 발생된 디스크를 복구하는 시점에서는 디스크 전체 데이터의 복구를 위한 비용과 기존의 패리티 블록에 저장된 일반 데이터를 적절한 위치에 옮겨야 하는 문제점이 있다.
본 발명의 목적은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 디스크어레이에 하나의 에러 디스크 드라이브의 블록에 대한 회복 정보가 기록된 복구 이미지가 기록된 예비 디스크를 이용하여 디스크 에러(Degraded)모드에서의 데이터의 입출력 및 복구시키는 레이드 서브 시스템을 제공하고자 한다.
본 발명의 다른 목적은, 호스트 컴퓨터가 출력하고자 하는 데이터를 갖는 에러 디스크 드라이브의 블록을 재생성하여 예비 디스크 드라이브의 블록에 기록한 후에 예비 디스크 드라이브의 복구 이미지에 회복 정보를 기록하고 예비 디스크 드라이브의 블록을 이용하여 데이터를 출력하는 레이드 서브 시스템의 데이터 출력 방법을 제공하고자 한다.
본 발명의 또 다른 목적은, 에러 디스크 드라이브의 블록에 기록될 데이터와 정상 디스크 드라이브의 블록에 기록된 데이터의 연산을 통해 패리티 값을 산출하여 소정의 디스크 드라이브의 블록에 기록하고 에러 디스크 드라이브의 블록에 기록될 데이터를 예비 디스크 드라이브의 블록에 기록한 후에 복구 이미지에 에러 디스크 드라이브의 회복 정보를 기록하는 레이드 서브 시스템의 데이터 입력 방법을 제공하고자 한다.
본 발명의 또 다른 목적은, 에러 디스크 드라이브의 블록에 갖는 데이터를 예비 디스크 드라이브의 복구 이미지에 저장된 회복 정보를 이용하여 복구되지 않은 블록에 데이터만을 선택적으로 복구하는 레이드 서브 시스템의 데이터 복구 방법을 제공하고자 한다.
상기와 같은 목적을 달성하기 위하여 본 발명은, 다수의 디스크 드라이브로 구성된 디스크어레이에 데이터를 분산 저장하고 입출력을 병렬로 수행하는 레이드 서브 시스템에 있어서, 에러 발생된 상기 디스크 드라이브의 블록에 대한 회복 정보가 기록된 복구 이미지를 저장하고 있는 예비 디스크 드라이브와, 호스트 컴퓨터로부터 데이터 입출력 요청에 따라 상기 복구 이미지에 기록된 회복 정보를 검색하여 상기 에러 디스크 드라이브의 블록에 대한 회복 여부를 판단하며, 상기 블록의 회복 여부에 따라 상기 블록을 재생성하여 상기 예비 디스크 드라이브의 블록에 기록하고 상기 재생성된 블록에 대한 회복 정보를 상기 복구 이미지에 기록하는 디스크어레이 컨트롤러를 포함한다.
상기와 같은 다른 목적을 달성하기 위하여 본 발명은, 디스크어레이가, 다수의 디스크 드라이브와 에러 발생된 상기 디스크 드라이브의 블록에 대한 회복 정보가 기록된 복구 이미지를 저장하고 있는 예비 디스크 드라이브로 구성된 레이드 서브 시스템에서 하나의 상기 디스크 드라이브에 에러가 발생했을 때 데이터를 출력하는 방법에 있어서, 호스트 컴퓨터의 상기 디스크어레이에 데이터 출력 요청에 따라 상기 복구 이미지를 검사하여 상기 데이터가 기록된 에러 디스크 드라이브의 블록에 대한 회복 정보가 존재하는지의 여부를 판단하는 제 1 단계와, 상기 판단 결과, 상기 회복 정보가 존재하지 않을 때 상기 에러 디스크 드라이브의 블록을 재생성하는 제 2 단계와, 상기 재생성된 블록의 데이터를 상기 예비 디스크 드라이브의 블록에 기록하는 제 3 단계와, 상기 제 3 단계 후에, 상기 에러 디스크 드라이브의 블록에 대한 회복 정보를 상기 복구 이미지에 기록하는 제 4 단계와, 상기 복구된 데이터를 이용하여 상기 호스트 컴퓨터가 출력 요구한 데이터를 상기 호스트 컴퓨터에 출력하는 제 5 단계를 포함한다.
상기와 같은 본 발명의 또 다른 목적을 달성하기 위한 본 발명은, 디스크어레이가, 다수의 디스크 드라이브와 에러 발생된 상기 디스크 드라이브의 블록에 대한 회복 정보가 기록된 복구 이미지를 저장하고 있는 예비 디스크 드라이브로 구성된 레이드 서브 시스템에서 하나의 상기 디스크 드라이브에 에러가 발생했을 때 데이터를 입력하는 방법에 있어서, 호스트 컴퓨터의 상기 디스크어레이에 데이터 입력 요청에 따라 상기 복구 이미지를 검사하여 상기 에러 디스크 드라이브의 블록에 대한 회복 정보가 존재하는지의 여부를 판단하는 제 1 단계와, 상기 판단 결과, 상기 회복 정보가 존재하지 않을 때 상기 에러 디스크 드라이브의 블록에 기록되어질 데이터와 그 외의 정상 디스크 드라이브에 저장된 데이터들의 패리티 연산을 통해 생성된 패리티 값을 상기 디스크 드라이브의 패리티 블록에 기록하는 제 2 단계와, 상기 에러 디스크 드라이브의 블록에 기록될 데이터를 상기 예비 디스크 드라이브의 블록에 기록하는 제 3 단계와, 상기 제 3 단계 후에, 상기 에러 디스크 드라이브의 블록에 대한 회복 정보를 상기 복구 이미지에 기록하는 제 4 단계를 포함한다.
상기와 같은 본 발명의 또 다른 목적을 달성하기 위한 본 발명은, 디스크어레이가, 다수의 디스크 드라이브와 에러 발생된 상기 디스크 드라이브의 블록에 대한 회복 정보가 기록된 복구 이미지를 저장하고 있는 예비 디스크 드라이브로 구성된 레이드 서브 시스템에서 하나의 상기 디스크 드라이브에 에러가 발생했을 때 데이터를 복구하는 방법에 있어서, 호스트 컴퓨터의 상기 에러 디스크 드라이버에 기록된 데이터 복구 요청에 따라 상기 복구 이미지에 기록된 회복 정보를 검사하여 상기 복구되지 않은 블록이 존재하는지의 여부를 판단하는 제 1 단계와, 상기 판단 결과, 상기 복구되지 않은 블록이 존재할 때 상기 에러 디스크 드라이브의 블록을 복구하기 위하여 정상 디스크 드라이브의 블록에 기록된 데이터들에 대한 패리티 연산을 통하여 상기 에러 디스크 드라이브의 블록을 복구하는 제 2 단계와, 상기 복구된 에러 디스크 드라이브 블록의 데이터를 상기 예비 디스크 드라이브의 블록에 저장하는 제 3 단계를 포함한다.
도 1은 본 발명에 따른 레벨 5의 레이드 서브 시스템을 나타내는 블록 도이고,
도 2는 본 발명에 따른 레이드 서브 시스템을 이용한 데이터 출력 과정을 설명하기 위한 예시 도이고,
도 3은 본 발명에 따른 레이드 서브 시스템을 이용한 데이터 출력 과정을 설명한 흐름 도이고,
도 4는 본 발명에 따른 레이드 서브 시스템을 이용한 데이터 입력 과정을 설명하기 위한 예시 도이고,
도 5는 본 발명에 따른 레이드 서브 시스템을 이용한 데이터 입력 과정을 설명한 흐름 도이고,
도 6은 본 발명에 따른 레이드 서브 시스템을 이용한 데이터 복구 과정을 설명하기 위한 예시 도이고,
도 7은 본 발명에 따른 레이드 서브 시스템을 이용한 데이터 복구 과정을 설명한 흐름 도이고,
도 8은 종래 기술에 따른 레벨 5의 레이드 서브 시스템을 개략적으로 나타내는 블록 도이다.
<도면의 주요부분에 대한 부호의 설명>
100 : 호스트 컴퓨터 200 : 디스크어레이 컨트롤러
210 : 디스크어레이 211 ∼ 214 : 디스크 드라이브
215 : 예비 디스크 216 : 스트라이프 유닛
220 : 복구 이미지
본 발명의 실시 예는 다수개가 존재할 수 있으며, 이하에서 첨부한 도면을 참조하여 바람직한 실시 예에 대하여 상세히 설명하기로 한다.
또한 하기에 설명에서 디스크어레이를 구성하는 디스크 드라이브의 개수 등과 같은 많은 특정 상세들이 본 발명의 보다 전반적인 이해를 돕기 제공하기 위해 나타나 있다. 이들 특정 상세들 없이 본 발명이 실시될 수 있다는 것은 이 기술 분야에서 통상의 지식을 숙련자에게는 자명할 것이다.
본 발명의 실시 예에서 다수의 디스크로 구성된 디스크어레이의 구조는 레이드 레벨 5의 구조로 한다.
도 1은 본 발명에 따른 레벨 5의 레이드 서브 시스템을 나타내는 블록 도로써, 레이드 서브 시스템은 버스를 통해 호스트 단말기(100)와 연결되며 버스를 통해 디스크어레이(210)와 연결되는 디스크어레이 컨트롤러(200), 다수의 디스크 드라이브(211 ∼ 214)와 예비 디스크 드라이브(215)를 포함하는 디스크어레이(210)로 구성된다. 디스크어레이 컨트롤러(200)는 디스크어레이(210)에 있는 디스크 드라이브(211∼214)에 데이터를 분산 저장하며 입출력을 병렬로 처리하고, 에러 발생된 디스크 드라이브에 입출력될 데이터를 예비 디스크 드라이브(215)를 통해 입출력 처리한다.
각각의 디스크 드라이브(211∼214)는 데이터가 저장되어 있는 블록 단위인 다수의 데이터 유닛(d), 패리티가 저장된 블록들의 단위인 다수의 패리티 유닛(p)을 포함하며, 데이터 유닛(d)과 패리티 유닛(p)의 크기는 동일하다. 각각 디스크 드라이브(211∼214)들의 동일 블록들에 위치한 데이터 유닛(d)들과 패리티 유닛(p)의 집합을 스트라이프(Stripe) 유닛(216)이라고 한다.
예비 디스크 드라이브(215)에는 예비 디스크 블록들의 회복 여부를 체크하는 S.D(Sparing Disk) 복원 이미지(Recovery Bitmap)(220)를 포함하며, 호스트 컴퓨터(100)의 데이터 입출력 요청에 따라 에러 발생된 디스크 드라이브의 블록을 복원시키고, 복원된 블록의 데이터를 예비디스크의 블록에 저장한 후 에러 디스크 드라이브의 해당 블록에 대해 회복을 알리는 회복 정보를 복원 이미지(220)에 기록한다.
디스크어레이 컨트롤러(200)는 호스트 컴퓨터(100)로부터 데이터 입출력 및 복구 요청에 따라 복구 이미지에 기록된 회복 정보를 검색하여 에러 디스크 드라이브의 블록에 대한 회복 여부를 판단하며, 판단 결과에 의거하여 에러 디스크 드라이브의 블록을 재생성하고, 재생성된 블록의 데이터를 예비 디스크 드라이브의 블록에 기록함과 아울러 에러 디스크 드라이브의 블록에 대한 회복 정보를 복구 이미지에 기록한다.
예비 디스크 드라이브(215)에 저장된 데이터들은 호스트 컴퓨터(100)의 압출력 요청에 따라 인출되며, 인출된 데이터와 에러가 없는 디스크 드라이브에서 인출된 데이터는 디스크어레이 컨트롤러(200)에 의해서 호스트 컴퓨터(100)에 전송될 것이다.
디스크어레이 컨트롤러(200)의 예비 디스크 드라이브(215) 제어는 초기화 제어모드 부분과 정상 제어 모드 부분 그리고 디스크 에러 발생 시에 데이터를 복구하기 위한 데이터 복원 제어 모드 부분으로 이루어지는데, 초기화 제어 모드와 정상 제어 모드 부분은 일반적인 레이드 레벨 5에서의 동작과 동일함으로 본 발명에서는 레이드 레벨 5의 하나의 디스크 드라이브 에러 모드(degraded mode)에 대해서만 설명하기로 한다.
도 2는 본 발명에 따른 레이드 레벨 5의 디스크 에러 모드에서 데이터 출력 과정을 설명하기 위한 예시 도이고, 도 3은 본 발명에 따른 레이드 서브 시스템의 데이터 출력 과정을 나타내는 흐름 도이다.
먼저, 디스크 드라이브(212)가 에러 디스크 드라이브이고 호스트 컴퓨터(100)가 디스크어레이(210)의 디스크 드라이브(212) 데이터 유닛(d1) 블록에 대한 입력을 요청한 경우를 예로 들어 설명하기로 한다.
디스크어레이 컨트롤러(200)는 호스트 컴퓨터(100)로부터 데이터 입력 요청에 따라 입력 연산을 수행하기 전에 예비 디스크 드라이브(215)의 복원 이미지(220)에 해당 블록(d1)에 대한 회복 정보가 기록되어 있는지의 여부를 판단한다(S301, S302, S303).
단계 303의 판단 결과, 디스크어레이 컨트롤러(200)는 복원 이미지(220)에 데이터 유닛(d1)에 대한 회복 정보가 기록되어 있지 않았을 때 에러 디스크 드라이브(212)의 블록인 데이터 유닛(d1)의 재생성을 위하여 블록(d1)이 소속된 스트라이프 유닛(216)인 디스크 드라이브(211, 213, 214)의 데이터 및 패리티 유닛(d0, d2, p0)을 읽어들이고, 읽어들인 데이터 및 패리티 유닛(d0, d2, p0)을 이용하여 패리티 연산을 수행한 후에 손상된 d1 블록을 재생성한다(S304).
디스크어레이 컨트롤러(200)는 d1 블록을 재생성한 후에 재생성된 d1 데이터를 예비 디스크 드라이브(215)의 동일 블록(s0)(에러 디스크 드라이브(212)의 블록(d1)과 스트라이프 유닛인 블록)에 기록한 후에 복원 이미지(220)에 에러 디스크 드라이브(212)의 블록(d1)에 저장된 데이터를 예비 디스크 드라이브(215)에 복구하였음을 알리는 회복 정보를 기록한 후에 예비 디스크 드라이브(215)와 에러가 없는 디스크 드라이브(211, 213, 214)를 이용하여 데이터를 읽어들이고, 읽어들인 데이터를 호스트 컴퓨터(100)에 제공한다(S305, S306, 308).
단계 303의 판단 결과, 디스크어레이 컨트롤러(200)는 복원 이미지(220)에 에러 디스크 드라이브(212)의 데이터 유닛(d1)에 대한 회복 정보가 기록되어 있을 때 예비 디스크 드라이브(215)의 블록(s0)에 데이터 유닛(d1)이 복구되었음을 판단하고, d1 블록과 스트라이프 유닛(216)인 디스크 드라이브(211, 213, 214)의 데이터 및 패리티 유닛(d0, d2, p0)과 예비 디스크 드라이브(215)의 블록(s0)에 복구된 데이터 유닛(d1)을 이용하여 호스트 컴퓨터(100)가 요청한 데이터를 읽어들이고, 읽어들인 데이터를 호스트 컴퓨터(100)에 출력한다(S307, S308).
도 4는 본 발명에 따른 레이드 서브 시스템의 데이터 입력 과정을 설명하기 위한 예시 도이고, 도 5는 본 발명에 따른 레이드 서브 시스템을 이용한 데이터 입력(또는 저장)하는 과정을 나타내는 흐름 도이다.
호스트 컴퓨터(100)가 에러 디스크 드라이브(212)의 d5 블록에 데이터 입력을 요청한 경우를 예를 들어 설명하기로 한다.
디스크어레이 컨트롤러(200)는 호스트 컴퓨터(100)의 데이터 입력 요청에 따라 입력 연산을 수행하기 전에 에러 디스크 드라이브(212)의 데이터 유닛(d5)에 대한 회복 정보가 복원 이미지(220)에 기록되어 있는지의 여부를 판단한다(S350, S351, S352).
단계 352의 판단 결과, 디스크어레이 컨트롤러(200)는 복원 이미지(220)에 데이터 유닛(d5)의 회복 정보가 기록되어 있지 않은 경우, 패리티 블록(p1)에 기록될 데이터를 계산하기 위해서 d5 블록과 동일한 스트라이프 유닛(216)에 소속된 데이터 유닛(d4, d6)에 기록된 데이터들과 d5에 입력될 데이터를 이용하여 패리티 계산을 수행하고, 계산된 패리티 값을 패리티 블록(p1)에 기록한다(S353, S354).
디스크어레이 컨트롤러(200)는 패리티 블록(p1)에 패리티 값을 기록한 후에 에러 디스크 드라이브(212)의 데이터 유닛(d5)에 입력할 데이터를 예비 디스크 드라이브(215)에 저장한다. 이때 에러 디스크 드라이브(212)의 데이터 유닛(d5)에입력할 데이터가 저장되는 예비 디스크 드라이브(215)의 블록은 데이터 유닛(d5)의 블록과 동일한 스트라이프 유닛(216)인 블록(s1)이다(S355).
디스크어레이 컨트롤러(200)는 예비 디스크 드라이브(215)의 블록(s1)에 데이터를 기록한 후에 복원 이미지(220)에 에러 디스크 드라이브(212)의 데이터 유닛(d5)에 입력하고자 하는 데이터를 예비 디스크 드라이브(215)에 기록하였음을 알리는 회복 정보를 기록한다(S356).
단계 352의 판단 결과, 디스크어레이 컨트롤러(200)는 복원 이미지(220)에 데이터 유닛(d5)의 회복 정보가 기록되어 있는 경우, 패리티 블록(p1)에 기록될 패리티 값을 계산하기 위해서 d5 블록과 동일한 스트라이프 유닛(216)에 소속된 데이터 유닛(d4, d6)에 기록된 데이터들과 블록(d5)에 입력될 데이터를 이용하여 패리티 계산을 수행하고, 계산된 패리티 값을 패리티 블록(p1)에 기록한다. 이 후 에러 디스크 드라이브(215)의 데이터 유닛(d5)에 기록될 데이터를 예비 디스크 드라이브(215)의 데이터 유닛(d5)과 동일한 블록에 기록한다(S357).
상기와 같은 방법으로 에러 디스크 드라이브 대신에 예비 디스크 드라이브(215)에 데이터를 입력하고 기록된 데이터를 읽어들임으로써, 호스트 컴퓨터(100)가 에러 모드(Degraded mode)에서 에러 디스크 드라이브에 대한 두 번째 입출력 요청부터는 임의의 블록에 대해 처음 접근할 때에의 연산 과정을 통해 생성된 복구 이미지(220)의 회복 정보를 토대로 정상 모드와 동일한 방법으로 데이터를 입출력할 수 있다.
도 6은 본 발명에 따른 레이드 서브 시스템의 에러 디스크 드라이브에 저장된 데이터를 복구하는 과정을 설명하기 위한 예시 도이고, 도 7은 본 발명에 따른 레이드 서브 시스템의 에러 디스크 드라이브에 저장된 데이터를 복구하는 과정을 나타내는 흐름 도이다.
도 6에 도시된 바와 같이, 예비 디스크 드라이브(215)의 블록 s0, s1 및 s4는 에러 디스크 드라이브(212)에 대해서 이전에 입출력 요청이 발생하였던 블록들이며, 해당 블록들에는 재생성된 정상 데이터들이 복구되어 있고, 복원 이미지(220)에는 에러 디스크 드라이브(212)의 해당 블록에 데이터가 재생성되었음을 나타내는 회복 정보가 기록되어 있다.
도 7에 도시된 바와 같이, 디스크어레이 컨트롤러(200)는 호스트 컴퓨터(100)로부터의 디스크 복구 요구에 따라 복원 이미지(220)에 기록된 회복 정보를 검색하여 에러 디스크 드라이브(212)에 복구되지 않은 블록이 있는지의 여부를 판단한다(S400, S401, S403).
단계 403의 판단 결과, 디스크어레이 컨트롤러(200)는 복구되지 않은 블록이 존재하면(예를 들면, s2), 해당 블록(s2)이 소속된 스트라이프 유닛(216)의 데이터(d7, d8, d9)의 연산을 통해 에러 디스크 드라이브(212)의 블록(p2)에 기록된 데이터를 복구하고, 복구된 데이터를 예비 디스크 드라이브(215)의 블록(s2)에 기록한다(S403, S404). 즉, 예비 디스크(215)의 블록(s2)에는 s2/p2가 기록된다.
이후, 에러 디스크(212)의 블록(p2)이 복구되었음을 표시하기 위해서 복원 이미지(220)에 블록(p2)에 대한 회복 정보를 기록한다(S405).
상기와 복구 과정은 에러 디스크 드라이브(212)에 복구되지 않은 블록이 없을 때까지 계속해서 반복하여 에러 디스크 드라이브(212)의 복구되지 않은 블록들을 복구한다.
이상 설명한 바와 같이, 데이터 입출력을 위해 처음 접근하는 에러 디스크 드라이브의 블록에 대해 블록을 재생성하며, 재생성된 블록의 데이터를 예비 디스크 드라이브의 블록에 저장한 후에 복구 이미지에 블록의 복구를 알리는 회복 정보를 기록함으로써, 이후 복구된 블록에 대해 데이터 입출력 요구가 있을 때 에러 디스크 드라이브의 블록을 복구하기 위한 연산 과정을 거치지 않고 예비 디스크 드라이브의 블록을 이용하여 호스트 컴퓨터가 요구한 데이터를 입출력시킬 수 있음으로 에러 모드에서의 시스템의 응답 속도를 향상시킬 수 있고 연산에 따른 시스템의 부하를 감소시킬 수 있는 효과가 있다.
또한, 데이터 입출력 과정에서 에러 디스크 드라이브의 블록에 저장된 데이터를 복구할 수 있음으로써, 에러 디스크 드라이브의 복구 시점에서 복구 이미지의 회복 정보를 토대로 복구되지 않은 블록만 선택적으로 복구하기 때문에 복구에 따른 비용 및 시간을 절감할 수 있는 효과가 있다.

Claims (7)

  1. 다수의 디스크 드라이브로 구성된 디스크어레이에 데이터를 분산 저장하고 입출력을 병렬로 수행하는 레이드 서브 시스템에 있어서,
    에러 발생된 상기 디스크 드라이브의 블록에 대한 회복 정보가 기록된 복구 이미지를 저장하고 있는 예비 디스크 드라이브와,
    호스트 컴퓨터로부터 데이터 입출력 요청에 따라 상기 복구 이미지에 기록된 회복 정보를 검색하여 상기 에러 디스크 드라이브의 블록에 대한 회복 여부를 판단하며, 상기 블록의 회복 여부에 따라 상기 블록을 재생성하여 상기 예비 디스크 드라이브의 블록에 기록하고 상기 재생성된 블록에 대한 회복 정보를 상기 복구 이미지에 기록하는 디스크어레이 컨트롤러를 포함하는 것을 특징으로 하는 레이드 서브 시스템.
  2. 제 1 항에 있어서,
    상기 디스크어레이 컨트롤러는,
    상기 호스트 컴퓨터의 상기 데이터의 복구 요청에 따라 상기 복구 이미지에 기록된 상기 에러 디스크 드라이브의 블록에 대한 회복 정보 유무에 따라 선택적으로 상기 데이터를 복구하는 레이드 서브 시스템.
  3. 디스크어레이가, 다수의 디스크 드라이브와 에러 발생된 상기 디스크 드라이브의 블록에 대한 회복 정보가 기록된 복구 이미지를 저장하고 있는 예비 디스크 드라이브로 구성된 레이드 서브 시스템에서 하나의 상기 디스크 드라이브에 에러가 발생했을 때 데이터를 출력하는 방법에 있어서,
    호스트 컴퓨터의 상기 디스크어레이에 데이터 출력 요청에 따라 상기 복구 이미지를 검사하여 상기 데이터가 기록된 에러 디스크 드라이브의 블록에 대한 회복 정보가 존재하는지의 여부를 판단하는 제 1 단계와,
    상기 판단 결과, 상기 회복 정보가 존재하지 않을 때 상기 에러 디스크 드라이브의 블록을 재생성하는 제 2 단계와,
    상기 재생성된 블록의 데이터를 상기 예비 디스크 드라이브의 블록에 기록하는 제 3 단계와,
    상기 제 3 단계 후에, 상기 에러 디스크 드라이브의 블록에 대한 회복 정보를 상기 복구 이미지에 기록하는 제 4 단계와,
    상기 복구된 데이터를 이용하여 상기 호스트 컴퓨터가 출력 요구한 데이터를 상기 호스트 컴퓨터에 출력하는 제 5 단계를 포함하는 것을 특징으로 하는 레이드 서브 시스템의 데이터 출력 방법.
  4. 제 3 항에 있어서,
    상기 제 1 단계의 판단 결과 상기 에러 디스크 드라이브의 블록에 대한 회복 정보가 상기 복구 이미지에 존재할 때 상기 예비 디스크 드라이브의 블록과 상기 에러가 없는 디스크 드라이브의 블록으로부터 데이터를 인출하여 상기 호스트 컴퓨터에 제공하는 것을 특징으로 하는 레이드 서브 시스템의 데이터 출력 방법.
  5. 디스크어레이가, 다수의 디스크 드라이브와 에러 발생된 상기 디스크 드라이브의 블록에 대한 회복 정보가 기록된 복구 이미지를 저장하고 있는 예비 디스크 드라이브로 구성된 레이드 서브 시스템에서 하나의 상기 디스크 드라이브에 에러가 발생했을 때 데이터를 입력하는 방법에 있어서,
    호스트 컴퓨터의 상기 디스크어레이에 데이터 입력 요청에 따라 상기 복구 이미지를 검사하여 상기 에러 디스크 드라이브의 블록에 대한 회복 정보가 존재하는지의 여부를 판단하는 제 1 단계와,
    상기 판단 결과, 상기 회복 정보가 존재하지 않을 때 상기 에러 디스크 드라이브의 블록에 기록되어질 데이터와 그 외의 정상 디스크 드라이브에 저장된 데이터들의 패리티 연산을 통해 생성된 패리티 값을 상기 디스크 드라이브의 패리티 블록에 기록하는 제 2 단계와,
    상기 에러 디스크 드라이브의 블록에 기록될 데이터를 상기 예비 디스크 드라이브의 블록에 기록하는 제 3 단계와,
    상기 제 3 단계 후에, 상기 에러 디스크 드라이브의 블록에 대한 회복 정보를 상기 복구 이미지에 기록하는 제 4 단계를 포함하는 것을 특징으로 하는 레이드 서브 시스템의 데이터 입력 방법.
  6. 제 5 항에 있어서,
    상기 제 1 단계의 판단 결과, 상기 복구 이미지에 상기 에러 디스크 드라이브의 블록에 대한 회복 정보가 존재할 때 상기 예비 디스크 드라이브의 블록에 상기 호스트 컴퓨터가 입력 요청한 데이터를 저장하는 것을 특징으로 하는 레이드 서브 시스템의 데이터 입력 방법.
  7. 디스크어레이가, 다수의 디스크 드라이브와 에러 발생된 상기 디스크 드라이브의 블록에 대한 회복 정보가 기록된 복구 이미지를 저장하고 있는 예비 디스크 드라이브로 구성된 레이드 서브 시스템에서 하나의 상기 디스크 드라이브에 에러가 발생했을 때 데이터를 복구하는 방법에 있어서,
    호스트 컴퓨터의 상기 에러 디스크 드라이버에 기록된 데이터 복구 요청에 따라 상기 복구 이미지에 기록된 회복 정보를 검사하여 상기 복구되지 않은 블록이 존재하는지의 여부를 판단하는 제 1 단계와,
    상기 판단 결과, 상기 복구되지 않은 블록이 존재할 때 상기 에러 디스크 드라이브의 블록을 복구하기 위하여 정상 디스크 드라이브의 블록에 기록된 데이터들에 대한 패리티 연산을 통하여 상기 에러 디스크 드라이브의 블록을 복구하는 제 2 단계와,
    상기 복구된 에러 디스크 드라이브 블록의 데이터를 상기 예비 디스크 드라이브의 블록에 저장하는 제 3 단계를 포함하는 것을 특징으로 하는 레이드 서브 시스템의 데이터 복구 방법.
KR10-2002-0009859A 2002-02-25 2002-02-25 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법 KR100463841B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0009859A KR100463841B1 (ko) 2002-02-25 2002-02-25 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법
US10/173,658 US20030163757A1 (en) 2002-02-25 2002-06-19 RAID subsystem and data input/output and recovery method in disk error mode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0009859A KR100463841B1 (ko) 2002-02-25 2002-02-25 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법

Publications (2)

Publication Number Publication Date
KR20030070346A true KR20030070346A (ko) 2003-08-30
KR100463841B1 KR100463841B1 (ko) 2004-12-29

Family

ID=27751937

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0009859A KR100463841B1 (ko) 2002-02-25 2002-02-25 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법

Country Status (2)

Country Link
US (1) US20030163757A1 (ko)
KR (1) KR100463841B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030073982A (ko) * 2002-03-14 2003-09-19 한국전자통신연구원 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법
KR100779077B1 (ko) * 2005-12-08 2007-11-27 한국전자통신연구원 균형적인 객체 분산 저장 방법 및 이를 위한 시스템
US7664981B2 (en) 2004-07-22 2010-02-16 Samsung Electronics Co., Ltd. Method of restoring source data of hard disk drive and method of reading system information thereof

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103716B1 (en) * 2003-06-26 2006-09-05 Adaptec, Inc. RAID 6 disk array with prime number minus one disks
US7149847B2 (en) * 2003-06-26 2006-12-12 Adaptec, Inc. RAID 6 disk array architectures
US8301809B2 (en) * 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
US20080256397A1 (en) * 2004-09-22 2008-10-16 Xyratex Technology Limited System and Method for Network Performance Monitoring and Predictive Failure Analysis
US7694171B2 (en) * 2006-11-30 2010-04-06 Lsi Corporation Raid5 error recovery logic
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
GB2504956A (en) 2012-08-14 2014-02-19 Ibm Management of RAID error recovery procedures and configuration
US10481979B2 (en) * 2017-09-28 2019-11-19 Intel Corporation Storage system, computing system, and methods thereof

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375128A (en) * 1990-10-18 1994-12-20 Ibm Corporation (International Business Machines Corporation) Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders
JP2603757B2 (ja) * 1990-11-30 1997-04-23 富士通株式会社 アレ−ディスク装置の制御方法
US5418925A (en) * 1992-10-23 1995-05-23 At&T Global Information Solutions Company Fast write I/O handling in a disk array using spare drive for buffering
US5487160A (en) * 1992-12-04 1996-01-23 At&T Global Information Solutions Company Concurrent image backup for disk storage system
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
JPH0916343A (ja) * 1995-06-30 1997-01-17 Toshiba Corp ディスクドライブシステム
KR100275900B1 (ko) * 1996-09-21 2000-12-15 윤종용 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
KR19980047273A (ko) * 1996-12-14 1998-09-15 양승택 레이드 레벨 5 시스템에서 캐쉬 관리 방법
JPH10326220A (ja) * 1997-05-27 1998-12-08 Toshiba Corp ファイルシステムおよびファイル管理方法
US6223252B1 (en) * 1998-05-04 2001-04-24 International Business Machines Corporation Hot spare light weight mirror for raid system
JP2000276308A (ja) * 1999-03-29 2000-10-06 Toshiba Corp ディスクサブシステム及びディスクサブシステムにおけるデータ復元方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030073982A (ko) * 2002-03-14 2003-09-19 한국전자통신연구원 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법
US7664981B2 (en) 2004-07-22 2010-02-16 Samsung Electronics Co., Ltd. Method of restoring source data of hard disk drive and method of reading system information thereof
KR100779077B1 (ko) * 2005-12-08 2007-11-27 한국전자통신연구원 균형적인 객체 분산 저장 방법 및 이를 위한 시스템

Also Published As

Publication number Publication date
KR100463841B1 (ko) 2004-12-29
US20030163757A1 (en) 2003-08-28

Similar Documents

Publication Publication Date Title
JP3742494B2 (ja) 大容量記憶装置
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
JP3177242B2 (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US7228381B2 (en) Storage system using fast storage device for storing redundant data
US20020169996A1 (en) Method and apparatus for providing write recovery of faulty data in a non-redundant raid system
EP0768605A2 (en) Reconstructing data blocks in a RAID array data storage system having storage device metadata and RAIDset metada
US20060117216A1 (en) Program, storage control method, and storage system
JPWO2006123416A1 (ja) ディスク故障復旧方法及びディスクアレイ装置
US7694171B2 (en) Raid5 error recovery logic
KR100208801B1 (ko) 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법
US5933592A (en) Promoting device level error to raidset level error to restore redundacy in a raid array data storage system
US7818524B2 (en) Data migration systems and methods for independent storage device expansion and adaptation
JP2000207136A (ja) 複数ドライブ故障トレラントraidアルゴリズム
KR100463841B1 (ko) 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법
US20070101188A1 (en) Method for establishing stable storage mechanism
JP2005004753A (ja) データのバージョンチェックを行う方法及び装置
US7174476B2 (en) Methods and structure for improved fault tolerance during initialization of a RAID logical unit
JP3699473B2 (ja) ディスクアレイ装置
JP2005166016A (ja) ディスクアレイ装置
JP2004164675A (ja) ディスクアレイ装置
KR19980047273A (ko) 레이드 레벨 5 시스템에서 캐쉬 관리 방법
JPH08286844A (ja) パリティ生成制御方法およびディスク制御装置
WO2020231553A1 (en) Efficient recovery of resilient spaces
JPH1124849A (ja) 障害回復方法および装置
JPH0744331A (ja) ディスクアレイ装置およびその制御方法

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee