KR100310896B1 - 디스크기억장치의데이터갱신방법및디스크기억제어장치 - Google Patents

디스크기억장치의데이터갱신방법및디스크기억제어장치 Download PDF

Info

Publication number
KR100310896B1
KR100310896B1 KR1019980027214A KR19980027214A KR100310896B1 KR 100310896 B1 KR100310896 B1 KR 100310896B1 KR 1019980027214 A KR1019980027214 A KR 1019980027214A KR 19980027214 A KR19980027214 A KR 19980027214A KR 100310896 B1 KR100310896 B1 KR 100310896B1
Authority
KR
South Korea
Prior art keywords
block
data
logical address
disk
blocks
Prior art date
Application number
KR1019980027214A
Other languages
English (en)
Other versions
KR19990023182A (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 KR19990023182A publication Critical patent/KR19990023182A/ko
Application granted granted Critical
Publication of KR100310896B1 publication Critical patent/KR100310896B1/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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 간접 맵을 원리적으로 필요로 하지 않는, 염가이고 고속인 디스크 기억 장치의 데이터 갱신 방법에 관한 것으로, 동일한 방법을 실현하는 디스크 기억 제어 시스템을 구축하는 것을 목적으로 한다.
본 발명은 N대의 디스크 장치로 구성되는 디스크 기억 장치에 있어서, N×K(정수)개의 논리 블럭에 상당하는 용량을 가지는 기록 버퍼(6)를 구비하고, 이 기록 버퍼에 갱신해야 할 데이터의 논리 블럭을 축적하며, 제어 장치(1)는 그 축적한 논리 블럭이 N×K-1개에 이를 때까지 그 논리 블럭의 데이터 갱신을 지연시키고, 기록 버퍼에 축적된 각 논리 블럭에 대한 논리 어드레스로 구성되는 논리 어드레스 태그 블럭을 생성하여, N×K-1개의 논리 블럭에 상기 논리 어드레스 태그 블럭을 더한 N×K개의 논리 블럭을 N대의 디스크 장치상에 갱신되어야 할 데이터를 유지하고 있는 영역과는 별도의 빈 영역에 연속하여 순차 기록한다.

Description

디스크 기억 장치의 데이터 갱신 방법 및 디스크 기억 제어 장치{DATA UPDATING METHOD OF DISK STORAGE UNIT AND DISK STORAGE CONTROL APPARATUS}
본 발명은, 특히, RAID(Redundant Array of Inexpensive Disk) 등, 복수대의 디스크 기억 장치를 사용한 디스크 어레이 기억 장치에 관한 것으로, 특히, 디스크 어레이 기억 장치의 데이터 기억 판독 방법 및 그것을 위한 제어 장치에 관한 것이다. 미국 특허 제5, 124,987호, 일본 특개평 제6-214720호, 일본 특개평 제6-266510호에 개시된 RAID 방식의 기억 장치에 있어서는 기억 장치의 고속 기록 방법으로서 구(舊)데이터의 영역을 재기록하는 것이 아니라, 갱신 데이터를 디스크 장치내의 미리 준비한 별도의 빈 영역에 정리하여 기록하고, 그 후의 빈 시간에 구데이터의 영역을 재기록하는 방법이 제안되어 있다.
도 18을 이용하여, 상술한 종래 방법에 대하여 간단히 설명한다. 도면에 있어서, 논리 블럭 어드레스(이하에서는 단지 논리 어드레스라고 한다)(L6, L4, L2, L12, L7, L11)내에 기억된 데이터 블럭을 갱신하는 경우를 생각한다. 이들 논리 블럭 어드레스(L6, L4, L2, L12, L7, L11)내의 구데이터는 3개의 디스크 장치(181, 182, 183)내의 물리 블럭 어드레스(이하에서는 단지 물리 어드레스라고 한다.)(P6, P4, P2, P12, P7, P11)에 존재한다. 우선, 갱신해야 할 새로운 데이터 블럭(L6Date, L4Date, L2Date, L12Date, L7Date, L11Date)은 통상 비휘발성 메모리에 의해 구성되는 기록 버퍼 메모리(184)에 일시적으로 기억된다. 이들 데이터 블럭은 갱신되어야 할 구데이터가 기억된 물리 블럭 어드레스(P6, P5, P2, P12)의 내용인 데이터로 직접 대체되는 대신에, 구데이터는 그대로 72, 173내의 미리 준비된 별도의 빈 영역인 물리 어드레스(P51, P52, P53, P54, P55, P56)에 정리하여 기록된다. 이 기록 동작은 3개의 디스크 장치(181, 182, 183)내의 연속하는 물리 어드레스(P51-P52, P53-P54, P55-P56)에의 기록이기 때문에, 직접 재기록을 행하는 경우에는 6회의 기록 조작이 필요한 데 반하여, 실질적으로 3회의 기록 조작으로 줄어 기록 성능이 크게 향상된다.
한편, 이러한 종래의 디스크 어레이 기억 장치에 있어서는, 데이터 블럭이 기억되는 논리 어드레스와 물리 어드레스와의 대응 관계를 나타내는 테이블인 간접 맵(185)이 마련되어 있다. 그리고 데이터의 갱신에 있어서는, 상기한 바와 같이, 논리 어드레스(L6, L5, L2, L12, L7, L11)내의 최신 데이터는 실제로 디스크 장치내의 물리 어드레스(P51, P52, P53, P54, P55, P56)에 존재하기 때문에, 간접 맵의 내용을 정확한 디스크 위치로 가리키도록 재기록한다. 즉, 논리 어드레스(L6)내의데이터 블럭은 원래 디스크 장치(181)내의 물리 어드레스(P6)내에 없으면 안되는 것이지만 실제로는 물리 어드레스(P51)내에 기억되어 있기 때문에, 간접 맵(185)내의 논리 어드레스(L6)에 대응하는 물리 어드레스(P6)는 P51에 재기록된다. 이하 마찬가지로, 간접 맵(185)내의 논리 어드레스(L5, L2, L12, L7, L11)에 대응하는 물리 어드레스는 P52, P53, P54, P55, P56에 각각 재기록된다.
또한, 디스크 어레이 기억 장치에 기억된 데이터를 판독할 때에는, 간접 맵(185)에 의해 지정된 논리 어드레스에 대응하는 최신의 데이터 블럭이 기억되어 있는 물리 어드레스를 구하여 판독하기 때문에, 구데이터를 판독할 위험성은 없다.
또, 도 18에 도시한 예에서는 설명을 간단히 하기 위해서, 1대의 디스크 장치에 기억되는 데이터 블럭으로서 2블럭밖에 기록되어 있지 않지만, 실제로는 10블럭이 기록된다.
상술한 종래 기술에 있어서는, 간접 맵에 의해 최신 데이터의 위치 정보를 관리하고 있었기 때문에, 간접 맵의 장해나 오조작에 의해 그 데이터가 없어지면, 디스크 장치내의 모든 데이터가 상실된다고 하는 데이터 보전성의 문제가 있었다. 또한, 모든 논리 블럭에 대하여 간접 맵을 준비할 필요가 있고 대용량, 또한 전원 장해에 대비하여 간접 맵을 유지하는 데 비휘발성 메모리가 필요하였기 때문에, 간접 맵이 대단히 고가가 되는 문제도 있었다.
본 발명은 상기한 문제를 해결하기 위하여 이루어진 것으로서, 간접 맵을 원리적으로 필요로 하지 않는 염가이고 고속인 디스크 기억 장치의 데이터 갱신 방법및 디스크 기억 제어 시스템을 제공하는 것을 목적으로 한다.
도 1은 본 발명의 실시예를 도시한 블럭도.
도 2는 본 발명 실시예에 있어서의 기록 버퍼와 버퍼 관리 정보의 관계를 도시하는 도면.
도 3은 본 발명의 실시예에 있어서의 디스크 장치의 빈 영역에 저장되는 내용을 도시한 도면.
도 4는 호스트 기기로부터 1블럭 사이즈의 데이터 기록 순서를 도시하는 도면.
도 5는 도 4의 예에 있어서의 스트라이프(ST1, ST2)의 논리 어드레스 태그(TG1/TG2)의 내용을 도시한 도면.
도 6은 스트라이프(ST3/ST4)를 1개의 스트라이프(ST5)로 통합하는 예를 도시한 도면.
도 7은 스트라이프 통합에 있어서, 논리 어드레스 태그(TG3/TG4)로부터 논리 어드레스 태그(TG5)를 작성하는 경우의 예를 도시한 도면.
도 8은 본 발명의 실시예에 있어서 사용되는 변환 맵의 구성예를 도시한 도면.
도 9는 시스템 기동시에 있어서의 변환 맵(32)의 작성 방법을 설명하는 순서도.
도 10은 스트라이프에 의해 논리 어드레스 태그가 저장되는 디스크 장치를 4대에 분산 배치한 예를 도시한 도면.
도 11은 세그먼트 분할에 있어서의 디스크 장치의 기억 영역의 할당을 도시한 도면.
도 12는 세그먼트 관리 정보의 엔트리 구성을 도시한 도면.
도 13은 논리 어드레스 태그를 연속하여 저장하는 전용 태그 영역의 내용을 도시한 도면.
도 14는 본 발명을 적용하여 구성한 RAID5에 의한 디스크 장치의 실시예를 도시한 블럭도.
도 15는 도 13에 도시한 실시예의 동작 개념을 도시한 도면.
도 16은 2개의 디스크 장치에 동일한 논리 어드레스 태그를 기록하여 제어하는 예를 도시한 도면.
도 17은 변환 맵 작성의 고속화를 위하여 전용 태그 영역을 할당하여 사용하는 경우의 예를 도시한 도면.
도 18은 종래예에 있어서의 데이터 갱신 방법을 실현하기 위한 시스템 구성을 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
1: 제어 장치
2: 디스크 장치
3: 휘발성 메모리
4: 비휘발성 메모리
5: 호스트 기기
31: 타임 스탬프
32: 변환 맵
41: 기록 버퍼
42: 버퍼 관리 테이블
본 발명의 디스크 기억 장치의 데이터 갱신 방법은 N대의 디스크 장치와, 호스트 기기로부터의 명령에 의해 N대의 디스크 장치로의 데이터의 기록 또는 N대의 디스크 장치로부터의 데이터의 판독을 행하는 제어 장치와, 이 제어 장치에 접속되고 타임 스탬프 기억부 및 변환 맵 기억부를 포함하는 휘발성 메모리와, 제어 장치에 접속되고 N×K(정수)개의 논리 블럭의 데이터에 상당하는 기억 용량을 가지는 기록 버퍼 기억부 및 버퍼 관리 테이블 기억부를 포함하는 비휘발성 메모리로 구성되는 디스크 기억 장치를 구비하고, 기록 버퍼에 갱신해야 할 논리 블럭의 데이터를 논리 블럭수가 N×K-1개에 이를 때까지 축적함과 동시에, 이들 각 논리 블럭에 대한 논리 어드레스 및 타임 스탬프 기억부에 기억된 타임 스탬프를 포함하는 논리 어드레스 태그 블럭을 생성하여, 이것을 N×K-1개의 논리 블럭에 더하고, 전체적으로 N×K개의 논리 블럭으로서 상기 N대의 디스크 장치상의 갱신되어야 할 데이터를 각각 유지하고 있는 논리 어드레스 영역과는 별도의 빈 어드레스 영역에 연속하여 순차 기록하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 기록은 복수의 디스크 기억 장치에 걸쳐지는 스트라이프 영역에 기록되는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 타임 스탬프 기억부는 기록 버퍼에 축적한 N×K개의 논리 블럭이 N대의 디스크 장치에 기록될 때마다 증가되는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 디스크 장치에 기록된 각 스트라이프 영역의 논리 어드레스 태그 블럭을 판독하고, 이것을 검사함으로써, 각 논리 어드레스에 대응하는 디스크 장치상의 물리적인 기억 위치를 검출하고, 검출된 기억 위치에 대하여 기록 또는 판독을 행하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 논리 어드레스 태그 블럭의 검사에 있어서는 동일한 논리 어드레스를 포함하는 스트라이프 영역이 복수인 경우, 논리 어드레스 태그 블럭내의 타임 스탬프가 최신 스트라이프의 논리 어드레스 블럭을 유효 블럭으로 하고, 다른 스트라이프 영역의 동일한 논리 어드레스를 가지는 블럭을 무효 블럭이라고 판정하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 논리 어드레스 블럭의 검사에 있어서는 최대의 타임 스탬프 값을 찾아내어 다음의 기록에 부가하는 타임 스탬프를 재생하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 논리 어드레스 태그 블럭의 검사에 있어서는 최소의 타임 스탬프 값을 찾아내어 기록 순서의 판정 기준이 되는 타임 스탬프 값을 구하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 디스크 기억 장치에 기억된 복수의 스트라이프 영역의 논리 블럭의 데이터를 판독하고, 논리 어드레스 태그 블럭의 검사를 행함으로써, 각 스트라이프 영역내의 유효 논리 블럭만을 기록 버퍼에 옮기고, 이들 유효 논리 블럭에 대응하는 새로운 논리 어드레스 태그 블럭을 생성하며, 기록 버퍼에 옮겨진 유효 데이터와 새로 생성된 논리 어드레스태그로 구성되는 1스트라이프분의 논리 블럭을 판독된 복수의 스트라이프 영역과는 별도의 빈 영역에 순차 기록함으로써, 디스크 기억 장치상에 논리 블럭을 연속하여 기록할 수 있는 빈 영역을 작성하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 새로운 논리 어드레스 태그 블럭을 생성할 때, 유효 블럭수가 N×K-1개에 미치지 않는 경우는 새로운 논리 어드레스 태그 블럭내의 데이터가 저장되지 않은 블럭에 대응한 논리 어드레스에는 널(NULL) 어드레스를 설정하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 디스크 장치의 빈 영역에 데이터를 기록한 후, 디스크 장치의 기동시에 복수의 스트라이프 영역의 논리 어드레스 태그 블럭의 검사를 행함으로써 유효라고 판단된 각 논리 어드레스에 대한 스트라이프 번호, 스트라이프내의 블럭 번호, 유효 데이터의 타임 스탬프를 상기 변환 맵에 기록하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 변환 맵에 기록 작성후, 디스크 장치에 접근이 적은 시간대에 각 스트라이프의 논리 어드레스 태그 블럭을 판독하여 변환 맵과 비교 정정을 행하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 논리 어드레스 태그 블럭이 기록되는 디스크 장치를 스트라이프에 의해 분산 배치하고 논리 어드레스 태그 블럭의 검사시, 다른 디스크 장치의 논리 어드레스 태그 블럭을 병렬로 판독하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 논리 어드레스태그는 각 스트라이프 영역에 논리 블럭 데이터와 동시에 순차 기록되고, 전용 태그 영역에도 동시에 병렬로 기록되며, 논리 어드레스 태그 블럭의 검사시에는 이 전용 태그 영역을 순차 판독하여 조사하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 디스크 장치상의 기억 영역을 복수 라인의 스트라이프를 단위로 하는 복수의 세그먼트로 분할하고, 일정 기간에는 1개의 세그먼트에만 스트라이프 데이터가 기록되도록 제어함과 동시에, 기록 대상 세그먼트를 전환할 때에는 그 시점의 변환 맵의 내용과 전환처의 세그먼트 번호를 디스크 장치에 기록하고, 이후의 변환 맵 작성시에는 세그먼트 전환시의 변환 맵의 내용 및 디스크 장치에 기록된 세그먼트 번호내의 스트라이프 영역에 기록된 논리 어드레스 태그 블럭만을 검사하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 비휘발성 메모리상에 세그먼트내의 각 스트라이프에 대응한 비트 맵을 준비하고, 기록 대상 세그먼트를 전환할 때에는 이 비트 맵을 클리어하며, 스트라이프 영역에의 데이터 기록시에는 기록한 스트라이프 영역에 대응한 비트를 세트하고, 변환 맵 작성시에는 디스크 장치의 세그먼트 전환시의 변환 맵 및 상기 디스크 장치에 기록된 세그먼트 번호의 논리 어드레스 태그 중에서 비트 맵이 세트되어 있는 것만 검사하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 타임 스탬프의 최소치를 진행시키기 위해서, 무효 블럭이 적은 스트라이프에 대하여도 정기적으로 판독하여 유효 블럭만을 상기 기록 버퍼에 옮기고, 대응하는 논리 태그 블럭내의논리 어드레스와 새로운 타임 스탬프로부터 논리 어드레스 태그 블럭을 생성하며, 기록 버퍼의 유효 데이터와 생성된 논리 어드레스 태그 블럭으로 구성되는 스트라이프를 판독한 스트라이프를 유지하고 있는 영역과는 별도의 빈 영역에 순차 기록하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 타임 스탬프의 최소치를 진행시키기 위해서, 무효 블럭이 적은 스트라이프에 대하여 정기적으로, 논리 어드레스 태그 블럭만을 판독하여 무효 블럭의 논리 어드레스를 빈 어드레스로 한 새로운 타임 스탬프를 부가한 논리 어드레스 태그 블럭을 생성하고, 여기서 생성된 논리 어드레스 태그 블럭을 판독한 논리 어드레스 태그 블럭에 덮어쓰기하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 변환 맵 작성후, 디스크 장치상의 논리 어드레스 태그 블럭의 타임 스탬프와 대응하는 변환 맵의 타임 스탬프를 비교하여 무효 블럭을 판정하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법은 N대의 디스크 장치로 구성되는 디스크 기억 장치에 있어서, (N-1)×K개의 논리 블럭에 상당하는 용량을 가지는 기록 버퍼를 구비하고, 이 기록 버퍼에 갱신해야 할 데이터의 논리 블럭을 축적하며, 그 축적한 논리 블럭이 선택한 개수에 이를 때까지 그 논리 블럭의 갱신을 지연시키고, 기록 버퍼에 축적된 각 논리 블럭에 대한 논리 어드레스로 구성되는 논리 어드레스 태그 블럭을 생성하여 선택한 개수의 논리 블럭에 논리 어드레스 태그 블럭을 더한 (N-1)×K개의 데이터 논리 블럭으로부터 K개의 패리티 블럭을생성하고, 이 데이터 논리 블럭에 패리티 블럭을 더한 N×K개의 논리 블럭을 N대의 디스크 장치상의 갱신되어야 할 데이터를 유지하고 있는 영역과는 별도의 빈 영역에 연속 기록 조작으로 순차 기록하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 선택한 개수로서 (N×1)×K-1로 하고, 1개의 디스크 장치에 논리 어드레스 태그 블럭이 기록되도록 하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 선택한 개수로서 (N-1)×K-2로 하고, 1패리티 스트라이프로 2개의 디스크 장치에 논리 어드레스 태그 블럭이 기록되도록 2개의 논리 어드레스 태그 블럭을 할당하는 것을 특징으로 한다.
본 발명의 디스크 기억 장치의 데이터 갱신 방법에 있어서, 디스크 장치에 기록된 논리 어드레스 태그 블럭을 검사하는데, 패리티 스트라이프 단위의 순차 기록에 추가로, 논리 어드레스 태그를 모은 전용 태그 영역에도 그 논리 어드레스 태그를 기록하고, 이 전용 태그 영역의 기록 데이터는 패리티로 보호하지 않는 대신에, 패리티 스트라이프내의 논리 어드레스 태그가 기록되는 디스크 장치와 전용 태그 영역의 논리 어드레스 태그가 기록되는 디스크 장치가 다르도록 전용 태그 영역을 할당하는 것을 특징으로 한다.
본 발명의 디스크 기억 제어 장치는 N대의 디스크 장치와, 호스트 기기로부터의 명령에 의해 N대의 디스크 장치에의 데이터의 기록 또는 N대의 디스크 장치로부터의 데이터의 판독을 행하는 제어 장치와, 이 제어 장치에 접속되고 타임 스탬프 기억부 및 변환 맵 기억부를 포함하는 휘발성 메모리와, 제어 장치에 접속되고 N×K(정수)개의 논리 블럭의 데이터에 상당하는 기억 용량을 가지는 기록 버퍼 기억부 및 버퍼 관리 테이블 기억부를 포함하는 비휘발성 메모리로 구성되는 디스크 기억 장치를 구비하고, 상기 기록 버퍼에 갱신해야 할 논리 블럭의 데이터를 논리 블럭수가 N×K-1개에 이를 때까지 축적함과 동시에, 이들 각 논리 블럭에 대한 논리 어드레스 및 타임 스탬프 기억부에 기억된 타임 스탬프를 포함하는 논리 어드레스 태그 블럭을 생성하여 이것을 N×K-1개의 논리 블럭에 더하고, 전체적으로 N×K개의 논리 블럭으로서 N대의 디스크 장치상의 갱신되어야 할 데이터를 각각 유지하고 있는 논리 어드레스 영역과는 별도의 빈 어드레스 영역에 연속하여 순차 기록하는 것을 특징으로 한다.
본 발명의 디스크 기억 제어 장치에 있어서, 기록의 시간적 순서를 유지하는 타임 스탬프가 저장되는 휘발성 메모리와, 디스크 장치에 기록해야 할 데이터를 로그 구조화하여 유지하는 기록 버퍼 및 기록 버퍼내의 빈 영역 및 유지되어 있는 기록 데이터의 논리 어드레스 정보를 유지하는 버퍼 관리 정보가 저장되는 비휘발성 메모리를 구비하는 것을 특징으로 한다.
본 발명의 디스크 기억 제어 장치는, 또한 N대의 디스크 장치로 구성되는 디스크 기억 장치와, (N-1)×K개의 논리 블럭에 상당하는 용량을 가지는 기록 버퍼와, 이 기록 버퍼에 갱신해야 할 데이터의 논리 블럭을 축적하고, 그 축적한 논리 블럭이 선택한 개수에 이를 때까지 그 논리 블럭의 갱신을 지연시키며, 상기 기록 버퍼에 축적된 각 논리 블럭에 대한 논리 어드레스로 구성되는 논리 어드레스 태그블럭을 생성하여, 선택한 개수의 논리 블럭에 상기 논리 어드레스 태그 블럭을 더한 (N-1)×K개의 데이터 논리 블럭으로부터 K개의 패리티 블럭을 생성하고, 이 데이터 논리 블럭에 패리티 블럭을 더한 N×K개의 논리 블럭을 N대의 디스크 장치상의 갱신되어야 할 데이터를 유지하고 있는 영역과는 별도의 빈 영역에 연속된 기록 조작으로 순차 기록하는 제어 장치를 구비하는 것을 특징으로 한다.
본 발명의 디스크 기억 제어 장치에 있어서, 패리티를 이용한 장황성 디스크 구성을 취하기 위해서 장황 디스크 장치를 부가하고, 기록의 시간적 순서를 유지하는 타임 스탬프가 저장되는 휘발성 메모리와, 디스크 장치에 기록해야 할 데이터를 로그 구조화하여 유지하는 기록 버퍼, 기록 버퍼내의 빈 영역 및 유지된 기록 데이터의 논리 어드레스 정보를 유지하는 버퍼 관리 정보가 저장되는 비휘발성 메모리를 구비하는 것을 특징으로 한다.
상기한 구성을 취함으로써, 간접 맵을 원리적으로 필요로 하지 않는 염가이고 고속인 디스크 기억 장치 및 디스크 기억 제어 시스템을 구축할 수 있다.
도 1은 본 발명을 적용하여 구성한 디스크 기억 장치의 개념 구성도이다. 본 발명의 디스크 기억 제어 시스템은 제어 장치(1), 디스크 장치(2), 휘발성 메모리(3), 비휘발성 메모리(4)로 구성된다. 디스크 장치(2)는 복수대의 디스크 기억 장치로 구성되어 있지만, 이 실시예에서는 설명을 간단히 하기 위해서, 4대(21, 22, 23, 24)로 구성되는 것으로 하여 설명한다. 휘발성 메모리(3)에는 기록의 시간적 순서를 기억하기 위한 타임 스탬프 영역(31) 및 간접 맵 기억 영역(32)이 마련되어 있다. 비휘발성 메모리(4)에는 디스크 장치(2)에 기록하는 데이터를 로그 구조화하여 유지하는 기록 버퍼 영역(41), 기록 버퍼 영역(41)내의 빈 영역 및 유지되어 있는 기록 데이터의 논리 어드레스의 정보를 유지하는 버퍼 관리 테이블(42)이 마련되어 있다. 제어 장치(1)는 호스트 기기(5)로부터의 명령에 기초하여, 이들 타임 스탬프 영역(31), 기록 버퍼 영역(41), 버퍼 관리 테이블(42)을 관리하고, 디스크 장치(2)의 기록을 제어한다.
도 2에 비휘발성 메모리(4)에 할당되는 기록 버퍼 영역(41)과 버퍼 관리 테이블(42)의 관계를 도시한다. 제어 장치(1)는 외부로 접속되는 호스트 기기로부터 요구된 기록 데이터를 디스크 장치(2)에 대하여 직접 기록하지 않고, 기록 버퍼 영역(41)에 블럭 단위로 분할하여 이들을 차례로(로그 형식으로) 저장한다. 여기서, 버퍼 관리 테이블(42)은 복수의 엔트리로 이루어지는 테이블을 구성하고, 이들 각 엔트리에는 기록해야 할 각 데이터 블럭의 호스트 기기로부터 본 논리 어드레스를 기록 버퍼 영역(41)내의 각 블럭 위치(B0, B1…B15)와 대응시키면서 보존한다. 버퍼 관리 테이블(42)내의 각 엔트리에는 그 엔트리에 데이터가 할당된 것을 나타내는 플래그 "F"를 세우고, 데이터가 할당되어 있지 않는 엔트리에는 플래그 "U" 를 세운다.
도 2에 도시한 예에서는, 기록 버퍼 영역(41)내의 각 블럭 위치(B9)까지 기록 데이터가 저장되어 있고, B0, B1, …, B9의 논리 어드레스가 LA134, LA99, …, LA678인 것을 나타내고 있다.
또한, 디스크 장치(2)의 각 디스크 기억 장치(21∼24)에 대해서는, 스트라이프 유닛이라고 불리는 기억 영역을 단위(그 디스크 장치의 1트랙 길이에 가까운 사이즈가 좋다.)로 하여, 블럭 사이즈의 정수(K)배, 즉 K개의 블럭에 상당하는 길이의 데이터의 기록을 행한다. 그리고 각 디스크 기억 장치(21∼24)가 물리적으로 동일한 위치의 스트라이프 유닛은 전체적으로 1개의 스트라이프 영역(ST)으로 하여 동일한 타이밍으로 기록이 행하여진다.
또한, 디스크 장치(2)는 그것을 구성하는 복수대의 디스크 장치(21∼24)를 합친 실제의 기억 용량보다도 적은 용량의 디스크 장치로서 호스트 기기(5)에 나타내고 있다. 즉, 호스트 기기(5)에 최초로 기억 용량을 문의하여 올 때, 그 응답으로서 적은 용량을 돌려준다. 따라서, 호스트 기기(5)로부터 논리적으로 판독 기록을 할 수 있는 기억 영역 외에 여분의 기억 영역, 즉 빈 영역이 확보되게 된다.
더욱이, 타임 스탬프(31)는 호스트 기기(5)로부터의 기록 데이터가 실제로 디스크 장치(2)에 기록될 때에 부가되는 정보이고, 디스크 장치(2)내로의 데이터 기록 순서를 판정하는 데 이용된다. 따라서, 기록 버퍼 영역(41)의 데이터가 디스크 장치(2)에 기록될 때마다 타임 스탬프(31)가 증가된다.
이어서, 도 1에 도시한 본 발명의 실시예의 동작에 대하여 도 2 내지 도 8을 참조하면서 상세히 설명한다.
우선, 기록 동작부터 설명한다. 호스트 기기(5)로부터 기록해야 할 데이터와 그 논리 어드레스를 받아들인 제어 장치(1)는 도 2에 도시한 바와 같이, 비휘발성 메모리(4)상의 기록 버퍼 영역(41)의 빈 영역에 데이터를 블럭 단위로 분할하여, 순차적으로 연속하여 저장한다. 또, 도 2에 있어서 기록 버퍼 영역(41)은 B0, B1,∼, B15로 이루어지는 15개의 블럭 길이에 상당하는 빈 영역에 순차적으로 연속하여 기록된다.
또한, 받아들인 논리 어드레스는 블럭마다의 어드레스로 변환하여, 버퍼 관리 테이블(42)의 대응하는 엔트리(B0, B1,~, B15)에 저장한다. 또, 이미 기록 버퍼 영역(41)에 저장되어 있는 데이터에 대한 갱신 데이터의 경우에는, 기록 버퍼 영역(41)의 빈 영역에 순차 저장하는 것이 아니라, 직접 기록 버퍼 영역(41)내의 구데이터를 변경한다.
호스트 기기(5)로부터의 기록 데이터가 디스크 장치(2)의 1스트라이프(ST)분의 영역에 대하여 1블럭만큼 적은 수, 즉 (4K-1)만 기록 버퍼 영역(41)에 저장된 단계에서, 제어 장치(1)는 그들 데이터를 디스크 장치(2)에 기록한다. 도 2에 있어서 K=4, 즉 15개의 블럭만 기록 버퍼 영역(41)에 저장된 단계에서, 디스크 장치(2)에 기록한다. 이 때, 최후의 기록 블럭으로서, 버퍼 관리 정보(42)내의 기록 관리 테이블에 저장된 각 블럭의 논리 어드레스와 휘발성 메모리(3)상의 타임 스탬프(31)로부터 도 3에 도시한 바와 같은 논리 어드레스 태그 블럭(LA-TAG)을 작성한다. 이 논리 어드레스 태그 블럭내의 어드레스 데이터와 데이터 블럭 사이에는 1 대 1의 관계가 미리 설정되어 있어, 각 데이터 블럭의 논리 어드레스를 알 수 있도록 되어 있다.
그 후, 도 3에 도시하는 바와 같이, 이 논리 어드레스 태그 블럭을 더한 1스트라이프분의 데이터를 정리하여 디스크 장치(21∼24)의 빈 영역에 동시에 기록한다. 도 3에 있어서는, 디스크 장치(21∼24)의 1스트라이프(ST)분의 빈 영역은 4개의 유닛 스트라이프(D1∼D4)로 표시되고, 이들 각 유닛 스트라이프(D1∼D4) 영역에기록되는 4개의 데이터 블럭의 논리 어드레스가 표시된다. 또, 도 1의 타임 스탬프(31)의 값은 기록이 완료된 단계에서 증가된다. 이와 같이, 다수의 미세한 디스크 기록을 1회에 정리할 수 있기 때문에, 디스크 기록 성능이 크게 향상한다.
이어서, 데이터 블럭의 보충 처리에 대하여 설명한다. 본 발명이 대상으로 하는 디스크 기록 방법, 즉 구데이터의 영역을 직접 재기록하는 것이 아니라, 갱신 데이터를 저장하여 두고 디스크 장치(2)내의 미리 준비한 별도의 빈 영역에 정리하여 기록하는 방법에서는, 디스크 장치(2)내에 저장된 데이터를 정리하여 기록하기 위한 빈 영역이 항상 존재하는 것이 필수적이다. 그 때문에, 호스트 기기(5)로부터의 디스크 접근이 행하여지고 있지 않는, 빈 시간에 이미 다른 영역에 데이터가 기록되어 무효로 된 데이터를 한데 모아서 빈 영역을 만들 수 있다. 이 처리를 보충 처리라고 부른다. 이 보충 처리는 무효 블럭 판정과 스트라이프 통합의 2개의 단계로 이루어진다.
무효 블럭 판정의 예로서, 도 4에 도시한 순서로 호스트 기기(5)로부터 1블럭 사이즈의 데이터 기록이 있는 경우를 생각한다. 도면중의 L××는 호스트로부터 인도되는 논리 어드레스, S××는 기록 순서를 나타낸다. 본 발명의 실시예에서는 기록 버퍼 영역(41)은 15블럭의 데이터를 유지할 수 있기 때문에, 최초의 S1∼S15의 기록 데이터가 1개의 스트라이프(ST1)로 정리되고, 타임 스탬프(TS1)가 부가되어 디스크 장치의 빈 영역에 기록된다. 마찬가지로, S16∼S30의 기록 데이터는 별도의 스트라이프(ST2)로서 타임 스탬프(TS2)가 부가되어 별도의 빈 영역에 기록된다. 또, 기록마다 타임 스탬프(31)는 증가되기 때문에 TS1<TS2의 관계가 있다.
여기서, 도면에서 알 수 있는 바와 같이 논리 어드레스(L9, L18)의 데이터는 타임 스탬프(TS1)의 스트라이프에서는 S5, S2로서, 타임 스탬프(TS2)의 스트라이프에서는 S19, S21의 블럭으로서 중복하여 존재한다. 즉, 동일한 논리 어드레스(L9, L18)에 기록되어야 할 데이터가 2개 존재하게 된다. 그러나, 데이터 블럭이 기록된 순서를 생각하면, 뒤에서부터 기록된 S19, S21의 데이터 블럭이 유효하여 따라서 S5, S2의 데이터는 무효라고 판정되지 않으면 안된다.
그런데, 여기서 편의상 사용한 기록 순서 S××는 실제의 디스크상에 기록되어 있지 않다. 그래서, 각 스트라이프에 부가한 논리 어드레스 태그를 사용하여 이 판정을 행한다. 도 4의 예에 있어서, 2개의 스트라이프(ST1, ST2)의 논리 어드레스 태그(TG1, TG2)의 내용은 도 5와 같다. 즉, 논리 어드레스 태그(TG1, TG2)는 기록 버퍼 영역(41)에 기록되는 15개의 블럭(B0, B1,~, B15)에 대응하는 기억 영역에 각 블럭의 논리 어드레스가 기억되고, 16번째의 기억 영역에 스트라이프(ST1, ST2)의 각각이 기록될 때의 타임 스탬프(TS1, TS2)가 각각 기록된다.
도면에서 알 수 있는 바와 같이, 2개의 논리 어드레스 태그(TG1, TG2)에 동일한 논리 어드레스(L9, L18)의 데이터가 포함되고, 스트라이프(ST1)의 블럭(B5, B2)과 스트라이프(ST2)의 블럭(B4, B6) 중 한쪽 데이터는 무효이다. 더욱이, 논리 어드레스 태그(TG1)의 타임 스탬프(TS1)와 논리 어드레스 태그(TG2)의 타임 스탬프(TS2)를 비교하면, TS1<TS2의 관계에 있기 때문에, 스트라이프(ST1)의 블럭(B5, B2)이 무효라는 것을 판정할 수 있다. 이상 설명한 바와 같이, 디스크 장치(2)내의 논리 어드레스 태그를 조사함으로써 무효인 데이터 블럭을 발견할 수 있다.
도 6은 스트라이프 통합의 예를 도시한 도면으로서, 2개의 스트라이프(ST3, ST4)를 1개의 스트라이프(ST5)로 통합하는 경우를 도시하고 있다. 동일한 도면에 있어서, 스트라이프(ST3)에서 B2, B7, B8, B12, B13의 5블럭이 유효하고, 다른 10블럭은 무효(해칭)라고 가정한다. 마찬가지로, 스트라이프(ST4)에서 블럭(B18, B19, B20, B21, B22, B24, B25, B27, B29)의 9블럭이 유효하고 다른 6블럭이 무효(해칭)로 한다. 따라서 2개의 스트라이프(ST3, ST4) 중, 유효 블럭은 합쳐서 14블럭밖에 없기 때문에, 이들 2개의 스트라이프(ST3, ST4)의 유효 블럭만을 취출하여 1개의 스트라이프(ST5)로 통합함으로써, 결과적으로 1개의 스트라이프에 상당하는 빈 영역을 만들 수 있다.
스트라이프 통합의 구체적인 방법은 도 6에 도시한 2개의 스트라이프(ST3, ST4)를 휘발성 메모리(3)내에 판독하고, 이들 2개의 스트라이프(ST3, ST4)의 유효 블럭만을 취출하여 이들을 연속적으로 기록 버퍼 영역(41)에 옮긴다. 그것에 맞추어, 논리 어드레스 태그도 도 7에 도시된 바와 같이, TG3, TG4로부터 유효 블럭의 논리 어드레스만을 대응하는 위치에 옮기고, 새로운 논리 어드레스 태그(TG5)를 작성하여 그 시점의 타임 스탬프를 ST5로 갱신한다.
이 예에서는 14개의 유효 블럭밖에 없기 때문에, 호스트 기기(5)로부터 1개의 기록 블럭이 공급되는 것을 기다렸다가 스트라이프를 완성시켜 디스크 장치(2)의 빈 영역에 정리하여 기록한다. 이 경우, 디스크 영역은 효율적으로 활용되지만, 호스트 기기(5)로부터 기록 블럭의 공급을 기다리기 때문에, 디스크에 접근을 집중시켜버릴 위험성이 있다. 그래서, 최후의 데이터 블럭은 빈 상태인 채로 접근이 비어 있는 사이에 기록해 버리는 것도 가능하다. 이 때, 논리 어드레스 태그(TG5)의 최후의 데이터 블럭에 대한 논리 어드레스에는 -1 등 NULL 어드레스를 입력함으로써 데이터가 입력되어 있지 않다는 것을 나타낼 수 있기 때문에 문제는 없다.
이어서, 이와 같이 기록된 데이터 블럭의 판독 동작에 대하여 설명한다. 보충 처리의 무효 블럭 판정을 디스크 장치(2)내의 모든 스트라이프의 논리 어드레스 태그에 대하여 행함으로써, 모든 논리 어드레스에 대한 유효 블럭의 물리적 위치를 검출할 수 있다. 따라서, 원리적으로는 호스트 기기(5)로부터 판독 블럭의 논리 어드레스를 받아들일 때마다 모든 스트라이프의 체크를 행함으로써, 판독해야 할 물리 블럭을 찾아 낼 수 있다. 그러나, 이 방법에서는 블럭 판독에 방대한 시간이 걸려 실용적이지 못하다.
그래서, 시스템 기동시에만 모든 스트라이프의 논리 어드레스 태그의 조사를 행하고, 도 1에 도시한 휘발성 메모리(3)상에 논리 어드레스로부터 물리 어드레스로의 변환 맵(32)을 만든다. 호스트 기기(5)로부터의 판독 요구에 대해서는 이 변환 맵(32)을 사용하여 유효 블럭에의 접근을 행한다. 이것에 의해, 호스트 기기(5)로부터의 판독 요구시마다, 어드레스 태그의 조사를 행하지 않아도 좋고, 판독시에 성능이 크게 저하하지 않는다. 또한, 이 변환 맵(32)은 언제라도 모든 스트라이프를 조사함으로써 재생할 수 있기 때문에, 종래의 간접 맵과 같이 전원 장해에 대비하여 비휘발성 메모리(4)에 저장할 필요도 없다.
여기서, 변환 맵(32)에 대하여 도 8을 이용하여 설명한다. 변환 맵(32)은 도면에 도시된 바와 같이, 각 논리 어드레스(L0∼Ln)에 대한 블럭이 저장되어 있는 스트라이프 번호(ST#)와 그 스트라이프내의 블럭 번호(BLK#) 및 그 타임 스탬프(TS#)를 테이블 형식으로 유지하고 있다. 따라서, 논리 어드레스(L0∼Ln)가 부여되면, 이 테이블을 색인함으로써 ST#와 BLK#로부터 간단히 실제의 물리 어드레스가 구해진다.
또한, 시스템 기동시의 변환 맵(32)의 작성은 도 9의 순서도에 도시하는 바와 같이, 디스크 장치(2)에 저장된 스트라이프(ST1, ST2, ST3…)의 논리 어드레스 태그(TG1, TG2, TG3…)를 순차 판독한다(단계 1). 이렇게 하여 판독된 논리 어드레스 태그(TG1, TG2, TG3…)내의 각 타임 스탬프(TS1, TS2, TS3…)를 취출한다(단계 2). 더욱이, 판독된 각 논리 어드레스 태그(TG1, TG2, TG3…)내의 각 논리 어드레스(LA××)를 순차 취출한다(단계 3). 취출된 논리 어드레스(LAn)와 동일한 논리 어드레스(LAn)가 변환 맵(32)내에 등록되어 있는 경우에는, 변환 맵(32)내에 등록되어 있는 논리 어드레스(LAn)의 타임 스탬프(TSn)와 취출된 논리 어드레스(LAn)의 타임 스탬프(TSm)를 비교한다(단계 4). 이 비교 결과, 취출된 논리 어드레스(LAn)의 타임 스탬프(TSi)가 변환 맵(32)내에 등록되어 있는 논리 어드레스(LAn)의 타임 스탬프(TSj)보다 새로운, 즉 TSi가 TSj보다 큰 경우는 논리 어드레스(LAn)에 대한 변환 맵(32)내에 등록되는 스트라이프 번호(ST#)로서 취출된 논리 어드레스(LAn)가 저장된 디스크 장치(2)의 스트라이프 번호(ST#)를 저장하고, 또한 이 논리 어드레스(LAn)가 저장된 스트라이프(ST#)내의 데이터 블럭의 위치(BLK#)를 저장한다(단계 5). 더욱이, 변환 맵(32)내의 논리 어드레스(LAn)에 대한 타임 스탬프(TS#)로서,취출된 논리 어드레스(LAn)에 대한 타임 스탬프(TS#)를 저장한다(단계 6). 상기 단계 4에 있어서의 비교 결과, 취출된 논리 어드레스(LAn)의 타임 스탬프(TSi)가 변환 맵(32)내에 등록되어 있는 논리 어드레스(LAn)의 타임 스탬프(TSj)보다 오래된, 즉 TSi가 TSj보다 작은 경우는, 변환 맵(32)내에 등록되어 있는 논리 어드레스(LAn)에 대한 스트라이프(ST#), 데이터 블럭의 위치(BLK#) 및 타임 스탬프(TS#)의 내용은 그대로 하고, 판독한 논리 어드레스 태그내의 모든 논리 어드레스에 대하여 동일한 처리를 실행하였는지 아닌지를 조사한다(단계 7). 모든 논리 어드레스에 대하여, 동일한 처리를 실행하지 않은 경우에는 단계 3으로 되돌아가서 단계 6까지의 처리를 반복한다. 판독한 논리 어드레스 태그내의 모든 논리 어드레스에 대하여 동일한 처리를 종료한 경우에는, 이어서 디스크 장치(2)에 저장된 모든 논리 어드레스 태그(TG1, TG2, TG3…)에 대하여 상기 처리를 행하였는지 아닌지를 조사한다(단계 8). 동일한 처리를 완료하지 않은 경우에는, 단계 3으로 되돌아가 단계 7까지의 처리를 반복한다. 그리고 동일한 처리를 종료한 경우에는, 그 시점에 있어서 남겨진 논리 어드레스에 대한 스트라이프(ST#), 데이터 블럭의 위치(BLK#) 및 타임 스탬프(TS#)의 내용을 변환 맵(32)의 등록 내용으로 한다(단계 9).
즉, 취출된 논리 어드레스 태그내의 모든 논리 어드레스에 대하여, 변환 맵(32)내 테이블의 타임 스탬프보다 논리 어드레스 태그의 타임 스탬프가 클 때만 그 스트라이프 번호와 대응하는 블럭 번호를 테이블에 등록한다. 이 조사를 모든 스트라이프에 대하여 행하면, 유효 블럭만을 나타내는 변환 맵이 작성된다. 더욱이, 디스크 장치(2)에 스트라이프를 기록할 때마다 그 논리 어드레스 태그에 대하여도 동일한 처리를 행함으로써, 이 변환 맵(32)에는 항상 유효한 블럭만이 등록되어 있다. 또한, 디스크 접근이 비어 있을 때에, 각 스트라이프의 논리 어드레스 태그와 변환 맵을 비교 검사함으로써, 메모리 장해 등으로 이 변환 맵이 부정확한 값이 되어도 검출 정정이 가능하다.
이상 설명과 같이, 변환 맵 작성의 주된 처리는 논리 어드레스 태그의 검사이다. 때문에, 대용량 디스크 장치와 같이 논리 어드레스 태그 수가 많은 경우, 전원 장해나 시스템 기동시의 변환 맵 작성에 장시간이 걸린다. 특히, 도 2에 도시된 바와 같이, 논리 어드레스 태그 블럭이 1대의 디스크 장치(24)에 집중하면, 시스템 기동시에는 이 디스크에 접근이 집중하여 논리 어드레스 태그의 조사를 병렬로 행할 수 없다. 그래서, 도 10에 도시된 바와 같이, 스트라이프에 의해 논리 어드레스 태그가 저장되는 디스크 장치를 4대에 분산하여 병렬로 논리 어드레스 태그를 조사함으로써, 이 변환 맵 작성에 요하는 시간을 1/4로 단축 가능하다.
이밖에, 디스크 장치(2)의 기억 영역을 복수의 세그먼트로 분할 관리함으로써, 변환 맵 작성에 필요한 논리 어드레스 태그의 검사수를 삭감할 수 있다. 도 11에 세그먼트 분할 방식에 있어서의 디스크 장치의 기억 영역의 구성을 나타낸다. 도면에 도시하는 바와 같이, 디스크 장치의 기억 영역은 스트라이프를 단위로서 세그먼트 관리 정보(해칭)와 4개의 세그먼트로 분할된다. 여기서, 세그먼트란 기록 버퍼 데이터의 일괄 기록이나 보충 처리의 디스크 기록이 어느 기간 집중하여 행하여지는 단위 영역을 가리키는 것이다. 예컨대, 세그먼트(2)가 디스크 기록의 대상인 동안은 세그먼트(1,3,4)에는 기록이 행하여지지 않도록 빈 영역의 선택을 제어한다.
또한, 어느 세그먼트의 빈 영역이 적어져 디스크 기록을 다른 세그먼트로 전환할 때에는 세그먼트 관리 정보를 디스크 장치에 저장한다. 세그먼트 관리 정보는 도 12에 도시하는 바와 같이, 세그먼트 번호로 전환시 변환 맵으로 구성된다. 세그먼트 번호란 전환처의 세그먼트 번호이고, 전환시 변환 맵이란 세그먼트를 전환하는 시점의 휘발성 메모리(3)상의 변환 맵의 상태이다.
또, 전환시 변환 맵은 세그먼트가 전환될 때마다 모두 덮어쓰기하는 것이 아니고, 직전의 세그먼트에 기록된 논리 어드레스의 엔트리만을 재기록하면 좋다. 따라서, 전번의 세그먼트 전환시에 타임 스탬프를 기억해 두고, 변환 맵의 타임 스탬프를 비교함으로써, 직전의 세그먼트에 기록된 논리 어드레스를 판정할 수 있다.
이 세그먼트 분할 방식에서는, 세그먼트 전환시에 세그먼트 관리 정보를 보존하고 있다. 따라서, 세그먼트 전환시의 변환 맵을 세그먼트 관리 정보로부터 판독하고, 그 후에 세그먼트 관리 정보의 세그먼트 번호로 지목되는 세그먼트의 논리 어드레스 태그만을 검사하는 것만으로, 모든 논리 어드레스 태그를 검사한 경우와 동일한 변환 맵을 재현할 수 있다. 따라서, 이 방식에 의해 필요한 논리 어드레스 태그의 검사수는 1세그먼트분이 적당하고, 이 예에서는 변환 맵의 작성에 요하는 시간을 1/4로 단축할 수 있다.
더욱이, 비휘발성 메모리(4)상에 세그먼트내의 모든 스트라이프에 대응한 비트 맵을 준비하여, 세그먼트 전환시에는 이 비트 맵을 클리어하고, 일괄 기록이나보충 기록시에는 기록한 스트라이프에 대응하는 비트를 "1"로 세트한다. 이것에 의해 세그먼트를 전환하고 나서 변경이 있는 스트라이프만이 비트 맵이 "1"이 된다. 따라서, 변환 맵 작성시에 이 비트 맵을 참조하여, 변경이 있는 스트라이프의 논리 어드레스 태그만을 검사함으로써 검사수를 더욱 줄여서 변환 맵 작성에 요하는 시간을 더욱 단축할 수 있다.
통상 논리 어드레스 태그의 사이즈는 512∼1024 바이트이고, 디스크의 순차적 접근과 임의 접근에 약 50배의 성능차가 있다. 도 2에 도시한 방식에서는 논리 어드레스 태그의 정보가 각 스트라이프마다 띄엄띄엄 존재하기 때문에, 변환 맵의 작성시에는 시간이 걸리는 임의 접근을 행하고 있었다. 그래서, 도 13에 도시하는 바와 같이, 논리 어드레스 태그만을 연속하여 저장하는 전용 태그 영역을(세그먼트 분할하는 경우는, 각 세그먼트마다) 준비하고, 50배의 고속 순차적 접근으로 논리 어드레스 태그를 판독할 수 있도록 한다.
그리고, 호스트 기기로부터의 데이터를 일괄하여 기록이나 보충 데이터의 기록시에는, 빈 영역뿐만 아니라 대응하는 전용 태그 영역에도 논리 어드레스 태그를 기록하도록 한다. 이 방법에서는 도 2의 방식에서는 1스트라이프당 4회의 디스크 기록이었지만, 전용 영역에의 논리 어드레스 태그의 기록이기 때문에 1회 증가한다. 그러나, 변환 맵 작성이 50배의 고속으로 되기 때문에, 디스크 장치의 상승 시간이 문제가 될 때에는 대단히 유효한 수단이다. 전용 태그 영역에의 기록 시간을 최소로 하기 위해서, 전용 태그 영역은 도 13에 도시하는 바와 같이 대상 영역을 중심으로 하여 탐색 시간을 줄인다. 또한, 디스크 장치(2)는 섹터(512 바이트 등)단위의 기록이고, 전용 태그 영역내의 논리 어드레스 태그는 섹터 단위로 할당하여 논리 어드레스 태그의 기록시에 판독이 필요없도록 한다.
마지막으로, 타임 스탬프에 대하여 설명한다. 도 1에 도시하는 바와 같이, 타임 스탬프는 휘발성 메모리(3)상에 기억되기 때문에, 전원 장해 등에 의해 휘발성 메모리(3)상의 타임 스탬프가 없어진다. 그래서, 변환 맵과 동일하게 하여, 시스템 기동시에만 모든 스트라이프의 논리 어드레스 태그를 조사하고, 제일 큰 타임 스탬프(31)의 다음 값을 휘발성 메모리(3)상의 타임 스탬프(31)에 세트한다. 또, 변환 맵 작성의 설명에서 기술한 시간 단축 수법을 그대로 타임 스탬프의 재생에도 적용할 수 있다.
또한, 타임 스탬프(31)는 디스크 장치에 기록할 때마다 증가되고 디스크상의 기록 순서의 판정에만 사용된다. 예로서, 타임 스탬프(31)가 24비트의 카운터로 구성되는 경우를 설명한다. 24비트 카운터에서는, 16M회의 기록으로 카운터가 일주하여 제로로 되돌아가 버린다. 그래서, 일반적으로는 유효한 타임 스탬프의 최소치를 기준으로 그것보다 작은 값은 16M을 더하여 비교하고 판정한다. 이 최소치도 마찬가지로 시스템 기동시에만 모든 스트라이프의 논리 어드레스 태그를 조사하여 구한다.
그러나, 이 수법을 사용할 수 있는 것은 타임 스탬프의 최대치가 최소치를 앞지르지 않을 것, 예컨대 타임 스탬프의 최대치와 최소치의 차가 24비트로 나타낼 수 있는 범위 이내인 것을 전제로 하고 있다. 따라서, 타임 스탬프(31)가 일주전에 반드시 모든 스트라이프를 갱신하여 타임 스탬프 값을 새롭게 갱신할 필요가 있다.이것에는, 무효 블럭이 적어도 미리 설정한 기록 회수 사이에 갱신되지 않은 스트라이프를 보충의 대상으로서 선택하도록 제어하거나, 무효 블럭의 논리 어드레스를 NULL 어드레스로 한, 그 스트라이프의 논리 어드레스 태그만을 재기록한다. NULL 어드레스를 사용하는 방법은 논리 어드레스 태그 블럭의 재기록이기 때문에 보충과 비교해서 대단히 가벼운 처리이다.
또, 상술한 실시예에서는 무효 블럭의 판정에 2개 스트라이프(ST1, ST2)의 논리 어드레스 태그를 서로 비교하고 판정하는 방법만 설명하였지만, 모든 무효 블럭을 조사하기 위해서는 2개의 스트라이프 사이의 모든 편성을 조사하지 않으면 안된다. 그러나, 변환 맵이 있으면 논리 어드레스 태그내의 각 논리 어드레스에 대하여, 유효 데이터를 가리키는 변환 맵의 타임 스탬프와 그 스트라이프의 타임 스탬프를 비교하여, 값이 작은 블럭을 무효 블럭으로 판정할 수 있다.
도 1은 데이터를 복수 디스크에 분산하는 RAID0의 구성을 나타내었지만, 본 발명의 방식은 패리티를 사용한 장황성 디스크 구성(RAID4, RAID5)의 경우에도 적용할 수 있다. 도 14에 본 발명을 적용하여 구성한 RAID5 구성의 디스크 기억 장치의 개념도를 도시한다. 도 1의 구성에 장황용의 디스크 장치(25)가 추가된 구성으로서, 제어 장치(1), 디스크 장치(2)(21, 22, 23, 24), 휘발성 메모리(3), 비휘발성 메모리(4), 타임 스탬프(31), 기록 버퍼(6), 버퍼 관리 정보(7)는 도 1에 도시한 실시예와 동일한 기능을 갖는다.
도 14에 도시한 실시예의 동작에 대하여, 도 1에 도시한 실시예와의 차이에 착안하여 설명을 행한다. 기록 처리에서는 호스트로부터의 기록 데이터가 1스트라이프분에 1블럭 적은 수(K*4-1)만큼 기록 버퍼(6)에 저장한 단계에서, 제어 장치(1)는 그들 데이터를 디스크 장치(21∼25)에 기록한다. 이 때, 최후의 기록 블럭으로서, 기록 관리 테이블(7)에 저장된 각 블럭의 논리 어드레스와 휘발성 메모리(3)상의 타임 스탬프(31)로부터 논리 어드레스 태그 블럭을 작성할 때까지는 도 1에 도시한 실시예와 동일하다.
그 후, 이 논리 어드레스 태그 블럭을 더한 1스트라이프분의 데이터로부터 스트라이프 유닛마다의 배타 논리합 연산(XOR)을 행하고, 패리티의 스트라이프 유닛을 작성한다. 그리고, 이 패리티가 첨부된 스트라이프의 데이터를 정리하여 디스크 장치(21∼25)의 빈 영역에 동시에 기록한다. 또한, 타임 스탬프(31)의 값은 기록이 완료한 단계에서 증가된다. 이와 같이 다수의 미세한 디스크 기록을 1회에 정리할 수 있는 동시에, 패리티 계산에 구데이터나 구패리티의 블럭을 읽을 필요가 없기 때문에 디스크 접근 회수를 더욱 줄일 수 있다. 또, 스트라이프 보충 처리의 디스크 기록이라도 동일하게 하여 패리티가 첨부된 스트라이프를 작성하고 나서 디스크 장치(2)에 기록한다. 이 모양을 도 15에 도시한다.
패리티 RAID 구성에서는 1대의 디스크 장치가 고장나더라도, 고장난 디스크의 데이터는 스트라이프를 구성하는 다른 디스크의 데이터와 패리티의 XOR을 계산함으로써 재현할 수 있고, 디스크 기억 장치로서의 서비스를 계속할 수 있다. 그러나, 시스템 기동시에 1대가 고장난 경우, 논리 어드레스 태그를 저장하지 않는 디스크 장치의 데이터도 판독하여 논리 어드레스 태그를 재생하고 나서 검사하기 때문에, 변환 맵 작성에 시간이 걸려 시스템 기동을 완료하기까지의 시간이 대폭 증대하여 버린다.
그래서, 도 16에 도시하는 바와 같이, 스트라이프를 구성하는 데이터 블럭을 1개 줄이고 2개의 디스크 장치에 동일한 논리 어드레스 태그를 사용하도록 제어한다. 이것에 의해, 디스크 장치가 1대 고장나더라도 변환 맵 작성시에는 남아 있는 쪽의 논리 어드레스 태그를 판독할 수 있기 때문에, 시스템 기동에 요하는 시간의 대폭적인 증대를 피할 수 있다.
또한, 변환 맵 작성의 고속화를 위해 전용 태그 영역을 활용하는 경우, 도 17에 도시하는 바와 같이, 논리 어드레스 태그는 전용 태그 영역에 저장되는 디스크 장치와 스트라이프에 저장되는 디스크 장치가 다르도록 전용 태그 영역의 논리 어드레스 태그의 할당을 제어함으로써, 스트라이프내의 논리 어드레스 태그는 1개가 적당하다.
한편, 전용 태그 영역에 논리 어드레스 태그를 기록하는 경우도 패리티에 의한 디스크 장해 대책을 행하면, 종래 1회의 기록 증가로 충분하던 것이 2회의 기록과 2회의 판독이 필요하게 되어 일괄 기록시나 스트라이프 보충시의 디스크 기록의 오버헤드가 크게 증대한다. 따라서, 이 전용 태그 영역의 정보는 패리티로 장해 대책을 행하지 않는다. 이 정보는 변환 맵 고속화를 위한 것으로, 고장난 디스크 장치의 전용 태그 영역에 저장되어 있던 논리 어드레스 태그는 스트라이프중의 것을(임의 접근) 보면 충분하기 때문에 문제는 없다. 또한, 임의 접근으로 검사하는 논리 어드레스 태그는 1/5이기 때문에, 변환 맵 작성의 고속화의 효과가 있다.
본 발명은 구데이터의 영역을 재기록하는 것이 아니라, 갱신 데이터를 저장하여 두고 디스크 장치내의 미리 준비한 별도의 빈 영역에 정리하여 기록하는 방법이 유효한 모든 분야에 적용할 수 있다. 즉, 자기 디스크뿐만 아니라 순차적 기록과 임의의 기록에서 크게 성능이 다른 광 자기 디스크 등의 디스크 장치나, 소블럭의 갱신에서는 2판독과 2기록이 필요한 패리티에 의한 장황성을 갖게 한 RAID 구성의 기억 장치에 주로 적용할 수 있다.
이상 설명과 같이 본 발명에 의하면, 변환 맵을 원리적으로 언제라도 재생할 수 있기 때문에, 전원 장해에 대비하여 비휘발성 메모리에 변환 맵을 유지할 필요는 없다. 따라서 대단히 염가인 디스크 기억 장치를 구축할 수 있다. 또한, 하드웨어 장해 등에 의해 비휘발성 메모리의 내용을 상실한 경우라도, 종래 방법에서는 변환 맵을 재생할 수 없기 때문에 디스크상의 데이터 모두를 잃어버리지만, 기록 버퍼에 유지되어 있던 최근의 기록 데이터만이 없어질 뿐이고 대개의 디스크상 데이터는 그대로 남아 있다. 따라서, 장해에 대한 내구성도 크게 향상된다. 더욱이, 전원 장해 등으로부터 회복 처리와 통상의 시스템 기동 처리는 완전히 동일하게 끝나기 때문에, 시스템 종료시나 회복시의 특별한 처리가 불필요하고 개발 비용을 경감할 수 있다.
또한, 시스템 기동시의 처리도, 복수 디스크 장치에의 논리 어드레스 태그의 분산 배치, 논리 어드레스 태그를 순차 접근시킬 수 있는 전용 태그 영역, 기억 영역의 세그먼트 분할 관리 등에 의해 고속화할 수 있기 때문에, 시스템 기동시의 대기 시간을 실용상 문제없는 범위로 억제된다. 특히, 패리티 RAID 구성에서는, 논리어드레스 태그를 2대의 디스크 장치에 기록함으로써, 1대의 디스크 장치가 고장나더라도 시스템 기동의 시간이 증가하지 않도록 할 수 있다.

Claims (22)

  1. N(N은 2 이상의 정수)대의 디스크 장치(2)가 장착된 디스크 기억 장치의 데이터 갱신 방법에 있어서,
    N×K(K는 블럭 수를 의미하는 정수)의 기억 용량을 갖는 기입 버퍼 기억부(41)의 N×K-1개의 블럭에 N×K-1개의 기입 블럭 데이터를 기억하고,
    상기 기입 버퍼 기억부(41)의 나머지 1 블럭에 상기 N×K-1개의 기입 블럭 데이터가 갖는 논리 어드레스(LA) 및 그 기입 시각을 나타내는 타임 스탬프(31)로부터 상기 기입 블럭 데이터에 대응하는 논리 어드레스 태그 블럭(LA-TAG)을 생성하여 기억하며,
    상기 기입 버퍼 기억부(41)에 기억된 상기 N×K-1개의 기입 블럭 데이터와 상기 논리 어드레스 태그 블럭(LA-TAG)을 1 스트라이프로 하고 상기 N대의 디스크 장치(2)의 빈 영역에 연속하여 저장하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  2. 제1항에 있어서, 상기 타임 스탬프(31)는 상기 기록 버퍼 기억부(41)에 축적된 N×K개의 논리 블럭이 상기 N대의 디스크 장치(2)에 기록될 때마다 증가되는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  3. 제2항에 있어서, 상기 디스크 장치에 기록된 각 스트라이프 영역의 논리 어드레스 태그 블럭을 판독하고, 이것을 검사함으로써 각 논리 어드레스에 대응하는 디스크 장치상의 물리적인 기억 위치를 검출하고, 검출된 기억 위치에 대하여 기록 또는 판독을 행하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  4. 제3항에 있어서, 상기 논리 어드레스 태그 블럭의 검사에 있어서, 동일한 논리 어드레스를 포함하는 스트라이프 영역이 복수인 경우, 상기 논리 어드레스 태그 블럭내의 타임 스탬프가 최신인 스트라이프의 논리 어드레스 블럭을 유효 블럭으로 하고, 다른 스트라이프 영역의 동일한 논리 어드레스를 가지는 블럭을 무효 블럭이라고 판정하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  5. 제3항에 있어서, 상기 논리 어드레스 태그 블럭의 검사에 있어서, 최대의 타임 스탬프 값을 발견하여, 다음 기록에서 부가하는 타임 스탬프를 재생하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  6. 제3항에 있어서, 상기 논리 어드레스 태그 블럭의 검사에 있어서, 최소의 타임 스탬프 값을 발견하여 기록 순서의 판정 기준이 되는 타임 스탬프 값을 구하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  7. 제1항에 있어서, 상기 디스크 장치에 기억된 복수의 스트라이프 영역의 논리 블럭의 데이터를 판독하고, 상기 논리 어드레스 태그 블럭의 검사를 행함으로써,각 스트라이프 영역내의 유효 기입 블럭 데이터만을 상기 기록 버퍼 기억부(41)에 옮기고, 이들 유효 기입 블럭 데이터에 대응하는 새로운 논리 어드레스 태그 블럭을 생성하며, 상기 기록 버퍼 기억부(41)에 옮겨진 유효 데이터와 새롭게 생성된 논리 어드레스 태그로 구성되는 1스트라이프분의 논리 블럭을 상기 판독된 복수의 스트라이프 영역과는 별도의 빈 영역에 순차적으로 기록함으로써, 상기 디스크 기억 장치상에 논리 블럭을 연속하여 기록할 수 있는 빈 영역을 형성하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  8. 제7항에 있어서, 상기 새로운 논리 어드레스 태그 블럭을 생성할 때, 유효 블럭수가 N×K-1개에 미치지 않는 경우는 새로운 논리 어드레스 태그 블럭내의 데이터가 저장되지 않은 블럭에 대응한 논리 어드레스에 널(NULL) 어드레스를 설정하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  9. 제1항에 있어서, 상기 디스크 장치의 빈 영역에 데이터를 기록한 후, 상기 디스크 장치의 기동시에 상기 복수의 스트라이프 영역의 논리 어드레스 태그 블럭의 검사를 행함으로써, 유효라고 판단된 각 논리 어드레스에 대한 스트라이프 번호, 스트라이프내의 블럭 번호, 유효 데이터의 타임 스탬프를 상기 변환 맵에 기록하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  10. 제9항에 있어서, 상기 변환 맵에 기록 작성후, 디스크 장치에 접근이 적은시간대에 각 스트라이프의 논리 어드레스 태그 블럭을 판독하여 변환 맵과 비교 정정을 행하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  11. 제1항에 있어서, 논리 어드레스 태그 블럭이 기록되는 위치를 연속하는 복수개의 스트라이프마다에 상이한 디스크 장치에 분산 배치하고, 논리 어드레스 태그 블럭의 검사시, 상기 상이한 디스크 장치의 논리 어드레스 태그 블럭을 병렬로 판독하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  12. 제1항에 있어서, 상기 논리 어드레스 태그는 각 스트라이프 영역에 논리 블럭 데이터와 동시에 순차적으로 기록할 수 있음과 동시에, 전용 태그 영역에도 병렬로 기록되고, 상기 논리 어드레스 태그 블럭의 검사시에는 이 전용 태그 영역을 순차적으로 판독하여 조사하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  13. 제9항에 있어서, 디스크 장치의 기억 영역을 복수 라인의 스트라이프를 단위로 하는 복수의 세그먼트로 분할하고, 일정 기간에 1개의 세그먼트에만 스트라이프 데이터가 기록되도록 제어함과 동시에, 기록 대상 세그먼트를 전환할 때에는 그 시점의 상기 변환 맵(32)의 내용과 전환처의 세그먼트 번호를 디스크 장치에 기록하고, 이후의 변환 맵(32) 작성시에는, 상기 세그먼트 전환시의 변환 맵의 내용 및 상기 디스크 장치에 기록된 세그먼트 번호내의 스트라이프 영역에 기록된 논리 어드레스 태그 블럭만을 검사하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  14. 제13항에 있어서, 상기 세그먼트내의 각 스트라이프에 대응한 비트 맵을 준비하고, 기록 대상 세그먼트를 전환할 때에는 이 비트 맵을 클리어하고, 스트라이프 영역에의 데이터 기록시에 기록한 스트라이프 영역에 대응한 비트를 세트하며, 변환 맵(32) 작성시에는, 디스크 장치의 세그먼트 전환시의 변환 맵 및 상기 디스크 장치(2)에 기록된 세그먼트 번호의 논리 어드레스 태그 중에서 상기 비트 맵이 세트되어 있는 것만 검사하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  15. 제6항에 있어서, 타임 스탬프의 최소치를 진행시키기 위해서, 무효 블럭이 적은 스트라이프에 대하여 정기적으로 판독하여 유효 블럭만을 상기 기록 버퍼에 옮기고, 대응하는 논리 태그 블럭내의 논리 어드레스와 새로운 타임 스탬프로부터 논리 어드레스 태그 블럭을 생성하며, 기록 버퍼의 유효 데이터와 생성된 논리 어드레스 태그 블럭으로 구성되는 스트라이프를 판독한 스트라이프를 유지하는 영역과는 별도의 빈 영역에 순차 기록하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  16. 제6항에 있어서, 타임 스탬프의 최소치를 진행시키기 위해서, 무효 블럭이적은 스트라이프에 대하여 정기적으로 논리 어드레스 태그 블럭만을 판독하여 무효 블럭의 논리 어드레스를 NULL 어드레스로 한 새로운 타임 스탬프를 부가한 논리 어드레스 태그 블럭을 생성하고, 여기서 생성된 논리 어드레스 태그 블럭을 판독한 논리 어드레스 태그 블럭에 덮어쓰기하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  17. 제9항에 있어서, 변환 맵(32) 작성후 디스크 장치상의 논리 어드레스 태그 블럭의 타임 스탬프와 대응하는 변환 맵(32)의 타임 스탬프를 비교하여 무효 블럭을 판정하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  18. N(N은 2 이상의 정수)+1대의 디스크 장치(2)가 장착된 디스크 기억 장치의 데이터 갱신 방법에 있어서,
    N×K(K는 블럭 수를 의미하는 정수)의 기억 용량을 갖는 기입 버퍼 기억부(41)의 N×K-1개의 블럭에 N×K-1개의 기입 블럭 데이터를 기억하고,
    상기 기입 버퍼 기억부(41)의 나머지 1 블럭에 상기 N×K-1개의 기입 블럭 데이터가 갖는 논리 어드레스(LA) 및 그 기입 시각을 나타내는 타임 스탬프(31)로부터 상기 기입 블럭 데이터에 대응하는 논리 어드레스 태그 블럭(LA-TAG)을 생성하여 기억하며,
    배타적 논리 연산에 의해 상기 N×K-1개의 기입 데이터와 상기 논리 어드레스 태그 블럭(LA-TAG)으로 이루어지는 K개의 스트라이프 데이터에 대응하는 K개의패리티 블럭(P)을 생성하고,
    상기 N×K-1개의 기입 데이터와 상기 논리 어드레스 태그 블럭(LA-TAG) 및 K개의 패리티 블럭(P)을 1 스트라이프로 하며 상기 N+1대의 디스크 장치(2)의 빈 영역에 연속하여 저장하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  19. N(N은 2 이상의 정수)+1대의 디스크 장치(2)가 장착된 디스크 기억 장치의 데이터 갱신 방법에 있어서,
    N×K(K는 블럭 수를 의미하는 정수)의 기억 용량을 갖는 기입 버퍼 기억부941)의 N×K-2개의 블럭에 N×K-2개의 기입 블럭 데이터를 기억하고,
    상기 기입 버퍼 기억부(41)의 나머지 2 블럭에 상기 N×K-2개의 기입 블럭 데이터가 갖는 논리 어드레스(LA) 및 그 기입 시각을 나타내는 타임 스탬프(31)로부터 상기 기입 블럭 데이터에 대응하는 논리 어드레스 태그 블럭(LA-TAG)을 두 개 생성하며,
    배타적 논리 연산에 의해 상기 N×K-2개의 기입 블럭 데이터와 상기 두 개의 논리 어드레스 태그 블럭(LA-TAG)으로 이루어지는 K개의 스트라이프 데이터에 대응하는 K개의 패리티 블럭(P)을 생성하여 기억하고,
    상기 두 개의 논리 어드레스 태그 블럭(LA-TAG)이 상이한 디스크 장치(2)에 저장되도록 상기 N×K-2개의 기입 데이터와 상기 두 개의 논리 어드레스 태그 블럭(LA-TAG)과 K개의 패리티 블럭(P)을 1 스트라이프로서 상기 N+1대의 디스크 장치(2)의 빈 영역에 연속하여 저장하는 것을 특징으로 하는 디스크 기억 장치의 데이터 갱신 방법.
  20. N(N은 2 이상의 정수)대의 디스크 장치(2)가 장착된 디스크 기억 제어 장치에 있어서,
    N×K(K는 블럭 수를 의미하는 정수)의 기억 용량을 갖는 기입 버퍼 기억부(41)와,
    상기 기입 버퍼 기억부(41)의 N×K-1개의 블럭에 N×K-1개의 기입 블럭 데이터를 기입하는 수단과,
    상기 기입 버퍼 기업부(41)의 나머지 1 블럭에 상기 N×K-1개의 기입 블럭 데이터가 갖는 논리 어드레스(LA) 및 그 기입 시각을 나타내는 타임 스탬프(31)로부터 상기 기입 블럭 데이터에 대응하는 논리 어드레스 태그 블럭(LA-TAG)을 생성하여 기입하는 수단과,
    상기 기입 버퍼 기억부(41)에 기억된 상기 N×K-1개의 기입 블럭 데이터와 상기 논리 어드레스 태그 블럭(LA-TAG)을 1 스트라이프로서 상기 N대의 디스크 장치의 빈 영역에 연속하여 저장하는 수단을 포함하는 것을 특징으로 하는 디스크 기억 제어 장치.
  21. N(N은 2 이상의 정수)+1대의 디스크 장치가 장착된 디스크 기억 제어 장치에 있어서,
    N×K(K는 블럭 수를 의미하는 정수)의 기억 용량을 갖는 기입 버퍼 기억부(41)와,
    상기 기입 버퍼 기억부(41)의 N×K-1개의 블럭에 N×K-1개의 기입 블럭 데이터를 기입하는 수단과,
    상기 기입 버퍼 기억부(41)의 나머지 1 블럭에 상기 N×K-1개의 기입 블럭 데이터가 갖는 논리 어드레스(LA) 및 그 기입 시각을 나타내는 타임 스탬프(31)로부터 상기 기입 블럭 데이터에 대응하는 논리 어드레스 태그 블럭(LA-TAG)을 생성하여 기입하는 수단과,
    배타적 논리 연산에 의해 상기 N×K-1개의 기입 블럭 데이터와 상기 논리 어드레스 블럭(LA-TAG)으로 이루어지는 K개의 스트라이프 태그에 대응하는 K개의 패리티 블럭(P)을 생성하는 수단과,
    상기 N×K-1개의 기입 데이터와 상기 논리 어드레스 태그 블럭(LA-TAG)과 K개의 패리티 블럭(P)을 1 스트라이프로서 상기 N+1대의 디스크 장치의 빈 영역에 연속하여 저장하는 수단을 포함하는 것을 특징으로 하는 디스크 기억 제어 장치.
  22. 제21항에 있어서, 패리티를 사용한 장황성 디스크를 구성하기 위해 장황 디스크 장치를 부가하고, 기록의 시간적 순서를 유지하는 타임 스탬프가 저장되는 휘발성 메모리(3)와, 디스크 장치에 기록해야 할 데이터를 로그 구조화하여 유지하는 상기 기록 버퍼, 기록 버퍼내의 빈 영역 및 유지되어 있는 기록 데이터의 논리 어드레스 정보를 유지하는 버퍼 관리 정보가 저장되는 비휘발성 메모리(4)를 구비하는 것을 특징으로 하는 디스크 기억 제어 장치.
KR1019980027214A 1997-08-08 1998-07-07 디스크기억장치의데이터갱신방법및디스크기억제어장치 KR100310896B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9214656A JPH1153235A (ja) 1997-08-08 1997-08-08 ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
JP97-214656 1997-08-08

Publications (2)

Publication Number Publication Date
KR19990023182A KR19990023182A (ko) 1999-03-25
KR100310896B1 true KR100310896B1 (ko) 2001-11-15

Family

ID=16659392

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980027214A KR100310896B1 (ko) 1997-08-08 1998-07-07 디스크기억장치의데이터갱신방법및디스크기억제어장치

Country Status (6)

Country Link
US (1) US6219752B1 (ko)
EP (1) EP0898228B1 (ko)
JP (1) JPH1153235A (ko)
KR (1) KR100310896B1 (ko)
CN (2) CN1174318C (ko)
DE (1) DE69831455T2 (ko)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3233079B2 (ja) 1997-09-30 2001-11-26 ソニー株式会社 データ処理システム及びデータ処理方法
US6532517B1 (en) * 1999-04-13 2003-03-11 Webtv Networks, Inc. System and method for reducing disk chatter from disk-based data storage systems
KR100605893B1 (ko) 1999-10-08 2006-08-01 삼성전자주식회사 시간지연 시청을 위한 비디오 스트림 처리방법
TW535161B (en) * 1999-12-03 2003-06-01 Nec Electronics Corp Semiconductor memory device and its testing method
US6609176B1 (en) 1999-12-27 2003-08-19 Kabushiki Kaisha Toshiba Disk control system and data rearrangement method
JP3607153B2 (ja) * 2000-02-28 2005-01-05 シャープ株式会社 ファイル管理方法及び装置
JP4131894B2 (ja) 2000-02-29 2008-08-13 株式会社東芝 ランダムディスクライトに好適なディスク制御機構
SG99941A1 (en) * 2000-08-30 2003-11-27 Ibm Transaction support on logical disks
US6871271B2 (en) * 2000-12-21 2005-03-22 Emc Corporation Incrementally restoring a mass storage device to a prior state
JP3592640B2 (ja) * 2001-01-09 2004-11-24 株式会社東芝 ディスク制御システムおよびディスク制御方法
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
KR100401946B1 (ko) * 2001-08-10 2003-10-17 박종원 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치
JP3579389B2 (ja) * 2001-11-30 2004-10-20 株式会社東芝 ディスクアレイ装置及び同装置におけるデータ復旧方法
JP3682256B2 (ja) * 2001-11-30 2005-08-10 株式会社東芝 ディスクアレイ装置及び同装置におけるパリティ処理方法
JP3526452B2 (ja) * 2001-12-18 2004-05-17 株式会社東芝 ディスクアレイ装置及びデータバックアップ方法
JP3590381B2 (ja) * 2001-12-18 2004-11-17 株式会社東芝 ディスクアレイ装置及び同装置におけるデータ更新方法
JP3702231B2 (ja) * 2002-01-31 2005-10-05 株式会社東芝 ディスクアレイ装置及び同装置における動的記憶容量拡張方法
EP1336967A1 (en) * 2002-02-15 2003-08-20 Deutsche Thomson-Brandt Gmbh Method and apparatus for addressing data segments on a recording medium for replay
US20040003172A1 (en) * 2002-07-01 2004-01-01 Hui Su Fast disc write mechanism in hard disc drives
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
JP3785127B2 (ja) * 2002-09-11 2006-06-14 株式会社東芝 ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法
JP4651913B2 (ja) * 2003-02-17 2011-03-16 株式会社日立製作所 記憶装置システム
JP4060235B2 (ja) 2003-05-22 2008-03-12 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
JP2004348464A (ja) 2003-05-22 2004-12-09 Hitachi Ltd ストレージ装置、及び通信信号の整形回路
US8301809B2 (en) * 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
US7509473B2 (en) * 2003-08-27 2009-03-24 Adaptec, Inc. Segmented storage system mapping
US7991748B2 (en) 2003-09-23 2011-08-02 Symantec Corporation Virtual data store creation and use
US7287133B2 (en) 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7577807B2 (en) * 2003-09-23 2009-08-18 Symantec Operating Corporation Methods and devices for restoring a portion of a data store
US7904428B2 (en) 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US7827362B2 (en) 2004-08-24 2010-11-02 Symantec Corporation Systems, apparatus, and methods for processing I/O requests
US7730222B2 (en) 2004-08-24 2010-06-01 Symantec Operating System Processing storage-related I/O requests using binary tree data structures
US7725760B2 (en) 2003-09-23 2010-05-25 Symantec Operating Corporation Data storage system
US7577806B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
JP4307202B2 (ja) * 2003-09-29 2009-08-05 株式会社日立製作所 記憶システム及び記憶制御装置
US7080768B2 (en) * 2003-11-10 2006-07-25 Worktools, Inc. Spring energized desktop stapler
JP4156499B2 (ja) 2003-11-28 2008-09-24 株式会社日立製作所 ディスクアレイ装置
JP4497918B2 (ja) * 2003-12-25 2010-07-07 株式会社日立製作所 ストレージシステム
JP4634049B2 (ja) * 2004-02-04 2011-02-16 株式会社日立製作所 ディスクアレイ装置における異常通知制御
JP4306525B2 (ja) * 2004-04-16 2009-08-05 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7188212B2 (en) * 2004-05-06 2007-03-06 International Business Machines Corporation Method and system for storing data in an array of storage devices with additional and autonomic protection
KR20070029705A (ko) 2004-05-10 2007-03-14 마쯔시다덴기산교 가부시키가이샤 1회 기록 디스크들에 대한 데이터 기록/재생
US7093157B2 (en) * 2004-06-17 2006-08-15 International Business Machines Corporation Method and system for autonomic protection against data strip loss
US8066515B2 (en) * 2004-11-17 2011-11-29 Nvidia Corporation Multiple graphics adapter connection systems
US7885921B2 (en) * 2004-11-18 2011-02-08 International Business Machines Corporation Managing atomic updates on metadata tracks in a storage system
KR100578143B1 (ko) * 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
JP4248510B2 (ja) * 2005-03-24 2009-04-02 株式会社東芝 計算機システム、ディスク装置およびデータ更新制御方法
US20060230455A1 (en) * 2005-04-12 2006-10-12 Yuan-Chang Lo Apparatus and methods for file system with write buffer to protect against malware
JP2007072839A (ja) * 2005-09-08 2007-03-22 Sony Corp 記録制御装置および方法、並びにプログラム
WO2007047346A2 (en) * 2005-10-14 2007-04-26 Symantec Operating Corporation Technique for timeline compression in a data store
JP4892225B2 (ja) * 2005-10-28 2012-03-07 株式会社日立ハイテクノロジーズ 真空処理方法、真空搬送装置および半導体処理装置
KR100706808B1 (ko) 2006-02-03 2007-04-12 삼성전자주식회사 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법
US7549021B2 (en) 2006-02-22 2009-06-16 Seagate Technology Llc Enhanced data integrity using parallel volatile and non-volatile transfer buffers
US20070294565A1 (en) * 2006-04-28 2007-12-20 Network Appliance, Inc. Simplified parity disk generation in a redundant array of inexpensive disks
US8250316B2 (en) * 2006-06-06 2012-08-21 Seagate Technology Llc Write caching random data and sequential data simultaneously
CN101548271B (zh) * 2006-12-08 2012-12-05 桑德福斯公司 多个存储装置中的数据冗余
US10002000B2 (en) * 2007-04-09 2018-06-19 Open Invention Network, Llc Trace-assisted startup optimization from a virtual disk
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
JP5365236B2 (ja) * 2009-02-16 2013-12-11 日本電気株式会社 ストレージシステム
KR101581859B1 (ko) * 2009-02-27 2016-01-21 삼성전자주식회사 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법
US8799572B2 (en) 2009-04-20 2014-08-05 Microsoft Corporation Sliding-window multi-class striping
JP4599450B2 (ja) * 2009-04-24 2010-12-15 株式会社東芝 電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
KR20110103660A (ko) * 2010-03-15 2011-09-21 주식회사 히타치엘지 데이터 스토리지 코리아 광디스크 드라이브 레이드 기록 장치 및 방법
US9588888B2 (en) 2010-07-30 2017-03-07 Hewlett Packard Enterprise Development Lp Memory device and method for altering performance characteristic based on bandwidth demand
CN101930404B (zh) * 2010-08-27 2012-11-21 威盛电子股份有限公司 存储装置及其操作方法
EP2742429A4 (en) 2011-08-09 2015-03-25 Lsi Corp I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST
US8949517B2 (en) 2011-10-05 2015-02-03 Lsi Corporation Self-journaling and hierarchical consistency for non-volatile storage
JP2013196276A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd 情報処理装置、プログラムおよびデータ配置方法
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9213633B2 (en) 2013-04-30 2015-12-15 Seagate Technology Llc Flash translation layer with lower write amplification
JP5747133B1 (ja) * 2014-06-11 2015-07-08 株式会社東芝 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法
JP2016143296A (ja) * 2015-02-03 2016-08-08 富士通株式会社 情報記憶装置、ストレージシステムおよび情報記憶装置制御プログラム
JP6429124B2 (ja) 2015-03-27 2018-11-28 パナソニックIpマネジメント株式会社 光ディスク装置、方法およびコンピュータプログラム
CN107436735A (zh) * 2017-07-28 2017-12-05 郑州云海信息技术有限公司 一种分布式文件系统中存储单元状态更新方法
CN110568993B (zh) * 2019-08-06 2022-04-12 新华三技术有限公司成都分公司 一种数据更新方法及相关装置
US11582025B2 (en) 2020-09-29 2023-02-14 Amazon Technologies, Inc. Efficient deduplication using block-based convergent encryption
US11329803B2 (en) 2020-09-29 2022-05-10 Amazon Technologies, Inc. Redundancy controls in convergent encryption using dynamic salt values

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214720A (ja) * 1992-12-07 1994-08-05 Internatl Business Mach Corp <Ibm> ディスク記憶装置のデータ更新方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5233618A (en) * 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
US5124987A (en) * 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
WO1997001139A1 (en) * 1995-06-23 1997-01-09 Elonex Plc Disk array controller with enhanced synchronous write
US6058455A (en) * 1997-07-02 2000-05-02 International Business Corporation RAID system having a selectable unattended mode of operation with conditional and hierarchical automatic re-configuration

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214720A (ja) * 1992-12-07 1994-08-05 Internatl Business Mach Corp <Ibm> ディスク記憶装置のデータ更新方法

Also Published As

Publication number Publication date
CN1174318C (zh) 2004-11-03
CN1208891A (zh) 1999-02-24
CN1347031A (zh) 2002-05-01
DE69831455T2 (de) 2006-06-14
KR19990023182A (ko) 1999-03-25
JPH1153235A (ja) 1999-02-26
DE69831455D1 (de) 2005-10-13
EP0898228B1 (en) 2005-09-07
CN1194298C (zh) 2005-03-23
EP0898228A3 (en) 2004-01-21
EP0898228A2 (en) 1999-02-24
US6219752B1 (en) 2001-04-17

Similar Documents

Publication Publication Date Title
KR100310896B1 (ko) 디스크기억장치의데이터갱신방법및디스크기억제어장치
US6886068B2 (en) Disk array apparatus and data update method for storing tag blocks
JPH11194899A (ja) ディスク記憶システム及び同システムに適用するデータ更新方法
US6311193B1 (en) Computer system
US5682499A (en) Directory rebuild method and apparatus for maintaining and rebuilding directory information for compressed data on direct access storage device (DASD)
US5379391A (en) Method and apparatus to access data records in a cache memory by multiple virtual addresses
US5537534A (en) Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array
US7114012B2 (en) Computer system and method for migrating from one storage system to another
US5764880A (en) Method and system for rebuilding log-structured arrays
US5490248A (en) Disk array system having special parity groups for data blocks with high update activity
CN101807418B (zh) 驱动装置
US5457791A (en) Storage system and method of control
US5864655A (en) Managing removable media in raid and rail environments
US5420983A (en) Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data
US6912614B2 (en) Disk array apparatus and data restoring method used therein
US6636941B1 (en) Enhanced stable disk storage
JPH0736143B2 (ja) レコードの書き込み更新方法、単一パスアクセス保証方法、及びシステム
JP2000010738A (ja) ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体
JPH02281474A (ja) 記憶媒体のオートチェンジャ装置
CN101707060B (zh) 驱动装置
CN111124251A (zh) 用于i/o控制的方法、装置以及计算机可读介质
CN101006510B (zh) 驱动装置
JP2000047832A (ja) ディスクアレイ装置、及びそのデータ制御方法
JP3030949B2 (ja) ディジタルデータ記録再生装置
CN114281267B (zh) 分布式存储系统间的数据迁移方法和装置

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

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee