KR0131554B1 - 고장 허용 디스크 저장 서브시스템 및 그 서브시스템의 컴퓨터시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장방법 - Google Patents

고장 허용 디스크 저장 서브시스템 및 그 서브시스템의 컴퓨터시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장방법

Info

Publication number
KR0131554B1
KR0131554B1 KR1019940018211A KR19940018211A KR0131554B1 KR 0131554 B1 KR0131554 B1 KR 0131554B1 KR 1019940018211 A KR1019940018211 A KR 1019940018211A KR 19940018211 A KR19940018211 A KR 19940018211A KR 0131554 B1 KR0131554 B1 KR 0131554B1
Authority
KR
South Korea
Prior art keywords
disk
mode
mirrored
pair
controller
Prior art date
Application number
KR1019940018211A
Other languages
English (en)
Other versions
KR950006577A (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 KR950006577A publication Critical patent/KR950006577A/ko
Application granted granted Critical
Publication of KR0131554B1 publication Critical patent/KR0131554B1/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/2082Data synchronisation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/002Programmed access in sequence to a plurality of record carriers or indexed parts, e.g. tracks, thereof, e.g. for editing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
    • G11B2220/415Redundant array of inexpensive disks [RAID] systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

고장허용의 높은 성능으로 미러된 디스크 서브 시스템은 임의의 디스크 기록시 높은 프로세스능력을 구비하고 동시에 디스크 판독시 고성능을 보증하는 개선된 디스크 기록 스킴(scheme)을 갖는다. 상기 서브 시스템은 미러된 디스크중 하나가 고장난 경우 신속한 회복을 제공하고 비회복 주기(non-recovery periods) 동안처럼 동일한 성능을 회복동안 제공하는 개선된 회복 메커니즘도 갖는다.
디스크에 기록되는 데이타 블럭 또는 페이지(pages)는 효율적으로 디스크에 기록될 수 있고, 양호한 실시예에서 각 그 블럭이 기록되는 디스크의 물리적인 위치에 따르는 순서(또는 스케줄)대로 일시적으로 축적되고 분류(또는 스케줄)된다. 그것은 디스크의 물리적인 스캔동안 기록 헤드에 의해 발생된 순서에 일반적으로 대응한다. 미러된 디스크쌍은 서로 위상이 어긋나서 동작되는데, 하나는 판독 모드에 있는 반면에 나머지는 기록모드에 있다. 갱신된 블럭은 분류된 순서대로 기록모드에 있는 디스크에 기록출력되는 반면에 보증된 판독 성능이 판독 모드에 있는 나머지 디스크에 의해 제공된다. 뱃치된 갱신이 미러된 쌍의 하나로 디스크에 인가될 때, 미러된 쌍은 그 모드를 스위치하고, 나머지 디스크는 갱신된다. 양호하게 갱신은 더우기 유리하게 고장허용을 이루는 비휘발성 메모리에서 유지된다.
회복동안 여분의 대안저긍로 미러된 디스크쌍은 새로운 갱신이 되도록 도입되는 반면에 배경 스캔이 동작되는 디스크로부터 새롭게 미러된 쌍으로 데이타를 복사한다.

Description

고장 허용 디스크 저장 서브시스템 및 그 서브시스템의 컴퓨터시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장방법
제1도는 본 발명의 양호한 실시예의 전체적인 블럭 다이어그램.
제2도는 I/O프로세서의 비휘발성 메모리에서 양호한 데이타 구조도.
제3도는 정상 동작동안 기록요구를 프로세스하는데 포함된 단계를 도시한 흐름도.
제4도는 정상 동작동안 하나의 기록 뱃치(batch)를 하나의 디스크에 인가하는 프로세스에 포함된 단계를 도시하는 흐름도.
제5도는 기록뱃치들을 2개의 미러된(mirrored) 디스크에 인가하는 2개의 프로세스간의 타이밍 관계를 도시하는 타이밍 다이어그램.
제6도는 정상 동작동안 판독 요구를 프로세스하는데 포함된 단계를 도시하는 흐름도.
제7도는 고장난 디스크의 회복(recovery)동안 개략적인 구성 예시도.
제8도는 회복동안 판독 요구를 서비스하는데 포함된 단계를 도시한 흐름도.
제9도는 동작되는 디스크(survivor disk)를 스캔하는 배경(background) 프로세스에 포함된 단계를 도시한 흐름도.
*도면의 주요부분에 대한 부호의 설명*
200 : I/O프로세서220 : 비휘발성 메모리
225 : 포인터 목록230 : 비트맵
본 발명의 요약
본 발명은 고장허용(fault tolerant) 디지탈 저장 디스크 시스템에 일반적으로 관련되며, 특히, 별개의 2개의 저장 디스크에 2중으로 디지탈 정보를 저장함으로써 신뢰성을 갖는 미러된(mirrored) 디스크 형태의 디지탈 저장 디스크 시스템에 관련된다.
본 발명의 배경
온-라인 데이타 베이스 트랜잭션 프로세스(On-Line Database Transaction Processing ; OLTP)에 대한 요구가 증가함에 따라, 초당 수천 정도의 트랜잭션에서 고속 트랜잭션 속도는 OLTP 시스템에 의해 제공되어야 한다. 더우기, 이러한 응용은 높은 사용가능도(availability)와 고장허용을 요구한다. OLTP응용에서, 대부분의 요구는 데이타에 대한 임의의(random) 액세스이다. 대부분의 데이타가 디스크에 저장되어 있기 때문에, 디스크 서브 시스템들은 초당 수천 정도의 고속의 임의의 액세스를 지원할 수 있어야 한다. 더우기, 디스크는 OLTP의 사용가능도 요구를 충족시키기 위해 고장허용을 요구한다.
임의의 액세스가 디스크에 대해 이루어질 때마다, 일반적으로 디스크는 새로운 방향(orientation)으로 회전됨으로써 소망된 데이타가 디스크 아암의 아래 부분에 있도록 하고 그 디스크 아암의 판독/기록헤드는 아암을 따라 새로운 방사(radial) 위치로 이동하고 그 새로운 방사 위치에서 소망된 데이타가 판독/기록 헤드의 아래쪽에 놓이도록 한다. 불행하게도 상기 물리적 동작의 성능, 및 임의의 디스크 입력/출력(I/O) 성능이 CPU MIPS와 같은 다른 시스템 파라미터가 빨라지는 만큼 개선되지 않고 있다. 그러므로, 데이타에 대한 임의의 액세스가 주종을 이루는(predominates) OLTP의 응용은 이 분야에서 디스크 아암 바운드(bound)라고 불리는 이러한 요소에 의해 제한된다. 디스크 아암 바운드 시스템에서는, 디스크 가격이 여지껏 시스템 가격의 대부분을 차지해 오고 있다. 그러므로, 통상적인 디스크 시스템에서 제공된 것보다, 양호한 가격-성능 특성을 갖고 초당 더높은 속도의 임의의 엑세스를 지원할 수 있는 디스크 서브 시스템을 필요로 하게 된다.
미러된 디스크 시스템과 RAID(Redundant Array of Independent Disks, 독립된 디스크의 중복된 배열) 디스크 시스템 모두는 OLTP용 고장허용 디스크 시스템을 제공하기 위해 사용된다. 미러된 디스크 시스템에서는, 각 디스크 정보는 2번째(중복된) 디스크에 2중화된다(duplicated). RAID 배열에서는, 수개의 디스크상에서 대응하는 블럭 위치에 관한 정보는 또 다른 디스크에서 패리티(parity) 블럭을 만들기 위해 사용된다. 고장난 경우, RAID 배열내에 있는 디스크중 어느 하나는 상기 배열내에 있는 나머지 디스크로부터 재구성될 수 있다. RAID 구조는 지정된 저장 용량에 대해 적은 수의 디스크를 요구하나, 미러된 디스크들은 성능이 좋다. 1990년 5월, 콜로라도, 보울더에서 개최된 컴퓨터 시스템의 측정 및 모델링(modeling)에 관한 시그매트릭스(SIGMETRICS) 회의에서 암달(Amdahl) 5890을 사용한 디스크의 중복된 배열의 평가(evaluation)를 논문의 명칭으로 해서 P. chen 등에 의해 74 내지 75페이지에서, 미러된 디스크는 주종을 이룬(predominantly) 임의의 기록을 갖는 부담량(workloads)에 대한 RAID-5 디스크 배열보다 양호하다는 것을 보여준다(즉, 임의의 판독/기록이 주종을 이룰때 미러된 디스크 구조용 평균 판독/기록 시간은 RAID-5 구조용보다 더 낮다). RAID-5 구조는, 예를들어, 일리노이, 시카고(1988년 6월)에서 개최된 데이타 관리에 관한 에이씨엠 시그모드(ACM SIGMOD) 국제회의에서 값싼 디스크의 중복된 배열의 경우를 명칭으로 하여 109 내지 116페이지에서 D. Patterson등에 의해 설명된다. 그러나, 미러된 디스크는 각 데이타 기록이 미러된 쌍에서 2개의 디스크상에 기록되는 것을 요구한다. 그러므로, 미러된 디스크 저장 시스템이 고장허용을 구비하기 위해 성능 패널티(lpenalty)을 부과하는 것이 일반적으로 용인되어왔다.
디스크에서 물리적인 클러스터링(clustering) 재획득하는 동안 임의의 기록을 순차적인 기록으로 변환시키는 디스크 저장 방법 및 장치를 명칭으로 하여, 본 특허출원과 같이 동일한 양수인에 양도되었으며 1993년 3월 24일자로 출원된 계류중인 미국 특허출원 제 8-036636호에서, 본 발명의 발명자는 하나의 디스크 또는 RAID 배열의 성능을 개선시키는 방법을 기재한다. 그것은 메모리에서 디스크 기록을 분류하여 실행(runs)시키고, 그들을 로그(log) 디스크에 기록해서, 로그 디스크로부터 분류된 실행을 병합해서 큰 뱃치 기록을 갖는 데이타 디스크를 통해 그들을 하나의 경로에 인가시킴으로써 행해진다. 상기 방법은 임의의 기록을 순차적인 기록으로 주로 변환시키는데 장점을 갖는다. 그러나, 상기 수법의 하나의 문제점은, 임의의 디스크 판독이 뱃치 기록을 인터럽트(interrupt)할때, 디스크 판독 응답시간에서 패널티를 발생시키면서 뱃치가 기록되는 동안 디스크 판독 요구가 지연되거나, 기록(전체적인) 프로세스 능력(throughput)의 큰 손실을 발생시키면서 뱃치 기록이 판독에 의해 인터럽트되는 것이다. 어떤 방법이든 임의의 디스크 판독이 뱃치 기록 동작동안 자주 필요할 때마다, 발생하는 분류된 실행의 장점이 주로 오프셋(offset)되어서 전체적 성능이 저하되는 경향이 있다.
미러된 디스크 시스템에서 회복을 위한 통상적인 방법은 미러된 쌍중 동작되는 디스크로부터 여분의 백업(backup) 디스크로 데이타를 분석한다. 그것은 동작되는 디스크상에 데이타를 스캔하고, 상기 프로세스동안 시작되는 기록을 2개의 디스크에 인가함으로써 통상적으로 행해진다. 상기 수법의 하나의 문제점은 회복동안 디스크 시스템 성능의 저하가 주목할만하게 발생한다는 것이다.
본 발명의 요약
따라서, 본 발명의 목적은 각 디스크 기록을 미러된 디스크 쌍의 2개의 디스크에 이중화(duplicate)시킬 필요성 때문에 통상 발생하는 페널티를 대부분 없앰으로써 미러 된 디스크 시스템의 성능을 개선시키는 것을 목적으로 하고 있다.
또한, 본 발명의 목적은 임의의 디스크 기록 I/O를 순차적인 I/O에 근점해서 변환시켜 성능을 개선시킨 임의의 디스크 I/O를 갖는 미러된 디스크 서브 시스템을 제공하는 것이다.
본 발명의 또다른 목적은 판독 응답 시간의 페널티(penalty)없이 미러된 디스크 프로세스 능력을 개선시키는 것이다.
또한, 본 발명의 목적은 회복동안 보증된 성능을 디스크 판독 및 기록에 제공하고, 반면에 신속한 회복을 재획득해서, 고장난 디스크로부터 회복 프로세스동안 성능을 개선시키는 것이다.
본 발명의 상기 및 부가적인 목적 및 장점은 디스크에 대한 갱신(즉, 기록되는 데이타 블럭)이 갱신의 연속적인 뱃치 실행(runs)으로 축적되고 스케줄되는 미러된 디스크 형태의 고장허용 디스크 저장 서브 시스템을 제공함으로써 이루어지고, 상기 스케줄링(scheduling)은 미러된 디스크에 효율적으로 기록될 수 있는 순서(ordering)을 발생시키기 위해 행해진다. 반드시 필요하지 않으나 갱신은 디스크 제어기의 메모리에 축적되고, 반드시 필요하지 않으나 상기 스케줄링은 미러된 디스크용 디스크 제어기에 의해 행해진다. 메모리는 비휘발성 또는 고장허용을 가진다.
양호한 실시예에서, 상기 스케줄링은 미러된 디스크 상에서 갱신의 홈(home) 위치에 따라(갱신이 기록되는 디스크 상의 위치에 따라) 갱신을 분류함으로써 행해진다. 그것은 디스크 스캔(scan)에 또한 대응하는 순서 (ordering)이다.
각각의 미러된 쌍에서 디스크는 서로 위상이 어긋나서(out of phase) 동작되는데, 하나는 판독 모드인 반면에 나머지 하나는 기록 모드이다. 기록의 뱃치는 스케줄된 순서에 따라 각 시간을 기록 모드의 디스크에 효율적으로 인가된다. 갱신이 디스크의 물리적인 순서에 따라 각각의 미러된 디스크 쌍으로 복사되기 때문에, 양호한 성능으로 기록을 인가하는 것이 이루어진다.
그러므로 임의의 기록이 디스크에 대해 주로 순차적인 기록으로 변환되고 디스크상의 데이타 클러스터링(clustering)이 보존된다. 상기 방법을 사용한 블럭의 기록을 인가하기 위한 평균 시간이 디스크상에서 블럭의 임의 기록을 인가하기 위한 시간의 반보다 통상적으로 적음으로써, 미러된 디스크 쌍에 2배인 블럭을 기록하는 문제를 주로 없애준다.
상기 시간동안, 판독 요구는 메모리로부터 데이타를 판독함으로써 조작되거나 판독 모드에 있는 디스크로부터 데이타를 판독함으로써 조작된다. 그러므로, 판독 요구에 대한 보증된 성능이 또한 이루어진다. 갱신 뱃치가 미러된 디스크쌍중 하나(즉, 기록 모드에 있는 하나)에 인가될때, 디스크는 동작모드를 스위치한다. 2개의 디스크가 상기 2개의 동작 모드간에서 판독 모드에 있을때 시간 주기가 존재한다. 2개의 미러된 디스크쌍이, 예를 들어, 부하 및 다른 큰 복사하는 동작동안처럼, 기록 모드에 있을때 시간이 존재한다.
미러된 디스크 쌍중 하나가 고장났을때 그것을 회복시키는 것은 대안의 미러 스킴(scheme)을 사용해서 동작되는 여분의 미러된 디스크 쌍을 도입함으로써 조작된다. 회복동안, 새로운 기록이 여분의 디스크 쌍으로 향하게 된다. 판독은 동작되는 디스크로부터 또는 여분의 대안적인 미러 디스크 쌍으로부터 조작된다. 배경에서, 여분 사이클은 동작되는 디스크로부터 여분의 대안적인 미러 쌍으로 데이타를 스캔하고 복사하기 위해 사용된다. 상기 방법은 회복동안 보증된 성능을 갖는 신속한 회복을 판독 및 기록 요구 모두에 제공한다.
본 발명의 여러가지 목적, 장점 및 특징은 양호한 실시예의 다음의 상세한 설명과 첨부된 도면으로부터 더욱 명백해 질 것이다.
제1도는 컴퓨터 시스템의 양호한 실시예를 블럭도로 도시한 것이고, 제1도의 컴퓨터 시스템은 본 발명에 따라 효율적으로 기록하기 위해 분류되는 축적된 갱신(종종, AMDU(Alternating Mirrors with Deferred Updates ;지연 갱신을 갖는 대안적인 미러)로 불리움)을 갖는 뱃치 방식(batch fashion)으로 대안적으로 갱신되는 미러된(mirrored) 저장 디스크를 갖는 디스크 저장 서브 시스템을 구비하고 있다. 컴퓨터 시스템은 제어기 또는 I/O프로세서(IOP)(200), 다수의 미러된 디스크 쌍(300-1 내지 300-N), 적어도 1개인 여분의 디스크 쌍(400) 및 중앙 프로세스 유니드(CPU)(100)을 구비한다. 제어기(200)는 CPU(200)에 연결되고 프로세서(210)와 비휘발성(non-volatile) 메모리(220)를 갖는다. 간단하게 하기 위해, 비휘발성 메모리가 영역(220-1 내지 220-N)으로 분할되고 각각의 영역은 미러된 쌍에 대응된다고 가정한다.
상기 기술에 숙련된 자는 메모리와 제어기가 예시된 바같이 분리된 물리적인 서브 시스템으로 구성될 필요는 없으나, 대신에 메인 컴퓨터 시스템에서 실행하는 소프트 웨어로써 수행될 수 있는 것을 쉽사리 이해할 것이다. 본 발명의 장점을 이루기 위해 메모리는 비휘발성일 필요는 없고 다양한 환경에서 또한 고장허용(fault-tolerant)을 갖는다(세배의 리던던시(triple redundancy)와 보팅 메커니즘(voting mechanism)의 사용을 통해 말하여짐). 또한, 메모리는 분할될 필요는 없고 거기에는 하나이상의 여분의 디스크 쌍을 갖는다. 여분의 디스크 쌍중 정상 동작에 사용되지 않으나, 미러된 디스크중 하나가 고장났을 경우에 사용된다.
각각의 미러된 디스크 쌍은 디스크 쌍(300-1)에서 2개의 디스크(300-a1 및 300-b1)로 구성된다(디스크 쌍(300-N)에서는 300aN 및 300b-N에 대응됨). 각각의 미러된 쌍에서 2개의 디스크는 기본적으로 동일한 데이타를 포함한다. 그러나, 다음의 설명에서 잘 알수 있듯이, 각각의 미러된 디스크 쌍의 갱신은 종래의 미러된 디스크의 경우처럼 동시에 NOT으로 된다. 본 발명에 따라, 그 대신에 갱신은 비휘발성 메모리(220)에 축적되고 분류되어 뱃치된 갱신(batches of updates)으로 되고, 그렇게 된 갱신이 2개의 디스크 쌍에 동시에 인가되지 않으나, 처음에 하나의 디스크에 인가된후 나머지 디스크에 인가된다. 더우기, 동일한 갱신이 각각의 2개의 디스크 쌍에 결국 인가하는 동안(동일한 갱신이 2개의 디스크에 인가되기 전에 비휘발성 메모리(220)에서 또한 갱신되기 때문에, 사라지게 되는(obsolete) 갱신을 제외하고는), 개별적으로 각각의 디스크에 일반적으로 이루어지는 뱃치된 갱신은 동일하지 않은데, 왜냐하면 뱃치된 갱신이 다른 시간에 인가되고 더욱 최근의 데이타 블럭이 각 디스크 쌍에 개별적인 뱃치에 포함된다.
제2도는 비휘발성 메모리(220-i)중 하나의 영역을 더욱 상세하게 도시한다. 상기 영역은 다수의 데이타 블럭(221-1 내지 221-K)을 갖는다. 두개의 태그(tags)(222-1 및 223-1(블럭 221-1에 대해)내지 222-K 및 223-K(블럭 221-K에 대해))는 각 데이타 블럭에 대응된다. 각 데이타 블럭의 2개의 태그는 미러된 쌍에서 2개의 디스크에 대응하고 상기 대응하는 디스크가 아직도 데이타 블럭을 기록하는지를 표시한다.
비휘발성 메모리의 각 영역에 포인터(pointers) 목록(225-1 내지 225-L)도 있다. 각 포인터는 비휘발성 메모리 영역에서 데이타 블럭을 포인트한다. 목록에서 포인터 순서는 블러깅 효율을 달성하기 위해 디스크에 기록되는 순서를 표시한다.
비휘발성 메모리는 디스크에 기록되는 데이타 블럭에 대해 캐시(cache)로 동작한다. 상기 기술에 숙련된 자는 상기 캐시가, 해시(hash) 테이블(어느 블럭이 캐시에 있는지를 결정하기 위한)과 자유(free)목록(자유 블럭을 구속(chain)하는)을 사용하는 것과 같이, 나머지 캐시와 같이 관리되는 것을 잘 인식할 것이다. 상기 캐시 테이블 및 자유 목록은 제 2도에 도시되지 않는다.
본 발명에 따른 양호한 서브 시스템은 정상 동작동안 발생하는 4개의 프로세스를 갖는다. 제1의 프로세스 서비스는 요구를 기록하고 제3도에 도시된다. 기록 요구가 도착할때(블럭(510)), 제어기의 비휘발성 메모리는 그 블럭(제3도의 블럭(520))의 오래된 버전(old version)의 존재를 위해 확인된다. 그 블럭의 이전의 버젼이 대응하는 디스크 쌍의 비휘발성 메모리 영역에 이미 존재한다면, 메모리에서 이전의 버젼이 오버라이트(overwrite)되고 (블럭(530)), 2개의 디스크가 그 블럭의 새로운 버젼을 설치해야 한다는 것을 표시하기 위해 그 블럭에 대응하는 2개의 태그는 블럭(560)에서 턴 온(turn on)된다.
기록되는 블럭의 오래된 버젼이 비휘발성 메모리에서 발견되지 않으면, 제어기는 기록되는 블럭을 일시적으로 저장하기 위해 비휘발성 메모리에서 자유 공간(free space)을 구한다(블럭(450)). 블럭에 자유 공간이 있다면, 기록 요구에 의해 규정되는 데이타 블럭이 자유 공간내에 기록되고, 새로운 블럭에 대한 포인터는 목록상에 다른 포인터에 대한 상대적인 위치로 포인터 목록(블럭(550))으로 삽입되어 데이타 블럭에 대해 포인트되는 것(pointed-to data blocks)을 디스크에 효율적으로 기록하는 스케줄을 목록이 나타내도록 한다. 대응하는 태그(tags)들은 2개의 디스크가 새로운 데이타 블럭의 기록을 수행하는 것을 표시하기 위해 턴 온된다(블럭(560)).
기록되는 데이타 블럭이 비휘발성 메모리에 없고 가용한 자유 블럭 공간이 없다면, 새로운 블럭이 2개의 디스크에 동기적으로 기록된다. 비휘발성 메모리가 기록 활동(activity)의 많은 버스트(bursts)를 흡수하기에 충분히 크다면 상기 상황은 정상적으로 발생하지 않을 것이나(아마도 부하 및 나머지의 매우 크게 복사하는 동작을 제외하고는), 기록 요구가 발생되고 비휘발성 메모리에 자유 공간이 없는 경우에 취하는 동작은 어떻게든지 지정(specify)되야 한다.
포인터 목록(225)은 그 목록에 의해 커버된 데이타 블럭용 순서(order) 또는 스케줄을 구성한다(비휘발성 메모리에서). 디스크가 상기 순서로 블럭을 액세스하면 블럭 모두를 액세스하기 위한(그리고 그들을 디스크에 기록하기 위한) 총시간이 최소화되도록, 상기 순서 또는 스케줄이 양호하게 발생된다. 우선 비슷하게, 상기 순서(ordering)는 실린더(cylinder)에 의해 이루어짐으로써, 모든 디스크를 통해 스캔(스위프(sweep))은 하나의 경로로 갱신을 모두 인가한다. 특정한 실린더에서 블럭 모두는 다응 실린더로 이동하기 전에 기록된다. 더욱 정밀한 스킴(elaborate schemes)은 실린더내의 블럭을 순서대로 하여 실린더의 회전 대기시간(latency)을 최소화시킨다. 더욱 정교한 스킴은 탐색(seek) 시간과 회전 지연의 결함을 고려한다. 그러한 스킴은, 예를 들어, M. Seltzer 등에 의해 워싱턴 P.C에서 발행한 USENIX 1990년 겨울호(1990년 1월호) 313-323페이지에 기재된 Disk scheduling Revisited에서 설명된다. 2개의 프로세스(각 디스크당 하나)가 있는데, 상기 2개의 프로세스는 주기적으로 시작되어 비휘발성 메모리에 계류중인 갱신을 대응하는 디스크에 인가한다.
갱신을 인가하는 논리는 2개의 프로세스와 동일하며 제4도에 도시된다. 프로세스가 시작할때(블럭(610)), 그 프로세스는 포인터 목록을 시작하게 하고 순서대로 각 블럭을 검사(examine)하는 포인터 목록을 지나간다(transverse). 각 단계에서, 목록의 끝에 도달되었는지를 알기 위해 확인한다(블럭(620)). 그렇게 되면, 슬립(sleep)되고(블럭(680)) 다음 주기에서 시작한다. 더 많은 블럭이 있다면, 포인터 목록에서 현재의 블럭의 태그를 확인한다(블럭(630)). 프로세스 디스크에 대응하는 태그가 오프되면, 프로세스는 목록에서 다음의 포인터로 이동한다(블럭(670)). 태그가 온되면, 프로세스는 블럭을 디스크에 기록하고 태그를 터언 오프한다(블럭(640)). 태그를 터언 오프한후, 나머지 태그를 확인한다(블럭(650)). 나머지 태그가 온이면, 프로세스는 목록에서 다음 포인터로 이동한다(블럭(670)). 나머지 태그가 오프면, 2개의 디스크가 갱신을 인가함으로써, 포인터는 목록에서 제거된다(블럭(660)). 블럭이 여전히 유효하나(그 블럭에 대한 판독은 여전히 캐시 히트를 가질 것이다), 자유로워지고 블럭의 연속적인 기록에 의해 오버 라이트(overwrite)될 수 있다. 그후 프로세스는 목록에서 다음 포인터로 이동한다(블럭(670) ).
갱신을 2개의 디스크에 인가하는 2개의 프로세스는 동일한 논리와 동일한 주기를 갖는다. 프로세스의 기록 위상의 2개의 연속적인 작동간에 경과하는 시간, 즉, 상기 동일한 주기는 2개의 프로세스와 동일하다. 상기 주기는 설명된 실시 예에서 T로 불리운다. 2개의 프로세스는 동기될 필요는 없으나, 180도의 위상차로 되는 제5도에 예시하고 있다. 디스크 a에 대한 프로세스는 시간 0, T,2T,3T 등에서 동작하고, 완성될 때까지 디스크 a에 뱃치된 갱신을 기록하기 시작하고 판독 모드로 스위치시키는 반면에, 디스크 b에 대한 프로세스는 시간 T/2, T+T/2, 2T+T/2, 3T+T/2 등에서 시작하고, 완성될 때까지 뱃치된 갱신을 디스크 b에 기록하기 시작하고, 판독 모드로 스위치한다. 제5도는 상기 내용을 타이밍 다이어그램으로 예시하는데, 타이밍 다이어그램에서 높은 값은 대옹되는 디스크에서 기록 프로세스가 작동되는 시간 주기를 표시한다. 기록 프로세스가 슬립(작동되지 않음)하고 있는 동안, 대응하는 디스크는 임의의 판독 트래픽(traffic)을 서비스한다.
제5도는 세개의 다른 제어기 모드를 결과적으로 나타내는데, 그것은, 디스크 a가 기록 모드에 있고 디스크 b가 판독 모드에 있는 제어기 모드 1과, 디스크 b가 기록 모드에 있고 디스크 a가 판독 모드에 있는 제어기 모드(2)와, 2개의 디스크 a 및 디스크 b가 판독 모드에 있는 제어기 모드(3)이다. 제3도의 블럭(570)의 설명과 연관시켜 이미 언급했듯이, 거기에 2개의 디스크 a 및 디스크 b가 기록모드에 있는 제어기 모드(4)도 있다. 뱃치 기록이 T/2시간 이하로 각 시간을 완성시키는 동안, 제어기 모드(4)는 발생할 수 없다. 상기 시스템이 양호하게 설계되어 2개의 디스크가 기록모드에 동시에 있는 상황이 대부분 없어지고, 그것은 뱃치 기록이 T/2시간 이하로 완성되도록 설계를 함으로써 행해진다.
위상차 180도로 2개의 프로세스를 유지하는 것은, 기록이 반 주기 이하로 인가되면, 거기에 판독용 응답 시간을 손상시킴이 없이, 서비스하는 임의의 판독에 전용되고(dedicated) 뱃치를 크게 하는(그래서 기록이 효율을 얻음) 하나의 디스크 아암이 있는 것을 확정한다. 주기 T에서 축적하는 기록이 메모리에 적합하기 때문에, 주기 T는 가용한·메모리량에 의해 기본적으로 결정된 시스템 종속 파라미터이다. 프로세스를 서비스하는 판독 요구용 논리는 제 6도에 도시된다. 판독 요구가 왔을 때(블럭(810)), 비휘발성 메모리에 판독되는 블럭이 있는지 확인한다(블럭(820)). 블럭이 메모리에 있다면, 블럭이 즉시 복귀된다(블럭(830)). 블럭이 메모리에 없다면, 2개의 디스크가 판독 요구를 현재 서비스하고 있는지(환언하면, 제어기가 제어기 모드 3에 있는지)에 대해 확인이 이루어진다(블럭(84-)). 그렇지 않으면, 상기 요구는 판독 전용 모드(블럭(850))에 현재 있는 디스크에 의해 서브(serve)되는데 즉, 디스크의 기록 프로세스는 작동되지 않는다. 2개의 디스크가 판독전용 모드(즉, 제어기 모드 3)에 있다면, 상기 요구는 양쪽의 디스크에 의해 서비스되나, 디스크 헤드가 목표 블럭에 최근 접한 디스크에 의해 상기 요구가 서비 될 것이다(블럭(860)).
상기 기술에 숙련된 자는 루틴 동기(예를 들어, 래칭(latching))가 하나이상의 프로세스에 의해 동시에 액세스되는 공유된(shared) 데이타 구조(예를 들어, 태그, 포인터 목록)의 무결성(integrity)을 보호하기 위해 요구되는 것을 잘 인식할 것이다. 또한, 뱃치를 기록하는 시간을 최소화하는 포인터 순서는 2개의 디스크에서 다르게 되는데, 왜냐하면 각 디스크는 비휘발성 메모리에 저장된 블럭의 다른 서브세트(subset)를 디스크에 일반적으로 기록한다. 고장난 시나리오(failure scenario)의 조작은 설명될 것이고 제7도에서 예시된다. 미러된 쌍(300-g)에서 디스크(300-bg)가 고장났다고 가정하다. 통상적인 회복(recovery) 스킴은 하나의 대체 디스크를 사용하고 하나의 대체 디스크상에서 동작되는 디스크(300-ag) 내용이 분실되고(lost) 미러된 디스크를 대체하기 위해 복사되어 미러된 쌍을 회복한다. 본 발명에 따른 양호한 회복 스킴은 하나의 대체 디스크를 사용하기보다 대체 디스크(400a 및 400b)쌍을 이용한다. 회복이 완성될 때, 디스크쌍(400)은 최신식이고, 동작되는 디스크(300-ag)는 다른데 사용되기 위해 상기 시스템에 복귀된다.
회복의 지속기간 동안, 동작되는 디스크는 판독 전용 모드에 있다. 동작되는 디스크는 기록을 서비스하는데 포함되지 않는다. 비휘발성 메모리에 저장된 비트 맵(제7도의 230)은, 블럭이 회복 완성전에, 동작되는 디스크로부터 검색(retrieved)되도록 남아있는 트랙을 보유하기 위해 사용될 수 있는 것을 상기 기술에 숙련된 자는 잘 인식할 것이다. 비트 맵은 디스크 블럭당 1비트를 가지며 회복이 시작할때 모든 비트는 명료해진다. 대안적으로, 비트 맵은 시스템중 다른 메모리 소자에 저장될 수 있다.
전체적으로, 5개의 프로세스가 회복하는데 포함된다. 프로세스중 2개(각 디스크에 대해 한개)는 주기적으로 시작하고 캐시에서 계류중인(pending) 기록을 대응하는 디스크에 인가한다. 상기 프로세스는 동일한 주기를 가지며 180도의 위상차로 유도한다. 상기 프로세스중 논리는 제 4도에 도시된 정상적인 동작용 논리와 같다. 제 3프로세스 서비스가 판독하고 제8도에 도시된다. 판독 요구가 왔을때(블럭(910)), 판독되는 블럭이 있는지를 메모리가 확인한다(블럭(920)). 블럭이 메모리에 있다면, 즉시 복귀된다(블럭(930)). 블럭이 비휘발성 메모리에 있지 않다면, 디스크로부터 판독되야 한다. 블럭이 대체 디스크에서 가용한지를 알기 위해 비트 맵이 우선 확인된다(블럭(940)). 그렇지 않다면, 판독은 동작되는 디스크에 의해 서비스된다(블럭(960)). 블럭이 동작되는 디스크로부터 판독된 후, 비휘발성 메모리에 자유 공간이 있는지를 프로세스가 확인한다(블럭(970)). 그렇지 않다면, 프로세스는 끝난다. 비휘발성 메모리에 자유 공간이 있다면, 블럭은 비휘발성 메모리에 또한 위치되고, 포인터는 목록에 삽입되고 양쪽의 태그는 터언온됨으로써(블럭(980)), 디스크가 그 다음의 기록 위상에 그것을 기록한 것이다. 더우기, 그 블럭에 대응하는 비트 맵의 비트는 동작되는 디스크로부터 그 블럭을 인출할 필요가 없다는것을 표시하기 위해 터언 온된다.
판독 요구시 블럭이 비휘발성 메모리에 없고 블럭이 대체 디스크상에서 가용하다는 것을 비트 맵이 보여준다면, 블럭은 대체 디스크중 하나로부터 판독된다. 얼마나 많은 대체 디스크가 그 순간에 판독모드에 있는지를 프로세스가 양호하게 확인한다(블럭(950)). 오직 하나의 대체 디스크가 판독 모드에 있다면, 상기 요구는 그 대체 디스크에 의해 서브(serve)된다(블럭(954)). 양쪽의 대체 디스크가 판독모드에 있다면, 상기 요구는, 디스크 아암이 요구된 블럭에 최근접하는, 디스크에 의해 서비스된다(블럭(952)). 블럭이 대체 디스크로부터 판독되면, 캐시에서 비트 맵을 갱신시키거나 블럭을 저장할 필요가 없다. 제 4프로세스 서비스는 회복동안 기록하고 게 3도에 도시된 동일한 단계를 정확하게 포함한다. 부가적으로, 모든 경우에, 기록된 블럭에 대응하는 비트는 동작되는 디스크로부터 그 블럭을 복사하는 것을 필요로 하지 않는 것을 표시하기 위해 비트 맵에서 세트된다(이미 세트되지 않더라도).
제 5프로세스(제9도에 도시된)는 대체 디스크에 기록되지 않은 동작되는 디스크에서의 블럭을 스캔하는 배경 프로세스이다. 상기 시스템이 회복 모드로 들어가고 대체 디스크가 작동될 때, 프로세스는 시작된다(블럭(1000)) 동작되는 디스크가 휴지(idle)로 될때까지, 즉, 프로세스에 계류중인 임의의 판독 요구가 없을 때까지, 프로세스는 대기한다(블럭(1010)). 그후, 스캔안된(unscanned) 블럭, 즉 비트 맵의 비트가 세트되지 않은 블럭이 있는지를 확인한다(블럭(1020)). 모든 블럭이 스캔된다면 회복이 완성되고 프로세스는 끝나고(블럭(1060)), 동작되는 디스크는 다른데 사용되기 위해 시스템에 복귀될 수 있다. 스캔안된 블럭이 있다면, 비휘발성 메모리에 자유 공간이 있는지를 프로세스가 확인한다(블럭(1030)). 그렇지 않으면, 일정한 간격으로 슬립된다(블럭(1040)).
비휘발성 메모리에 자유공간이 있다면, 프로세스는 동작되는 디스크 헤드의 현 위치에 최근접한 스캔안된 블럭을 판독한다(블럭(1050)). 비트 맵은 블럭이 스캔안된 것을 결정하기 위해 사용된다. 판독된 블럭이 비휘발성 메모리에 위치되고, 그 태그(tags)중 2개는 대체 디스크가 블럭을 기록해야 하는 것을 표시하기 위해 터언온된다. 포인터가 포인터 목록에 또한 삽입된다. 더우기, 비트 맵에서 대응하는 비트는 동작되는 디스크가 다시 그 블럭을 스캔할 필요가 없다는 것을 표시하기 위해 세트된다. 그후, 상기 프로세스는 상기 단계를 반복한다(블럭(1010)으로 간다). 임의의 판독이 도착하면, 판독이 완성될때까지, 상기 프로세스는 블럭(1010)에서 중지된다(suspended).
동작되는 디스크가 회복 프로세스를 더욱 촉진시키는데 사용될 수 있는 기회주의의 전략(opportunistic strategies)이 있다는 것을 상기 기술에 숙련자는 잘 인식할 것이다. 예를 들어, 동작되는 디스크가 임의의 판독 요구를 서비스 할때마다, 디스크가 목표 블럭에 대해 회전되도록 대기하는 동안, 동작되는 디스크가 그 아암 아래로 통과하는 스캔안된(즉, 복사안된) 블럭을 판독할 수 있었다. 더우기, 제9도에 도시된 프로세스는 한번에 하나이상의 블럭을 명백히 판독할 수 있었다.

Claims (18)

  1. 컴퓨터 시스템용 디지탈 정보의 데이타 블럭을 저장하는 고장허용(fault-tolerant) 디스크 저장 서브 시스템에 있어서, 미러된 쌍의 2개의 디스크상에서 이중으로(in duplicate) 디지탈 정보의 데이타 블럭을 저장하는 미러된 디스크쌍과, 메모리를 가지며, 상기 미러된 디스크쌍용 제어기를 구비하며, 상기 제어기는 상기 컴퓨터 시스템에 의해 제공된 데이타 블럭을 상기 미러된 쌍의 2개의 디스크상에 이중으로 저장할때까지 상기 메모리에 일시적으로 축적하고, 상기 제어기는 상기 미러된 디스크쌍에 효율적으로 기록하기 위한 순서대로 상기 메모리에 축적된 상기 데이타 블럭을 스케줄하고(scheduling), 상기 제어기는, 상기 미러된 쌍중 하나의 디스크가 기록모드에 있는 반면에 미러된 쌍중 나머지 디스크가 판독모드에 있는 제 1동작 모드와, 상기 하나의 디스크가 판독모드에 있는 반면에 상기 나머지 디스크가 기록 모드에 있는 제 2동작 모드를 가지며, 상기 제어기는, 상기 하나의 디스크에 아직 기록되지 않은 스케줄된 순서대로 동작 데이타 블럭의 상기 제 1모드 동안 상기 메모리로부터 상기 하나의 디스크로 복사하고, 상기 나머지 디스크에 아직 기록되지 않은 스케줄된 순서대로 동작 데이타 블럭의 상기 제 2모드동안 상기 메모리로부터 상기 제 2디스크로 복사하고, 상기 제어기는 간격을 둔 시간 간격동안 상기 제 1동작 모드에서 그리고 상기 간격을 둔 시간 간격간에 적어도 일부의 시간동안 상기 제 2동작모드에서 상기 미러된 디스크쌍을 동작시키고, 상기 제어기는, 요구된 데이타 블럭이 메모리에 있는 경우에는 상기 메모리로부터,그리고 그렇지 않으면 상기 미러된 디스크쌍이 상기 제 1동작 모드에서 동작하는 경우에는 상기 나머지 디스크로부터 그리고 상기 미러된 디스크쌍이 상기 제2동작 모드에서 동작하는 경우에는 상기 하나의 디스크로부터 상기 컴퓨터 시스템에 요구된 데이타 블럭을 제공하고, 상기와 같이 됨으로써 데이타 블럭이 상기 컴퓨터 시스템에 의해 요구된 데이타 블럭의 판독에 의해 또는 판독으로부터 방해(interference)없이 스케줄된 순서대로 상기 미러된 디스크쌍에 기록되는 것을 특징으로 하는 고장허용 디스크 저장 서브 시스템.
  2. 제 1항에 있어서, 상기 제어기는 상기 컴퓨터 시스템에서 소프트웨어에 의해 수행되고 상기 제어기의 상기 메모리는 상기 컴퓨터 시스템의 일반적인 저장 리소스(resources) 일부인 것을 특징으로 하는 고정하용 디스크 저장 서브 시스템.
  3. 제 1항에 있어서, 상기 제어기 및 메모리가 전용의 하드웨어로써 수행되는 것을 특징으로 하는 고장허용 디스크 저장 서브 시스템.
  4. 제 1항에 있어서, 상기 메모리가 비휘발성인 것을 특징으로 하는 고장허용 디스크 저장 서브 시스템.
  5. 제 1항에 있어서, 상기 메모리가 고장허용인 것을 특징으로 하는 고장 허용 디스크 저장 서브 시스템.
  6. 제 1항에 있어서, 상기 제 1동작 모드가 주기적으로 시작되도륵 스케줄(schedule)되는 것을 특징으로 하는 고장허용 디스크 저장 서브 시스템.
  7. 제 1항에 있어서, 상기 데이타 블럭이 모든 디스크의 물리적인 스캔(scan)에 대응하는 순서대로 스케줄되는 것을 특징으로 하는 고장허용 디스크 저장 서브 시스템.
  8. 제 1항에 있어서, 상기 제어기는, 모드를 변화시키기전, 재 1동작 모드동안 스케줄된 순서대로 축적된 데이타 블럭을 통해 단일 스캔을 만드는 것을 특징으로 하는 고장허용 디스크 저장 서브 시스템.
  9. 제 1항에 있어서, 상기 제어기는 상기 미러된 디스크쌍의 2개의 디스크가 판독 모드에 있는 제 3동작 모드를 가지며 요구된 데이타 블럭은 상기 요구된 데이타 블럭이 상기 메모리에 없는 경우에 상기 미러된 디스크쌍중 하나로부터 검색되는(retrieved) 것을 특징으로 하는 고장허용 디스크 저장 서브시스템.
  10. 제 9항에 있어서, 상기 제 1동작 모드가 상기 제 2동작 모드의 다음에 스케줄된 시작에 앞서 끝내질때마다 그리고 상기 제 2동작 모드가 상기 제 1동작 모드의 다음에 스케줄된 시작에 앞서 끝내질때마다, 상기 제어기는 상기 제 3동작 모드에서 상기 미러된 디스크쌍을 동작시키는 것을 특징으로 하는 고장허용 디스크 허용 서브 시스템.
  11. 제 9항에 있어서, 상기 제 3동작 모드동안, 데이타 블럭이 상기 컴퓨터 시스템에 의해 요구되고 상기 메모리에 없을 때, 상기 제어기는 상기 미러된 쌍에서 상기 디스크중 하나가 가장 짧은 시간으로 상기 요구된 데이타 블럭을 전달하는 것을 결정하고 상기 결정된 디스크로부터 요구된 데이타 블럭을 검색하는 것을 특징으로 하는 고장허용 디스크 저장 서브 시스템.
  12. 제 1항에 있어서, 상기 제어기는 상기 미러된 디스크쌍의 2개의 디스크가 기록 모드에서 동작되는 제 4동작 모드로 갖는 것을 특징으로 하는 고장허용 디스크 저장 서브 시스템.
  13. 제 9항에 있어서, 상기 제 1동작 모드의 시작시에 스케줄된 순서대로 모든 데이타 블럭이 상기 제 2동작 모드가 다시 시작하도륵 스케줄되는 시간에 의해 상기 하나의 디스크에 기록되지 않을 때마다, 그리고 제 2동작 모드의 시작시에 스케줄된 순서대로 모든 데이타 블럭이 상기 제 1동작 모드가 다시 시작되도록 스케줄되는 시간에 의해 상기 나머지 디스크에 기록되지 않을 때마다, 상기 제어기는 제 4동작 모드에서 상기 미러된 디스크쌍을 동작시키는 것을 특징으로 하는 고정허용 디스크 저장 서브 시스템.
  14. 제 1항에 있어서, 상기 서브 시스템은 여분의 저장 디스크 쌍을 포함하고 상기 미러된 디스크쌍 중 오직 하나가 동작되는 경우에, 상기 제어기는 회복 동작 모드동안 상기 미러된 쌍을 상기 여분의 쌍으로 증가시키는 것을 특징으로하는 고장허용 디스크 저장 서브 시스템.
  15. 제 14항에 있어서, 상기 남아있어 동작되는 디스크의 모든 블럭이 상기 메모리 또는 상기 여분의 디스크쌍중 하나 또는 2개로 이송될 때까지, 상기 회복 동작 모드동안 상기 제어기는 판독 모드에서 계속해서 동작되어 남아있는 상기 디스크를 위치시키고, 그때에 상기 여분의 쌍이 상기 미러된 쌍을 대체하고, 상기 남아있어 동작되는 디스크는 여분의 디스크로 되고 상기 회복 동작 모드가 끝나는 것을 특징으로 하는 고장허용 디스크 저장 서브 시스템.
  16. 저장 디스크의 미러된 쌍을 갖는 저장 서브 시스템의 컴퓨터 시스템으로부터 수신된 디지탈 정보의 데이타 블럭을 저장하고, 상기 컴퓨터 시스템으로부터의 요구시 상기 저장 서브 시스템으로부터 데이타 블럭을 검색하는 방법에 있어서, 저장되는 데이타 블럭 그룹을 일시적으로 축적하는 단계와, 상기 미러된 디스크쌍에 효율적으로 기록하는 순서대로 축적된 데이타 블럭 그룹을 스케줄하는 단계와, 상기 미러된 쌍중 하나의 디스크가 기록모드에 있는 반면에 상기 미러된 쌍중 나머지 디스크는 판독 모드에 있는 제 1동작 모드에서, 그리고 상기 하나의 디스크가 판독 모드에 있는 반면에 상기 나머지 디스크는 기록 모드에 있는 제 2동작 모드에서 미러된 디스크쌍을 동작시키는 단계와, 상기 하나의 디스크에 아직 기록되지 않은 상기 축적된 그룹에서 상기 제 1동작 모드동안 순서대로 된 데이타 블럭을 상기 하나의 디스크상에 복사하는 단계와, 상기 나머지 디스크에 아직 기록되지 않은 상기 축적된 그룹에서 상기 제 2동작 모드동안 순서대로 된 데이타 블럭을 상기 나머지 디스크상에 복사하는 단계와, 간격을 둔 시간 간격동안 상기 제 1동작 모드에서 그리고 상기 간격을 둔 시간 구간에 적어도 일부의 시간동안 상기 제 2동작 모드에서 상기 미러된 디스크쌍을 동작시키는 단계와, 상기 요구된 데이타 블럭이 상기 축적된 그룹에 있는 경우에는 상기 축적된 그룹으로부터, 그리고 그렇지 않으면 상기 미러된 디스크쌍에 제 1동작 모드에서 동작하는 경우에는 상기 나머지 디스크로부터, 그리고 상기 미러된 디스크쌍이 상기 제 2동작 모드에서 동작하는 경우에는 상기 하나의 디스크로부터 상기 컴퓨터 시스템에 의해 요구된 데이타 블럭을 검색하는 단계를 구비하고, 상기와 같이 됨으로써 데이타 블럭이 상기 컴퓨터 시스템에 의해 요구된 데이타 블럭의 판독에 의해 또는 판독으로부터 방해없이 스케줄된 순서대로 상기 미러된 디스크쌍으로 기록하는 것을 특징으로 하는 서브 시스템의 컴퓨터 시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장 방법.
  17. 제 16항에 있어서, 상기 미러된 디스크쌍의 2개의 디스크에 기록되는 데이타 블럭을 상기 축적된 그룹으로부터 제거시키는 단계도 구비하는 것을 특징으로 하는 서브 시스템의 컴퓨터 시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장 방법.
  18. 제 17항에 있어서, 상기 그룹에서 제 1 및 제 2플래그(flags)를 각기 축적된 데이타 블럭과 연관시키는 단계도 구비하며, 상기 제 1플래그는 상기 특정한 데이타 그룹이 상기 하나의 디스크에 복사되었는지를 표시하는 특정한 데이타 그룹과 연관되며, 상기 제 2플래그는 상기 특정한 데이타 그룹이 상기 나머지 디스크에 복사되었는지를 표시하는 상기 특정한 데이타 그룹과 연관되는 것을 특징으로 하는 서브 시스템의 컴퓨터 시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장 방법.
KR1019940018211A 1993-08-23 1994-07-25 고장 허용 디스크 저장 서브시스템 및 그 서브시스템의 컴퓨터시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장방법 KR0131554B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/110,467 US5432922A (en) 1993-08-23 1993-08-23 Digital storage system and method having alternating deferred updating of mirrored storage disks
US110,467 1993-08-23

Publications (2)

Publication Number Publication Date
KR950006577A KR950006577A (ko) 1995-03-21
KR0131554B1 true KR0131554B1 (ko) 1998-04-24

Family

ID=22333166

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940018211A KR0131554B1 (ko) 1993-08-23 1994-07-25 고장 허용 디스크 저장 서브시스템 및 그 서브시스템의 컴퓨터시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장방법

Country Status (8)

Country Link
US (1) US5432922A (ko)
EP (1) EP0642081A3 (ko)
JP (1) JP3053511B2 (ko)
KR (1) KR0131554B1 (ko)
CN (1) CN1096639C (ko)
BR (1) BR9403306A (ko)
CA (1) CA2125201A1 (ko)
SG (1) SG42854A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100793224B1 (ko) * 2005-10-28 2008-01-10 후지쯔 가부시끼가이샤 Raid 시스템, raid 컨트롤러 및 그 재구성/재복사처리 방법

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5511177A (en) * 1991-11-21 1996-04-23 Hitachi, Ltd. File data multiplexing method and data processing system
US5729718A (en) * 1993-11-10 1998-03-17 Quantum Corporation System for determining lead time latency as function of head switch, seek, and rotational latencies and utilizing embedded disk drive controller for command queue reordering
JP3243919B2 (ja) * 1994-02-23 2002-01-07 三菱電機株式会社 ディスク装置、および、このディスク装置を使用したfaコントローラ
JP2708386B2 (ja) * 1994-03-18 1998-02-04 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時更新及び複写手順を通して重複データベースを回復させる方法及び装置
JP3085085B2 (ja) * 1994-05-09 2000-09-04 三菱電機株式会社 データアクセス装置及び分散データベースシステム
EP0689125B1 (en) * 1994-06-22 2004-11-17 Hewlett-Packard Company, A Delaware Corporation Method of utilizing storage disks of differing capacity in a single storage volume in a hierarchic disk array
JPH086843A (ja) * 1994-06-23 1996-01-12 Fujitsu Ltd 半導体記憶装置
EP0702302B1 (en) * 1994-09-16 2001-12-05 International Computers Limited Disk array for data storage
US5764903A (en) * 1994-09-26 1998-06-09 Acer America Corporation High availability network disk mirroring system
EP0707267A3 (en) * 1994-10-12 1996-07-03 Ibm Redundant arrangement of disk drives with asymmetrical mirroring and data processing methods for asymmetrical mirroring
JPH08152976A (ja) * 1994-11-28 1996-06-11 Fujitsu Ltd 記憶装置のアクセス方法
US6067635A (en) * 1995-10-27 2000-05-23 Lsi Logic Corporation Preservation of data integrity in a raid storage device
US5708771A (en) * 1995-11-21 1998-01-13 Emc Corporation Fault tolerant controller system and method
US5805787A (en) * 1995-12-29 1998-09-08 Emc Corporation Disk based disk cache interfacing system and method
US5765172A (en) * 1996-01-23 1998-06-09 Dsc Communications Corporation System and method for verifying integrity of replicated databases
DE19607101A1 (de) * 1996-02-24 1997-08-28 Hella Kg Hueck & Co Elektronisches Gerät und Einrichtung zur Datenübertragung zwischen zwei gleichartig aufgebauten elektronischen Geräten
US5819310A (en) * 1996-05-24 1998-10-06 Emc Corporation Method and apparatus for reading data from mirrored logical volumes on physical disk drives
US5933653A (en) * 1996-05-31 1999-08-03 Emc Corporation Method and apparatus for mirroring data in a remote data storage system
US6101497A (en) * 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US6092066A (en) * 1996-05-31 2000-07-18 Emc Corporation Method and apparatus for independent operation of a remote data facility
US5917998A (en) * 1996-07-26 1999-06-29 International Business Machines Corporation Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging
US6567903B1 (en) * 1996-08-23 2003-05-20 Emc Corporation Data storage system having master/slave addressable memories
US6347365B1 (en) 1996-08-23 2002-02-12 Emc Corporation Data storage system having a[n] memory responsive to clock pulses produced on a bus and clock pulses produced by an internal clock
US6009481A (en) * 1996-09-30 1999-12-28 Emc Corporation Mass storage system using internal system-level mirroring
US5991852A (en) * 1996-10-28 1999-11-23 Mti Technology Corporation Cache ram using a secondary controller and switching circuit and improved chassis arrangement
US5950229A (en) * 1997-03-12 1999-09-07 Micron Electronics, Inc. System for accelerating memory bandwidth
US7389312B2 (en) * 1997-04-28 2008-06-17 Emc Corporation Mirroring network data to establish virtual storage area network
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
US6112257A (en) * 1997-09-24 2000-08-29 Emc Corporation Dynamic adjustment of mirror service policy for logical volumes in a disk drive system based on collected statistics
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
JP3866862B2 (ja) * 1998-06-05 2007-01-10 パイオニア株式会社 情報記録装置及び方法
US6167531A (en) * 1998-06-18 2000-12-26 Unisys Corporation Methods and apparatus for transferring mirrored disk sets during system fail-over
US6230240B1 (en) * 1998-06-23 2001-05-08 Hewlett-Packard Company Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface
JP2000132915A (ja) * 1998-10-22 2000-05-12 Matsushita Electric Ind Co Ltd ディスク装置およびそのデータ処理方法
US6209002B1 (en) * 1999-02-17 2001-03-27 Emc Corporation Method and apparatus for cascading data through redundant data storage units
US6643667B1 (en) * 1999-03-19 2003-11-04 Hitachi, Ltd. System and method for replicating data
DE60043873D1 (de) * 1999-06-01 2010-04-08 Hitachi Ltd Verfahren zur Datensicherung
US6463573B1 (en) * 1999-06-03 2002-10-08 International Business Machines Corporation Data processor storage systems with dynamic resynchronization of mirrored logical data volumes subsequent to a storage system failure
US6754682B1 (en) * 2000-07-10 2004-06-22 Emc Corporation Method and apparatus for enabling consistent ancillary disk array storage device operations with respect to a main application
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US7032119B2 (en) * 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
US6820182B1 (en) 2000-10-18 2004-11-16 International Business Machines Corporation Support for exhaustion recovery in a data processing system with memory mirroring
US7133233B1 (en) * 2000-10-24 2006-11-07 Maxtor Corporation Disk drive with read while write capability
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
JP2003044230A (ja) * 2001-05-23 2003-02-14 Hitachi Ltd 記憶装置システム
US6993677B1 (en) * 2001-06-14 2006-01-31 Lsi Logic Corporation System and method for data verification in a RAID system
US6647460B2 (en) * 2001-07-13 2003-11-11 Hitachi, Ltd. Storage device with I/O counter for partial data reallocation
US6745303B2 (en) * 2002-01-03 2004-06-01 Hitachi, Ltd. Data synchronization of multiple remote storage
US7139932B2 (en) * 2002-01-03 2006-11-21 Hitachi, Ltd. Data synchronization of multiple remote storage after remote copy suspension
US7069465B2 (en) * 2002-07-26 2006-06-27 International Business Machines Corporation Method and apparatus for reliable failover involving incomplete raid disk writes in a clustering system
WO2004031961A1 (en) * 2002-09-30 2004-04-15 Insignia Solutions Plc Efficient system and method for updating a memory device
US7107483B2 (en) * 2002-11-15 2006-09-12 Lsi Logic Corporation Apparatus and method for enhancing data availability by leveraging primary/backup data storage volumes
US6934805B2 (en) 2003-05-19 2005-08-23 International Business Machines Corporation Method and apparatus for managing computer storage devices for improved operational availability
JP4512386B2 (ja) * 2004-03-05 2010-07-28 株式会社日立製作所 バックアップシステムおよび方法
US7492953B2 (en) * 2004-06-17 2009-02-17 Smith Micro Software, Inc. Efficient method and system for reducing update requirements for a compressed binary image
US8561049B2 (en) * 2005-08-23 2013-10-15 Red Bend Ltd. Method and system for updating content stored in a storage device
US20070180206A1 (en) * 2006-01-18 2007-08-02 Craft Julie L Method of updating a duplicate copy of an operating system on the same disk
US7707356B2 (en) * 2006-09-28 2010-04-27 Agere Systems Inc. Method and apparatus for scheduling disk read requests
US7694171B2 (en) * 2006-11-30 2010-04-06 Lsi Corporation Raid5 error recovery logic
US7882304B2 (en) * 2007-04-27 2011-02-01 Netapp, Inc. System and method for efficient updates of sequential block storage
US8375187B1 (en) * 2007-09-27 2013-02-12 Emc Corporation I/O scheduling for flash drives
US7827441B1 (en) * 2007-10-30 2010-11-02 Network Appliance, Inc. Disk-less quorum device for a clustered storage system
JP5505329B2 (ja) * 2011-02-22 2014-05-28 日本電気株式会社 ディスクアレイ装置及びその制御方法
US20120226935A1 (en) * 2011-03-03 2012-09-06 Nitin Kishore Virtual raid-1 drive as hot spare
US20130166865A1 (en) * 2011-12-22 2013-06-27 Alex Lemberg Systems and Methods for Managing Parallel Access to Multiple Storage Systems
US8625386B2 (en) * 2012-03-22 2014-01-07 Seiko Epson Corporation Non-volatile memory device, circuit board, printing material container and printer
WO2014002160A1 (ja) * 2012-06-25 2014-01-03 富士通株式会社 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
JP6605786B2 (ja) * 2014-03-18 2019-11-13 日本電気株式会社 冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム
JP6366013B2 (ja) * 2014-04-30 2018-08-01 パナソニックIpマネジメント株式会社 画像記録装置及び画像記録方法
CN106897311B (zh) * 2015-12-21 2020-08-11 财团法人工业技术研究院 数据库批次更新方法、数据还原日志产生方法与存储装置
CN106933700B (zh) * 2015-12-31 2021-12-03 伊姆西Ip控股有限责任公司 用于恢复存储器之间的数据备份的方法及设备
US10452301B1 (en) 2016-09-29 2019-10-22 Amazon Technologies, Inc. Cluster-based storage device buffering
CN110096216B (zh) * 2018-01-30 2022-06-14 伊姆西Ip控股有限责任公司 用于管理数据存储系统中的数据存储的方法、装置以及计算机程序产品
US11226990B2 (en) * 2018-07-20 2022-01-18 Ionir Systems Ltd. System and method for operating a digital storage system
CN111338559B (zh) * 2018-12-19 2023-11-10 深圳市茁壮网络股份有限公司 数据处理方法、用户模块、信息管理模块及系统
US11749335B2 (en) * 2020-11-03 2023-09-05 Jianzhong Bi Host and its memory module and memory controller

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57168360A (en) * 1981-03-31 1982-10-16 Fujitsu Ltd Magnetic recording controlling system
JPS59135563A (ja) * 1983-01-24 1984-08-03 Hitachi Ltd デイスク・キヤツシユ装置を有する計算機システム
JPH0724009B2 (ja) * 1985-04-27 1995-03-15 日本電気株式会社 ディスク制御装置によるデータ二重書き方式
US4722085A (en) * 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
US5230073A (en) * 1986-07-21 1993-07-20 Bell Communications Research, Inc. System and method for accessing and updating a continuously broadcasted stored database
JPH0258140A (ja) * 1988-08-24 1990-02-27 Nec Corp ボリューム障害対策方式
JPH02280221A (ja) * 1989-04-21 1990-11-16 Mitsubishi Electric Corp ディスク制御方式
JPH03266046A (ja) * 1990-03-16 1991-11-27 Nippon Telegr & Teleph Corp <Ntt> データベース高速アクセス方法
JPH0421021A (ja) * 1990-05-14 1992-01-24 Fujitsu Ltd 半導体ディスク装置のデータバックアップ方式
JPH04102148A (ja) * 1990-08-22 1992-04-03 Hitachi Ltd データ処理装置
JPH04125725A (ja) * 1990-09-17 1992-04-27 Hitachi Ltd 磁気テープ制御装置およびその制御方法
US5212784A (en) * 1990-10-22 1993-05-18 Delphi Data, A Division Of Sparks Industries, Inc. Automated concurrent data backup system
JPH04195646A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd 多重化システム
JPH04216152A (ja) * 1990-12-17 1992-08-06 Nec Kyushu Ltd バックアップコントローラ
US5297258A (en) * 1991-11-21 1994-03-22 Ast Research, Inc. Data logging for hard disk data storage systems
JPH05165579A (ja) * 1991-12-17 1993-07-02 Yokogawa Electric Corp ミラードディスク制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100793224B1 (ko) * 2005-10-28 2008-01-10 후지쯔 가부시끼가이샤 Raid 시스템, raid 컨트롤러 및 그 재구성/재복사처리 방법

Also Published As

Publication number Publication date
BR9403306A (pt) 1995-06-20
US5432922A (en) 1995-07-11
SG42854A1 (en) 1997-10-17
CN1102896A (zh) 1995-05-24
JPH0764870A (ja) 1995-03-10
EP0642081A2 (en) 1995-03-08
KR950006577A (ko) 1995-03-21
JP3053511B2 (ja) 2000-06-19
EP0642081A3 (en) 1995-03-22
CA2125201A1 (en) 1995-02-24
CN1096639C (zh) 2002-12-18

Similar Documents

Publication Publication Date Title
KR0131554B1 (ko) 고장 허용 디스크 저장 서브시스템 및 그 서브시스템의 컴퓨터시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장방법
US5632012A (en) Disk scrubbing system
US5210866A (en) Incremental disk backup system for a dynamically mapped data storage subsystem
US7281160B2 (en) Rapid regeneration of failed disk sector in a distributed database system
US5124987A (en) Logical track write scheduling system for a parallel disk drive array data storage subsystem
US5155835A (en) Multilevel, hierarchical, dynamically mapped data storage subsystem
US6529995B1 (en) Method and apparatus for maintaining and restoring mapping table entries and data in a raid system
EP0768599B1 (en) On-line disk array reconfiguration
US6604172B2 (en) Disk array device with selectable method for generating redundant data
JP2501752B2 (ja) コンピユ―タ・システムのストレ―ジ装置及びデ―タのストア方法
EP0606714A1 (en) DASD array
EP0566968A2 (en) Method and system for concurrent access during backup copying of data
US6961818B1 (en) Method, system and computer program product for managing data in a mirrored cache using an access balancing technique
JPH0683687A (ja) データ処理システム及びその方法
US6397348B1 (en) Redundant array of disk drives with asymmetric mirroring and asymmetric mirroring data processing method
GB2271462A (en) Disk array recording system
US7130973B1 (en) Method and apparatus to restore data redundancy and utilize spare storage spaces
EP0482853A2 (en) Method and apparatus for storage device management
JP3687111B2 (ja) 記憶装置システムおよび記憶装置の制御方法
JP3648311B2 (ja) ディスクアレイ装置
GB2298308A (en) A disk storage array with a spiralling distribution of redundancy data
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
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091203

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee