KR20030073982A - 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법 - Google Patents

레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법 Download PDF

Info

Publication number
KR20030073982A
KR20030073982A KR1020020013801A KR20020013801A KR20030073982A KR 20030073982 A KR20030073982 A KR 20030073982A KR 1020020013801 A KR1020020013801 A KR 1020020013801A KR 20020013801 A KR20020013801 A KR 20020013801A KR 20030073982 A KR20030073982 A KR 20030073982A
Authority
KR
South Korea
Prior art keywords
data
disk
error
disks
consistency
Prior art date
Application number
KR1020020013801A
Other languages
English (en)
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 KR1020020013801A priority Critical patent/KR20030073982A/ko
Priority to US10/175,099 priority patent/US6754770B2/en
Publication of KR20030073982A publication Critical patent/KR20030073982A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller

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)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법에 관한 것으로서, 임의의 대상 디스크를 먼저 선정한 후에 선택된 디스크에 대한 읽기 연산을 수행하는 단계와; 읽기 에러 핸들링을 수행하여 선택된 대상 디스크의 읽기 연산에서 에러가 발생하면 나머지 디스크들에 대한 읽기 연산이 성공할 때까지 읽기 에러 핸들링을 반복하는 단계; 읽기 연산이 모두 성공하면 읽기 에러 핸들링은 종료하고, 읽기 연산이 실패하면 디스크에 에러를 반환하고 종료하는 단계; 디스크들에 대한 쓰기 연산을 수행하는 단계; 일시적 에러 핸들링을 수행하여 중복된 데이터를 갖는 디스크들 사이에 데이터의 일관성을 유지하고 일시적 에러를 복구하는 단계; 및 영구적 에러 핸들링을 수행하여 중복된 데이터를 갖는 디스크들 사이에 데이터의 일관성을 유지하고 영구적 에러를 복구하는 단계로 이루어지며,
이에 따라서, 데이터에 대한 효율적인 고 가용성의 특징을 제공하고, 적은 비용으로 중복 데이터의 일관성을 보장하고 특정 디스크의 오류 시에도 올바른 일관성 정보를 유지할 수 있다.

Description

