KR100321843B1 - 메모리 구조 변환 방법 및 데이터 저장 시스템 - Google Patents

메모리 구조 변환 방법 및 데이터 저장 시스템 Download PDF

Info

Publication number
KR100321843B1
KR100321843B1 KR1019997006433A KR19997006433A KR100321843B1 KR 100321843 B1 KR100321843 B1 KR 100321843B1 KR 1019997006433 A KR1019997006433 A KR 1019997006433A KR 19997006433 A KR19997006433 A KR 19997006433A KR 100321843 B1 KR100321843 B1 KR 100321843B1
Authority
KR
South Korea
Prior art keywords
block
data
blocks
parity
memory structure
Prior art date
Application number
KR1019997006433A
Other languages
English (en)
Other versions
KR20000070207A (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 KR20000070207A publication Critical patent/KR20000070207A/ko
Application granted granted Critical
Publication of KR100321843B1 publication Critical patent/KR100321843B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • 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
    • 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/1014Compression, i.e. RAID systems with parity using compression techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

가변성 저장 소자 어레이는 띠(901, 1001)로 일컬어지는 블럭 세트로 나뉘어지며 상이한 소자(401a 내지 401f)에 저장되는 다수의 블럭(903, 905, 907, 911, 913)을 저장한다. 어레이 제어기(403)는 상이한 메모리 구조에 따른 독립적인 띠의 포맷을 지원한다. 구체적으로, 바람직한 실시예에서 구현되는 메모리 구조는 중복이 없고, 대칭적이며, 패리티를 갖는다. 각각의 저장 블럭은 다섯 가지의 상태, 즉 (1) EMPTY, (2) DATA, (3) PARITY, (4) COPY, (5) FREE 중 한 상태로 존재한다. 저장 블럭의 각 띠는 블럭의 상태에 따라 달라지는 일곱 가지 상태 중 한 상태로 존재한다. 데이터의 이동을 최소화하면서 한 유형의 띠를 다른 유형의 띠로 변환되게 하는 소정의 상태 천이가 규정되어 있다(도 7). 구체적으로, 대칭적인 띠 내에 있는 임의의 한 블럭을 패리티 블럭으로 지정하고(806-807), 소정의 상태 정보를 변화시킴으로써(808-812), 완전 대칭되는 상태에 있는 띠가 패리티를 갖는 상태로 변환된다. 이런 경우에 데이터를 이동시킬 필요가 없다. 또한 중복이 없거나 또는 패리티를 갖는 띠를 대칭적인 띠로 변환할 수도 있다(1102-1112, 1202-1212).

Description

메모리 구조 변환 방법 및 데이터 저장 시스템{TRANSFORMATIONAL RAID FOR HIERARCHICAL STORAGE MANAGEMENT SYSTEM}
본 발명은 전반적으로 디지탈 데이터 저장 시스템에 관한 것으로, 보다 상세하게는 종종 'RAID'라고 지칭되는 독립적인 저장 소자의 중복 어레이에 대한 관리에 관한 것이다.
종래기술의 설명
오늘날 컴퓨터 시스템에 대규모의 데이터 저장이 필요하기 때문에 용량이 큰 데이터 저장 소자가 많이 필요하게 된다. 통상적인 저장 소자는 쉽게 고장날 수 있는 부분을 다수 포함하는 복잡한 기계 장치의 하나인 회전식 마그네틱 하드 디스크 드라이브(rotating magnetic hard disk drive)이다. 전형적인 컴퓨터 시스템은 이러한 저장 단위를 여러 개 포함할 것이다. 저장 단위가 하나만 고장나도 시스템이 정상적으로 동작할 수 없을 수 있다. 많은 경우에 있어서, 고장난 저장 단위를 수리하거나 대체시키고 손실된 데이터를 복구한 후에야 시스템은 동작 가능하게 된다.
컴퓨터 시스템이 점점 더 커지고, 더 빨라지며, 더 신뢰할 만해짐에 따라,이에 대응하여 저장 소자의 저장 용량, 속도, 신뢰도에 대한 요구가 증가하고 있다. 저장 용량을 증가시키기 위해 단순히 저장 단위를 추가하게 되면 이에 대응하여 임의의 저장 단위가 고장날 가능성도 증가하게 된다. 한편, 다른 부분을 개선하지 않으면서 현존하는 저장 단위의 크기만을 증가시키게 되면, 속도가 줄어들게 되고 신뢰도는 전혀 개선되지 않게 된다.
최근에는 일정 수준의 데이터 중복(data redundancy)을 제공하도록 구성되는 직접 액세스 저장 소자 어레이에 상당한 관심이 쏠리고 있다. 이러한 어레이는 통상적으로 'RAID(redundant array of independent (or inexpensive) disks)'라고 알려져 있다. 상이한 형태의 리던던시를 제공하는 다양한 유형의 RAID가 1988년 6월 ACM SIGMOD 학술 회의에서 소개된 패터슨(Patterson), 깁슨(Gibson), 케쯔(Katz)의 논문 'A Case for Redundant Arrays of Inexpensive Disks(RAID)'에 기술되어 있다. 패터슨 등은 수준 1 내지 수준 5로 구분되는 다섯 가지 유형으로 RAID를 분류한다. 패터슨의 명명법은 당업계에서 표준이 되고 있다.
RAID의 기본 이론은 많은 수의 비교적 값싼 작은 디스크 드라이브들이 단일의 더 크고 비싼 드라이브의 용량을 제공할 수 있다는 것이다. 또한 보다 작은 드라이브는 모두 동시에 데이터를 판독하거나 기록할(액세스할) 수 있기 때문에 보다 빠를 것이다. 결국, 작은 드라이브는 아주 적은 비용이 소요되므로, 작은 드라이브 중 한 드라이브에 저장된 데이터가 손상된 경우에 소정의 저장 관리 기법과 함께 시스템으로 하여금 손상된 데이터를 복구하게 하는 추가(중복되는) 디스크 드라이브를 포함시킬 수 있다. 그러므로, RAID를 사용하면 용량, 성능, 신뢰도를 향상시킬 수 있다. RAID가 시장에서 인기를 얻어감에 따라, 그들의 적용은 작은 용량의 드라이브에만 제한되지 않고 있으며, 오늘날의 RAID 시스템은 어떤 용량의 드라이브로도 구성되고 있다. 또한, RAID 시스템은 광학적 디스크 드라이브(optical disk drive), 마그네틱 테이프 드라이브(magnetic tape drive), 플로피 디스크 드라이브(floppy disk drive)등과 같은 다른 유형의 저장 소자와 함께 사용될 수 있다. 본 명세서에서 사용되는 바와 같이 'RAID' 또는 'RAID 시스템'이란 용어는 저장 소자 중 임의의 특정 유형에 한정되지 않아야 한다.
패터슨의 명명법을 사용하면, RAID 수준 1은 대칭적인 구성(mirrored configuration)이다. RAID-1 메모리 구조에 따라, 각 데이터 단위가 어레이 내에 있는 두 개의 별개인 저장 소자에 저장된다. 그러므로, 한 소자가 고장난 경우에 제 2 소자로부터 데이터를 복구할 수 있다. 도 1은 RAID-1 메모리 구조에 따라 저장되는 데이터의 일 예를 도시한다. 도 1에 도시한 바와 같이, 소자 1에 저장되는 정보 (A, B, C, D)는 소자 2에 저장되는 정보(A', B', C', D')와 대칭적이다. 이와 똑같이, 소자 3에 저장되는 정보 (E, F, G, H)는 소자 4에 저장되는 정보(E', F', G', H')와 대칭적이고, 소자 5에 저장되는 정보(I, J, K, L)는 소자 6에 저장되는 정보(I', J', K', L')와 대칭적이다.
패터슨의 명명법에 따라 2보다 큰 RAID 수준 (RAID-3, RAID-4, RAID-5)은 데이터 중복을 위해 패리티 기록을 사용한다. 패리티 기록은 한 어레이 내의 상이한 저장 단위의 특정 위치에 저장되는 모든 데이터 기록을 배타적 OR 연산함으로써 형성된다. 다시 말해서, N 개의 저장 단위 어레이 내에서 한 저장 소자의 특정 위치에 있는 데이터 블럭 내의 각 비트는 N-1 개의 저장 단위 그룹 내의 그 위치에 있는 모든 다른 비트와 배타적 OR 연산되어 패리티 비트 블럭을 생성하고, 그 다음에 이 패리티 블럭이 남아있는 N번째 저장 단위의 동일한 위치에 저장된다. 어레이 내의 임의의 저장 단위가 고장난다면, 남아있는 소자의 동일한 위치에 있는 데이터 블럭과 이들 블럭에 대응하는 패리티 블럭을 배타적 OR 연산함으로써 고장난 저장 단위의 임의의 위치에 포함된 데이터가 재생성될 수 있다.
RAID-3에서 상이한 디스크 드라이브에 있는 모든 판독/기록 액츄에이터(actuator)는 연대하여 동작함으로써 각 드라이브의 동일한 위치에 있는 데이터에 접근하게 된다. RAID-4와 RAID-5는 디스크 드라이브 단위 내에 있는 판독/기록 액츄에이터를 독립적으로 동작시키는 특징이 있다. 다시 말해서, 어레이 내의 다른 단위가 데이터에 접근하고 있는 부분과 무관하게, 디스크 드라이브 단위의 각 판독/기록 헤드는 디스크 상의 임의의 위치에 있는 데이터에 자유롭게 접근한다.
RAID-4에 따르면 '블럭' 내에 정보가 저장되는데, 각 블럭은 상이한 저장 소자 내에 저장된다. 본 명세서에서 '블럭'이란 용어는 하나 이상의 데이터 섹터를 포함하는 응집된(coherent) 데이터 단위를 지칭하되, 데이터는 단일 저장 소자로부터 독립적으로 접근할 수 있다. 이러한 하나의 RAID-4 메모리 구조를 포함하는 정보를 '띠(stripe)'로 지칭한다. 각 띠는 어레이의 소자 202a-202f 중 몇 개의 소자에 저장된 정보의 일부분을 포함한다. 본 명세서에서 '띠'란 용어는 한 블럭 세트를 지칭하는데, 각 블럭은 바람직하게는 한 주소에 저장되되, 그 주소는 각각의다른 저장 소자 내에 있는 각각의 다른 블럭의 주소와 관련되지만, 이와는 달리 상기 각각의 다른 저장 소자는 블럭 세트를 포함할 수 있되, 블럭 세트의 각(또는 일부) 블럭은 다른 블럭들이 다른 소자 내에 저장되는 주소와 무관한 주소에 저장된다. 도 2는 RAID-4에 따라 저장되는 4 개의 데이터 띠(204a, 204b, 204c, 204d)를 도시한다. 도 2에 도시한 바와 같이, 한 띠(204a)는 소자 1에 저장된 데이터 블럭(201), 소자 2에 저장된 데이터 블럭(203), 소자 3에 저장된 데이터 블럭(205), 소자 4에 저장된 데이터 블럭(207), 소자 5에 저장된 데이터 블럭(209)을 포함한다. 또한, 소자들 중 한 소자(202f)는 패리티 블럭(211)에 있는 '패리티' 정보를 저장하기 위한 것이다. 그밖의 다른 소자 각각은 사용자 정보를 저장한다. 저장 소자의 임의의 한 소자가 고장난 경우에 고장난 소자에 저장되어 있던 정보는 그밖의 다른 소자 각각에 저장된 띠의 남아있는 정보를 논리적으로 배타적 OR 연산함으로써 복구될 수 있다.
독립적인 판독/기록을 갖는 패리티를 갖는 디스크 어레이(즉, RAID-4 또는 RAID-5) 에서 직면하게 되는 문제 중의 하나는 데이터 블럭이 기록될 때마다 패리티 블럭을 갱신하는 것과 관련된 오버헤드(overhead)이다. 예를 들어, 소자 1의 블럭(201) 내의 정보가 변화되는 (즉, '기존 데이터'를 갱신하여 '신규 데이터'가 기록되는) 경우에, 기존 데이터와, 패리티 블럭(211)으로부터의 기존 패리티 정보와, 신규 데이터를 전형적으로 XOR 연산하여 갱신된 패리티 정보를 생성한다. 신규 데이터와 신규 패리티가 각각 해당 블럭에 기록된다. 이들 동작은 다양한 순차로 수행될 수 있지만, 데이터가 갱신될 때마다 전형적으로 두 개의 블럭(기존 데이터와 기존 패리티)을 판독하고 두 개의 (신규 데이터와 신규 패리티) 블럭을 기록할 것을 필요로 한다. 캐쉬 및 다른 기법을 사용하여 이러한 문제점을 줄일 수는 있지만, RAID-4 시스템에 있는 패리티 디스크가 지나치게 사용되는 경향이 있다.
본 명세서에 참조로서 인용되는 클라크(Clark) 등에 허여된 미국 특허 제 4,761,785호는 패리티 블럭이 어레이 내의 디스크 저장 단위들에 실질적으로 동등하게 분배되는 독립적인 판독/기록 어레이 유형을 개시하고 있다. 패터슨 등은 이러한 유형의 어레이를 RAID-5로 지칭하고 있다. 도 3은 RAID-5 구성을 도시한다. 비록 동일한 판독-수정-기록 동작을 통상적으로 사용하여 RAID-4 시스템뿐만 아니라 RAID-5 시스템 내에 데이터를 기록한다 할지라도, 패리티 블럭을 분배하면 어레이 내에서 디스크 간의 패리티를 갱신하는 부담을 다소간 동등하게 나누게 되고, 이에 따라 모든 패리티 기록이 단일의 전용 디스크 드라이브 단위에 유지되는 경우에 발생할 수 있는 잠재적인 성능 병목 현상을 피할 수 있게 된다. RAID-5는 패터슨에 의해 개시된 가장 진보된 수준의 RAID이다.
메모리 구조 포맷마다 각각 그 자체의 특성을 갖는데, 이로 인해 특정 메모리 구조 포맷이 여타의 포맷보다 특정 데이터를 저장하는 데 더 적당할 수 있다. 동시에 모든 면에서 우수한 포맷은 없다. 예를 들어, 저장 바이트당 비용 관점에서 보면, RAID-1이 가장 비싸고, 패리티를 갖는 RAID가 덜 비싸며, 중복이 없는 저장 소자가 훨씬 덜 비싸다. 패리티를 갖는 포맷에서는 데이터를 갱신하기 어렵기 때문에 일반적으로 중복이 없는 저장과 RAID-1이 패리티를 갖는 포맷보다 빠르다. 패리티를 갖는 포맷과 대칭적 포맷은 모두 중복적이지만, 두 소자가 고장난다 하더라도 고장난 두 소자가 그 내부에 동일한 정보를 저장하지 않는 한 이들 두 소자에 저장된 모든 정보를 복구할 수 있다는 점에서 대칭적 포맷이 약간 더 강건하다. 예를 들어, 도 1을 참조하면, 소자 1과 소자 3이 모두 고장나는 경우에 이들 두 소자에 저장된 정보는 소자 2와 소자 4에 여전히 저장되어 있다. 따라서, 고장난 저장 소자 내의 데이터를 복구할 수 있다. 그러나, 패리티를 갖는 구성에서는 고장난 두 소자 내에 있는 모든 데이터가 손실될 것이다. 왜냐하면 N이 RAID-4 띠 내에 있는 전체 소자 수인 경우에, 하나의 고장난 소자에 저장된 정보를 복구하기 위해 패리티를 갖는 구성은 N-1 개의 소자로부터의 정보가 사용 가능할 것을 요구하기 때문이다.
특정 구조 내에 정보를 구성하는지 여부를 결정하는 경우에, 속도, 강건함, 요구된 공간 사이에 타협해야 하기 때문에, 적어도 어레이 중 일부는 중복되지 않게 하고, 일부는 대칭적으로 하며, 일부는 패리티를 갖도록 구성할 수 있다면 장점이 많다. 어레이의 일부를 한 포맷에서 다른 포맷으로 동적으로 변환할 수 있다면(즉, 어레이의 다수 부분을 한 포맷에서 또다른 포맷으로 변환하고 다시 반대로 변환하는 것) 더욱 유리하다. 이러한 변환은 먼저 어레이 중 재포맷될 해당 부분의 모든 데이터를 (어레이 내부 또는 외부에 있을 수 있는) 일단 버퍼로 복사하고, 그 다음에 어레이의 해당 부분을 재포맷하며, 데이터를 신규한 포맷으로 다시 복사한다. 그러나, 데이터를 버퍼로 복사하는 과정에서 상당한 양의 오버헤드가 발생한다.
발명의 요약
그러므로 본 발명의 목적은 컴퓨터 시스템 내에 데이터를 저장하는 개선된 방법과 장치를 제공하는 것이다.
본 발명의 다른 목적은 컴퓨터 시스템을 위한 보다 가변성 있는 저장 서브 시스템을 제공하는 것이다.
본 발명의 또다른 목적은 컴퓨터 시스템에서 중복되는 저장 소자 어레이를 관리하는 개선된 방법과 장치를 제공하는 것이다.
본 발명의 또다른 목적은 컴퓨터 시스템 사용자의 요구를 충족시키기 위해 재구성되도록 컴퓨터 시스템의 저장 서브 시스템의 성능을 개선하는 것이다.
본 발명의 또다른 목적은 RAID-1에서 RAID-4 또는 RAID-5로 및 그 역으로 변환하는 시스템과 방법을 제공하는 것이다.
가변성 데이터 저장 장치는 사용자의 요구를 지원하도록 포맷될 수 있는 저장 소자 어레이를 포함한다. 본 발명의 바람직한 실시예에 따라 어레이 내의 각 저장 소자는 다수의 블럭을 저장하고, 어레이 내의 저장 공간은 띠라고 일컬어지는 다수의 블럭 세트로 나뉘어 진다. 어레이 제어기는 상이한 메모리 구조에 따라 독립적으로 띠를 포맷하는 것을 지원한다. 구체적으로, 바람직한 실시예에 따른 메모리 구조는 중복이 없는 구조, 대칭 구조, 패리티를 갖는 구조(RAID-4 또는 RAID-5)이다. 바람직하게는, 정보의 이동을 최소화하면서 하나 이상의 대칭적(RAID-1) 정보 띠를 동일한 수의 RAID-4 또는 RAID-5 정보 띠로 변환할 수 있고, 그 반대로 변환할 수 있다.
바람직한 실시예에 따라, 각 저장 블럭은 다섯 상태, 즉 (1) EMPTY , (2) DATA, (3) PARITY, (4) COPY, (5) FREE 중 한 상태로 존재한다. 어레이 내의 각 저장 블럭 띠는 일곱 상태 중 한 상태로 존재하는데, 일곱 띠 상태는 블럭의 상태에 따라 달라진다. 세 개의 띠 상태는 중복되지 않고, 두 개는 패리티를 가지며, 두 개는 대칭적이다. 오직 소정의 규정된 상태 천이만 가능하다. 저장 소자의 어떤 블럭 내에 있는 정보가 사용자 정보를 손상시키지 않고 RAID 제어기에 의해 변화될 수 있는 경우에 (즉, 저장된 정보가 사용자 정보도 아니고, 패리티 정보도 아니며, 페러티를 생성하기 위해 사용되지도 않았던 경우에), 그 블럭을 EMPTY 블럭으로 지정하는 것이 바람직하다. 저장 소자의 어떤 블럭이 사용자 정보를 저장하기 위한 것이면, 그 블럭을 DATA 블럭으로 지정하는 것이 바람직하다. 저장 소자의 어떤 블럭 내에 저장된 정보가 동일한 띠 내에 포함된 DATA 블럭을 각각 논리적으로 배타적 OR 연산(XOR 연산)한 결과인 경우에, 그 블럭을 PARITY 블럭으로 지정하는 것이 바람직하다. 저장 소자의 어떤 블럭 내에 저장된 정보가 동일한 띠의 또다른 소자 내에 있는 DATA 블럭 내에 저장된 정보의 복사본이면, 그 블럭을 COPY 블럭으로 지정하는 것이 바람직하다. 저장 소자의 어떤 블럭 내에 현재는 아무런 사용자 정보도 저장되어 있지 않지만 그 블럭 내부에 저장된 정보를 RAID-4 (5) 판독-수정-기록 시퀀스에 따라 변화시켜야 하는 경우에, 그 정보를 사용하여 띠 내에 있는 관련 PARITY 블럭의 값을 결정하므로, 그 블럭을 FREE 블럭으로 지정하는 것이 바람직하다.
RAID-1에 따라, 각 블럭의 두 복사본이 저장되는데, 제 1 저장 소자에는 제1 복사본이 제 2 저장 소자에는 제 2 복사본이 저장된다. 블럭의 제 1 복사본은 DATA블럭으로 지정되는 것이 바람직하고, 블럭의 제 2 복사본은 COPY 블럭으로 지정되는 것이 바람직하다. 바람직한 실시예에 따라 DATA 블럭 내의 정보와 COPY 블럭 내의 정보가 상이한 저장 소자에 저장되는 반면, 관련된 DATA 및 COPY 블럭은 동일한 띠 내의 것으로 지정된다. 그러므로, RAID-1 정보 띠는 동일한 수의 DATA 블럭과 COPY 블럭을 포함하는 것이 바람직하며, 어레이 내에서 저장 소자 개수는 짝수가 바람직하다. 즉, 각 띠는 어레이 내에 있는 각 소자당 한 블럭씩으로 이루어질 수 있다. 어레이 내에서 저장 소자 개수가 홀수이면, 각 DATA 블럭이 대응되는 COPY 블럭을 필요로 하기 때문에, 각 띠가 모든 저장 소자보다 적은 개수의 저장 소자로부터의 데이터를 포함할 수 있든지 각 띠 내에 하나의 외톨이 블럭(odd block)이 있어야 한다.
바람직한 실시예에 따라, RAID-1 띠 내의 임의의 한 블럭으로 패리티 블럭으로 지정하고 소정의 상태 정보를 변화시킴으로써, 완전 대칭되는 상태에 있는 띠를 패리티를 갖는 상태(RAID-4 또는 RAID-5)로 변환시킬 수 있다. 이 경우에 데이터를 이동시킬 필요가 없다.
중복되지 않는 또는 패리티를 갖는 상태로부터 완전 대칭으로 변환이 수행되는 경우에, 상태 표가 천이 규칙을 규정하며, 그 규칙에 따라 변환이 허용된다. 띠 내에는 각 DATA 블럭과 관련된 COPY 블럭을 생성하기 위해 사용되지 않은 공간(EMPTY 또는 FREE 상태)이 충분하게 존재해야 한다. RAID-1 정보의 DATA 블럭 및 관련된 COPY 블럭이 동일한 띠 내에 존재하는 것이 바람직하므로, 변환될 띠('변환' 띠) 내에 저장된 정보가 띠 용량의 절반 이상을 필요로 하는 경우에, 남아있는 DATA 블럭과 관련된 COPY 블럭에 필요한 공간을 확보하기 위해서는 적어도 일부 정보를 또다른 띠로 이동시켜야 한다. 정보가 이동될 띠('수신' 띠)가 RAID-1에 따라 구성된 경우에 수신 띠는 각각 DATA 블럭 및 관련된 COPY 블럭을 저장할 충분한 공간을 가져야 한다. 이와는 달리, 일부 데이터가 패리티를 갖는 또는 갖지 않는 수신 띠로 이동될 수도 있는데, 이 경우에 단지 수신 띠 내에 데이터를 저장하기 위한 충분한 공간이 있을 필요가 있다. DATA 블럭의 복사본이 만들어지고, 띠 상태가 갱신된다. 본 발명의 구조와 동작에 관한 본 발명의 상세한 사항은 첨부한 도면을 참조하여 가장 잘 이해될 수 있는데, 동일한 참조 부호는 동일한 부분을 지칭한다.
도 1은 종래의 RAID-1 구조에 따라 저장된 데이터를 도시한 도면,
도 2는 종래의 RAID-4에 따라 저장된 데이터를 도시한 도면,
도 3은 종래의 RAID-5에 따라 저장된 데이터를 도시한 도면,
도 4는 본 발명의 바람직한 실시예에 따른 RAID 시스템을 도시한 도면,
도 5a, 도 5b, 도 5c는 바람직한 실시예에 따라 데이터 블럭의 사용과 상태를 매핑하기 위해 사용되는 데이터 구조를 기술하는 도면,
도 6은 바람직한 실시예에 따라 RAID 제어기에 부착된 저장 소자에 데이터를 기록하기 위해 수행되는 단계들을 나타낸 흐름도,
도 7은 바람직한 실시예에 따라 데이터 블럭 띠 내에서의 가능한 상태 변화를 도시하는 상태 다이어그램,
도 8은 본 발명의 한 실시예에 따라 현재 대칭적 구조(RAID-1)로 포맷된 어레이의 일부를 패리티를 갖는 구조(RAID-4 또는 RAID-5)로 변환하기 위해 수행되는 단계들을 나타낸 흐름도,
도 9는 바람직한 실시예에 따라 자체 내의 한 띠(901)가 RAID-1 구조로 포맷된 어레이(900)를 도시한 도면,
도 10은 바람직한 실시예에 따라 도 9에서 RAID-1 구조로 구성된 띠를 패리티를 갖는 띠로 변환한 후 도 9의 어레이를 도시한 도면,
도 11은 바람직한 실시예에 따라 패리티를 갖는 띠(RAID-4 또는 RAID-5)를 대칭적 구조(RAID-1)로 변환하는 방법을 도시한 흐름도,
도 12는 바람직한 실시예에 따라 중복되지 않는 띠를 패리티를 갖는 띠(RAID-4 또는 RAID-5)로 변환하는 방법을 도시한 흐름도,
도 13은 본 발명의 대안적인 실시예에 따라 홀수 개의 저장 소자를 갖는 어레이를 도시한 도면.
바람직한 실시예의 설명
먼저 도 4를 참조하면, 본 발명의 바람직한 실시예에 따라 재구성이 가능한 RAID 저장 시스템이 도시되어 있다. 통상적인 RAID 구성인 경우와 같이, 바람직한 실시예에 따른 RAID 시스템(400)은 다수의 저장 소자(401a-401f)를 포함한다. 바람직한 실시예에서, 저장 소자(401a-401f)는 직접 접근 저장 소자(direct access storage device: DASD)이고, 구체적으로는 회전식 마그네틱 하드 디스크 드라이브(rotating magnetic hard disk drive) 저장 소자이며, 이것이 아닌 다른 유형의 저장 소자를 사용할 수도 있다는 것을 이해할 것이다. 도 4에서는 편의상 6 개의 DASD를 도시하였지만, 본 발명에 따른 어레이가 세 개 이상의 소자를 포함할 수 있음을 이해할 것이다. RAID 제어기(403)가 DASD(401a-401f)에 연결된다. 본 발명의 일 실시예에 따라 RAID 제어기(403)는 랜덤 액세스 메모리(410)와 프로그램 가능한 마이크로 프로세서(412)를 포함한다. 일부 또는 모든 메모리(410)는 데이터 손실 가능성을 더 줄이기 위해 비휘발성일 수 있다. 프로세서(412)는 어레이의 동작을 제어하는 제어 프로그램(413)을 실행하는데, 구체적으로 본 명세서에서 기술하는 방법에 따라 한 포맷으로부터 다른 포맷으로의 저장 소자 세트 변환을 제어하는 제어 프로그램(413)을 실행한다. 메모리(412) 내에 존재하는 제어 프로그램(413)이 도시되어 있는데, 이와는 달리 읽기 전용 메모리(read-only memory: ROM) 칩과 같은 별개의 제어 저장 메모리 내에 제어프로그램(413)이 존재할 수 있음을 이해할 것이다. 제어 프로그램이 마그네틱 플로피 디스크, 마그네틱 테이프, 광학적 디스크 등과 같은 선택 사양적인 별개의 주변 장치로부터 메모리(412)에 로딩(loading)될 수 있고, 또한 호스트 시스템(404)으로부터 다운로딩(downloading)될 수도 있다. 제어기(403)는 호스트 시스템(404)에서 커맨드(command)와 정보를 수신하는 것이 바람직하다. 호스트 시스템(404)은 프로그래밍된 범용의 디지탈 컴퓨터를 포함하면서 통상적인 RAID 시스템에 접속될 수 있는 임의의 장치일 수 있다. 커맨드는 제어기로 하여금 DASD 어레이 내에 커맨드와 함께 수신된 정보를 저장하게 한다. 또한, 커맨드는 정보가 중복되지 않는 포맷 또는 RAID-1, RAID-4 또는 RAID-5 포맷에 따라 저장되는지의 여부를 나타낼 수도 있다. 이와는 달리, 제어기(403)는 수신된 정보가 중복되지 않고 저장되는지 또는 RAID-1, RAID-4, 또는 RAID-5에 따라 저장되는지를 호스트 프로세서로부터의 감시를 받지 않으면서 결정한다.
제어기(403)를 단일 버스에 의해 DASD 어레이에 접속할 수 있다. 그러나, 바람직한 실시예에서는 데이터를 한 번에 하나 이상의 DASD로 전송되게 하는 접속이 제공된다. 본 발명의 선택 사양적인 실시예에 따라 테이프 어레이(tape array)와 같은 선택 사양적 주변 장치(405)가 제어기(403)에 접속될 수도 있다. 테이프 어레이는 제어기로 하여금 어레이의 DASD 내에 있는 공간을 비우기 위하여 자주 사용되지 않는 정보를 DASD 어레이 외부로 이동하게 한다. 선택 사양적으로, 'Method and apparatus for operating an array of storage devices)'란 명칭으로 92년 6월 5일 출원되고 공동 양도되어 동시 출원 중이며 본 명세서에서 참조로서 인용되는 데이비드 에이. 스티친스키(David A. Styczinski)의 미국 출원 제 07/879,621호에 기술된 바와 같이, 주변 장치(405)는 데이터가 기록되도록 임시 캐쉬로서 사용되는 DASD일 수 있다.
본 발명의 바람직한 실시예에서 RAID-4 또는 RAID-5 포맷이 사용되지만 둘 다 사용되지는 않는다. 그러나, 대안적인 실시예에서 제어기(403)는 RAID-1, RAID-4, 또는 RAID-5에 따라 정보를 저장할 수 있다. 당업자라면 제어기(403)가어레이의 어느 부분이 어느 구성으로 되어 있는지를 알고 있어야 한다는 것을 이해할 것이다. 예를 들어, 어레이의 일부분은 RAID-1에 따른 정보를 저장하는 데 할당되고, 어레이의 일부분은 RAID-5에 따른 정보를 저장하는 데 할당되는 경우에, 제어기(405)는 어떤 부분이 어떤 포맷으로 할당되는 지를 알고 있어야 한다.
메모리(410) 내의 데이터 디렉토리(411)는 어레이의 상이한 부분들이 사용되는 방법을 기록한다. 데이터 디렉토리(411)는 어레이 내에 있는 블럭의 현재 상태, 즉 각 블럭이 DATA, COPY, PARITY, EMPTY, 또는 FREE 블럭인 지 여부와 각 띠에 대한 데이터의 중복 형태(대칭적, 패리티를 갖는, 또는 중복되지 않는)를 저장한다. 데이터 디렉토리(411)는 어레이의 여러 부분을 사용하는 지를 결정하기 위해 요구되는 정보 이외에도 기타 추가 정보를 저장할 수 있다. 전력 차단이나 부품 손실이 있는 경우에 복구할 수 있도록 데이터 디렉토리(411)의 중복되는 복사본(도시되지 않음)이 임의의 장소에 (예를 들어, DASD 중 한 DASD의 지정된 위치에 또는 별개의 주변 장치(406)에) 존재해야 하고/하거나 데이터 디렉토리(411)가 RAM(410)의 비휘발성 영역 내에 저장되는 것이 바람직하다.
바람직한 실시예에 따라, 도 5a, 도 5b, 도 5c에는 전술한 목적을 위해 사용되는 데이터 디렉토리(411) 내의 세 가지 데이터 구조가 도시되어 있다. 도 5a는 띠 상태 표를 도시하고, 도 5b는 블럭 상태 표를 도시하며, 도 5c는 호스트 주소 매핑 표를 도시한다. 띠 상태 표(501)는 다수의 엔트리를 포함하는데, 각 엔트리는 띠 주소 필드(502)와 띠 상태 필드(503)를 포함한다. 띠 주소 필드(502)는 저장 소자에 띠의 블럭들의 시작 주소를 저장한다. 바람직한 실시예에서, 모든 블럭은 동일한 크기이고, 띠의 모든 블럭은 각 저장 소자 내에서 동일한 주소에 있으므로, 하나의 시작 주소만 식별하면 띠를 식별할 수 있다. 띠 상태 필드(503)는 띠의 현재 상태를 포함하는데, 가능한 상태는 도 6을 참조하여 상세하게 후술된다.
블럭 상태 표(521)는 각 블럭마다 한 엔트리씩 다수의 엔트리를 포함한다. 블럭 상태 표(521)에서 각 엔트리는 띠 식별 필드(523), 소자 ID 필드(524), 상태 필드(525), 버전(version) 번호 필드(526), 짝 소자 필드(527)를 포함한다. 띠 ID 필드(523)는 블럭이 포함되는 띠를 식별하는데, 띠 ID 필드(523)는 예를 들어 띠 상태 표(501)에서 대응되는 엔트리에 대한 포인터(pointer)일 수 있다. 소자 ID 필드(524)는 블럭을 갖는 DASD의 식별자를 포함한다. 각 띠가 임의의 한 DASD로부터 오직 한 블럭만을 포함하므로 띠와 DASD를 특정하는 것만으로 임의의 블럭을 특정할 수 있다. 상태 필드(525)는 블럭의 사용 상태(DATA, COPY, PARITY, FREE, 또는 EMPTY)를 기록한다. 버전 번호 필드(526)는 버전 번호를 기록한다. 버전 번호는 각 데이터가 갱신될 때마다 증가하며, 중복되는 블럭이 동기화되는지를 결정하는 데 사용된다. 짝 소자 필드(527)는 대칭적 저장 블럭에 대한 짝 블럭(paired block) 또는 패리티를 갖는 데이터 블럭에 대한 패리티 블럭을 식별한다. 짝 소자 필드는 예를 들어 짝/패리티 블럭에 대응되는 블럭 상태 매핑 표 엔트리에 대한 포인터일 수 있고, 또는 소자 식별자일 수 있다.
호스트 주소 매핑 표(541)는 호스트 주소를 블럭에 매핑한다. 바람직한 실시예에서 호스트 컴퓨터 시스템은 저장 서브시스템을 하나의 커다란 주소 범위로 본다. 특정 주소에 판독 또는 기록하기 위한 호스트로부터의 커맨드는 저장 소자내에 있는 저장 소자 ID와 주소를 지칭하기 위해 번역되는데, 이는 호스트 주소 매핑 표(541)에 따라 수행된다. 매핑 표(541)는 호스트 시스템이 지적하는 각 블럭마다 한 엔트리씩 다수의 엔트리를 포함한다. 각 엔트리는 호스트 시스템 주소 필드(542)와 블럭 식별자 필드(543)를 포함하는데, 블럭 식별자 필드는 블럭을 식별하는 블럭 표(521) 내의 엔트리에 대한 포인터를 포함한다.
전술한 데이터 구조는 단지 일 실시예를 설명하기 위한 것으로 데이터 구조를 다양하게 변경할 수 있음을 이해할 것이다. 예를 들어, RAID 제어기(403) 내의 호스트 주소 매핑 표를 사용하지 않고 호스트 컴퓨터 시스템이 블럭의 물리적 위치를 추적할 수도 있을 것이다. 데이터 구조는 하나의 커다란 표, 링크된 리스트들 또는 다른 다양한 형태로 구현될 수 있다. 또한, 구현되는 정확한 형태에 따라 일부 필드는 불필요할 수도 있고 일부는 추가로 필요할 수도 있다. 또한 전술한 데이터 구조가 RAID 제어기(403)에 의해 필연적으로 사용되어야 하는 유일한 데이터 구조가 아니라는 것을 이해할 것이다. 예를 들어, 제어기(403)는 할당하여 사용할 수 있는 빈 공간의 목록을 저장 소자에 갖는 것이 바람직할 것인데, 이 자유 공간 목록은 FREE 또는 EMPTY 상태인 블럭뿐만 아니라 DATA 블럭의 아직 할당되지 않은 부분을 포함할 수 있다.
정상적인 동작에서, 제어기(403)는 호스트 컴퓨터 시스템(404)으로부터 수신된 (데이터 판독 또는 기록) 데이터 접근 커맨드에 응답한다. 호스트(404)로부터의 데이터 접근 커맨드는 판독될 블럭 (또는 섹터와 같은 블럭의 일부분)의 주소를 포함할 것이다. 호스트 주소 매핑 표(541) 내의 엔트리에 접근하는 데 호스트로부의 주소가 사용된다. 블럭 식별자 필드(543)는 블럭 표(521) 내의 엔트리 중 요구된 블럭에 대응하는 엔트리를 가리킨다. 제어기가 이 엔트리에 접근하여 필드(524)로부터의 저장 소자 식별자와 필드(523)로부터의 띠 식별자를 얻는다. 이들은 판독될 블럭을 식별한다. 그 다음 제어기(403)는 적절한 저장 소자에 판독 커맨드를 생성하여, 그 저장 소자 내에 있는 요구된 데이터 주소를 넘겨 준다.
① 제어기(403)가 현재 블럭 사용을 확인해야 하고 ② 기록 동작이 띠 상태를 변화시킬 수 있기 때문에 기록 동작은 더 복잡하다. 도 6은 기록 동작을 수행하기 위해 RAID 제어기(403)가 수행하는 단계들의 흐름도이다. 호스트(404)로부터의 기록 커맨드에 응답하여 제어기(403)는 표(501, 521, 541)를 참고로 판독 동작에 관해 전술한 바와 같이 요구된 블럭의 주소와 저장 소자 ID를 결정한다(단계 601). 또한, 제어기는 표(501)의 띠 상태 필드(503)로부터 띠의 현재 상태를 결정한다(단계 602).
가능한 상태와 상태 천이를 도 7을 참조하여 보다 상세하게 후술한다. 띠의 현재 상태에 따라 세 가지 가능한 브랜치 중 하나가 선택된다. 현재 상태가 임의의 보호되지 않은 상태(번호 5, 6, 7)인 경우에, 제어기(403)는 적절한 저장 소자로 기록 커맨드를 보내어, 저장 소자 내에 데이터가 기록될 주소를 넘겨 준다(단계 605).
현재 상태가 대칭적 상태(번호 1, 2)중의 하나인 경우에, 제어기(403)는 먼저 대칭적 데이터를 포함하는 적절한 저장 소자로 기록 커맨드를 보낸다(단계 610). 그 다음에 제어기(403)는 대칭적 데이터를 포함하는 블럭에 대한 버전 번호필드를 증가시킨다(단계 611). 그 다음에 제어기(403)는 짝 소자 필드(527)로부터 대칭적 데이터의 복사본을 포함하는 소자의 소자 ID를 탐색하고, 그 복사본을 포함하는 저장 소자로 기록 커맨드를 발송한다(단계 612). 완료되면 복사본을 포함하는 블럭에 대한 버전 번호 필드(526)가 증가하여 본래의 데이터를 포함하는 블럭의 버전 번호와 같아진다(단계 613).
현재 상태가 패리티를 갖는 상태(번호 3, 4) 중의 하나인 경우에, 제어기(403)는 먼저 데이터를 포함하는 저장 소자로부터 데이터를 판독하고(단계 620), 이 데이터와 기록될 신규 데이터를 배타적 OR 연산하여 임시 변경 마스크를 생성하며(단계 621), 신규 데이터를 저장 소자에 기록하고, 버전 번호 필드를 증가시킨다(단계 622). 제어기(403)는 그 다음에 짝 소자 필드(527)로부터 패리티를 포함한 소자의 식별자를 얻고, 패리티 소자로부터의 기존 패리티 블럭을 판독하며(단계 625), 이 기존 패리티 데이터와 변경 마스크를 배타적 OR 연산하여 신규 패리티 데이터를 생성하고(단계 626), 패리티 블럭에 신규 데이터를 기록하며(단계 627), 패리티 블럭의 버전 번호 필드를 증가시킨다.
제어기(403)는 그 다음에 블럭의 상태가 변화하였는 지 여부를 결정한다. 즉, FREE 또는 EMPTY인 상태를 갖는 블럭에 데이터가 기록되는 경우에 상태는 DATA로 변화되어야 한다(단계 630). 블럭의 상태가 변화하였으면, 또한 띠의 상태도 변화했을 수도 있다. 그러므로, 제어기는 띠의 상태가 변화했는 지 여부를 결정하고, 이 변화를 반영하도록 상태 필드(503)를 갱신한다(단계 631). 이러한 것을 촉발시킬수 있는 가능한 변화와 경우를 도 7을 참조하여 후술한다.
판독 및 기록 동작에 대한 도 6 및 전술한 설명은 이해를 돕기 위해 단순화한 것으로서 본 발명을 이해하는 데 중요하지 않은 동작이 판독 및 기록과 함께 추가되어 수행될 수 있다는 것을 이해할 것이다. 특히, 제어기(403)는 성능을 개선하기 위한 상주 캐쉬 메모리를 가질 수 있고, 이런 경우 저장 소자를 판독하거나 저장 소자에 기록하기 전에 캐쉬의 내용이 통상적으로 점검될 수 있다. 이와는 달리, 제어기(403)는 기록 동작을 일시적으로 저장하기 위한 외부 기록(logging) 소자를 채용할 수 있다.
바람직한 실시예에 따른 제어기(403)는 수신된 정보를 RAID-1, RAID-4, 또는 RAID-5 포맷으로 저장할 수 있는 것은 물론이고, 이미 하나의 RAID 포맷으로 정보가 저장되어 있는 어레이의 소정 부분들이 또다른 RAID 포맷으로 재할당될 수 있도록 어레이를 재할당할 수 있다. 예를 들어, RAID-1에 따라 정보를 저장하도록 할당된 어레이의 일부분을 RAID-5에 따라 정보를 저장하도록 재할당할 수 있다. 그러면 어레이의 상기 부분에 저장되어 있는 정보가 RAID-5에 따라 다시 포맷될 것이다.
하나의 RAID 포맷에서 또다른 RAID 포맷으로 어레이의 일부분을 변환하는 것을 지원하기 위해, (표 501에 저장되어 있는) 한 상태는 각 띠와 연관되고, 사전 규정된 규정에 응답하여 규정된 상태 변화 세트가 허용된다. 일반적으로, 상태 변화를 일으키는 경우는 소정의 데이터 기록 동작과, 공간을 비우라는 소정의 요구(즉, 현존하는 블럭 내에 있는 데이터의 소거)와, 띠의 RAID 포맷을 변화시키기 위한 요구들이다. 도 7은 이용 가능한 상태와 가능한 상태 변화를 도시하는 상태 다이어그램이다.
7 가지 상태가 후술한 바와 같이 규정된다.
1. NEW MIRROR: 이 상태는 띠에 기록되는 데이터가 띠에 기록되는 대칭적 복사본도 가질 것이라는 것을 의미한다. 그러나, 이 띠 내의 적어도 한 블럭은 EMPTY이다.
2. FULL MIRROR: 이 상태는 띠 내의 모든 데이터가 대칭적이고 이 띠에 대한 EMPTY 블럭이 존재하지 않는다는 것을 의미한다.
3. PARITY X: 이 상태는 데이터가 패리티를 갖지만(예를 들어, RAID-4 또는 RAID-5), 모든 DATA 공간의 복사본을 보유하기에 충분한 FREE 및 PARITY 블럭이 있다는 것을 의미한다.
4. FULL PARITY: 이 상태는 데이터가 패리티를 갖고, 모든 DATA 블럭의 복사본을 보유하기에는 충분하기 않은 FREE 및 PARITY 블럭이 있다는 것을 의미한다.
5. UNPROTECTED X: 이 상태는 데이터가 보호되지 않지만 모든 DATA 블럭의 복사본을 위한 충분한 EMPTY 블럭이 있다는 것을 의미한다.
6. UNPROTECTED: 이 상태는 데이터가 보호되지 않으면서, 모든 DATA 블럭의 복사본을 위한 EMPTY 블럭이 충분하지 않지만, 패리티 블럭을 위한 EMPTY 블럭이 있다는 것을 의미한다.
7. FULL UNPROTECTED: 이 상태는 데이터가 보호되지 않으면서, EMPTY 블럭이 존재하지 않음을 의미한다.
도 7에 도시한 바와 같이 다음과 같은 상태 천이가 가능하다.
1a 데이터가 기록되지만 띠 내에 여전히 적어도 한 EMPTY 블럭이 있는 경우에 이 천이가 발생한다.
1b 기록 동작의 결과 이 띠 내에 더 이상 EMPTY 블럭이 없는 경우에 (즉, 마지막 EMPTY 블럭에 데이터가 기록되어, 마지막 EMPTY 블럭이 현재 DATA 블럭이 되는 경우에) 이 천이가 발생한다. 이러한 변화는 또한 도 8과 관련하여 보다 상세하게 후술하는 바와 같이 (상태 1에서 상태 2, 이어서 상태 2에서 상태 3으로의) 2 단계 천이의 일부로서 띠 포맷을 패리티를 갖는 포맷으로 변화시키는 커맨드에 대해서도 발생할 수 있으며, 이 경우에 EMPTY 블럭은 복사본과 짝을 이루고, EMPTY 블럭의 상태는 FREE로 변화한다.
1c 오직 띠 포맷을 예를 들어 데이터를 저장하기 위한 공간을 더 생성하도록 변화하라는 커맨드에 대하여 이 천이가 발생한다. 이 천이에서 COPY 상태를 갖는 띠의 모든 블럭이 EMPTY 상태로 변화한다.
2a 데이터가 한 쌍의 FREE 블럭에 기록되는 경우에 (DATA 및 COPY로 상태를 변화시키면서) 이 천이가 발생한다. 이 천이는 또한 블럭 내의 공간을 비우게 하는 커맨드에 대해서도 발생한다. 후자의 경우에 블럭의 두 복사본이 (사용자가 사용할 수 있음을 나타내는) FREE로 지정되지만 대칭은 유지된다.
2b 띠 포맷을 변화시키기 위한 커맨드에 대해서만 이 천이가 발생한다. 이 상태 변화에 대한 공정은 도 8을 참조하여 더 상세하게 후술한다.
2c 띠 포맷을 변화시키기 위한 커맨드에 대해서만 이 천이가 발생한다. 이 천이에서 모든 COPY 블럭은 EMPTY 상태로 변화된다.
3a 데이터가 FREE 블럭에 기록되는 경우에 이 천이가 발생하고 (3b 이하에서 기술되는 것을 제외하고) DATA로 상태를 변화시킨다. 이 천이는 또한 블럭의 상태가 FREE로 변화되면서 DATA 블럭 내의 공간을 비우기 위한 커맨드에 대하여 발생한다.
3b 이 천이는 FREE 블럭에 데이터가 기록되는 경우에 발생하여, 상태는 DATA로 변화되고, 그 결과에 따라 남아 있는 FREE 및 PARITY 블럭이 더 이상 띠 내의 모든 DATA 블럭을 복사하기에 충분하지 않게 된다.
3c 이 천이는 띠 포맷을 변화시키기 위한 커맨드에 대하여만 발생한다. 이 상태 변화에 대한 과정은 도 11을 참조하여 보다 상세하게 후술된다.
3d 이 천이는 띠 포맷을 변화시키기 위한 커맨드에 대하여만 발생한다. 이 상태 변화에 대한 과정은 도 11을 참조하여 보다 상세하게 후술된다.
3e 이 천이는 띠 포맷을 변화시키기 위한 커맨드에 대하여만 발생한다. 모든 PARITY 및 FREE 블럭은 EMPTY로 변화되어, 추가 데이터를 저장할 수 있게 한다.
4a 이 천이는 FREE 블럭에 데이터가 기록되거나, DATA 블럭 내의 공간을 비우게 하는 커맨드가 블럭으로 하여금 FREE로 변화하게 하는 경우에 발생하지만, (대칭적 상태로의 천이를 가능하게 하면서) 띠 내의 FREE 및 PARITY 블럭이 모든 DATA 블럭의 복사본을 보유할 만큼 충분하지 않다.
4b 이 천이는 DATA 블럭이 FREE로 변화된 후에 발생하고, 이에 따라 모든 DATA 블럭의 복사본을 보유할 만큼 충분한 FREE 및 PARITY 블럭이 있게 된다.
4c 이 천이는 띠 포맷을 변화기키기 위한 커맨드에 대하여만 발생한다. 모든 PARITY 및 FREE 블럭은 EMPTY로 변화된다.
5a 이 천이는 EMPTY 블럭에 데이터가 기록되는 경우에 발생하여, EMPTY 블럭의 상태를 DATA로 변화시키거나 DATA블럭 내에 공간을 비우게 하는 커맨드가 블럭으로 하여금 DATA에서 EMPTY로 변화하게 하는 경우에 발생하며, 이 두 경우의 변화가 발생한 후 (대칭적 상태로 천이가 가능하게 되면서) 모든 DATA 블럭의 복사본을 보유하기에 충분한 EMPTY 블럭이 있게 된다.
5b 이 천이는 상세하게 후술하는 바와 같이 띠 포맷을 변화시키기 위한 커맨드에 대하여만 발생한다.
5c 이 천이는 상세하게 후술하는 바와 같이 띠 포맷을 변화시키기 위한 커맨드에 대하여만 발생한다.
5d 이 천이는 EMPTY 블럭에 데이터가 기록되는 경우에 발생하여 EMPTY 블럭의 상태를 DATA로 변화시키고, 이 변화에 따라 띠 내의 EMPTY블럭이 더 이상 모든 DATA 공간의 복사본을 보유하기에 충분하지 않게 된다.
5e 이 천이는 상세하게 후술하는 바와 같이 띠 포맷을 변화시키기 위한 커맨드에 대하여만 발생한다.
6a 이 천이는 EMPTY 블럭에 데이터가 기록되는 경우에 발생하여 EMPTY 블럭의 상태를 DATA로 변화시키거나, 또는 DATA 블럭 내의 공간을 비우는 커맨드가 블럭이 DATA에서 EMPTY로 변하도록 하는 경우에 발생하며, 이들 변화가 발생한 후 패리티용 EMPTY 블럭은 존재하지만 모든 DATA 블럭의 복사본을 보유하기에 충분한 EMPTY 블럭은 없다.
6b 이 천이는 DATA 블럭 내의 공간을 비우는 커맨드가 블럭으로 하여금 DATA에서 EMPTY로 변화하도록 하는 경우에 발생하고, 그 결과에 따라 모든 DATA 블럭을 보유하기에 충분한 EMPTY 블럭이 있게 된다.
6c 이 천이는 상세하게 후술하는 바와 같이 오직 띠 포맷을 변화시키기 위한 커맨드에 대하여만 발생한다.
6d 이 천이는 마지막 EMPTY 블럭에 데이터가 기록되는 경우에 마지막 EMPTY 블럭의 상태를 DATA로 변화시키면서 발생하고, 그에 따라 더 이상 EMPTY 블럭이 존재하지 않게 된다.
7a 이 천이는 DATA 블럭 내에 공간을 비우는 커맨드가 블럭을 DATA에서 EMPTY로 변화시키는 경우에 발생한다.
전술한 바와 같이, 소정의 천이는 띠를 변화시키는 '커맨드에 대하여' 발생한다. 바람직하게는 제어기(403)가 호스트(404)의 커맨드에 따라 띠를 구성한다. 호스트는 개개의 띠의 구성을 기록하지는 않지만 단지 대칭적 구성 내에 소정의 저장 용량이 존재하고, 패리티를 갖는 구성 내에 소정의 저장 용량이 존재하며, 보호되지 않는 (즉, 중복되지 않는) 구성 내에 소정의 저장 용량이 존재한다는 것은 알고 있다. 제어기(403)는 호스트(404)로부터의 초기 구성 커맨드에 응답하여 각각의 구성에 대해 적절한 수의 띠를 할당한다. 그 다음에 호스트(404)가 신규 데이터를 기록할 때마다, 데이터가 대칭적인 지, 패리티를 갖는 지, 또는 갖지 않는 지 여부를 결정한다. 제어기(403)는 이러한 결정을 기반으로 적절한 띠와 블럭을 선택한다. 호스트(404)는 다른 구성이 더 많은 공간을 요구한 것을 안 경우에 더 많은 공간을 비우는 등 구성을 변화시킬 수 있다. 이 경우에 호스트(404)는 약간의 저장 용량(띠의 개수)이 재구성될 것을 요구하면서 구성 커맨드를 제어기(403)에 보낸다. 제어기는 띠의 현재 상태를 기반으로 재구성을 위해 적절한 띠를 선택한다. 바람직하게 제어기(403)는 자체 내부에 최소한의 데이터 양을 갖는 띠를 선택한다. 예를 들어, 보호되지 않는 상태로부터 패리티를 갖는 상태로 띠를 변화시키기 위한 커맨드가 호스트(404)로부터 수신되는 경우에는 천이 5c가 천이 6c보다는 더 바람직하고, 동일한 상태에 있는 다수의 띠 중에서는 가장 많은 수의 EMPTY 블럭을 갖는 띠가 바람직하며, 동일한 수의 EMPTY 블럭을 갖는 띠 중에서는 (블럭의 소정 부분들이 할당될 수 있는 것을 가정하면) 부분적으로 채워진 DATA 블럭 내에 사용되지 않은 공간이 가장 많은 띠가 바람직하다.
이와는 달리, 호스트(404)가 블럭을 소자와 주소에 매핑할 수 있고, (사용자 입력이 있든 없든) 호스트(404)가 어느 띠가 어떤 방식으로 구성되는 지를 결정할 수도 있다는 것을 이해해야 한다. 이 경우에 제어기(403)는 띠의 구성을 변화시키라는 호스트의 커맨드에 응답할 것이다. 또 이와는 달리, 제어기(403)는 몇 개의 사전 결정된 알고리즘 또는 조건에 따라 구성을 변화시키는 것을 독자적으로 결정할 수도 있다. 또 다르게는, 사용자가 구성 변화를 직접 제어기(403)에 입력할 수 있다. 구성을 변화시키기 위한 '커맨드에 대하여' 소정 천이가 발생한다는 기술은 구성의 변화를 호스트가 개시하는 것들로 제한하지 않고, 제어기 자체, 사용자, 또는 그 밖의 다른 방법에 의해 생성되는 '커맨드'를 포함할 수 있다.
도 8은 RAID-1 구조로 현재 포맷된 어레이의 일부분을 바람직한 실시예에 따라 RAID-4(5) 구조로 변환하기 위해 수행되는 단계들의 흐름도이다. 다시 말해서, 띠의 상태가 상태 2에서 상태 3으로 (또는 2 단계로 상태 1에서 상태 2로, 상태 2에서 상태 3으로) 변화한다. 이 실시예에서, 어레이는 짝수 개의 저장 소자를 포함하고 띠는 각 저장 소자당 한 블럭을 포함하되, 띠의 각 블럭은 각각의 저장 소자의 동일한 주소에 위치한다. 도 9는 도 8의 방법을 실행하는 어레이(900)를 도시하고 있다. RAID-1에 따라 포맷된 정보가 통상적으로 띠 내에 저장되지 않는다는 것을 주목해야 한다. 즉, RAID-1에 따라 구성된 정보는 단지 정보의 복사본이 어레이 내의 어딘가에 있는 또다른 저장 소자 내에 상주할 것을 요구할 뿐이다. 이와는 대조적으로, 본 발명에 따른 RAID-1 메모리 구조 내의 데이터 블럭은 '띠'를 형성하는 것으로 지정되는데, 이 띠는 이 띠가 변환될 수 있는 RAID-4 또는 RAID-5 띠와 동일한 규모(dimension)를 갖는다. 띠 내의 데이터 블럭은, 그 자체에 저장되는 제 1 데이터 블럭에 대하여 각 DASD 내에 동일한 주소로 저장되는 것처럼, 관련된 주소에 있는 상이한 DASD 내에 저장되는 것이 바람직하다는 것을 주목해야 한다. 그러나, 본 발명의 또다른 실시예에서, 띠 내의 각 데이터 블럭은 다른 데이터 블럭의 주소와 무관한 주소에 저장될 수 있다. 간략하게 표기하기 위해 띠가 RAID-4 또는 RAID-5 띠일 수 있는 경우에 그 띠를 'RAID-4(5)' 띠로 표기할 것이다. 도 10은 도 9에 도시한 RAID-1 띠로 구성된 띠(901)를 RAID-4(5) 띠(1001)로 변환한 후의 어레이(900)를 도시하고 있다. 본 발명은 다음과 같은 장점을 갖는다. 동일한 두 데이터 블럭을 XOR 연산하면 모두 0인 블럭이 생성된다.
도 9 및 도 10의 예에서 RAID-1 띠가 세 쌍의 블럭을 포함하되, 각 쌍이 하나의 데이터 블럭과 그 데이터 블럭의 복사본을 포함하므로, 다섯 개의 임의의 데이터 블럭 사이에 XOR 연산을 하면 제 6 블럭과 동일한 블럭이 생성된다. 즉
이고, 여기서 A'는 A의 복사본이고, B'는 B의 복사본이며, C'는 C의 복사본이다.
어떤 다섯 블럭을 XOR 연산하든지 간에 다섯 블럭 중 두 블럭이 다섯 블럭 중 나머지 두 블럭의 복사본인 한 이러한 관계가 성립될 것이다. 그러므로, 도 10에 도시한 바와 같이, 단지 RAID-1 띠의 한 블럭(913)을 COPY에서 PARITY로 그 지정을 변경하고, 나머지 다른 COPY 블럭(905, 909) 각각을 FREE로 그 지정을 변경함으로써, RAID-1 띠가 RAID-4(5) 띠로 변환된다. PARITY 블럭으로 지정될 특정 블럭을 선택하면 띠가 RAID-4 또는 RAID-5 띠로 구성될 지 여부가 결정될 것이라는 것을 알 수 있다. RAID-4 시스템과 RAID-5 시스템을 구별하는 것은 각 띠 내에서 PARITY 블럭의 상대적인 위치이므로 단일 RAID-4 또는 RAID-5 띠 상태가 독자적으로는 구별되지 않는다는 것이 명백할 것이다.
도 8에 도시한 바와 같이, 변환의 제 1 단계는 변환될 블럭 세트를 식별하는 것이다(단계 801). 바람직한 실시예에서, 각 띠를 개별적으로 독립적으로 RAID-1구성에서 RAID-4(5) 구성으로 또는 그 반대로 변환할 수 있다. 각 띠는 각 DASD 상의 소정 주소 범위에 위치하는 모든 블럭을 포함하는 것이 바람직하므로, 단지 주소 범위를 지정하거나 블럭 중 한 블럭을 지정하기만 하면 띠는 선택된다. 그러나, 이와는 달리 변환될 띠를 식별하는 단계가 다른 것과 관련될 수 있다. 예를 들어, 띠가 상호 간의 어떠한 관련성 없이 여러많은 다른 주소에 있는 블럭을 포함하는 경우에, 띠를 식별하는 것은 개개의 RAID-1 블럭 쌍을 선택하는 것과 관련될 것이다. 이와는 달리, 저장 소자 어레이가 단지 사전 규정된 띠 그룹(예를 들어, 많은 블럭을 포함하는 단일의 큰 주소 범위)만을 선택할 수 있도록 설계될 수 있거나, 또는 전체 어레이에 대해서만 변환이 수행될 수 있도록 설계될 수도 있다. 식별은 사용자가 수동으로 수행할 수도 있고, (예를 들어 최근에 사용된 띠를 최소 확률로 선택하는) 몇 가지 알고리즘에 따라 소프트웨어에 의해 행해질 수도 있다. 변환 알고리즘은 진행 중인 모든 기록이 종료되었다고 가정하는데, 다시 말해서 각 DATA와 그것의 각 COPY 블럭이 동일한 데이터를 갖는다고 가정한다. 이는 버전 수준을 점검함으로써 확인할 수 있다. 기록 동작이 종료되지 않은 경우에 (버전 수준이 일치하지 않은 경우에) 기록 동작은 더 진행되지 않고 종료된다.
바람직한 실시예에 따라, 상태 1 (NEW MIRROR) 및 상태 2 (FULL MIRROR)로 식별되는 두 개의 대칭적 상태가 있다. 패리티를 갖는 상태 (상태 3, PARITY X)로의 상태 천이는 오직 상태 2로부터만 허용된다. 그러므로, 띠가 상태 1에 있는 경우에, 단계 802에서 브랜치로 도시한 바와 같이 궁극적으로 PARITY X 상태로 천이하기 위해 먼저 상태 2로 옮겨져야 한다(천이 1b). NEW MIRROR 상태의 띠를 FULLMIRROR로 옮기기 위해 EMPTY 블럭이 대칭적이어야 하는데, 다시 말해서 EMPTY 블럭에 저장된 것은 다른 EMPTY 블럭에 저장된 것과 대칭되어야 한다. EMPTY 블럭이 모두 0을 포함하고 있다는 것이 미리 알려진 경우에는 이미 이 조건을 충족한다. 그렇지 않으면, 이를 충족시키는 가장 손쉬운 방법은 전형적으로 EMPTY 블럭을 0으로 하는 것이다(이와는 달리, EMPTY 블럭들이 서로 그리고 생성된 데이터의 복사본과 쌍이 될 수 있다)(단계 803). 그 다음에 EMPTY 블럭의 상태가 FREE로 변화되고, 띠의 상태가 FULL MIRROR로 변화된다(단계 804).
그 다음에, 상태 2(FULL MIRROR)에 있는 띠에서, 신규 RAID-4(5) 띠와 관련된 패리티 블럭을 저장하기 위해 하나의 DASD가 선택된다(단계 806). 도 9 및 도 10에서 블럭(913)이 예시를 위해 선택되어 도시되어 있는데, 다른 블럭이 선택될 수 있음을 이해할 것이다. 바람직한 실시예에서, 제어기(403)는 패리티 블럭에 대한 사전 규정된 매핑 알고리즘에 따라 자동적으로 패리티 블럭을 선택한다. 다시 말해 바람직한 실시예에서, 패리티가 RAID-5에 따라 구성되고, 패리티 소자의 개수가 ((N-1)*S MOD N) + 1 과 같은 단순 라운드 로빈(round-robin) 공식에 의해 결정되는데, 여기서 S는 띠 개수이고, N은 어레이 내의 저장 소자 개수이다. 그러나, 이와 달리 패리티 블럭의 적절한 선택은 사용자 또는 호스트가 수행할 수도 있고 다른 표준에 의해 내포될 수도 있음을 이해할 것이다. 예를 들어, RAID-4가 지정되는 경우에 패리티를 포함할 DASD가 이미 알려질 수 있고, 그에 따라 띠를 식별함으로써 패리티를 포함하는 블럭이 알려진다. 또한 패리티 블럭이 먼저 선택되고, 패리티 블럭을 선택함으로써 적절한 띠를 내포할 수도 있다. 그러므로, 단계 801-806를 상이한 순서로 수행할 수 있거나, 또한 소정 단계를 동시에 수행할 수 있다.
패리티 데이터를 저장하기 위해 선택된 블럭(913)이 PARITY 블럭(단계 807)으로 지정된다(단계 807). '지정'함으로써, 시스템 내에는 이것이 패리티 블럭이라는 일종의 기록이 남겨진다는 것을 이해할 것이며, 이에 따라 앞으로는 시스템이 그와 같이 인식하고 취급할 것이다. 바람직한 실시예에서 블럭 표(521)의 블럭 상태 필드(525)내에 있는 블럭 상태는 선택된 블럭이 패리티 블럭임을 반영하도록 갱신되는데, 다시 말해서 표(521) 내에 있는 블럭의 상태가 PARITY로 변화된다.
PARITY 블럭(913)으로 지정되어 있는 블럭이 이전에 DATA 블럭이었다면(단계 808), 그 DATA 블럭과 관련되는 COPY 블럭은 DATA 블럭으로 지정된다(단계 809). 그 다음에 각각의 남아 있는 COPY 블럭이 FREE 블럭으로 지정된다(단계 810). 결국, 띠의 지정이 FULL MIRROR(상태 2)에서 PARITY X(상태 3)로 변화된다(단계 812). 전술한 바와 같이, 바람직한 실시예에서 '지정'이란 블럭 표(521) 내의 블럭 상태와 띠 상태 표(501) 내의 띠 상태를 변화시키는 것을 의미하는데, 이러한 정보는 다른 형태로 표시될 수 있음을 이해할 것이다.
수학식 2로부터 PARITY 블럭(913) 내에 저장된 정보가 띠(1001) 내의 나머지 다른 블럭(903-911) 각각에 대한 논리적 배타적 OR 연산과 같을 것이라는 것을 알 수 있고, 그에 따라 연속적인 배타적 OR 연산에 의해 패리티를 계산할 필요가 없다. 또한 두 블럭(905, 909)이 FREE로 지정되므로 RAID-1에서 RAID-4(5)로의 변환 이후에 띠(1001) 내에 추가 정보가 저장될 수도 있다.
도 11은 패리티를 갖는 또는 중복되지 않는 띠(즉, '변환 띠')를 대칭적띠(RAID-1)로 변환하는 방법을 도시하는 흐름도이다. 띠를 완전 대칭 상태로 변환하기 위해 DATA 블럭 각각의 복사본을 저장하기 위한 충분한 공간을 변환 띠 내에서 사용할 수 있어야 한다. 구체적으로는, 도 7의 상태 다이어그램에 따라 상태 3 (PARITY X) 또는 상태 5 (UNPROTECTED X)에서 상태 2(FULL MIRROR)로 상태가 천이할 수 있다. 이들은 도 7에 도시한 천이 3d 및 5b이다. 도 10은 PARITY X 상태에 있고 FULL MIRROR 상태로 변환될 수 있는 변환 띠(1001)를 도시한다. 띠가 상태 4, 상태 6, 또는 상태 7에 있는 경우에 후술하는 바와 같이 띠가 먼저 상태 3 또는 상태 5로 옮겨진 후 완전한 대칭으로 될 수 있다. 따라서, 패리티를 갖는 또는 패리티를 갖지 않는 띠 내에 정보를 저장하는 경우에 제 1 DASD 내의 제 1 블럭을 채운 뒤에 제 2 DASD 내의 제 2 블럭에 정보를 저장하는 것이 바람직하다. 이런 방식으로 정보를 통합할 것이고, 필요한 공간을 사용하기 위해 별개의 동작으로 정보를 통합할 필요는 없을 것이다.
도 11에 도시된 바와 같이, 변환에서 제 1 단계는 변환될 블럭 세트, 즉 변환 띠를 식별하는 것이다(단계 1101). 전술한 바와 같이, 바람직한 실시예에서 각 띠는 개별적으로 독립적으로 한 구성에서 다른 구성으로 될 수 있다. 도 8을 참조하여 전술한 임의의 방법을 통해 띠를 식별할 수 있다.
그 다음에 시스템은 각 DATA 블럭에 대해 COPY 블럭을 생성하기 위하여 사용되지 않은 충분한 공간이 띠 내에 존재하는 지 여부를 확인한다. 구체적으로, 제어기(403)는 띠 상태 표(501)를 참고하여 띠 상태를 결정하고, 상태 3 또는 상태 5의 띠는 사용되지 않은 충분한 공간을 갖는다(단계 1102). 요구된 COPY블럭을 저장하기 위한 공간이 변환 띠 내에 충분하지 않은 경우(즉, 띠가 상태 4, 상태 6, 또는 상태 7에 있는 경우)에, 적어도 데이터 일부가 변환 띠에서 또다른 띠 또는 관련된 테이프 드라이브(405)와 같은 또다른 저장 서브시스템으로 재배치되어야 한다(도 4 참조). 이러한 과정은 도 11에 단계 1103-1106으로 도시되어 있다. 시스템은 먼저 DATA 블럭 내의 공간이 비어 있는 지를 결정한다(단계 1103). 예를 들어, 블럭 내의 데이터가 겹쳐 써지거나, 압축되거나, 다른 곳에 저장될 수 있는 지 여부를 사용자에게 요구함으로써 이를 수행할 수 있는 데, 이 경우에 사용자가 선택하게 될 것이다. 이와는 달리, 데이터가 재위치할 수 있는 사용 가능한 블럭에 대해 나머지 다른 띠를 주사하거나, 압축될 수 있는 데이터를 압축하거나, 테이프로 재배치할 블럭을 선택하는 일 등을 수행함으로써, 블럭들을 자동적으로 재위치하도록 제어기(403)를 프로그래밍할 수 있다. 제어기(403)는 어느 블럭을 압축하는지 및/또는 재배치시키는 지를 결정하기 위해 최소로 최근에 사용된 것(least recently used)과 같은 알고리즘을 사용할 수 있다. DATA 블럭 중 어느 한 블럭도 비워지지 않는 경우에 과정이 중단되고 변환 띠가 변환되지 않는다(단계 1106). 적합한 후보 블럭이 발견되는 경우에, 블럭 내의 데이터가 적절하게 재배치되거나, 압축되거나, 또는 무시되고, 블럭 그 자체가 추가 데이터를 저장하도록 비워진다(단계 1104). 제어기(403)는 상태 표(521) 내의 블럭 상태를 FREE(띠가 상태 4이면 FULL PARITY) 또는 EMPTY(띠가 상태 6 또는 상태 7이면 UNPROTECTED 또는 FULL UNPROTECTED)로 변화시키고, 띠 상태를 갱신한다(단계 1105). 블럭 상태의 변화는 띠 상태를 상태 3 또는 상태 5로 변화하도록 촉발할 수 있다. 그 다음에 알고리즘은 단계 1102를 반복한다.
띠가 이미 상태 3 또는 상태 5에 있거나 전술한 바와 같이 임의의 상태로 변환될 수 있으면(단계 1102로부터의 '예' 가지), 제어기(403)는 먼저 띠 내의 모든 DATA 블럭을 RAM(410)으로 판독한다(단계 1108). DATA 블럭이 RAM(410)으로 판독됨에 따라, DATA 블럭은 일부만 종료된 즉, DATA는 기록되었지만 COPY는 기록되지 않은 기록 동작처럼 대기된다. . 제어기(403)는 EMPTY, FREE, PARITY 블럭의 상태를 COPY로 변화시키고 짝 소자 필드(527) 내에 적절한 엔트리를 위치시킴으로써 블럭 표(521)를 갱신한다(단계 1109). 블럭들이 RAM과 매핑된 블럭 상태로 판독된 후에야, 띠의 상태가 FULL MIRROR로 변화된다(단계 1110). 그 다음 제어기(403)는 데이터를 RAM에서 COPY 블럭으로 기록함으로써 대기 동작을 완료한다(단계 1112). 이런 방식으로 패리티를 갖는 상태에서 대칭 상태로 변환된 띠는 DASD들 중 하나가 변환의 진행중에 고장나면 중복을 유지하게 된다.
도 12는 중복되지 않는 띠(즉, '변환 띠')를 패리티를 갖는 띠(RAID-4 또는 RAID-5)로 변환하는 방법을 도시하는 흐름도이다. 띠를 패리티를 갖는 상태로 변환하기 위해서는, 패리티를 저장하기 위해, 사용되지 않은 블럭이 변환 띠 내에 있어야 한다. 구체적으로는, 도 7의 상태 다이어그램에서 상태 5(UNPROTECTED X)에서 상태 3(PARITY X)으로 또는 상태 6(UNPROTECTED)에서 상태 4(FULL PARITY)로 상태가 천이할 수 있다. 이들은 도 7에 도시한 바와 같이 천이 5c 및 6c이다. 띠가 상태 7에 있으면, 먼저 후술하는 바와 같이 띠가 상태 6으로 변화된 후에 패리티를 가질 수 있다.
단계 1201 내지 단계 1206은 전술한 단계 1101-1106과 유사하다. 도 12에 도시한 바와 같이, 변환의 제 1 단계는 변환될 블럭 세트, 즉 변환 띠를 식별하는 것이다(단계 1201). 전술한 바와 같이, 띠는 개별적으로 구성되고 도 8을 참조하여 전술한 임의의 방법에 의해 식별될 수 있다.
그 다음 시스템은 패리티를 저장하기 위한 사용되지 않은 블럭이 띠 내에 존재하는 지를 확인한다. 구체적으로, 제어기(403)는 띠 상태 표(501)를 참고하여 띠 상태를 결정하는데, 상태 5 또는 상태 6에 있는 띠는 사용되지 않은 충분한 공간을 갖는다(단계 1002). 요구된 PARITY 블럭을 저장하기 위한 공간이 변환 띠 내에 충분하지 않다면(즉, 띠가 상태 7에 있다면), 도 11을 참조하여 전술한 바와 같이 하나의 데이터 블럭이 비워져야 한다. 시스템은 DATA 블럭 내의 저장 장소가 비워질 수 있는 지 여부를 결정하는데(단계 1203), 만약 비워질 수 없다면, 공정이 중단된다(단계 1206). 적합한 후보 블럭이 발견되면, 블럭 내의 데이터가 적절하게 재배치되거나, 압축되거나, 또는 무시되고, 추가 데이터를 저장하기 위해 블럭 그 자체가 비워진다(단계 1204). 제어기(403)는 상태 표(521) 내의 블럭 상태를 EMPTY로 변화시키고 띠 상태를 갱신한다(단계 1205). EMPTY 블럭이 생성됨으로써 띠 상태가 상태 7에서 상태 6으로 변하게 된다. 그 다음에 알고리즘은 단계 1202를 반복한다.
띠가 이미 상태 5 또는 상태 6에 있거나 전술한 바와 같이 상태 6으로 변환될 수 있으면(단계 122로부터의 '예' 가지), 제어기(403)는 먼저 패리티를 저장하기 위한 블럭을 선택한다(단계 1208). 이는 도 8을 참조하여 전술한 임의의 방법을 사용하여 수행될 수 있다. 그러나, DATA 블럭이 선택되면, 블럭 내의 데이터는 EMPTY 블럭 중의 한 블럭에 재배치되어야 할 것이다. 그러므로, 사용 가능한 EMPTY 블럭을 선택하는 것이 바람직하다. 하나 이상의 EMPTY 블럭이 존재한다면, 적합한 알고리즘을 사용하여 이러한 EMPTY 블럭을 선택할 수 있다. 그 다음에 제어기는 패리티를 저장하기 위해 선택된 블럭을 제외한 띠 내의 모든 블럭을 연속적으로 판독하고, 판독된 블럭의 누적된 배타적 OR 연산을 생성한다(단계 1209). 이렇게 누적된 배타적 OR 연산은 일시적으로 RAM(410)에 저장된다. 모든 블럭이 판독된 경우에, 누적된 배타적 OR 연산의 결과는 패리티이다. 그 다음에 선택된 PARITY 블럭에 이 패리티를 기록한다(단계 1210). 그 다음에 제어기(403)는 패리티 블럭의 상태를 PARITY로 변화시키고, 모든 EMPTY 블럭의 상태를 FREE로 변화시키며, 짝 소자 필드(527)를 적절한 것으로 갱신함으로써, 블럭 상태 표(521)를 갱신한다(1211). 그 다음에 제어기는 표(501) 내의 띠의 상태를 PARITY X 또는 FULL PARITY로 적절하게 변화시킨다(단계 1212). 버전 번호는 또한 패리티가 현행임을 반영하도록 설정된다.
바람직한 실시예에서 어레이 내의 저장 소자의 개수는 짝수이고, 각 띠는 각 저장 소자 상의 특정 주소 범위의 모든 블럭을 포함한다. 이러한 배치는 띠의 매핑과 패리티 블럭의 결정을 간단하게 한다. 한편, 홀수 개의 저장 소자를 갖는 어레이를 사용할 수도 있다. 이 경우에, 띠는 저장 소자의 개수보다 적은 임의의 짝수 개의 블럭을 포함하는 것이 바람직하다. 예를 들어, 띠 내의 블럭의 개수가 N-1일 수 있는데, 여기서 N은 저장 소자의 개수이다. 이러한 구성은 도 13에 도시되어 있다. 도 13의 어레이에서, DATA 1A, COPY 1A, DATA 1B, COPY 1B(1301-1304)로 표기된 블럭들이 하나의 띠를 구성하는 반면, DATA 3A, COPY 3A, DATA 3B, COPY 3B(1305-1308)로 표기된 블럭들은 제 2의 띠를 구성한다. 각 띠는 짝수 개의 블럭을 포함하지만, 블럭들이 모두 동일한 주소에 위치하지는 않는다는 것을 주목해야 할 것이다. 이러한 띠는 전술한 기법을 사용하여 RAID-4(5) 포맷으로 변환될 수 있고, 역으로 변환될 수도 있다. 띠의 더 복잡한 매핑을 다루기 위해서는 데이터 디렉토리 표를 약간 수정할 필요가 있다.
이와는 달리, 홀수 개의 블럭을 포함하는 띠인 경우, 블럭 중 하나가 EMPTY로 알려져 있고 모두 0을 포함한다면, 전술한 기법을 수정함으로써 RAID-1에서 RAID-4(5)로 변환될 수 있다(EMPTY 블럭의 내용이 알려져 있지 않거나 0이 아닌 경우 블럭을 적절한 상태에 두기 위해 블럭에 0이 기록될 수 있음). 이것은 예를 들어, 신규 DASD가 기존 어레이에 추가되는 경우일 수 있다. 이 경우에, RAID-1에 따라 구성된 하나 이상의 블럭 쌍과 하나의 빈 블럭을 포함하도록 선택된 띠가 다음과 같은 방법에 의해 RAID-4(5)로 변환될 수 있는데, 그 방법은 ① (빈 블럭일 수도 있는) 패리티 블럭을 선택하고 그 블럭을 PARITY 블럭으로 지정하며, ② 선택된 블럭이 COPY 블럭이었다면, 모든 다른 COPY 블럭과 EMPTY 블럭을 FREE로 지정하며, ③ 선택된 블럭이 DATA 블럭이었다면, 관련된 COPY 블럭을 DATA 블럭으로 지정하고 모든 COPY 블럭과 EMPTY 블럭을 FREE로 지정하고, ④ 선택된 블럭이 EMPTY 블럭이었다면, 모든 COPY 블럭을 FREE로 지정하는 것이다. 이와 유사하게 (저장 소자의 고장에 대해 보호되지 않는 DATA 블럭 또는 FREE 블럭으로) 한 블럭이 짝을이루지 않으면서 RAID-1으로 다시 변환하는 것도 가능하다.
본 발명의 바람직한 실시예에 따라 블럭을 FREE, COPY, DATA, 또는 EMPTY으로 지정하는 것은 RAID 제어기에 의해 수행될 수 있다. RAID 제어기는 각각 IBM 사에 의해 제조되고 배포되고 있는 PC 서버(server)를 위한 IBM SSA RAID 어댑터(adapter), PC 서브 RAID SCSI 어댑터, 또는 AS/400 어드밴스드 시스템 모델 300 내의 디스크 유닛 제어기(Disk Unit Controller)와 같은 프로그램 가능한 소자일 수 있다. 이와는 달리, 제어기는 상태 머신, 전용 하드웨어, 또는 ASIC(application specific integrated circuit)일 수 있다. 이와는 달리, 저장 서브시스템의 전용 RAID 제어기에 의해 수행되는 기능이 컴퓨터 시스템의 범용 중앙 처리 장치에 의해 수행되는 소프트웨어에 의해 처리될 수 있는데, 중앙 처리 장치는 RAID 제어 기능에 더하여 여러 가지 다른 임무를 수행한다.
신규 데이터가 블럭에 기록될 수 있는 지, 그리고 이 경우에 신규 데이터가 판독-수정-기록 알고리즘에 따라 기록되어야 하는 지를 결정하기 위해 바람직한 실시예에 따라 각 블럭의 특정된 지정이 수행된다. 당업자라면 유사한 결과를 얻기 위해 다른 지정을 사용할 수도 있고, 본 발명과 무관한 다른 목적을 위해 각 블럭의 비법이 사용될 수도 있음을 이해할 것이다.
저장 소자 어레이에 대한 제어 프로그램은 마그네틱 플로피 디스크, 마그네틱 테이프, 광학적 디스크, 집적 회로 칩, 또는 프로그램 가능한 컴퓨터에 의해 판독될 수 있는 메모리 소자 또는 다른 저장 소자와 같은 컴퓨터 프로그램 제조물 상에 저장되는 일련의 프로세서로 실행 가능한 인스트럭션에 의해 구체화될 수 있다.
바람직한 실시예에 따라 RAID-1로 배치된 블럭 세트가 RAID-4 또는 RAID-5 구성으로 변환될 수 있고, 그 반대도 가능하다. 그러나, RAID 수준 또는 다른 지정에도 불구하고, 유사한 특성을 갖는 다른 배치도 사용될 수 있음을 이해해야 한다. 특히, 당업계의 일부는 RAID 수준 6 이상도 인정한다. 대체로 이러한 시스템은 RAID 수준 4 또는 5의 모든 특성을 갖지만, 그와 함께 이중 패리티 블럭 또는 추가 중복 블럭과 같은 추가적인 특성을 갖는다
도 1, 도 2, 도 3, 도 9, 도 10, 도 13은 저장 소자 어레이를 도시하는데, 그 어레이에서 각 소자는 비교적 적은 수의 블럭을 포함한다. 단지 도시를 쉽게 하기 위해 작은 수가 선택되었지만, 어떤 특정 수에 본 발명이 제한되지 않아야 한다. 적은 수의 블럭을 사용하여 본 발명을 실행할 수 있지만 당업자라면 대부분의 저장 소자 어레이가 실제로는 각 저장 소자 내에 훨씬 더 많은 수의 블럭을 갖는다는 것을 이해할 것이다.
본 명세서에 상세하게 기술되고 도시된 바와 같은 하나의 포맷에 따른 띠를 다른 포맷에 적합한 띠로 변환하는 구체적인 장치와 방법에 의해 본 발명의 전술한 목적을 완전히 달성할 수 있는 반면, 그 장치와 방법은 본 발명의 현재 바람직한 실시예로서 본 발명에 의해 넓게 구현될 수 있는 발명의 사상을 대표하고, 본 발명이 범위가 당업자에게 당연할 수 있는 또다른 실시예를 완전히 포함하며, 따라서 본 발명의 범위가 오직 첨부되는 청구항에 의해서만 한정되는 것이 아님을 이해해야할 것이다.

Claims (13)

  1. 다수의 데이터 저장 소자에 저장되는 제 1 메모리 구조를 상기 다수의 데이터 저장 소자에 저장되는 제 2 메모리 구조로 변환하는 방법에 있어서,
    ① 변환될 데이터 블럭 세트를 식별하되, 상기 세트의 각 블럭이 상기 다수의 데이터 저장 소자의 상이한 각각의 소자에 저장되고, 상기 세트가 다수의 블럭 쌍을 포함하며, 각 쌍의 두 블럭이 동일한 데이터를 포함하는 식별 단계와,
    ② 상기 세트의 제 1 블럭을 선택하는 단계와,
    ③ 상기 제 1 블럭에 포함된 데이터를 변화시키지 않으면서 상기 제 1 블럭을 패리티 블럭으로 지정하는 단계와,
    ④ 상기 제 1 블럭을 포함하지 않는 상기 세트의 각 블럭 쌍으로부터 각 블럭을 선택하는 단계와,
    ⑤ 상기 제 1 블럭을 포함하지 않는 상기 세트의 각 블럭 쌍으로부터 선택된 각각의 블럭을 대체 데이터로 저장하기 위해 이용 가능하도록 지정하는 단계
    를 포함하는 메모리 구조 변환 방법.
  2. 제 1 항에 있어서,
    상기 각 데이터 저장 소자가 다수의 상기 블럭을 저장하되, 상기 다수의 데이터 저장 소자가 다수의 상기 블럭 세트를 포함하고,
    제 1 데이터 블럭 세트가 상기 제 1 메모리 구조로부터 상기 제 2 메모리 구조로 변환될 수 있는 반면, 제 2 데이터 블럭 세트는 상기 제 1 메모리 구조에 따른 구성 상태를 유지하는 메모리 구조 변환 방법.
  3. 제 3 항에 있어서,
    각 블럭 세트가 개별적으로 그리고 독립적으로 상기 제 1 메모리 구조로부터 상기 제 2 메모리 구조로 변환될 수 있는 메모리 구조 변환 방법.
  4. 제 1 항에 있어서,
    상기 제 1 메모리 구조가 RAID-1에 따라 구성된 블럭 세트이고, 상기 제 2 메모리 구조가 RAID-4 및 RAID-5로 이루어진 세트 중 어느 하나에 따라 구성된 블럭 세트인 메모리 구조 변환 방법.
  5. 제 1 항에 있어서,
    상기 제 1 메모리 구조가 다수의 COPY 블럭과 DATA 블럭을 포함하되, 각 COPY 블럭은 관련된 DATA 블럭의 복사본이고, 각 COPY 블럭은 관련된 DATA 블럭이 저장되는 DASD이 아닌 상이한 DASD에 저장되며, 상기 제 2 메모리 구조는 패리티 블럭과 패리티를 갖는 블럭 세트를 포함하되, 각 패리티를 갖는 블럭은 상기 패리티 블럭이 아니면서 상호간 패리티를 갖는 블럭도 아닌 상이한 DASD에 저장되고,
    상기 제 1 블럭이 COPY 블럭이면, 상기 제 1 블럭을 포함하지 않는 상기 세트의 각 블럭 쌍으로부터 선택된 각각의 블럭을 대체 데이터를 저장하기 위해 이용 가능하도록 지정하는 상기 단계가 상호간 COPY 블럭을 FREE 블럭으로 지정하는 단계를 포함하며,
    상기 제 1 블럭이 DATA 블럭이면, 상기 제 1 블럭을 포함하지 않는 상기 세트의 각 블럭 쌍으로부터 선택된 각각의 블럭을 대체 데이터를 저장하기 위해 이용 가능하도록 지정하는 상기 단계가 (1) 상기 제 1 블럭과 관련된 상기 COPY 블럭을 DATA 블럭으로 지정하는 단계와, (2) 상호간 COPY 블럭을 FREE 블럭으로 지정하는 단계를 포함하는 메모리 구조 변환 방법.
  6. 데이터 저장 시스템에 있어서,
    다수의 데이터 저장 소자와,
    상기 다수의 데이터 저장 소자의 연산을 제어하되, 상기 다수의 저장 소자에 저장되는 제 1 메모리 구조를 상기 다수의 저장 소자에 저장되는 제 2 메모리 구조로 변환하는 제어 프로그램을 실행하는 프로그램 가능한 프로세서
    를 포함하되,
    상기 제어 프로그램은 상기 데이터 저장 시스템에 대한 상태 정보를 유지하고,
    변환될 데이터 블럭 세트의 식별에 응답하여, 상기 제어 프로그램이
    ① 상기 상태 정보를 갱신하여 상기 블럭 세트의 제 1 블럭을 상기 제 1 블럭 내에 포함된 데이터를 변환시키지 않으면서 패리티 블럭으로 지정하고,
    ② 상기 상태 정보를 갱신하여 상기 제 1 블럭을 포함하지 않는 상기 세트의 각 블럭 쌍으로부터의 각 블럭을 대체 데이터를 저장하기 위해 사용하도록 지정하되,
    변환될 상기 세트의 각 블럭이 상기 다수의 데이터 저장 소자 중 상이한 각각의 한 데이터 저장 소자에 저장되고, 상기 세트가 다수의 블럭 쌍을 포함하며, 각 쌍의 두 블럭은 동일한 데이터를 포함하는 데이터 저장 시스템.
  7. 제 8 항에 있어서,
    상기 프로그램 가능한 프로세서가 호스트 컴퓨터 시스템에 부착되는 제어기 내에 포함되되, 상기 제어기는 상기 상태 정보를 포함하는 랜덤 액세스 메모리를 포함하는 데이터 저장 시스템.
  8. 제 8 항에 있어서,
    상기 각 데이터 저장 소자는 다수의 상기 블럭을 저장하되, 상기 다수의 데이터 저장 소자는 다수의 상기 블럭 세트를 포함하고,
    상기 제어 프로그램은 제 1 데이터 블럭 세트를 상기 제 1 메모리 구조로부터 상기 제 2 메모리 구조로 변환하는 반면, 제 2 블럭 세트는 상기 제 1 메모리 구조에 따른 구성 상태를 유지하는 데이터 저장 시스템.
  9. 제 8 항에 있어서,
    상기 제어 프로그램이 상기 제 1 메모리 구조로부터 상기 제 2 메모리 구조로 변환될 데이터 블럭 세트의 식별에 응답하여 상기 제 1 블럭을 자동적으로 선택하는 데이터 저장 시스템.
  10. 데이터를 저장하는 다수의 데이터 저장 소자를 구비하는 데이터 저장 시스템을 제어하는 제어기에 있어서,
    상기 다수의 데이터 저장 소자의 연산을 제어하되, 상기 다수의 제어 소자에 저장되는 제 1 메모리 구조를 상기 다수의 저장 소자에 저장되는 제 2 메모리 구조로 변환하는 제어 프로그램을 실행하는 프로그램 가능한 프로세서와,
    상기 제어 프로그램에 의해 유지되는 상태 정보를 포함하는 랜덤 액세스 메모리
    를 포함하되,
    변환될 데이터 블럭 세트의 식별에 응답하여, 상기 제어 프로그램은
    ① 상기 상태 정보를 갱신하여 상기 블럭 세트의 제 1 블럭을 상기 제 1 블럭 내에 포함된 데이터를 변환시키지 않으면서 패리티 블럭으로 지정하고,
    ② 상기 상태 정보를 갱신하여 상기 제 1 블럭을 포함하지 않는 상기 세트의 각 블럭 쌍으로부터의 각 블럭을 대체 데이터를 저장하기 위해 사용하도록 지정하되,
    변환될 상기 세트의 각 블럭이 상기 다수의 데이터 저장 소자 중 상이한 각각의 한 데이터 저장 소자에 저장되고, 상기 세트가 다수의 블럭 쌍을 포함하며, 각 쌍의 두 블럭은 동일한 데이터를 포함하는 데이터 저장 시스템 제어용 제어기.
  11. 디지탈 프로세싱 장치에 의해 판독 가능하고, 데이터 저장 시스템을 제어하는 디지탈 프로세싱 장치에 의해 실행 가능한 인스트럭션으로된 제어 프로그램을 현실적으로 구현하는 프로그램 저장 소자에 있어서, 상기 데이터 저장 시스템은 데이터를 저장하는 다수의 데이터 저장 소자를 구비하고, 상기 프로그램은 제 1 메모리 구조를 제 2 메모리 구조로 변환하는 방법 단계를 수행하되,
    상기 방법 단계가,
    ① 상기 제 1 메모리 구조로부터 상기 제 2 메모리 구조로 변환될 데이터 블럭 세트의 식별을 수신하되, 변환될 상기 세트의 각 블럭이 상기 다수의 데이터 저장 소자 중의 상이한 각각의 소자에 저장되고, 상기 세트가 다수의 블럭 쌍을 포함하며, 각 쌍의 두 블럭이 동일한 데이터를 포함하는 식별 수신 단계와,
    ② 상태 정보를 갱신하여 상기 블럭 세트의 제 1 블럭을 상기 제 1 블럭 내에 포함된 데이터를 변화시키지 않으면서 패리티 블럭으로 지정하는 단계와,
    ③ 상기 상태 정보를 갱신하여 상기 제 1 블럭을 포함하지 않는 상기 세트의 각 블럭 쌍으로부터의 각 블럭을 대체 데이터를 저장하기 위해 사용 가능하도록 지정하는 단계
    를 포함하는 프로그램 저장 소자.
  12. 다수의 데이터 저장 소자에 저장되는 제 1 메모리 구조를 상기 다수의 데이터 저장 소자에 저장되는 제 2 메모리 구조로 변환하는 방법에 있어서,
    ① 변환될 데이터 블럭 세트를 식별하되, 상기 세트의 각 블럭은 상기 다수의 데이터 저장 소자 중 상이한 각 한 소자에 저장되고, 상기 세트는 데이터를 갖는 다수의 블럭과 데이터를 갖는 상기 다수의 블럭으로부터 유도된 패리티를 갖는 제 1 블럭을 포함하는 식별 단계와,
    ② 상기 제 1 블럭에 포함된 데이터를 비우지 않은 채로, 데이터를 포함하는 상기 다수의 블럭 중 제 1 블럭 내에 포함된 데이터의 복사본을 갖도록 패리티를 갖는 상기 블럭을 선택하는 단계와,
    ③ 상기 데이터 블럭 세트의 제 2 서브세트 내에 포함되는 데이터의 복사본을 포함하도록 상기 데이터 블럭 세트 중 제 1 서브세트를 선택하되, 상기 제 1 서브 세트는 상기 패리티 블럭과 다른 적어도 하나의 데이터 블럭을 갖고, 상기 제 2 서브세트는 상기 제 2 서브세트 내에 포함된 데이터를 변화시키지 않으면서 상기 다수의 데이터 블럭 중 상기 제 1 서브 세트와 다른 적어도 하나의 데이터 블럭을 갖는 단계와,
    ④ 상기 세트로부터 선택된 각 블럭을 상기 세트의 또다른 각 블럭 내에 포함되는 데이터의 복사본을 저장하기 위해 사용 가능하도록 지정하는 단계
    를 포함하는 메모리 구조 변환 방법.
  13. 데이터 저장 시스템에 있어서,
    다수의 데이터 저장 소자와,
    상기 다수의 데이터 저장 소자의 연산을 제어하는 프로그램 가능한 프로세서와,
    상기 제어 프로그램에 의해 유지되는 상태 정보를 저장하는 랜덤 액세스 메모리
    를 포함하되,
    상기 프로그램 가능한 프로세서는 상기 데이터 저장 시스템의 연산을 제어하는 제어 프로그램을 실행하고,
    상기 다수의 데이터 저장 소자 내에 있는 데이터는 다수의 블럭 세트로 구성되되, 세트의 각 블럭은 상기 다수의 데이터 저장 소자 중 상이한 각각의 소자에 저장되며,
    상기 제어 프로그램은 다수의 상이한 메모리 구조에 따라 상기 블럭 세트를 포맷하게 하되, 상기 메모리 구조의 적어도 하나는 중복되는 데이터 포맷이고, 제 1 블럭 세트와 제 2 블럭 세트는 서로 독립적으로 포맷 가능하고,
    상기 상태 정보는 각 블럭에 대한 각각의 블럭 상태와 상기 제 1 블럭 세트 및 상기 제 2 블럭 세트에 대한 별개인 각각의 세트 상태를 포함하고, 상기 세트 상태 정보는 상기 메모리 구조를 식별하되, 그 메모리 구조에 따라 각각의 블럭 세트가 구성되며,
    제 1 메모리 구조에서 제 2 메모리 구조로 변환될 데이타 블럭 세트의 식별에 응답하여, 상기 제어 프로그램은
    (a) 변환될 상기 블럭 세트의 블럭에 대한 블럭 상태 정보룰 갱신하고,
    (b) 상기 블럭 세트에 대한 세트 상태 정보를 갱신하여 상기 세트를 상기 제 1 메모리 구조에 따라 구성되는 것으로 식별하는 데이터 저장 시스템.
KR1019997006433A 1997-02-27 1999-07-15 메모리 구조 변환 방법 및 데이터 저장 시스템 KR100321843B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/805,652 1997-02-27
US8/805,652 1997-02-27
US08/805,652 US5960169A (en) 1997-02-27 1997-02-27 Transformational raid for hierarchical storage management system

Publications (2)

Publication Number Publication Date
KR20000070207A KR20000070207A (ko) 2000-11-25
KR100321843B1 true KR100321843B1 (ko) 2002-02-02

Family

ID=25192126

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997006433A KR100321843B1 (ko) 1997-02-27 1999-07-15 메모리 구조 변환 방법 및 데이터 저장 시스템

Country Status (6)

Country Link
US (1) US5960169A (ko)
JP (1) JP3266277B2 (ko)
KR (1) KR100321843B1 (ko)
CN (1) CN1191518C (ko)
TW (1) TW436689B (ko)
WO (1) WO1998038568A1 (ko)

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998012621A1 (fr) * 1996-09-20 1998-03-26 Hitachi, Ltd. Sous-systeme a piles de disques
US6098119A (en) * 1998-01-21 2000-08-01 Mylex Corporation Apparatus and method that automatically scans for and configures previously non-configured disk drives in accordance with a particular raid level based on the needed raid level
US6173415B1 (en) * 1998-05-22 2001-01-09 International Business Machines Corporation System for scalable distributed data structure having scalable availability
US6611897B2 (en) 1999-03-22 2003-08-26 Hitachi, Ltd. Method and apparatus for implementing redundancy on data stored in a disk array subsystem based on use frequency or importance of the data
US6378038B1 (en) * 1999-03-31 2002-04-23 International Business Machines Corporation Method and system for caching data using raid level selection
US6742137B1 (en) * 1999-08-17 2004-05-25 Adaptec, Inc. Object oriented fault tolerance
US6594724B1 (en) * 2000-03-30 2003-07-15 Hitachi Global Storage Technologies Netherlands B.V. Enhanced DASD with smaller supplementary DASD
US6571310B1 (en) 2000-04-20 2003-05-27 International Business Machines Corporation Method and apparatus for managing a heterogeneous data storage system
KR100364895B1 (ko) * 2000-06-12 2002-12-16 아라리온 (주) 데이터 액세스 제어 방법 및 시스템
US6529997B1 (en) * 2000-08-11 2003-03-04 Storage Technology Corporation Apparatus and method for writing and reading data to and from a virtual volume of redundant storage devices
US7143249B2 (en) * 2000-10-04 2006-11-28 Network Appliance, Inc. Resynchronization of mirrored storage devices
US6654912B1 (en) * 2000-10-04 2003-11-25 Network Appliance, Inc. Recovery of file system data in file servers mirrored file system volumes
GB2367655A (en) * 2000-10-06 2002-04-10 Nokia Mobile Phones Ltd Method of using an integrated circuit with defects
US6549978B2 (en) 2001-01-17 2003-04-15 International Business Machines Corporation Method for storage controllers with different data formats to access common storage configuration information
US7080135B1 (en) * 2001-01-24 2006-07-18 Advanced Micro Devices, Inc. Systems and methods for accessing an address table of a network device
US7406682B2 (en) * 2001-03-26 2008-07-29 Emc Corporation Translator-compiler for converting legacy management software
US6643735B2 (en) 2001-12-03 2003-11-04 International Business Machines Corporation Integrated RAID system with the capability of selecting between software and hardware RAID
US6985995B2 (en) * 2002-03-29 2006-01-10 Panasas, Inc. Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data
US7111125B2 (en) * 2002-04-02 2006-09-19 Ip-First, Llc Apparatus and method for renaming a data block within a cache
US7243094B2 (en) * 2002-05-31 2007-07-10 Softek Storage Solutions Corporation Method and system for intelligent storage management
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
US7383379B2 (en) * 2002-08-07 2008-06-03 Hewlett-Packard Development Company, L.P. Manipulating data in a data storage device using an auxiliary memory device
ATE400026T1 (de) * 2002-09-10 2008-07-15 Exagrid Systems Inc Datenschutzverfahren und vorrichtung
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US7062673B2 (en) * 2003-05-19 2006-06-13 Hitachi Global Technologies System and method for sparing in RAID-1 system
US20040250028A1 (en) * 2003-06-09 2004-12-09 Daniels Rodger D. Method and apparatus for data version checking
CN100409164C (zh) * 2003-07-07 2008-08-06 日立超大规模集成电路系统株式会社 存储系统
US7127505B2 (en) 2003-08-15 2006-10-24 Internet Associates, Llc Methods, computer systems, and computer readable media for generating displays of sets of network addresses with status indicators
US7543296B2 (en) * 2003-08-26 2009-06-02 International Business Machines Corporation Time based multi-tiered management of resource systems
JP2005107838A (ja) * 2003-09-30 2005-04-21 Toshiba Corp ディスクアレイコントローラ及びログ情報記録方法
US7330907B2 (en) * 2003-10-02 2008-02-12 Internet Associates, Llc Methods, computer systems, and computer readable media for controlling the status of network address space
US7386754B2 (en) * 2003-10-16 2008-06-10 Seagate Technology Llc Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity
JP4486348B2 (ja) * 2003-11-26 2010-06-23 株式会社日立製作所 ドライブの稼働時間を抑止するディスクアレイ
US7290087B2 (en) * 2003-11-26 2007-10-30 International Business Machines Corporation Adaptive grouping in object raid
US8140860B2 (en) * 2003-12-15 2012-03-20 International Business Machines Corporation Policy-driven file system with integrated RAID functionality
US7100073B2 (en) * 2004-01-05 2006-08-29 International Business Machines Corporation Grouped-object RAID
CN100343825C (zh) * 2004-01-05 2007-10-17 华为技术有限公司 一种处理流媒体数据的方法
CN100419700C (zh) * 2004-02-11 2008-09-17 鸿富锦精密工业(深圳)有限公司 磁盘容错系统及方法
US7194579B2 (en) * 2004-04-26 2007-03-20 Sun Microsystems, Inc. Sparse multi-component files
US7702948B1 (en) * 2004-07-13 2010-04-20 Adaptec, Inc. Auto-configuration of RAID systems
JP4387261B2 (ja) * 2004-07-15 2009-12-16 株式会社日立製作所 計算機システム、および、記憶装置システムの移行方法
US8726129B1 (en) * 2004-07-23 2014-05-13 Hewlett-Packard Development Company, L.P. Methods of writing and recovering erasure coded data
TWI251745B (en) * 2004-07-27 2006-03-21 Via Tech Inc Apparatus and related method for calculating parity of redundant array of inexpensive disks
JP2006113648A (ja) * 2004-10-12 2006-04-27 Hitachi Ltd ディスクアレイ装置
CN100388237C (zh) * 2004-10-20 2008-05-14 北京织女星网格技术有限公司 基于轻量计算的数据重组方法
US7594075B2 (en) 2004-10-20 2009-09-22 Seagate Technology Llc Metadata for a grid based data storage system
US8131926B2 (en) * 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
US8131969B2 (en) * 2004-10-20 2012-03-06 Seagate Technology Llc Updating system configuration information
US7454686B2 (en) * 2004-11-23 2008-11-18 International Business Machines Corporation Apparatus and method to check data integrity when handling data
CN100409196C (zh) * 2004-12-22 2008-08-06 国际商业机器公司 使用数个存储介质来存储和恢复数据文件的方法
CN100388239C (zh) * 2005-01-18 2008-05-14 英业达股份有限公司 在线增加廉价磁盘冗余阵列磁盘数量的方法与系统
US7516285B1 (en) 2005-07-22 2009-04-07 Network Appliance, Inc. Server side API for fencing cluster hosts via export access rights
JP4394047B2 (ja) * 2005-08-05 2010-01-06 信越ポリマー株式会社 キーフレームおよび押釦スイッチ用カバー部材
TWI361348B (en) * 2005-09-02 2012-04-01 Infortrend Technology Inc Parity engine for use in storage virtualization controller and methods of generating data by parity engine
US8010753B2 (en) * 2005-09-28 2011-08-30 International Business Machines Corporation Systems and methods for temporarily transferring use of portions of partitioned memory between host computers
US7769948B2 (en) * 2005-10-07 2010-08-03 Agere Systems Inc. Virtual profiles for storage-device array encoding/decoding
US7653783B2 (en) * 2005-10-07 2010-01-26 Agere Systems Inc. Ping-pong state machine for storage-device array
US8291161B2 (en) * 2005-10-07 2012-10-16 Agere Systems Llc Parity rotation in storage-device array
US7644303B2 (en) * 2005-10-07 2010-01-05 Agere Systems Inc. Back-annotation in storage-device array
US20070130232A1 (en) * 2005-11-22 2007-06-07 Therrien David G Method and apparatus for efficiently storing and managing historical versions and replicas of computer data files
US7653829B2 (en) * 2005-12-08 2010-01-26 Electronics And Telecommunications Research Institute Method of data placement and control in block-divided distributed parity disk array
CN101460928B (zh) * 2006-04-11 2012-02-08 因文西斯系统公司 简化安装替代性现场设备的方法和支持性配置用户界面
US20070283087A1 (en) * 2006-05-30 2007-12-06 Barry Hannigan Method and structure for adapting a storage virtualization scheme using transformations
US8046629B1 (en) * 2006-07-24 2011-10-25 Marvell World Trade Ltd. File server for redundant array of independent disks (RAID) system
US20080091916A1 (en) * 2006-10-17 2008-04-17 Agere Systems, Inc. Methods for data capacity expansion and data storage systems
WO2008049102A2 (en) * 2006-10-19 2008-04-24 Fair Thomas T System and methods for zero-configuration data backup
KR100854032B1 (ko) * 2007-02-09 2008-08-26 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
US8370715B2 (en) * 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US7861036B2 (en) * 2007-09-18 2010-12-28 Agere Systems Inc. Double degraded array protection in an integrated network attached storage device
JP4402711B2 (ja) * 2007-11-05 2010-01-20 富士通株式会社 ディスクアレイ装置、ディスクアレイ装置制御方法、ディスクアレイ装置制御プログラムおよびディスクアレイ制御装置
US8001417B2 (en) * 2007-12-30 2011-08-16 Agere Systems Inc. Method and apparatus for repairing uncorrectable drive errors in an integrated network attached storage device
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
JP2010049637A (ja) * 2008-08-25 2010-03-04 Hitachi Ltd 計算機システム、ストレージシステム及び構成管理方法
JP2010066848A (ja) * 2008-09-09 2010-03-25 Toshiba Storage Device Corp 記憶装置の管理方法及び記憶装置、並びに記憶システム
US7904749B2 (en) * 2008-10-24 2011-03-08 Hitachi, Ltd. Fast data recovery from HDD failure
JP5146357B2 (ja) * 2009-02-25 2013-02-20 富士通株式会社 データ診断装置、データ診断システム、データ診断方法及びデータ診断プログラム
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US8874628B1 (en) * 2009-10-15 2014-10-28 Symantec Corporation Systems and methods for projecting hierarchical storage management functions
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
JP4940322B2 (ja) * 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
US20150121003A1 (en) * 2010-09-07 2015-04-30 Daniel L. Rosenband Storage controllers
US20120059976A1 (en) * 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8694866B2 (en) * 2011-03-15 2014-04-08 California Institute Of Technology MDS array codes with optimal building
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US20130198585A1 (en) * 2012-02-01 2013-08-01 Xyratex Technology Limited Method of, and apparatus for, improved data integrity
US8977893B2 (en) * 2012-02-17 2015-03-10 Lsi Corporation Accelerated rebuild and zero time rebuild in raid systems
KR20130097350A (ko) * 2012-02-24 2013-09-03 한국전자통신연구원 비대칭 클러스터링 파일 시스템에서 복제 기반의 파일을 패리티 기반의 파일로 변환하는 장치 및 방법
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
WO2014101144A1 (zh) * 2012-12-28 2014-07-03 华为技术有限公司 储存数据的方法及装置
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9811455B2 (en) * 2013-03-15 2017-11-07 The Boeing Company Accessing different types of memory by respective distinct command with different timing requirements
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9298617B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Parallel destaging with replicated cache pinning
US9104597B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Destaging cache data using a distributed freezer
US9619404B2 (en) 2013-04-16 2017-04-11 International Business Machines Corporation Backup cache with immediate availability
US9423981B2 (en) 2013-04-16 2016-08-23 International Business Machines Corporation Logical region allocation with immediate availability
US9329938B2 (en) 2013-04-16 2016-05-03 International Business Machines Corporation Essential metadata replication
US9298398B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Fine-grained control of data placement
US9104332B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
KR20140124674A (ko) * 2013-04-17 2014-10-27 한국전자통신연구원 파일 수준의 데이터 분산 저장 방법
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US9588843B2 (en) * 2014-07-14 2017-03-07 International Business Machines Corporation System and method for transferring traditional RAID to distributed array
CN104714758B (zh) * 2015-01-19 2017-07-07 华中科技大学 一种基于校验raid加入镜像结构的阵列构建方法及读写系统
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10606501B2 (en) * 2015-12-04 2020-03-31 International Business Machines Corporation Management of paging in compressed storage
KR102533389B1 (ko) 2016-02-24 2023-05-17 삼성전자주식회사 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템
CN105843556B (zh) * 2016-03-21 2019-01-11 浙江宇视科技有限公司 一种vd选取方法及装置
CN107870730B (zh) * 2016-09-23 2020-11-20 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和系统
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
CN109725838B (zh) * 2017-10-27 2022-02-25 伊姆西Ip控股有限责任公司 用于管理多个盘的方法、装置以及计算机可读介质
CN108170117B (zh) * 2017-11-24 2020-12-15 宁波兴为汽车电子有限公司 一种车载模块参数自动识别分配的方法及系统
US11169961B2 (en) * 2018-06-29 2021-11-09 Weka.IO Ltd. Data migration in a distributive file system
CN111124746B (zh) * 2018-10-30 2023-08-11 伊姆西Ip控股有限责任公司 管理独立盘冗余阵列的方法、设备和计算机可读介质
CN111124269B (zh) 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机可读存储介质
CN111324287A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器
US10977073B2 (en) * 2019-07-10 2021-04-13 Dell Products L.P. Architectural data mover for RAID XOR acceleration in a virtualized storage appliance

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187249A (ja) * 1992-12-16 1994-07-08 Nec Eng Ltd ディスクアレイ装置
US5504858A (en) * 1993-06-29 1996-04-02 Digital Equipment Corporation Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
US5537534A (en) * 1995-02-10 1996-07-16 Hewlett-Packard Company Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array
US5581690A (en) * 1993-06-29 1996-12-03 Digital Equipment Corporation Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5166939A (en) * 1990-03-02 1992-11-24 Micro Technology, Inc. Data storage apparatus and method
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
US5375128A (en) * 1990-10-18 1994-12-20 Ibm Corporation (International Business Machines Corporation) Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders
US5345565A (en) * 1991-03-13 1994-09-06 Ncr Corporation Multiple configuration data path architecture for a disk array controller
US5301297A (en) * 1991-07-03 1994-04-05 Ibm Corp. (International Business Machines Corp.) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
US5410667A (en) * 1992-04-17 1995-04-25 Storage Technology Corporation Data record copy system for a disk drive array data storage subsystem
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
US5581724A (en) * 1992-10-19 1996-12-03 Storage Technology Corporation Dynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystem
US5487160A (en) * 1992-12-04 1996-01-23 At&T Global Information Solutions Company Concurrent image backup for disk storage system
US5463765A (en) * 1993-03-18 1995-10-31 Hitachi, Ltd. Disk array system, data writing method thereof, and fault recovering method
US5390327A (en) * 1993-06-29 1995-02-14 Digital Equipment Corporation Method for on-line reorganization of the data on a RAID-4 or RAID-5 array in the absence of one disk and the on-line restoration of a replacement disk
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5446855A (en) * 1994-02-07 1995-08-29 Buslogic, Inc. System and method for disk array data transfer
US5479653A (en) * 1994-07-14 1995-12-26 Dellusa, L.P. Disk array apparatus and method which supports compound raid configurations and spareless hot sparing
US5463776A (en) * 1994-09-22 1995-10-31 Hewlett-Packard Company Storage management system for concurrent generation and fair allocation of disk space among competing requests
US5412668A (en) * 1994-09-22 1995-05-02 International Business Machines Corporation Parity striping feature for optical disks
US5615352A (en) * 1994-10-05 1997-03-25 Hewlett-Packard Company Methods for adding storage disks to a hierarchic disk array while maintaining data availability
US5666512A (en) * 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187249A (ja) * 1992-12-16 1994-07-08 Nec Eng Ltd ディスクアレイ装置
US5504858A (en) * 1993-06-29 1996-04-02 Digital Equipment Corporation Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
US5581690A (en) * 1993-06-29 1996-12-03 Digital Equipment Corporation Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system
US5537534A (en) * 1995-02-10 1996-07-16 Hewlett-Packard Company Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array

Also Published As

Publication number Publication date
JP3266277B2 (ja) 2002-03-18
CN1247608A (zh) 2000-03-15
JP2000511318A (ja) 2000-08-29
KR20000070207A (ko) 2000-11-25
TW436689B (en) 2001-05-28
WO1998038568A1 (en) 1998-09-03
CN1191518C (zh) 2005-03-02
US5960169A (en) 1999-09-28

Similar Documents

Publication Publication Date Title
KR100321843B1 (ko) 메모리 구조 변환 방법 및 데이터 저장 시스템
US10606491B2 (en) Providing redundancy in a virtualized storage system for a computer system
US7386758B2 (en) Method and apparatus for reconstructing data in object-based storage arrays
US7281089B2 (en) System and method for reorganizing data in a raid storage system
EP0485110B1 (en) Logical partitioning of a redundant array storage system
US5799140A (en) Disk array system and method for storing data
JP3743841B2 (ja) 記憶装置システムおよび制御方法
US7308599B2 (en) Method and apparatus for data reconstruction after failure of a storage device in a storage array
US7730275B2 (en) Information processing system and management device for managing relocation of data based on a change in the characteristics of the data over time
JP2769443B2 (ja) 記憶サブシステム及び関連する装置/方法
US6877011B2 (en) System and method for host based storage virtualization
US9104342B2 (en) Two stage checksummed raid storage model
EP0874312A2 (en) Method of replacing faulty disks in a redundant array of disks
US5650969A (en) Disk array system and method for storing data
JPH05505264A (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US7882420B2 (en) Method and system for data replication
US20060053287A1 (en) Storage apparatus, system and method using a plurality of object-based storage devices
JP2006059374A (ja) 記憶制御装置
JP2006178926A (ja) 複数のオブジェクトベースのストレージ装置を使用したストレージ装置、システム、および方法
US7590780B2 (en) Method and computer program product to migrate legacy data to a RAID array while contemporaneously providing user access to legacy data
JP2005122765A (ja) 計算機システムおよび二次記憶装置
JPH0736633A (ja) 磁気ディスクアレイ
KR20010028691A (ko) 레이드 레벨 와이를 이용한 디스크 관리 방법

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

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20131227

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20141215

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20151228

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20171227

Year of fee payment: 17

LAPS Lapse due to unpaid annual fee