레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법 { COHERENCE PRESERVATION METHOD OF DUPLICATED DATA IN RAID SUBSYSTEMS }
본 발명은 레이드 서브 시스템에 관한 것이며, 보다 상세히는 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법에 관한 것이다.
일반적으로 레이드(RAID; Redundant array of inexpensive disks) 서브 시스템은 여러 개의 물리적 디바이스를 하나의 논리적 디바이스로 인식할 수 있도록 함으로써 스토리지 관리의 효율성을 제공하고, 레이드 레벨(레이드0∼레이드9)에 따라서 고성능 데이터 입출력과 결함을 허용하는 고 가용성의 특징을 지원한다.
상기 레이드 서브 시스템은 다양한 레이드 레벨을 지원하여 다수의 디스크 드라이브로 구성된 디스크 어레이에서 데이터를 중복 저장하고 입출력을 병렬로 수행하며, 각각의 레이드 레벨에서는 오류 발생 시 시스템의 서비스가 중단됨이 없이 데이터의 가용성을 지원하고 오류 데이터의 빠른 복구가 가능한 효율적인 방법이 요구된다.
예컨대, 레이드 레벨1에 해당하는 디스크 미러링(mirroring) 방식의 레이드1은 서로 다른 여러 개의 디스크에 동일한 데이터를 중복 저장함으로써 데이터의 가용성 및 신뢰성을 향상시키고 읽기 연산에 대하여 여러 디스크의 중복 데이터로 부하균등을 수행하는 레이드 방식이며, 상기 레이드1을 지원하는 종래의 레이드 서브 시스템에서 발생하는 일시적 에러와 영구적 에러는 중복 데이터 사이에 일관성의 문제를 유발시킨다.
특히, 일시적인 에러는 여러 가지 상황으로 인하여 디스크를 일시적으로 접근할 수 없는 상태에 발생하는 것으로 디스크 사이의 데이터 일관성의 문제나 불일치가 발생할 수 있고, 영구적인 에러는 디스크의 물리적인 고장에 의한 것으로 디스크의 교체가 불가피하며 에러가 발생한 디스크의 전체 데이터를 복구하는 작업이 요구된다.
따라서, 레이드1을 지원하는 종래의 레이드 서브 시스템에서는 에러로 인한 데이터 손실의 방지와 올바른 데이터의 유지를 위한 중복된 데이터 사이의 일관성의 관리 방법이 고려되어야 하며, 이와 관련한 연구로는 하드웨어 레이드에서 에러로 인한 데이터 손실의 방지를 위하여 두개의 레이드 제어기를 사용하여 각자의 캐쉬에 저장된 내용을 항상 비교하여 서로간에 일치시킴으로써 데이터의 옳음을 보장하고 에러 발생 시 가용한 제어기의 캐쉬로부터 디스크에 쓰기를 수행함으로써 에러로부터 데이터의 손실을 방지하는 방법이 있다.
또한, 상기 레이드1의 중복 데이터 사이의 일관성 유지를 위한 기존 연구로는 분산 가상 디스크 시스템인 Petal에서 사용하는 비지/스테일(busy/stale) 비트를 사용하는 방식이 있다.
상기 Petal에서의 데이터 일관성을 유지하기 위한 방법은 데이터에 대한 쓰기 요청이 발생하는 경우 연산 전에 비지(busy) 비트를 "1"로 설정하고 레이드1을 구성하는 모든 디스크에 대한 쓰기 연산이 정상 종료하는 경우 비지(busy) 비트를 "0"으로 재 설정한다. 임의의 디스크에서 오류가 발생하는 경우, 이후 쓰여지는 데이터 블록에 대하여 스테일(stale) 비트를 "1"로 설정하고 연산을 수행한다. 설정된 스테일(stale) 비트는 디스크의 일시적 에러 복구 시에 사용되며 스테일(stale) 비트가 "1"인 데이터 블록들에 대해서만 선별적인 복구를 수행한다.
그러나, 상기한 Petal의 방식은 연산 시마다 비트에 대한 연산 비용이 요구되고 비지/스테일(busy / stale) 비트를 위한 별도의 안정된 디스크가 필요하다는 단점을 갖는다.
또한, 데이터의 일관성을 유지하고 옳은 데이터임을 보장하기 위해서는 각각의 디스크의 내용을 읽어서 중복 데이터들의 내용을 비교하는 방법이 가장 단순한 방법이지만 부하가 크다는 단점을 가진다.
따라서, 본 발명은 상술한 종래의 문제점을 극복하기 위한 것으로서, 본 발명의 목적은 디스크 미러링 방식의 레이드1을 지원하는 레이드 서브 시스템의 구성 디스크들 사이에 에러가 발생할 때에 FBB(Failed Block Bitmap)라는 데이터의 일관성(Data Coherence) 정보를 관리하는 비트맵을 추가하여 중복된 데이터들의 일관성을 보장하고, 일시적 또는 영구적 에러로부터 부적절한 일관성을 갖는 데이터의 빠른 복구를 지원하며, 임의의 디스크의 영구적 에러로 인한 데이터의 복구 시에는 읽기 연산에 대한 부하 분산이 가능하고 복구비용을 감소시키는 쓰기 연산을 제공하는 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법을 제공하는데 있다.
상기 본 발명의 목적을 달성하기 위한 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법은, 레이드 서브 시스템에서 읽기 연산이 요청되면 중복된 데이터들을 갖는 디스크들 중에서 임의의 대상 디스크를 먼저 선정한 후에 선택된 디스크에 대한 읽기 연산을 수행하는 단계와; 읽기 연산 시에 선택된 디스크들 사이에 에러가 발생하는가를 판별하는 읽기 에러 핸들링을 수행하여 선택된 대상 디스크의 읽기 연산에서 에러가 발생하면 미러링된 나머지 디스크를 차례로 순회하며 데이터의 읽기 연산이 성공할 때까지 읽기 에러 핸들링을 반복하는 단계; 읽기 에러 핸들링 후 나머지 디스크들에 대한 읽기 연산이 모두 성공하면 읽기 에러 핸들링은 종료하고, 모든 디스크에서 읽기 연산이 실패하면 디스크에 에러를 반환하고 읽기 에러 핸들링을 종료하는 단계; 레이드 서브 시스템에서 쓰기 연산이 요청되면 중복된 데이터들을 갖는 디스크들에 대한 쓰기 연산을 수행하는 단계; 쓰기 연산을 수행한 후 중복된 데이터들 사이에 일시적 에러가 발생하면 일시적 에러 핸들링을 수행하여 중복된 데이터를 갖는 디스크들 사이에 데이터의 일관성을 유지하고 일시적 에러를 복구하는 단계; 및 쓰기 연산을 수행한 후 중복된 데이터들 사이에 영구적 에러가 발생하면 영구적 에러 핸들링을 수행하여 중복된 데이터를 갖는 디스크들 사이에 데이터의 일관성을 유지하고 영구적 에러를 복구하는 단계로 이루어진다.
도 1은 본 발명에 따른 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법을 도시한 흐름도,
도 2는 일시적 에러 핸들링을 위한 디스크 구조도,
도 3은 비트 OR연산을 수행하여 산출한 에러 복구용 FBB를 도시한 구성도,
도 4는 영구적 에러 핸들링을 위한 디스크 구조도,
도 5는 영구적 에러 복구 시에 발생하는 쓰기 연산의 처리 방법을 도시한 흐름도,
도 6은 영구적 에러 복구 시에 발생하는 읽기 연산의 처리 방법을 도시한 흐름도이다.
<도면의 주요부분에 대한 부호의 설명>
300: 원본 디스크 400: 복사본 디스크
310,410: 원본 FBB 320,420: 복사본 디스크의 FBB
330,430: 데이터 영역 440: 에러 복구용 FBB
431: 복구 완료 영역 432: 미복구 영역에 쓰기가 완료된 영역
433: 미복구 영역
이하, 본 발명에 따른 실시예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.
본 발명에 따른 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법은 레이드1을 지원하는 레이드 서브 시스템에서 에러가 발생할 때에, 레이드의 중복 데이터들 사이의 일관성을 유지하기 위한 방법과 디스크 데이터의 복구 시에 발생하는 입출력 요청의 효과적인 처리를 위한 쓰기 연산을 제공한다.
상기 레이드1은 데이터들을 다른 디스크에 중복하여 유지함으로써 에러 발생 시에도 데이터의 가용성을 제공하고 디스크 에러 발생 시에 데이터의 복구가 가능하도록 하는 레이드 레벨이다. 따라서 일시적 에러가 발생하는 경우, 원본과 복사본 디스크에 존재하는 데이터는 일관성이 유지되어야 하며, 영구적 에러가 발생하는 경우 효과적으로 데이터를 복구하기 위한 정책이 지원되어야 한다.
도 1에 도시된 바와 같이, 본 발명에 따른 레이드 서브 시스템에서 읽기 연산이 요청되면(S100) 중복된 데이터들을 갖는 디스크들 사이에 입출력 처리비용의 부하 분산(load balancing)을 위하여 라운드 로빈(round-robin) 방식과 임의의 디스크 선택(random disk selection) 방식에 의하여 임의의 대상 디스크를 먼저 선정한(S110) 후에 선택된 디스크에 대한 읽기 연산을 수행한다(S120).
이와 같이 임의의 대상 디스크를 먼저 선정하는 이유는 디스크가 공유되는 환경에서 하나의 디스크에 입출력 요구가 집중되는 것을 방지할 수 있기 때문이며, 그 결과로 레이드1의 읽기 연산의 성능을 향상시킬 수 있다.
상기와 같이 임의의 대상 디스크를 선정하여 읽기 연산을 수행한 후에는 읽기 연산 시에 선택된 디스크들 사이에 에러가 발생하는가를 판별하는 읽기 에러 핸들링을 수행하여 선택된 대상 디스크의 읽기 연산에서 에러가 발생하면 미러링된 나머지 디스크를 차례로 순회하며 데이터의 읽기 연산이 성공할 때까지 읽기 에러 핸들링을 반복한다(S130).
또한, 나머지 디스크들에 대한 읽기 연산이 모두 성공하면 읽기 에러 핸들링은 종료되며(S140), 모든 디스크에서 읽기 연산이 실패하는 경우는 디스크에 에러를 반환하고 읽기 에러 핸들링을 종료한다(S150).
한편, 본 발명에 따른 레이드 서브 시스템에서 쓰기 연산이 요청되면(S100) 중복된 데이터들을 갖는 디스크들에 대한 쓰기 연산을 수행한다(S160).
상기와 같이 쓰기 연산을 수행한 후에 중복된 데이터들 사이에 일시적 에러가 발생하면(S170) 일시적 에러 핸들링을 수행하여 중복된 데이터를 갖는 디스크들 사이에 데이터의 일관성을 유지하고 일시적 에러를 복구하고(S180), 상기 중복된 데이터들 사이에 오류가 발생한 디스크가 물리적인 고장에 의하여 교체가 요구되는 영구적 에러가 발생하면(S170) 영구적 에러 핸들링을 수행하여 해당 디스크들 사이에 데이터의 일관성을 유지하고 디스크의 영구적 에러를 복구한다(S190).
상기 일시적 에러 핸들링을 수행하여 레이드1에서의 중복된 데이터를 갖는 디스크들 사이에 데이터의 일관성을 유지하고 일시적 에러를 복구하는(S180) 방법과 영구적 에러 핸들링을 수행하여 데이터의 일관성을 유지하고 디스크의 영구적 에러를 복구하는(S190) 방법을 보다 상세히 설명하면 다음과 같다.
도 2를 참조하면, 레이드1로 구성된 디스크(300,400)에 쓰기 연산을 수행하는 경우, 원본(primary) 디스크(300)에는 쓰기를 성공하였으나 여러 가지 원인으로 인하여 복사본 디스크(400)에 쓰기를 실패하는 경우, 또는 복사본(400)에는 성공적으로 쓰기를 하였으나 원본 디스크(300)에 대한 쓰기를 실패하는 경우가 발생하는데, 이와 같은 경우가 레이드1에서의 중복된 데이터들 사이에 데이터 일관성이 부적절한 상태에 해당된다.
또한, 상기와 같이 데이터 일관성이 부적절한 상태가 되는 것은 일반적인 입출력 연산에서 일부의 디스크에만 쓰기가 진행되는 경우이다.
반면에, 시스템의 오류나 네트워크 오류로 인한 전체 시스템 접근 불가능 등의 원인으로 원본과 복사본의 디스크(300,400)에 모두 쓰기를 실패하는 경우는 디스크 전체의 오류로서 디스크 쓰기가 발생하지 않으므로 데이터의 일관성에 문제가 발생하지 않는다.
본 발명에 따른 레이드 서브 시스템에서는 상기한 레이드1에서의 데이터의 일관성 유지 및 일관성이 부적절한 데이터들에 대한 복구를 위해서 도 2에 도시된 바와 같이, 레이드1을 구성하는 각각의 디스크(300,400)에 데이터의 일관성을 관리하기 위한 비트맵 FBB(310,410,320,420)를 유지한다.
상기 FBB는 디스크 데이터의 일관성 정보를 유지하기 위하여 각각의 디스크마다 존재하고 입출력 단위당 하나의 비트를 유지 관리하며 해당 데이터 블록의 일관성 정보를 기록한다.
상기 FBB(310,410,320,420)는 임의의 디스크에서 오류가 발생할 경우에도 비트맵의 정보를 통한 복구 및 데이터 일관성의 유지를 위해서 원본(300)과 복사본(400)들의 디스크에 중복하여 저장하며 초기에 "0"으로 설정한다. 또한, 연산 수행 중에 I/O 에러가 발생하는 경우에만 연산의 대상 디스크와 관련된 각 디스크에 중복된 해당 FBB들에 일관성의 부적절함을 표시하여 데이터가 현재 일관성을 유지하는가의 유무를 나타낸다.
즉, 도 2에 도시된 바와 같이, 원본 디스크(300)에 쓰기 연산의 요청 시에 쓰기가 불가능한 경우 원본 디스크(300)와 복사본 디스크(400)에 저장된 원본 디스크의 FBB(310,410)에서 해당 블록의 비트에 일관성 정보가 표시된다. 만약, 원본 디스크(300)나 복사본 디스크(400)에서 쓰기 연산의 수행 중 오류가 발생하면 상기와 같이 해당 디스크의 FBB를 접근하게 되며, 이때 FBB는 원본과 복사본의 디스크에 모두 존재하므로 해당 디스크 전체가 오류인 경우에도 레이드1을 구성하는 나머지 정상 디스크에 존재하는 해당 디스크의 FBB에 접근할 수 있다.
예를 들어, 복사본 디스크(400)의 전체를 접근할 수 없는 오류가 발생하는 경우, 복사본 디스크(400)의 해당 데이터 블록을 담당하는 FBB(320,420)의 비트에 일관성이 부적절함을 표시해야 하지만, 상기 복사본 디스크(400)에 존재하는 해당FBB(420)는 접근이 불가능하다. 그러나, 복사본 디스크(400)에 대한 FBB(320,420)는 원본 디스크(300)에도 중복되어 유지되므로 원본 디스크(300)에 존재하는 복사본 디스크(400)의 FBB(320)에 해당 블록의 일관성이 부적절함을 표시한다.
또한, 데이터에 대한 쓰기 오류의 상태는 연산의 대상 블록에 대하여 접근이 불가능한 경우와 해당 디스크 전체에 대하여 접근이 불가능한 경우로 구분할 수 있으며, 전자의 경우는 각 디스크의 해당 FBB(310,410,320,420)에는 접근이 가능한 상태이므로 대상 블록의 데이터 일관성에 문제가 발생하는 경우이고, 후자의 경우는 연산의 대상 블록(330,430) 및 해당 디스크에 존재하는 FBB(310,410,320,420)에 모두 접근이 불가능한 상태이므로 대상 데이터와 대상 디스크에 존재하는 FBB의 정보가 모두 일관성이 부적절한 상태가 되는 경우이다.
상기와 같은 데이터에 대한 일관성의 문제는 중복 저장된 FBB들 사이와 데이터 블록들 사이에서 발생할 수 있으며, 일시적 에러와 영구적 에러의 복구 시에 고려되어야 한다. 상기한 내용과 같이 일관성의 정보를 유지하기 위한 중복된 개개의 FBB들이 가지는 일관성 정보는 서로간에 불일치할 수 있으며, 이를 위하여 중복된 모든 FBB의 정보를 사용하면 올바른 일관성 정보를 획득 할 수 있다. 데이터의 불일치가 발생하는 에러의 발생 시에도 해당 데이터에 대한 일관성 정보는 중복된 FBB중에서 적어도 하나가 올바른 정보를 유지하기 때문이다.
그러므로, 이러한 데이터의 불일치를 복구하기 위해서는 중복된 FBB의 일관성 정보 사이에 비트 OR연산을 수행하면 FBB들 사이에 일관성이 유지되지 않는 경우에도 불일치가 발생한 데이터를 모두 찾을 수 있다. 따라서 임의의 디스크에 대한 일시적인 에러의 복구 시에는 각 디스크에 존재하는 해당 FBB의 정보를 비트 OR연산을 수행함으로써 일시적인 접근 불가능 상태의 모든 경우에 대한 올바른 결과를 획득할 수 있다.
일시적인 에러에 대한 복구는 비트 OR연산의 결과인 FBB의 값에서 일관성의 부적절함이 표시된 블록들을 검출하고 레이드1을 구성하는 임의의 정상 디스크 블록으로부터 해당 데이터 블록을 읽은 후 갱신함으로써 수행된다.
예컨대, 비트 OR연산을 수행하여 산출한 에러 복구용 FBB(440)를 도시한 도 3에 있어서, FBB 310과 410은 원본 디스크(300)에 대한 FBB이며 원본 디스크(300)와 복사본 디스크(400)에 중복된다. 또한, "311, 411, 314, 414"는 쓰기 오류에서 FBB에 일관성의 부적절함이 올바로 표시된 FBB의 비트들이고, "312, 412, 313, 413"은 쓰기 오류에서 FBB에 일관성의 부적절함이 일부만 표시된 FBB의 비트들이다.
상기 FBB(310,410)에서 "1(311,411)"과 "4(314,414)"로 표시된 부분은 일시적인 에러로 인하여 쓰기 연산이 실패한 경우로 정상적으로 원본(300)과 복사본(400)의 디스크에 존재하는 FBB(310,410)를 갱신한 경우이고, 상기 FBB(310,410)에서 "2(312,412)"와 "3(313,413)"으로 표시된 부분은 원본(300) 또는 복사본(400) 중에서 하나의 디스크에 대해 디스크 전체가 접근이 불가능한 일시적 에러의 발생으로 인하여 FBB(310,410)의 갱신이 일부 디스크(300,400)에만 이루어진 결과이다.
따라서, 일시적 에러의 복구가 요구되는 디스크에 대하여 해당 디스크의 일관성 정보를 갖는 FBB(310,410)를 비트 OR연산을 수행하여 구한 결과값인 일시적 에러 복구용 FBB(440)로부터 일관성의 부적절 표시 블록들(441,442,443,444)을 모두 찾을 수 있다.
본 발명에서 제안하는 중복 데이터 사이의 일관성을 유지하기 위한 방법은 정상모드의 쓰기 연산에 대해서는 레이드1의 입출력 성능에 영향을 미치지 않기 때문에 기존의 성능을 유지하면서 적용시킬 수 있으며, 발생 가능한 오류의 경우에 대하여도 정확한 데이터 일관성 정보를 유지함으로써 레이드1 의 데이터 신뢰성을 보장한다.
다음으로, 레이드1의 디스크가 영구적 오류가 발생한 경우, 데이터 복구 수행 중 발생하는 입출력 요청을 효과적으로 서비스하기 위한 쓰기 연산에 대하여 설명하면 다음과 같다.
영구적 에러 핸들링은 중복된 데이터를 가지고 있는 정상 디스크들로부터 디스크 데이터의 복사를 수행함으로써 진행되며 데이터의 가용성을 보장하기 위해서 디스크의 회복 연산 중에도 입출력 서비스가 중단됨이 없이 수행된다.
또한, 디스크의 영구적 에러 발생 시, 성능의 급격한 저하를 피할 수 있는 효율적인 방법이 요구되므로, 본 발명에 따른 영구적 에러 핸들링 방법에서는 디스크 복구 시에 발생하는 읽기 연산에 대한 부하 분산 및 복구비용을 감소시키는 쓰기 연산을 제안한다.
기존의 시스템에서는 복구 수행 중 발생하는 읽기 연산에 대해서는 정상 디스크로부터 서비스가 수행되고, 쓰기 연산의 경우 역시 정상 디스크 및 복구 완료 영역에 대해서만 서비스를 허용한다. 하지만, 본 발명에서의 연산에서는 기존의 디스크 복구 수행 중에 입출력 요구의 처리 방식과는 달리 복구 영역 및 미복구 영역에 대한 쓰기를 허용한다.
도 4를 참조하면, FBB(310,410,320,420)는 디스크의 복구가 진행되는 동안 교체된 디스크의 블록들에 대한 복구 여부의 정보를 관리하기 위하여 사용되며, 일시적 에러의 경우와는 달리 디스크 복구를 시작하기 전에 피복구 디스크의 데이터들은 정상 디스크들의 데이터와 일관성이 부적절한 상태이므로, 피복구 디스크의 FBB를 모두 "1"로 초기화하고 복구된 디스크 영역은 데이터 일관성이 적절한 상태이므로 "0"으로 재 설정한다.
도 4에 있어서, 복구 완료 영역(431)은 정상 디스크로부터 데이터의 갱신이 이미 이루어진 영역이며, 미복구 영역(433)은 아직 데이터의 복구가 이루어지지 않은 영역을 의미한다. 또한, 미복구 영역에 쓰기가 완료된 영역(432)은 복구 연산의 수행 중에 발생하는 입출력 서비스 요청에 의하여 데이터가 기록된 영역이다.
디스크의 복구가 진행되는 동안, 도 5에 도시된 바와 같이 쓰기 연산이 요청되는(S500) 경우는 연산의 대상 블록이 복구 영역(431)에 존재하는 경우와 미복구영역(433)에 존재하는 두 가지의 경우로 구분할 수 있다.
따라서, 디스크 복구 수행 중에 쓰기 연산 요청이 있으면(S500) 복구 영역(431) 및 미복구 영역 모두(433)에 쓰기를 허용하고(S510), 대상 영역이 복구 영역(431)인 경우(S520)는 정상 모드에서의 연산과 동일하게 정상 디스크들과 교체된 디스크에 쓰기 연산을 수행하고 종료한다(S640).
반면에, 쓰기 연산의 대상 블록이 미복구 영역(433)인 경우(S520), 정상 디스크와 새로운 디스크에 모두 쓰기 연산을 수행하고 해당 디스크 데이터들의 일관성 정보를 갖는 중복된 FBB에 복구 완료 여부를 체크함(S530)으로써 연산을 종료하며, 이는 교체된 디스크에서 복구해야 할 영역을 감소시킴으로써 디스크 복구비용을 줄이는 이점을 제공한다.
또한, 디스크 복구 수행 중에 도 6에 도시된 바와 같이 읽기 연산이 요청되는(S600) 경우는, 연산 수행 전에 해당 FBB 정보를 참조하고 읽기 연산의 대상 블록에 따라서 대상 블록이 복구 완료 영역(431)인 경우, 미복구 영역인 경우(433), 미복구 영역에서 쓰기가 완료된 영역(432)인 3가지 경우로 구분할 수 있다(S610).
상기 대상 블록이 미복구 영역(433)인 경우는 정상 디스크로부터 데이터를 읽고(S520) 연산을 종료하며(S550), 상기 대상 블록이 복구 완료 영역(431)과 미복구 영역에서 쓰기가 완료된 영역(432)인 경우는 정상 모드에서와 같은 방식으로 읽기 연산의 부하 분산을 위한 라운드 로빈 방식이나 임의의 디스크 선택 방식에 의해서 대상 디스크를 선정한(S630) 후에 선정된 디스크로부터 읽기 연산을 수행하고(S640) 연산을 종료한다(S550).
본 발명에서 제안하는 레이드1의 영구적 에러 복구 방법은 상기와 같이 복구 영역 및 미복구 영역에 대한 쓰기를 허용함으로써 디스크 데이터의 복구 수행 중에 발생하는 연산 요청에 대하여 시스템 부하 비용을 감소시키고 에러 복구 시의 시스템 성능의 급격한 저하를 완화시킨다. 즉, 교체된 디스크에 대한 복구 정보의 관리를 위하여 FBB를 재사용하고 디스크 복구 수행 중에 발생하는 쓰기 연산에 대하여 기존의 시스템과 달리 미복구 영역에 대한 쓰기를 허용함으로써 읽기 연산에서 부하분산이 가능한 디스크의 영역을 확장해 줄뿐만 아니라 교체된 디스크의 복구비용을 감소시키는 이점을 갖는다.
상술한 바와 같이 본 발명에 따른 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법은 디스크 미러링 방식의 레이드1을 지원하는 레이드 서브 시스템의 구성 디스크들 사이에 에러가 발생할 때에 FBB라는 데이터의 일관성 정보를 관리하는 비트맵을 추가하여 중복된 데이터들의 일관성을 보장하고, 일시적 또는 영구적 에러로부터 부적절한 일관성을 갖는 데이터의 빠른 복구를 지원하며, 임의의 디스크의 영구적 에러로 인한 데이터의 복구 시에는 읽기 연산에 대한 부하 분산이 가능하고 복구비용을 감소시키는 쓰기 연산을 제공하기 때문에, 데이터에 대한 효율적인 고 가용성의 특징을 제공할 뿐만 아니라, 적은 비용으로 중복 데이터의 일관성을 보장하고 특정 디스크의 오류 시에도 올바른 일관성 정보를 유지할 수 있는 효과가 있다.
특히, 데이터 일관성이 부적절한 데이터들의 복구 시에 FBB 사이에 비트 OR연산을 수행하여 발생 가능한 모든 경우의 일관성 문제에 대하여 정확한 일관성 정보를 획득할 수 있을 뿐만 아니라, 임의의 디스크의 영구적 에러로 인한 데이터의 복구 시에 읽기 연산에 대한 부하 분산을 가능하도록 하고 복구비용을 감소시키는 쓰기 연산을 제공함으로써 데이터 복구 시에 입출력 비용을 감소시키는 효과가 있다.
이상에서 설명한 것은 본 발명에 따른 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법을 실시하기 위한 하나의 실시예에 불과한 것으로써, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.

Claims (5)

  1. 레이드 서브 시스템에서 읽기 연산이 요청되면 중복된 데이터들을 갖는 디스크들 중에서 임의의 대상 디스크를 먼저 선정한 후에 선택된 디스크에 대한 읽기 연산을 수행하는 단계와;
    읽기 연산 시에 선택된 디스크들 사이에 에러가 발생하는가를 판별하는 읽기 에러 핸들링을 수행하여 선택된 대상 디스크의 읽기 연산에서 에러가 발생하면 미러링된 나머지 디스크를 차례로 순회하며 데이터의 읽기 연산이 성공할 때까지 읽기 에러 핸들링을 반복하는 단계;
    읽기 에러 핸들링 후 나머지 디스크들에 대한 읽기 연산이 모두 성공하면 읽기 에러 핸들링은 종료하고, 모든 디스크에서 읽기 연산이 실패하면 디스크에 에러를 반환하고 읽기 에러 핸들링을 종료하는 단계;
    레이드 서브 시스템에서 쓰기 연산이 요청되면 중복된 데이터들을 갖는 디스크들에 대한 쓰기 연산을 수행하는 단계;
    쓰기 연산을 수행한 후 중복된 데이터들 사이에 일시적 에러가 발생하면 일시적 에러 핸들링을 수행하여 중복된 데이터를 갖는 디스크들 사이에 데이터의 일관성을 유지하고 일시적 에러를 복구하는 단계; 및
    쓰기 연산을 수행한 후 중복된 데이터들 사이에 영구적 에러가 발생하면 영구적 에러 핸들링을 수행하여 중복된 데이터를 갖는 디스크들 사이에 데이터의 일관성을 유지하고 영구적 에러를 복구하는 단계
    로 이루어진 것을 특징으로 하는 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법.
  2. 제 1 항에 있어서, 상기 일시적 에러 핸들링과 영구적 에러 핸들링을 수행하는 단계는
    데이터의 일관성 정보를 관리하기 위한 비트맵(FBB)을 RAID1을 구성하는 각각의 디스크마다 중복하여 저장하고, 각각의 디스크에 대한 연산 시 에러가 발생하면 연산의 대상 데이터와 관련된 접근 가능한 중복된 비트맵(FBB)에 일관성 정보를 기록하며, 일관성이 부적절한 데이터의 복구 시에 상기 비트맵(FBB)의 각 비트에 기록된 일관성 정보를 사용한 비트 OR연산을 수행하고, 이 비트 OR연산 결과로 추출한 에러 복구용 비트맵(FBB)을 사용하여 정상 디스크들로부터 데이터를 읽어서 대상 데이터를 복구하도록 된 것을 특징으로 하는 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법.
  3. 제 2 항에 있어서, 상기 영구적 에러 핸들링을 수행하는 단계에서는
    레이드1을 구성하는 각각의 디스크에 대한 영구적 에러 복구 수행 중에 발생하는 입출력 요청에 대하여 디스크의 복구 영역 및 미복구 영역에 대한 쓰기 연산을 허용하는 것을 특징으로 하는 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법.
  4. 제 2 항에 있어서, 상기 영구적 에러 핸들링을 수행하는 단계에서는
    레이드1을 구성하는 각각의 디스크에 대한 영구적 에러 복구 시에 복구중인 디스크의 영역을 복구 영역과 미복구 영역 및 미복구 영역에 쓰기 완료 영역으로 구분하고, 에러 복구가 진행됨에 따라서 상기 일관성 정보를 비트맵(FBB)에 설정하며, 상기의 구분된 영역에 따라서 입출력을 수행하는 것을 특징으로 하는 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법.
  5. 제 2 항에 있어서, 상기 영구적 에러 핸들링을 수행하는 단계에서는
    디스크의 데이터 복구 시에 복구가 완료되어 교체된 디스크에 대하여 정상 디스크에서 일관성 정보의 유지를 위해서 사용한 비트맵(FBB)을 재사용하여 복구 정보를 유지하는 것을 특징으로 하는 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법.
KR1020020013801A 2002-03-14 2002-03-14 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법 KR20030073982A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020020013801A KR20030073982A (ko) 2002-03-14 2002-03-14 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법
US10/175,099 US6754770B2 (en) 2002-03-14 2002-06-20 Coherence preservation method of duplicated data in RAID subsystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020013801A KR20030073982A (ko) 2002-03-14 2002-03-14 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법

Publications (1)

Publication Number Publication Date
KR20030073982A true KR20030073982A (ko) 2003-09-19

Family

ID=28036061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020013801A KR20030073982A (ko) 2002-03-14 2002-03-14 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법

Country Status (2)

Country Link
US (1) US6754770B2 (ko)
KR (1) KR20030073982A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE391956T1 (de) * 2003-02-10 2008-04-15 Netezza Corp Rasche wiederherstellung eines defekten plattensektors in einem verteilten datenbanksystem
US7231409B1 (en) * 2003-03-21 2007-06-12 Network Appliance, Inc. System and method for reallocating blocks in checkpointing bitmap-based file systems
US7330930B1 (en) * 2004-03-09 2008-02-12 Adaptec, Inc. Method and apparatus for balanced disk access load distribution
US7512834B2 (en) * 2004-12-20 2009-03-31 International Business Machines Corporation Apparatus, system, and method for providing parallel access to a data set configured for automatic recovery
US9448735B1 (en) * 2013-12-31 2016-09-20 Emc Corporation Managing storage device rebuild in data storage systems
CN105094684B (zh) * 2014-04-24 2018-03-09 国际商业机器公司 磁盘阵列系统中问题磁盘的重用方法和系统
CN112000296B (zh) * 2020-08-28 2024-04-09 北京计算机技术及应用研究所 一种全闪存阵列中的性能优化系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980047273A (ko) * 1996-12-14 1998-09-15 양승택 레이드 레벨 5 시스템에서 캐쉬 관리 방법
JPH10260789A (ja) * 1997-03-17 1998-09-29 Fujitsu Ltd デバイスアレイ・システム
JPH1185410A (ja) * 1997-09-05 1999-03-30 Hitachi Ltd データ二重化記憶サブシステム
US5913927A (en) * 1995-12-15 1999-06-22 Mylex Corporation Method and apparatus for management of faulty data in a raid system
US6058054A (en) * 1999-03-31 2000-05-02 International Business Machines Corporation Method and system for providing an instant backup in a RAID data storage system
EP1031928A2 (en) * 1993-06-04 2000-08-30 Network Appliance, Inc. A method for providing parity in a raid sub-system using non-volatile memory
KR20030070346A (ko) * 2002-02-25 2003-08-30 한국전자통신연구원 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010011204A (ko) 1999-07-26 2001-02-15 윤종용 캐쉬미러링을 통한 레이드 장애극복 방법 및 장치

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1031928A2 (en) * 1993-06-04 2000-08-30 Network Appliance, Inc. A method for providing parity in a raid sub-system using non-volatile memory
US5913927A (en) * 1995-12-15 1999-06-22 Mylex Corporation Method and apparatus for management of faulty data in a raid system
KR19980047273A (ko) * 1996-12-14 1998-09-15 양승택 레이드 레벨 5 시스템에서 캐쉬 관리 방법
JPH10260789A (ja) * 1997-03-17 1998-09-29 Fujitsu Ltd デバイスアレイ・システム
JPH1185410A (ja) * 1997-09-05 1999-03-30 Hitachi Ltd データ二重化記憶サブシステム
US6058054A (en) * 1999-03-31 2000-05-02 International Business Machines Corporation Method and system for providing an instant backup in a RAID data storage system
KR20030070346A (ko) * 2002-02-25 2003-08-30 한국전자통신연구원 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법

Also Published As

Publication number Publication date
US6754770B2 (en) 2004-06-22
US20030177309A1 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
EP0718766B1 (en) Method of operating a disk drive array
US6529995B1 (en) Method and apparatus for maintaining and restoring mapping table entries and data in a raid system
US6766491B2 (en) Parity mirroring between controllers in an active-active controller pair
US6854071B2 (en) Method and apparatus for providing write recovery of faulty data in a non-redundant raid system
US7565573B2 (en) Data-duplication control apparatus
JP2501752B2 (ja) コンピユ―タ・システムのストレ―ジ装置及びデ―タのストア方法
US7185222B2 (en) Apparatus, system, and method for maintaining data in a storage array
US7152184B2 (en) Storage device, backup method and computer program code of this storage device
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
KR100701563B1 (ko) 스토리지 제어 장치 및 방법
JPH0731582B2 (ja) パリティ保護データを回復するための方法および装置
WO2002003204A1 (en) Three interconnected raid disk controller data processing system architecture
JP2013041455A (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP2005122338A (ja) スペアディスクドライブをもつディスクアレイ装置及びデータスペアリング方法
JP2006252126A (ja) ディスクアレイ装置及びその再構築方法
US20050091452A1 (en) System and method for reducing data loss in disk arrays by establishing data redundancy on demand
CN111124262B (zh) 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质
US8375187B1 (en) I/O scheduling for flash drives
JPH09269871A (ja) ディスクアレイ装置におけるデータ再冗長化方式
US20050076260A1 (en) Raid consistency initialization method
US20060259812A1 (en) Data protection method
US7529776B2 (en) Multiple copy track stage recovery in a data storage system
KR20030073982A (ko) 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법
JP5365236B2 (ja) ストレージシステム
CN112328182B (zh) 一种raid数据管理方法、装置和计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application