KR960001748B1 - 컴퓨터 시스템 동작방법과 컴퓨터 시스템용의 기억 장치 및 기억제어장치 - Google Patents
컴퓨터 시스템 동작방법과 컴퓨터 시스템용의 기억 장치 및 기억제어장치 Download PDFInfo
- Publication number
- KR960001748B1 KR960001748B1 KR1019910009793A KR910009793A KR960001748B1 KR 960001748 B1 KR960001748 B1 KR 960001748B1 KR 1019910009793 A KR1019910009793 A KR 1019910009793A KR 910009793 A KR910009793 A KR 910009793A KR 960001748 B1 KR960001748 B1 KR 960001748B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- storage
- data storage
- block
- parity
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/104—Metadata, i.e. metadata associated with RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
내용 없음.
Description
제1도는 본 발명의 바람직한 실시예에 관한 구성요소를 내장한 시스템의 구성도.
제2도는 상태 맵을 도시한 도면.
제3도는 정상동작 모드중의 판독동작에 관계되는 모든 스텝의 흐름도.
제4도는 기록될 데이터를 호스트로부터 기억제어장치로 전송할 때에 관계되는 스텝의 흐름도.
제5도는 정상동작 모드로 기억장치에 데이터를 기록할 때에 관계되는 모든 스텝의 흐름도.
제6도는 기억장치가 고장난 후의 판독동작에 관계되는 모든 스텝의 흐름도.
제7도는 어떤 기억장치가 고장났을 때, 기억장치에 데이터를 기록하는 데에 관계되는 모든 스텝의 흐름도.
제8도는 본 발명의 대체 실시예에 따른 구성요소를 내장한 시스템의 구성도.
* 도면의 주요부분에 대한 부호의 설명
100 : 컴퓨터 시스템 101 : 호스트 컴퓨터
103 : 기억제어장치 104 : 프로그램식 프로세서
105 : 불휘발성 RAM 106 : 상태 맵
107 : 내용테이블 108 : 배타적 OR 하드웨어
109 : 캐쉬 메모리
본 발명은 컴퓨터의 데이터 기억장치(computer data storage devices)에 관한 패리티 정보(parity information)를 유지하기 위한 것에 관한 것으로서, 특히 고장난(failed) 기억장치로부터의 데이터를 재구축할(reconstructing)때에 컴퓨터 시스템의 사용가능성(availabilty)을 유지하는 것에 관한 것이다.
현대 컴퓨터 시스템에서의 광대한 데이터 기억의 필요에 따라, 대용량의 데이터 기억장치가 요구되고 있다. 통상 사용되고 있는 기억장치는 자기 디스크장치로서, 고장나기 쉬운 다수의 부품을 포함하는 복잡한 기계이다. 통상의 컴퓨터 시스템은 이러한 자기 디스크장치를 여러개 포함하고 있다. 사용자의 데이터 기억요구가 증가함에 따라 보다 많은 기억장치로 시스템이 구성된다. 이 같은 시스템에 있어서는, 1대의 기억장치가 고장이 나면 상당히 파괴적인 상황이 발생할 우려가 있다. 대부분의 시스템은, 결합이 있는 장치가 수리 또는 교환되어 상실된 데이터가 복원될 때까지 동작이 불가능하게 된다. 기억 장치의 수가 증가함에 따라서, 그들 중 어느 장치가 고장나서, 시스템의 장애가 발생될 확률도 증가된다. 동시에, 컴퓨터 사용자는 시스템의 일관된 사용가능성에 대해 더욱 더 의존한다. 따라서, 고장난 기억장치에 포함되어 있던 데이터를 재구축하고, 기억장치의 고장이 존재하는 상태에서 시스템의 동작을 지속시키는 개량된 방법을 연구하는 것이 필수적인 과제로 되어 왔다.
이들 문제를 해결하는 하나의 방법은 [미러(대칭)구성(mirroring)]으로서 알려져 있다. 이 미러구성방법은 원래의 데이터와 동일한 데이터를 포함하는 중복 세트의 기억장치(a duplicate set of storage devices)를 유지하는 것이다. 원래의 세트중에서 어느 장치가 고장난 경우, 이 중복세트가 시스템에 데이터를 공급할 수 있다. 이 방법은 그 문제를 해결하기 위해 상당히 유효한 방법이기는 하나, 고객이 2배의 기억장치에 따른 대금을 지불해야만 하므로, 상당히 값비싼 방법이다.
이 보다 값 싼 다른 방법은 패리티 블록(parity blocks)을 사용하는 것이다. 이 패리티 블록은 여러 다른 기억장치상의 특정한 위치에 기억된 모든 데이터 레코드(records)의 배타적 OR(Exclusive-OR)에 의해서 형성되는 레코드이다. 달리 말해서, 한 기억장치의 특정한 위치에 있는 데이터 위치에 있는 데이터 블록중의 각 비트가 기억장치 그룹중의 각 기억장치의 동일 위치에 있는 다른 모든 비트와 배타적 OR되어, 패리티 비트의 블록이 생성되고, 이 패리티 블록은 다른 기억장치의 동일 위치에 기억된다. 이 그룹중의 어느 기억장치가 고장난 경우, 그 고장난 장치의 어느 위치에 포함된 데이터는, 나머지 기억장치의 동일 위치에 있는 데이터 블록과 그것에 대응하는 패리티 블록의 배타적 OR를 취함으로써, 재생될 수 있다.
미합중국 특허 제 4092732호는 패리티 블록방법을 기재하고 있다. 이 특허의 장치에서는, 1대의 기억장치를 사용하여, 1그룹의 기억장치에 대한 패리티 정보를 기억한다. 이 패리티 레코드로 망라되는 그룹중의 어느 기억장치 상에서 레코드가 변경될 때마다, 패리티 블록을 포함하는 기억장치에서의 판독과 기록이 행해진다. 따라서, 패리티 레코드를 포함하는 기억장치가 기억동작의 결정적 요소로 된다. 미합중국 특허 제 4761785호에서는, 패리티 블록을 기억장치 세트에 거의 균동하게 분배함으로써, 패리티 정보의 기억을 개선시킨다. 이 특허는 본 명세서에 인용된다. 세트중의 N개의 기억장치는 각각 복수의 레코드를 포함하는 사이즈가 동등한 다수의 어드레스 블록(a multiple of equally sized address blocks)으로 분할된다. 동일 어드레스 범위를 갖는 각 기억장치로부터의 블록들은 블록 스트라이프(stripe of blocks)를 형성한다. 각 스트라이프는 1대의 기억장치상에, 그 스트라이프의 나머지 블록에 대한 패리티를 포함하는 블록을 가진다. 여러 다른 스트라이프의 패리티 블록들은 여러다른 기억장치들에 라운드 로빈방식(a round robin manner)으로 분배된다.
상기한 미합중국 특허 제 4092732호 및 미합중국 특허 제 4761685호 명세서에 기재되어 있는 바와 같이 패리티 레코드를 사용하면, 미러구성에 비하여 데이터 보호의 비용이 크게 감소된다. 그러나, 상기한 두 개의 특허가 데이터 회복 또는 보호수단(a data recovery of protection means)을 개시하고 있기는 하지만, 데이터의 재구축중에 사용자에 대해 시스템을 동작상태로 유지하는 수단은 제공하고 있지 않다. 고장난 기억장치를 수리 또는 교환하고 뒤이어 데이터를 재구축하기 위해 메모리 제어장치를 정지하는 동안, 정상적인 동작은 중단된다.
이 종래의 기술은 전적으로 데이터의 재구축을 위한 소프트웨어에 의거하고 있으므로, 시스템이 상당한 시간동안 동작불능상태로 될 수 있다.
종래기술은 중복 또는 대기(duplicate or standby) 기억장치를 사용하지 않은 동적 시스템의 회복 및 계속동작을 개시하지 않는다.
미러구성에서는 기억장치의 수를 배로 할 필요가 있다. 그 정도로 극단적이지 않은 방법은 1대 이상의 대기장치, 즉 원래의 세트중에서 어느 장치가 고장난 경우에 온라인(on-line)상태로 될 수 있는 추가적인 예비(spare) 디스크 드라이브를 사용하는 것이다. 이 방법은 완전한 미러구성의 시스템 만큼 비용은 들지 않지만, 여전히 추가의 기억장치가 필요하다. 이 추가의 기억장치가 없을 경우에는 유용한 기능이 제공될 수 없다.
따라서, 본 발명의 목적은, 다수의 데이터 기억장치를 가지는 컴퓨터 시스템에서, 데이터 상실로부터의 회복을 위한 개량된 방법 및 장치를 제공하는 데에 있다.
본 발명의 다른 목적은, 다수의 기억장치를 가지는 컴퓨터 시스템이 1대의 데이터 기억장치가 고장나도 계속해서 동작할 수 있게 하는 개량된 방법 및 장치를 제공하는 데에 있다.
본 발명의 또 다른 목적은, 다수의 보호형(protected) 기억장치를 가지는 데이터 처리 시스템에서 데이터 보호 비용을 절감하는 데에 있다.
본 발명의 또 다른 목적은, 1대의 데이터 기억장치가 고장나서 그 고장난 장치에 포함된 데이터를 시스템이 재구축해야만 할 때, 다수의 데이터 기억장치를 가지는 컴퓨터 시스템의 성능을 향상시키는 데에 있다.
기억제어장치(storage controller)는 복수의 데이터 기억장치에 대한 서비스를 행한다(service). 제어장치상에 있는 기억관리 메카니즘(storage management mechanism)은 서비스를 받는 기억장치상의 패리티 레코드(parity recods)를 유지한다.데이터와 패리티 블록은 상기한 미합중국특허제 4761785호에 기재되어 있는 바와 같이 편성된다.
어느 한 기억장치가 고장난 경우에도, 시스템은 계속동작한다. 기억관리 메카니즘은 고장난 장치에 대한 엑세스가 시도되었을 때, 그 고장난 장치상에 있었던 데이터를 재구축하고, 이것을 남은 기억장치상의 패리티 블록 영역(parity block areas)에 기억한다.
기억관리 메카니즘은, 각 데이터 블록마다, 대응하는 패리티 블록의 위치와 데이터 블록의 상태를 나타내는 상태 맵(status map)을 포함한다. 어떤 기억장치가 고장난 경우, 기억관리 메카니즘은 고장동작 모드로 된다. 이 고장동작모드 동안, 기억관리 메카니즘은 고장난 기억 장치상의 데이터에 대한 엑세스 전에 상태 맵을 검사한다. 데이터가 아직 재구축되어 있지 않은 경우, 기억관리 메카니즘은, 우선, 패리티 블록을 포함하는 패리티 그룹 내의 모든 기억장치상의 동일 블록들의 배타적 OX(XOR)를 순서적으로 판독하여 누계함으로써, 그 기억블럭내의 데이터를 재구축해야 한다. 이 배타적 OR의 결과로 얻어지는 데이터 블록이 재구축된 데이터로서, 이것은 패리티 블록의 위치에 기억된다.
그 다음, 상태 맵이 블록이 재구축되었음을 나타내도록 갱신된다. 데이터가 재구축된 후에는, 이전(the former) 패리티 블록으로부터의 직접적인 판독 또는 이전의 패리티 블록에 대한 직접적인 기록만이 필요하다. 마찬가지로, 기억관리 메카니즘은(고장나지 않은 장치상의) 동일 스트라이프 상의 다른 어떤 블록에 대한 기록 전에 고장난 장치상의 기억 블록으로부터 데이터를 재구축한다. 이것은 스트라이프 상의 어느 블록에 대한 기록 동작으로 패리티가 변경되어, 고장난 장치 상의 데이터 블록에 대한 이후의 재구축을 불가능하게 만들기 때문에 필요하다.
따라서, 어떤 기억장치가 고장나면, 판독 동작 및 기록동작시에 기억관리 메카니즘이 데이터를 재구축하므로 처음에는 시스템 성능이 저하된다. 데이터가 재구축된 후에는 성능이 빠른 속도로 향상된다.
바람직한 실시예에서, 기억장치의 편성 및 패리티 정보의 생성과 기억은 상기 미국특허 제4761785호 명세서에 기재된 바와 같다. 재구축된 데이터는 상실된 데이터가 존재한 스트라이프에 대한 패리티 데이터가 통상적으로 기억되는 장소에 기억된다. 기억제어장치 또는 시스템의 어느 다른 부분을 정지하고, 고장난 기억장치를 수리하고, 그 다음에 상실된 데이터를 재구축할 필요가 없다. 이 바람직한 실시예에서는, 이 기억관리 메카니즘을 사용하는 컴퓨터 시스템이 사용자에 대해 완전히 이용가능한 상태에서 데이터가 회복되고 기억된다. 기억장치는 고장난 장치가 수리 또는 교환되기까지, 패리티 보호없이 동작한다. 이 실시예는 거의 추가적 비용없이 연속운전과 단일 레벨의 장애보호를 실현한다.
제1의 다른 실시예에서는, 재구축된 데이터에 고장나지 않은 각 기억장치의 예비기억영역(spare areas of storage)이 할당된다. 이들 예비기억영역 전체가 가상 예비기억장치를 구성한다. 데이터가 재구축되는 때, 그것은 가상 예비기억장치에 놓여지고, 패리티는 통상의 방식으로 유지된다. 이 대체 실시예는 단일기억장치가 고장난 후에도 패리티 데이터가 계속해서 유지되므로, 추가의 장애 보호레벨을 실현한다. 그러나, 예비기억레벨을 위한 추가의 기억공간이 필요하게 될 수도 있거나, 그러한 예비기억영역이 일시 데이터기억등의 다른 목적에 통상 사용되는 경우에는 성능의 저하가 초래될 수도 있다.
제2도의 또 다른 실시예에서는, 기억관리 메카니즘이 호스트시스템(host system)의 운영 소프트 웨어에 상주하지만, 그 외의 점에서는 기억제어장치에 상주하는 기억관리 메카니즘과 동일한 기능을 한다. 이 실시예는 일반적인 바람직한 실시예보다도 속도가 느리나, 기억제어장치의 간격을 감소시킬 수 있다.
이하, 도면을 참조하여 본 발명을 상세히 설명하겠다.
제1도에는 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템(100)의 주요 구성요소가 도시되어 있다. 호스트 시스템(101)은 버스(102)를 경유하여 기억제어장치(103)와 연결된다. 이 기억제어장치(103)는 프로그램식(programmed) 프로세서(104), 불휘발성 RAM(NVRAM)(105), 배타적 OR 하드웨어(XOR)(108), 캐쉬 메모리(RAM)(109)를 포함한다. 불휘발성 RAM(105)은 상태 맵(106)과 내용테이블(table of cotens : TOC)(107)을 포함한다. 제어장치(103)는 기억장치(121∼124)의 동작을 제어한다. 바람직한 실시예에서, 기억장치(121∼124)는 회전식 자기디스크 기억장치(rotating magnetic disk storage units)이다. 제1도에는 4대의 기억장치가 도시되어 있는데, 기억제어장치(103)에 접속되는 실제 장치의 수는 달리 할 수도 있다는 것을 염두에 두어야한다. 또한, 둘 이상의 기억제어장치(103)를 호스트 시스템(101)에 접속할 수 있음도 주목해야 한다. 바람직한 실시예에서는, 컴퓨터 시스템(100)을 IBM AS/400 컴퓨터 시스템으로 하고 있으나, 어떠한 컴퓨터 시스템도 사용될 수 있다.
각 기억장치의 기억영역은 블록(131-138)으로 분할되어 있다. 바람직한 실시예에서는, 모든 기억장치의 기억용량이 동일하고, 모든 패리티 보호 블록(all parity protected blocks)의 사이즈가 동일하다. 본 발명은 다양한 사이즈의 기억장치 또는 다양한 사이즈의 블록 구성으로 사용될 수 있지만, 이 바람직한 실시예에서는 제어 메카니즘이 간단해진다.
여러 기억장치상의 동일위치에 있는 모든 블록의 세트가 스트라이프(stripe)를 구성한다. 제1도에서, 기억블럭(131-134)이 제1스트라이프를 구성하고, 블록(135-138)이 제2스트라이프를 구성한다. 각 스트라이프의 블록들 중의 하나가 패리티 블록(parity block)으로 지정된다. 제1도에서는, 사선을 그어 패리티블럭(131, 136)을 나타내고 있다. 사선을 긋지 않은 나머지 블록(132-135), (137-138)은 데이터를 기억하기 위한 데이터 기억 블록이다. 블록(131-134)으로 이루어진 제1스트라이프의 패리티 블록은 그 스트라이프의 나머지 블록내에 있는 데이터의 배타적 OR(Exclusive-OR)을 포함한다.
바람직한 실시예에서는, 제1도에 도시한 바와 같이, 패리티 블록을 여러 다른 기억장치에 라운드 로빈 방식(a round robin manner)으로 분배한다. 기록동작 마다 시스템이 동일 스트라이프에 기록되는 데이터를 포함하는 블록뿐만 아니라 그 동일 스트라이프의 패리티 블록을 갱신해야 하므로, 통상은 패리티 블럭 쪽이 데이터 블록 보다도 빈번하게 수정된다. 패리티 블록을 여러다른 기억장치에 분배하면, 대부분의 경우, 엑세스 작업부하의 분배에 의해 성능이 향상된다. 단, 본 발명을 실시하는데 이와 같은 분배가 반드시 필요한 것은 아니며, 대체 실시예에서는 단일의 기억장치상에 모든 패리티 블록을 위치시키는 것도 가능하다.
바람직한 실시예에서는, 각 스트라이프의 1블럭을 패리티 정보전용으로 충당한다. 어떤 대체 실시예에서는, 스트라이프중의 하나가 패리티 보호를 포함하지 않는다. 이 스트라이프는 보호를 필요로 하지 않은 일시(temporary) 데이터용으로 유보된다. 제8도는, 블록(811-814)으로 이루어지는 스트라이프의 그 대체 실시예를 도시한다.
이 블록은 이 패리티 데이터 보호구성의 일 부분이 아닌 여분의(extra)기억공간이므로, 임의의 사이즈이어도 무방하다.
각각이 데이터 블록과 패리티 블록을 포함하는 스트라이프에 기억영역에 할당하는 상기의 방식의 상기한 미합중국 특허제 4761785호 명세서에 기재되어 있는 것과 동일하다.
기억제어장치(103)는 기억관리 프로그램을 실행하는 프로그램식 프로세서(104)를 포함한다. 기억관리 프로그램의 동작에 대해서는 이후에 설명한다. 기억제어장치(103)는 또한 불휘발성 RAM(105) 또는 캐쉬 RAM(109)내의 데이터의 배타적 OR를 계산하는 배타적 OR 하드웨어(108)를 포함한다. 어떤 대체 실시예에서는, 프로세서(104)로 배타적 OR 연산을 실행할 수도 있지만, 이 같은 목적용의 특별한 하드웨어를 사용하면 성능이 향상된다.
불휘발성 RAM(105)는 기억장치에 물리적으로 기록될 대기상태의 데이터에 대한 일시 대기영역(temporary queueing area)으로서 기억 제어장치(103)에 의해 사용된다. 불휘발성 RAM(105)에는 이 실시 데이터에 부가하여, 상태 맵(106)과 내용테이블(TOC)(107)이 기억된다. 내용테이블(107)은 기록될 대기상태의 데이터와 그것이 기억되는 기억장치내의 위치와의 맵핑을 포함하고 있다.
상태 맵(106)은 각 데이터 블록의 대응(correspomding) 피리티 블록의 위치 및 고장 회복 모드(failurs rrecovery mode)중의 각 데이터 블록의 상태를 식별하기 위해 사용된다. 상태 맵(106)은 제2도에 상세하게 도시되어 있다. 상태 맵(106)은 각 기억장치마다 상태 맵 기입항목(status map entries)의 테이블을 포함하고 있다. 각 상태 맵 기입항목은(201)은 각 기억장치상의 데이터 블록의 위치(202), 고장모드로 동작하는때에 그 데이터를 회복할 필요가 있는 지의 여부를 나타내는 상태 비트(203) 및 그에 대응하는 패리티 블록의 위치(204)를 포함한다.
다시, 제1도를 참조하면, 캐쉬 메모리(109)는 휘발성 RAM으로서, 기억장치로부터 판독된 데이터를 기억하는데에 사용된다. 캐쉬메모리(109)는 판독동작시에 기억장치로부터 호스트 시스템(101)에 데이터를 전송할 때에 버퍼로서 작용한다. 그리고, 이 데이터의 수정 및 재기록 확률이 높다는, 호스트 시스템(101)으로부터의 표시(indications)에 응답하여, 데이터가 캐쉬 메모리(109)에 저장된다. 아직 수정되지 않는 데이터는 대응하는 패리티 데이터의 갱신을 위해, 수정된 데이터와 배타적 OR 되어야 하므로, 판독된 데이터를 캐쉬 메모리(109)에 저장하면, 기록동작 직전에 그것을 다시 판독할 필요가 없게 될 수 있다. 캐쉬 메모리(109)는 단지 성능 향상을 위해 존재한다. 어떤 대체 실시예에서는, 그것 없이도 본 발명을 실시하는 것이 가능하다. 기억장치로부터 판독된 데이터를 불휘발성 RAM에 보존하는 것이 시스템의 완전성(integrity)을 위해 반드시 필요한 것은 아니므로, 캐쉬 메모리(109)는 휘발성 RAM으로서 특정되고 있다. 그러나, 그 캐쉬는 불휘발성 RAM(105)의 일부로서 구현될 수도 있다. 메모리 모듈의 상대적인 비용과 사이즈에 따라서, 그와 같은 방법이 바람직할 수도 있다.
본 발명에 필요한 하드웨어 및 소프트 웨어에 관한 시스템의 기능에 대해서 이후에 서술한다. 시스템은 정상모드와 고정모드의 두 개의 동작모드를 가진다. 모든 디스크 기억장치가 적절하게 기능하고 있을때에, 시스템은 정상모드로 동작한다. 1대의 기억장치가 고장났을 때, 동작모드는 고장모드로 변하지만, 시스템은 계속동작한다.
정상모드에서의 판독 동작을 제3도에 도시한다. 스텝(301)에서 호스트로부터의 판독(READ) 명령을 수신하여, 스텝(302)에서 요구된 데이터 불휘발성 RAM(105) 또는 캐쉬 메모리(109)내에 존재하는 지의 여부를 판정한다. 존재하는 경우, 스텝(304)에서 불휘발성 RAM(105) 또는 캐쉬 메모리(109)내의 데이터를 호스트에 직접 전송한다. 그렇지 않은 경우, 스텝(303)에서 우선 적당한 기억장치로부터 캐쉬 메모리(109)로 데이터를 판독해내고, 그 다음 스텝(304)에서 캐쉬메모리 부터 호스트 시스템으로 전송한다. 캐쉬 메모리(109)는 기록(WRITE)동작 중에도 성능의 개선을 가져온다. 기록동작이 처리될 때에, 갱신될 데이터의 원래의 버전(original version)이 이미 캐쉬 메모리(109)내에 있는 경우, 패리티를 갱신하기 위해 다시 데이터를 판독할 필요 없고, 따라서 시스템 성능이 개선된다. 캐쉬 메모리(109)의 내용은 당 기술분야에 잘 알려진 다양한 캐쉬 관리기술의 어떤 것을 이용하여 관리한다.
기록동작은 기억제어장치의 프로세서(104)내에서 수행하는 2개의 비동기 태스크(two asynchronous tasks)에 의해 실행된다. 1개의 태스크는 버스(102)를 경유하여 호스트와 통신하는 것으로, 이것을 제4도에 나타낸다. 스텝(401)에서 호스트로부터 기록(WRITE) 명령을 수신하였을 때, 기록동작이 개시된다. 다음, 스텝(402)에서 내용테이블(107)을 조사하여 기억장치에 기록될 데이터를 기억하는데에 충분한 공간이 불휘발성 RAM(105)내에 이용가능한지의 여부를 판정한다(이용가능한 공간에는 기록될 데이터의 백 레벨버젼(back-level versions)에 의해 사용되는 공간과 사용되지 않은 공간이 포함된다.) 공간이 이용 가능하지 않은 경우, 제어장치(103)는 호스트로부터 데이터를 수신할 수 없어, 스텝(403)에서 공간이 이용가능하게 될 때까지 대기해야만 한다(즉, 불휘발성 RAM(105)내에 이미 존재하는 데이터가 기억영역(121-124)에 기록될 때까지 대기해야만 한다.). 불휘발성 RAM(105)내에서 공간이 이용가능하게 되었을 때, 스텝(404)에서 호스트(101)로 부터 불휘발성 RAM(105)으로 데이터가 복사되어, 내용테이블(107)이 갱신된다. 다음, 스텝(405)에서 프로세서(104)가 호스트에 동작완료 메시지를 발생한다. 동작완료 메시지를 수신한 후, 호스트는 마치 기억영역(121-124)에 실제로 데이터가 기록된 것처럼, 자유롭게 처리를 계속할 수 있지만, 실제로는 데이터가 불휘발성 RAM(105)중에서 잠시 대기할 수도 있다. 호스트로부터 보면, 이 동작은 완료되어 있는 것처럼 보인다.
제2의 비동기 태스크는 불휘발성 RAM(105)로부터 기억장치에 데이터를 기록하는 것이다. 정상모드에서의 이 태스크의 흐름도를 제5도에 도시한다. 이 태스크는 스텝(501)에서 불휘발성 RAM(NVRM)(105)내에서 대기하고 있는 기록동작들중의 어느 기록동작을 선택한다. 이 선택기준은 본 발명의 일부가 아니고, 예를 들면 선입선출(First-in-first-out), 후입선출(Lask나-in-first-out) 혹은 시스템 성능 및 기타 고려사항에 의거한 다른 어떠한 기준이어도 무방하다. 기록 동작이 실행될 때, 패리티를 갱신해야만 한다. 신(new) 기록 데이터와 구(old) 데이터와의 배타적 OR을 취함으로써, 그 기록동작에 의해서 변경되는 비트들의 비트 맵을 얻는 것이 가능하다. 이 비트 맵을 기존의 패리티 데이터와 배타적 OR하면, 갱신된 패리티 데이터가 얻어진다. 따라서, 기억장치로의 기록전에, 우선 스텝(502)에서 구 데이터가 수정되지 않는 형태로 캐쉬 메모리(109)내에 존재하는지의 여부를 검사한다. 존재하지 않는 경우, 스텝(503)에서 그 데이터를 캐쉬 메모리(109)로 판독한다. 다음, 캐쉬 메모리(109)내의 구 데이터를 스텝(504)에서 불휘발성 RAM(105)내의 신 데이터와 배타적 OR(XOR)하여 변경된 데이터의 비트 맵을 생성한다. 이 비트 맵은 불휘발성 RAM(105)에 일시적으로 저장되고, 신 데이터는 기억장치(121-124)중의 1개에 기록된다(스텝(505)). 다음, 스텝(507)에서 구 패리티 데이터를 캐쉬 메모리(109)로 판독해내고(스텝(506)에서 수정되지 않은 데이터가 캐쉬 메모리내에 있는 경우), 스텝(508)에서 그것을 비트맵과 배타적 OR하여 신 패리티 데이터를 생성한다. 스텝(509)에서 이신 패리티 데이터를 기억장치(121-124)중의 1개에 기록하고, 내용테이블(107)을 갱신하여 기록동작을 종료한다.
기억장치의 고장이 검출되면, 시스템은 고장모드로 동작하기 시작한다. 기억장치의 고장이라는 것은 그것이 가능할 수 없다는 즉, 데이터 엑세스를 행할 수 없다는 의미이다. 이와 같은 고장은 반드시 장치 자체의 파괴에 의해서 발생하는 것에 한정되지 않는다. 예를 들면, 장치의 전원이 끊어지는 것도 있고, 데이터 케이블이 절단되는 것도 있을 수 있다. 시스템으로 보면, 원인이 무엇이던간에, 그와 같은 고장도 기억장치의 고장이다. 그와 같은 고장을 검출하는 검출 메카니즘은 당 기술분야에 잘 알려져 있다. 일반적인 메카니즘의 예로서는, 응답을 수신하기 전의 타임-아웃(time-out)이나 수신된 데이터에서의 지속적인 높은 에러율(high error rates)을 검출하는 것이 있다.
제6도에, 시스템이 고장모드로 동작하고 있는 때의 판독동작을 나타낸다. 정상모드의 판독동작과 마찬가지로, 스텝(601)에서 호스트로부터의 판독동작이 수신되었을때에, 스텝(602)에서 제어장치는, 우선 불휘발성 RAM(105) 및 휘발성 캐쉬 메모리(109)를 검사하여 원하는 데이터가 있는지의 여부를 판단한다. 불휘발성 RAM 또는 캐쉬내에 데이터가 존재하는 경우, 데이터를 시스템 버스(102)를 경유하여 호스트에 전송한다. 데이터가 불휘발성 RAM 또는 캐쉬내에 없고, 고장나지 않은 기억장치상에 있는 경우에는 (스텝(603)), 스텝(604)에서 기억장치로부터 캐쉬 메모리로 통상의 방식으로 데이터를 판독해 낸다. 데이터가 고장난 기억장치상에 있는 경우에는(스텝(603)), 스텝(605)에서, 제어장치는 상태 맵(106)내의 상태맵 기입항목(201)을 검사하여 원하는 데이터의 기억장치내의 위치를 조사한다. 상태맵 기입항목은 데이터가 회복되었는지의 여부, 즉 데이터가 배타적 OR에 의해서 재구축되어 어느 대체위치에 기억되었는지의 여부를 나타낸다. 상태 맵이 데이터가 회복되어 있지 않은 것을 나타내는 경우(스텝(605)), 스텝(608)에서 제어장치는 고장난 장치 이외의 모든 기억장치상의 대응하는 위치를 순차적으로 판독한다. 판독된 각 데이터블록은 XOR 하드웨어(108)에 의해서 이전에 판독된 블록의 XOR결과의 누계와 XOR 된다. 최종적인 XOR결과가 고장난 장치의 재구축된 데이터로 된다. 스텝(609)에서 이 재구축 데이터가 이 데이터 블록에 대응하는 패리티 블록에 기록된다. 이 패리티 블록의 위치에 기록된 후, 스텝(610)에서, 동일 스트라이프중의 각 블록의 상태 비트(203)를 데이터가 회복된 것을 나타내는 "1"로 변경하는 것에 의해 상태 맵(108)을 갱신한다.
스텝(611)에서, 재구축 데이터를 호스트로 전송한다. 상태 비트(203)가 데이터가 회복되었다는 것을 나타내는 "1"을 원래부터 포함하는 경우(스텝(605)), 스텝(606)에서, 제어장치는 상태 맵으로부터 이전의(the fomer) 패리티 블록(여기에 회복된 데이터가 저장된)의 위치를 얻고, 스텝(607)에서, 이 위치로부터 데이터를 캐쉬 메모리(109)에 직접 판독해 낸다. 이 장치에 의해, 특정한 데이터 블록을 회복하는데에 있어 모든 디스크 기억장치를 1회만 판독하면 된다. 데이터가 회복되면, 그 데이터의 물리적인 기억위치가 패리티 기억을 위해 이전에 사용되었던 위치에 유효하게 재배치되고, 그 후는 그 블록을 판독하는데에 있어 1대의 기억장치를 판독하는 것만으로도 충분하게 된다.
제7도는, 시스템이 고장모드로 동작하고 있을 때 기억장치로의 기록동작을 나타낸다. 정상모드 기록의 경우와 마찬가지로, 제4도에 도시한 호스트 통신 태스크가 기록될 데이터를 호스트로부터 버스(102)를 경유하여 수신한다. 기억장치에 대한 기록에 대한 기록 태스크는 스텝(701)에서, 불휘발성 RAM(105)내의 대기중의 것들로부터 어떤 기록동작을 선택한다. 제어장치가 고장난 장치에 데이터를 기록할 것인지의 여부를 판정하여(스텝(702)), 상태 맵을 검사한다(스텝(703), (709)). 고장난 장치에 데이터를 기록하려고 하지만, 블록내의 데이터가 아직 회복되지 않은 경우에는, 그 블록을 회복하고 나서가 아니면, 기록동작은 가능하게 되지 않는다. 회복은 판독동작에 대해서 상술한 것과 동일한 스텝을 따른다. 스텝(704)에서, (패리티 블록을 포함하는)동일 블록 스트라이프중의 각 블록이 판독되고, 그 내용이 이전에 판독된 블록의 배타적 OR의 누계와 배타적 OR(XOR)된다. 그 결과는 재구축된 데이터로서, 스텝(705)에서, 그것은 패리티 블록용으로 사용되는 위치에 기록된다. 블록전체의 회복이 완료되면, 스텝(706)에서 신데이터(통상은 그 블록의 일부분을 포함함)가 이전의 패리티 위치에서 회복된 데이터 상에 기록되고, 스텝(707)에서 블록이 회복된 것을 나타내도록 상태 맵이 갱신된다. 고장난 장치에 데이터를 기록하려고 하지만, 데이터가 이미 회복되어 있는 경우에는 (703), 스텝(708)에서 회복된 데이터를 기억하는데에 현재 사용되고 있는 이전의 패리티 위치에 직접 기록된다.
고장모드로 동작하고 있을 때 고장나지 않은 장치에 데이터를 기록하려는 경우(702), 스텝(709)에서 제어장치는 상태 맵을 검사한다. 상태가 "1"로서, 고장난 장치상의 동일 스트라이프중의 데이터 블록이 이미 회복되어 있는 것을 나타내는 경우, 스텝(710)에서 기록 데이터를 고장나지 않은 기억장치에 직접 기록한다. 상태가 "0"인 경우에는, 고장나지 않은 장치에 직접 데이터를 기록하는 것은 불가능한데, 그 이유는 그와 같은 동작이 패리티를 변경시켜, 고장난 기억장치내의 대응하는 데이터를 후에 재구축하게 만들기 때문이다. 따라서, 바람직한 실시예에서는, 제어장치가, 우선, 고장난 장치상의 동일 스트라이프중의 데이터 블록을 회복한다. 제7도에 도시한 바와 같이, 스텝(711)에서 우선 고장난 유니트내의 데이터 블록을 배타적 OR(XOR)에 의해 재구축하여, 스텝(712)에서, 상기한 스텝에 따라서 패리티 블록 위치에 저장한다.
다음, 스텝(713)에서 기록 데이터를 그의 기억장치에 기록하고, 스텝(714)에서 상태 맵을 갱신한다. 기록될 데이터를 포함하는 스트라이프의 패리티 블록이 고장난 장치상에 있는 경우에는, 패리티가 어떠한 형태로던 상실케 될 것이므로, 재구축은 불필요하다. 따라서, 기억장치의 고장이 검출되었을 때, 이 스트라이프상의 모든 블록의 상태가 "1"로 세트된다. 그 결과, 이 스트라이프상의 데이터는 고장난 장치상의 대응하는 블록이 이미 회복되어 있는 것처럼, 기억장치에 직접 기록될 것이다. 예를 들어, 제1도를 참조하면, 기억장치(131)가 고장난 경우, 제어장치는 즉시, 블록(132-134)의 상태를 "1"로 세트시켜, 이들 블록에 대한 기록동작이 직접 진행될 수 있도록 한다. 어떤 대체 실시예에서는, 기록동작이 고장나지 않은 장치에 대한 것이고, 고장난 장치상의 대응하는 블록이 회복되지 않은 경우, 정상모드의 기록동작에 사용하는 것과 동일한 스텝에 따라서 패리티 블록을 갱신함으로써, 고장난 장치상의 데이터의 판독 또는 기록이 요구되는 경우에 고장난 장치의 데이터를 이후에 재구축할 능력을 보존하는 것이 가능하게 된다.
바람직한 실시예에서는, 패리티 블록을 사용하여 재구축된 데이터를 기억함으로써, 그 결과, 시스템은 1대의 기억장치가 고장난 후에 패리티 보호없이 수행된다. 제8도에 도시한 바와 같이, 기억장치상에 충분히 큰 예비기억 스트라이프를 유보해두는, 대체실시예도 가능하다. 이 예비기억 스트라이프, 패리티 보호를 필요로 하지 않으며, 필요한 경우에 중복기록될 수 있는 일시 데이터를 포함할 수도 있거나, 또는 전혀 데이터를 포함하지 않을 수도 있다. 이 대체 실시예에서는, 재구축된 패리티 블록 대신에 예비기억 스트라이프(811-814)의 블록에 재배치 된다. 이 대체 실시예는, 고장난 장치의 비예비내용(non-spare contents)을 수용하는데에 충분한 예비기억영역이 존재하는 경우에만 가능하다. 이것도 또한, 시스템에 이용될 수 있는 일시기억영역의 양을 감소시키는 결과를 초래하여, 성능이 저하되거나, 시스템이 서비스할 수 있는 사용자의 수가 감소되게 할 가능성이 있다.
이 대체실시예에서는, 정상모드의 판독동작과 기록동작은 바람직한 실시예에서와 완전히 동일한 방식으로 행해진다. 고장모드로 동작하고 있을 때, 상태 맵이 검사되고, 필요에 따라서 상기와 같이 데이터가 재구축된다. 그러나, 재구축된 데이터는 패리티 블록에는 기록되지 않고, 예비기억영역중의 블록에 기록된다. 상태 맵(106)에는, 고장난 장치에 포함되어 있던 데이터의 새로운 위치를 기억하고 별도의 필드가 필요하다.
또한, 기록동작시에, 정상모드 기록동작의 경우와 동일한 방식으로 패리티가 갱신된다. 이것은 고장난 장치상의 데이터가 재구축된 후에 행해진다.
또 다른 대체실시예에서는, 패리티 보호와 미러구성이 동일 시스템에서 조합된다. 기억장치상에 포함되는 어떤 데이터는 본 명세서에 기술된 패리티 보호 메카니즘에 의해서 보호되고, 다른 데이터는 미러구성을 갖는다. 기억장치가 고장난 경우, 패리티 보호된 데이터는 상술한 바와 같이 재구축되어 기억되고, 미러구성의 데이터는 미러 구성의 카피(copy)를 포함하는 기억장치로부터 엑세스된다.
이상에서는 본 발명의 특정 실시예 및 몇가지 변형실시예를 개시하고 있으나, 당업자라면, 특허청구범위의 범주내에서 형태 및 세부사항을 추가적으로 변경할 수도 있음을 알 것이다. 특히, 개시된 양호한 실시예에서는 자기 디스크 기억 장치를 사용하고 있으나, 본 발명은 삭제가능한 판독/기록 특성을 가진 다른 기억장치 기술에도 적용가능하다.
Claims (26)
- 데어터를 포함하기 위한 다수의 데이터 기억 블록(a plurality of data storage blocks)과 상기 데이터 기억 블록들에 기억된 데이터의 패리티(Parity)를 포함하기 위한 패리티 기억 블록을 포함한 기억블록 스트라이프(a stripe of storage blocks)를 포함하되, 상기 기억 블록들의 각각을 제각기의 데이터 기억장치(data storage unit)상에 포함하는, 컴퓨터 시스템을 동작시키는 방법에 있어서, 어떤 데이터 기억 블록을 포함하는 데이터 기억장치가 고장났을 때, 그 데이터 기억 블록내에 포함된 데이터를 상기 스트라이프내의 나머지 기억 블록들로부터 재구축하는(reconstructing) 단계와; 상기 재구축단계에서 재구축된 데이터를, 상기 데이터 기억장치들 중에서 상기 고장난 데이터 기억장치가 아닌 나머지 고장나지 않은 데이터 기억장치들 중의 하나에 기억하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템 동작 방법.
- 제1항에 있어서, 상기 재구축단계는 상기 데이터에 대한 엑세스가 시도될 때 데이터의 재구축하는 것을 특징으로 하는 컴퓨터 시스템 동작 방법.
- 제1항에 있어서, 상기 기억단계는 상기 재구축된 데이터를 상기 패리티 기억블록내에 기억하는 것을 특징으로 하는 컴퓨터 시스템 동작 방법.
- 제3항에 있어서, 상기 재구축단계는 상기 데이터에 대한 엑세스가 시도될 때 데이터를 재구축하는 것을 특징으로 하는 컴퓨터 시스템 동작 방법.
- 제1항에 있어서, 상기 데이터 기억장치들은 예비기억블록(a spare storage block)을 포함하며, 상기 기억 단계는 상기 재구축된 데이터를 상기 예비 기억 블록내에 기억하는 것을 특징으로 하는 컴퓨터 시스템 동작 방법.
- 제5항에 있어서, 상기 재구축단계는 상기 데이터에 대한 엑세스가 시도될 때 데이터를 재구축하는 것을 특징으로 하는 컴퓨터 시스템 동작 방법.
- 컴퓨터 시스템용의 기억장치에 있어서, 적어도 3개의 데이터 기억장치와; 데이터를 포함하기 위한 다수의 데이터 기억 블록과 상기 데이터 기억 블록들내에 기억된 데이터의 패리티를 포함하기 위한 패리티 기억 블록을 제각기 포함하는 적어도 하나의 기억 블록 스트라이프(at least one stripe of storage blocks)로서, 상기 기억블록들의 각각을 제각기의 데이터 기억 장치상에 포함하는, 상기 적어도 하나의 기억블록 스트라이프와; 상기 데이터 기억 블록들중의 어떤 것들 포함하는 데이터 기억 장치가 고장났을 때, 그 데이터가 기억 블록내에 포함된 데이터를 상기 스트라이프내의 나머지 기억 블록들로부터 재구축하는 수단과; 상기 재구축된 데이터를, 상기 데이터 기억장치들 중에서 상기 고장난 데이터 기억장치가 아닌 나머지 고장나지 않은 데이터 기억 장치들 중의 하나에 기억하는 수단을 포함하며; 상기 재구축된 데이터가 기억되는 상기 데이터 기억장치는 상기 재구축수단은 데이터를 재구축해내는 상기 스트라이프의 상기 나머지 기억블록들중의 하나를 포함하는 데이터 기억 장치인 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제7항에 있어서, 상기 기억수단은 상기 재구축된 데이터를 상기 패리티 기억 블록내에 기억하는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제8항에 있어서, 상기 재구축수단은 기억제어장치(Storage controller)를 포함하고, 상기 기억제어장치는: 기억 관리 프로그램(storage management program)을 실행하는 프로그램 가능 프로세서(programmabk processor)와; 불휘발성 RAM(mon-volatile random access memory)을 포함하는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제8항에 있어서, 상기 데이터 처리 시스템은 적어도 두 개의 상기 기억 블록 스트라이프를 포함하며; 상기 패리티 기억 블록들은 상기 데이터 기억 장치들에 라운드 로빈 방식(round robin manner)으로 분배되는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제8항에 있어서, 상기 데이터 기억 장치들의 각각은 회전 자기 디스크 드라이브 기억 유니트(arotating magnetic disk drive storage unit)인 것을 특징으로 하는 컴퓨터 시스템용 기억장치.
- 제7항에 있어서, 상기 데이터 기억 유니트들의 각각은 예비기억 블록을 포함하며; 상기 기억수단은 상기 재구축된 데이터를 상기 예비 기억블록들중의 하나에 기억하는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제12항에 있어서, 상기 데이터 기억 장치들의 각각은 회전 자기 디스크 드라이브 기억장치인 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제12항에 있어서, 상기 데이터 기억 장치들에 포함된 상기 예비 기억 블록들의 총기억 용량(total storage capacity)은 상기 고장난 기억장치로부터 재구축된 모든 데이터를 포함하기에 충분한 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 컴퓨터 시스템용의 기억제어장치에 있어서, 프로세서와; 메모리와; 데이터를 포함하기 위한 다수의 데이터 기억블록과 상기 데이터 기억 블록들내에 기억된 데이터의 패리티를 포함하기 위한 패리티 기억 블록을 제각기 포함하는 적어도 하나의 기억 블록 스트라이프를 포함하되, 상기 기억 블록들의 각각을 제각기의 데이터 기억 장치에 포함하는, 다수 데이터 기억 장치의 동작을 제어하기 위한 수단; 상기 패리티 기억 블록을 유지하기 위한 수단과; 상기 데이터 기억 블록들중의 어떤 것을 포함하는 데이터 기억 장치가 고장났을 때, 그 데이터 기억 블록내에 포함된 데이터를 상기 스트라이프의 나머지 기억 블록들로부터 재구축하기 위한 수단과; 상기 재구축된 데이터를, 상기 데이터 기억장치들 중에서 상기 고장난 데이터 기억장치가 아닌 나머지 고장나지 않은 데이터 기억 장치들중의 하나에 기억하기 위한 수단을 포함하는 것을 특징으로 하는 컴퓨터 시스템용의 기억제어장치.
- 제15항에 있어서, 상기 기억수단은 상기 재구축된 데이터를 상기 패리티 기억 블록내에 기억하는 것을 특징으로 하는 컴퓨터 시스템용의 기억제어장치.
- 제15항에 있어서, 상기 다수의 데이터 기억장치는 적어도 두 개의 상기 기억 블록 스트라이프를 포함하며; 상기 패리티 기억 블록들은 상기 데이터 기억 장치들에 라운드 로빈 방식으로 분배되는 것을 특징으로 하는 컴퓨터 시스템용의 기억제어장치.
- 제15항에 있어서, 상기 데이터 기억 장치들의 각각은 예비 기억 블록을 포함하며; 상기 기억 수단은 상기 재구축된 데이터를 상기 예비 기억 블록들중의 하나에 기억하는 것을 특징으로 하는 컴퓨터 시스템용의 기억제어장치.
- 제18항에 있어서, 상기 데이터 기억 장치들에 포함된 상기 예비 기억 블록들의 총 기억 용량은 상기 고장난 기억장치들로부터 재구축된 모든 데이터를 포함하기에 충분한 것을 특징으로 하는 컴퓨터 시스템용의 기억제어장치.
- 컴퓨터 시스템용의 기억장치에 있어서, 데이터를 기억하기 위한 적어도 하나의 기억 블록과 예비 기억 영역을 제각기 포함하는 적어도 3개의 데이터 기억장치와; 상기 데이터 기억장치들 중의 어떤 것이 고장난 것을 검출하는 수단과; 상기 고장난 데이터 기억 장치내에 기억된 데이터를 재구축하는 수단과; 상기 재구축된 데이터를 상기 고장난 데이터 기억 장치가 아닌 나머지 고장나지 않은 데이터 기억 장치들의 상기 다수 예비기억영역에 기억하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제20항에 있어서, 상기 다수의 데이터 기억장치내에 기억된 데이터의 패리티를 결정하는 수단과; 상기 패리티를 상기 데이터 기억장치들중의 하나에 기억하는 수단을 더 포함하고; 상기 고장난 데이터 기억 장치에 기억된 데이터를 재구축하는 수단은 상기 고장난 데이터 기억장치가 아닌 상기 나머지 고장나지 않은 데이터 기억장치들에 기억된 데이터와 패리티와의 배타적 OR(exclusive-OR)를 행하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제20항에 있어서, 상기 고장난 데이터 기억 장치가 아닌 상기 나머지 고장나지 않은 데이터 기억 장치들의 상기 다수 예비 기억영역의 총 기억용량은 상기 고장난 데이터 기억 장치로부터 재구성된 모든 데이터를 포함하기에 충분한 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 적어도 3개의 데이터 기억장치와; 패리티 블록들을 데이터 블록 세트들의 함수(a funciton of sets of data blocks)로서 발생하되, 상기 패리티 블록들의 각각을 대응하는 데이터 블록세트의 함수로서 발생하는 패리티 발생수단과; 상기 데이터 기억 장치들상의 데이터 블록 및 패리티 블록의 기억을 관리하는 기억 관리수단과; 상기 데이터 기억장치들중의 어떤 것이 고장난 경우에 그 데이터 기억장치상의 엑세스 불가능한 기억 블록내에 기억된 데이터를 재구축하는 데이터 재구축수단으로서, 상기 기억 관리 수단에 의한 상기 데이터 블록 및 상기 패리티블록의 기억 관리에 따라 상기 엑세스 불가능한 기억블록내에 포함된 데이터를 상기 데이터 기억블록세트들중의 나머지 기억 블록 및 상기 엑세스 불가능한 기억블록이 속하는 대응 패리티 기억블록으로부터 재구축할 수 있는 상기 데이터 재구축수단과; 상기 재구축된 데이터를 상기 데이터 기억장치들중에서 상기 고장난 데이터 기억 장치가 아닌 나머지 고장나지 않은 데이터 기억장치들중의 하나에 기억하는 수단으로서, 상기 재구축된 데이터가 기억되는 상기 데이터 기억장치는 상기 데이터 기억 블록세트의 상기 나머지 기억블록들중의 적어도 하나와 상기 엑세스 불가능한 기억 블록이 속하는 대응 패리티 기억 블록을 포함하는 데이터 기억장치인, 상기 기억수단을 포함하는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제23항에 있어서, 상기 기억 관리수단은 데이터 기억 블록세트의 각각의 기억블록과 상기 데이터 기억장치들의 제각기의 대응 패리티 기억 블록을 분배하기 위한 수단을 포함하는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제24항에 있어서, 상기 데이터 기억 장치들의 각각은 예비 기억영역을 포함하고, 상기 기억 수단은 상기 예비기억 영역에 상기 재구축된 데이터를 기억하는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
- 제24항에 있어서, 상기 패리티 발생수단, 상기 기억 관리 수단 및 상기 데이터 재구축수단을 포함하는 기억 제어 장치를 더 포함하며; 상기 기억 제어 장치는 기억 관리 프로그램을 실행하는 프로그램가능 프로세서 및 RAM(random access memory)를 갖는 것을 특징으로 하는 컴퓨터 시스템용의 기억장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54221690A | 1990-06-21 | 1990-06-21 | |
US542,216 | 1990-06-21 | ||
US542216 | 1990-06-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR920005782A KR920005782A (ko) | 1992-04-03 |
KR960001748B1 true KR960001748B1 (ko) | 1996-02-05 |
Family
ID=24162823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019910009793A KR960001748B1 (ko) | 1990-06-21 | 1991-06-14 | 컴퓨터 시스템 동작방법과 컴퓨터 시스템용의 기억 장치 및 기억제어장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5596709A (ko) |
EP (1) | EP0462917B1 (ko) |
JP (1) | JPH0731582B2 (ko) |
KR (1) | KR960001748B1 (ko) |
CN (2) | CN1038710C (ko) |
CA (1) | CA2044521C (ko) |
DE (1) | DE69131562T2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100893342B1 (ko) * | 2005-12-20 | 2009-04-15 | 후지쯔 가부시끼가이샤 | 컴퓨터 장치 및 집합 서버 장치 |
Families Citing this family (129)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5208813A (en) * | 1990-10-23 | 1993-05-04 | Array Technology Corporation | On-line reconstruction of a failed redundant array system |
JP3409859B2 (ja) | 1991-01-31 | 2003-05-26 | 株式会社日立製作所 | 制御装置の制御方法 |
US6874101B2 (en) | 1991-01-31 | 2005-03-29 | Hitachi, Ltd. | Storage unit subsystem |
JP2743606B2 (ja) * | 1991-04-11 | 1998-04-22 | 三菱電機株式会社 | アレイ型記録装置 |
US5341381A (en) * | 1992-01-21 | 1994-08-23 | Tandem Computers, Incorporated | Redundant array parity caching system |
US5305326A (en) * | 1992-03-06 | 1994-04-19 | Data General Corporation | High availability disk arrays |
AU653670B2 (en) * | 1992-03-10 | 1994-10-06 | Data General Corporation | Improvements for high availability disk arrays |
US5708668A (en) * | 1992-05-06 | 1998-01-13 | International Business Machines Corporation | Method and apparatus for operating an array of storage devices |
JP3183719B2 (ja) * | 1992-08-26 | 2001-07-09 | 三菱電機株式会社 | アレイ型記録装置 |
GB2273798A (en) * | 1992-12-22 | 1994-06-29 | Ibm | Cache system for disk array. |
JPH06324815A (ja) * | 1993-05-13 | 1994-11-25 | Nec Corp | ディスクアレイ装置 |
WO1994029796A1 (en) * | 1993-06-03 | 1994-12-22 | Network Appliance Corporation | A method for allocating files in a file system integrated with a raid disk sub-system |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
DE69434381T2 (de) * | 1993-06-04 | 2006-01-19 | Network Appliance, Inc., Sunnyvale | Verfahren zur Paritätsdarstellung in einem Raid-Untersystem unter Verwendung eines nichtflüchtigen Speichers |
JPH0736633A (ja) * | 1993-07-21 | 1995-02-07 | Nec Corp | 磁気ディスクアレイ |
US5634109A (en) * | 1994-06-20 | 1997-05-27 | International Business Machines Corporation | Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache |
JP3687111B2 (ja) * | 1994-08-18 | 2005-08-24 | 株式会社日立製作所 | 記憶装置システムおよび記憶装置の制御方法 |
US5659704A (en) * | 1994-12-02 | 1997-08-19 | Hewlett-Packard Company | Methods and system for reserving storage space for data migration in a redundant hierarchic data storage system by dynamically computing maximum storage space for mirror redundancy |
US5651133A (en) * | 1995-02-01 | 1997-07-22 | Hewlett-Packard Company | Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system |
US5666512A (en) * | 1995-02-10 | 1997-09-09 | Hewlett-Packard Company | Disk array having hot spare resources and methods for using hot spare resources to store user data |
JP3856855B2 (ja) * | 1995-10-06 | 2006-12-13 | 三菱電機株式会社 | 差分バックアップ方式 |
US5790773A (en) * | 1995-12-29 | 1998-08-04 | Symbios, Inc. | Method and apparatus for generating snapshot copies for data backup in a raid subsystem |
US5734814A (en) * | 1996-04-15 | 1998-03-31 | Sun Microsystems, Inc. | Host-based RAID-5 and NV-RAM integration |
US5917998A (en) * | 1996-07-26 | 1999-06-29 | International Business Machines Corporation | Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging |
US5764880A (en) * | 1996-09-10 | 1998-06-09 | International Business Machines Corporation | Method and system for rebuilding log-structured arrays |
US5960169A (en) * | 1997-02-27 | 1999-09-28 | International Business Machines Corporation | Transformational raid for hierarchical storage management system |
JP3702923B2 (ja) * | 1997-02-28 | 2005-10-05 | ソニー株式会社 | 情報処理方法および情報処理装置 |
JP2790134B1 (ja) | 1997-03-11 | 1998-08-27 | 日本電気株式会社 | ディスクアレイシステム |
EP0910086A4 (en) * | 1997-04-07 | 2002-10-28 | Sony Corp | CUTTING SYSTEM AND METHOD |
US6021463A (en) * | 1997-09-02 | 2000-02-01 | International Business Machines Corporation | Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6161191A (en) * | 1998-05-12 | 2000-12-12 | Sun Microsystems, Inc. | Mechanism for reliable update of virtual disk device mappings without corrupting data |
JP2000003255A (ja) * | 1998-06-12 | 2000-01-07 | Nec Corp | ディスクアレイ装置 |
GB2343265A (en) * | 1998-10-28 | 2000-05-03 | Ibm | Data storage array rebuild |
US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
US6327672B1 (en) * | 1998-12-31 | 2001-12-04 | Lsi Logic Corporation | Multiple drive failure tolerant raid system |
US6532548B1 (en) * | 1999-09-21 | 2003-03-11 | Storage Technology Corporation | System and method for handling temporary errors on a redundant array of independent tapes (RAIT) |
US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6636879B1 (en) | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
US6728922B1 (en) | 2000-08-18 | 2004-04-27 | Network Appliance, Inc. | Dynamic data space |
US6654912B1 (en) | 2000-10-04 | 2003-11-25 | Network Appliance, Inc. | Recovery of file system data in file servers mirrored file system volumes |
US6952797B1 (en) | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US6775791B2 (en) | 2001-01-26 | 2004-08-10 | Dell Products L.P. | Replaceable memory modules with parity-based data recovery |
US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
US7146524B2 (en) * | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US7685126B2 (en) * | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US6904556B2 (en) * | 2001-08-09 | 2005-06-07 | Emc Corporation | Systems and methods which utilize parity sets |
US7640484B2 (en) * | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple failures in a storage array |
US7024585B2 (en) * | 2002-06-10 | 2006-04-04 | Lsi Logic Corporation | Method, apparatus, and program for data mirroring with striped hotspare |
US7024586B2 (en) | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
US6904498B2 (en) * | 2002-10-08 | 2005-06-07 | Netcell Corp. | Raid controller disk write mask |
US7130229B2 (en) | 2002-11-08 | 2006-10-31 | Intel Corporation | Interleaved mirrored memory systems |
US7017017B2 (en) | 2002-11-08 | 2006-03-21 | Intel Corporation | Memory controllers with interleaved mirrored memory modes |
AU2003291014A1 (en) | 2002-11-14 | 2004-06-15 | Isilon Systems, Inc. | Systems and methods for restriping files in a distributed file system |
JP2004171206A (ja) | 2002-11-19 | 2004-06-17 | Hitachi Ltd | ストレージシステム |
US7308599B2 (en) * | 2003-06-09 | 2007-12-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for data reconstruction after failure of a storage device in a storage array |
US7058762B2 (en) * | 2003-06-09 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Method and apparatus for selecting among multiple data reconstruction techniques |
WO2005017734A1 (ja) * | 2003-08-14 | 2005-02-24 | Fujitsu Limited | コンピュータ装置および集合サーバ装置 |
US7428691B2 (en) * | 2003-11-12 | 2008-09-23 | Norman Ken Ouchi | Data recovery from multiple failed data blocks and storage units |
US7188303B2 (en) * | 2003-12-29 | 2007-03-06 | Intel Corporation | Method, system, and program for generating parity data |
CN100433195C (zh) * | 2003-12-31 | 2008-11-12 | 深圳市朗科科技股份有限公司 | 闪存介质数据写入方法 |
US20050193273A1 (en) * | 2004-02-18 | 2005-09-01 | Xiotech Corporation | Method, apparatus and program storage device that provide virtual space to handle storage device failures in a storage system |
US8726129B1 (en) * | 2004-07-23 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Methods of writing and recovering erasure coded data |
US8238350B2 (en) * | 2004-10-29 | 2012-08-07 | Emc Corporation | Message batching with checkpoints systems and methods |
US8051425B2 (en) * | 2004-10-29 | 2011-11-01 | Emc Corporation | Distributed system with asynchronous execution systems and methods |
US8055711B2 (en) | 2004-10-29 | 2011-11-08 | Emc Corporation | Non-blocking commit protocol systems and methods |
US7401253B2 (en) * | 2005-05-09 | 2008-07-15 | International Business Machines Corporation | Convolution-encoded data storage on a redundant array of independent devices |
US7370261B2 (en) * | 2005-05-09 | 2008-05-06 | International Business Machines Corporation | Convolution-encoded raid with trellis-decode-rebuild |
US7551572B2 (en) * | 2005-10-21 | 2009-06-23 | Isilon Systems, Inc. | Systems and methods for providing variable protection |
US7797283B2 (en) * | 2005-10-21 | 2010-09-14 | Isilon Systems, Inc. | Systems and methods for maintaining distributed data |
US7346720B2 (en) * | 2005-10-21 | 2008-03-18 | Isilon Systems, Inc. | Systems and methods for managing concurrent access requests to a shared resource |
US7788303B2 (en) * | 2005-10-21 | 2010-08-31 | Isilon Systems, Inc. | Systems and methods for distributed system scanning |
US7386675B2 (en) * | 2005-10-21 | 2008-06-10 | Isilon Systems, Inc. | Systems and methods for using excitement values to predict future access to resources |
US7917474B2 (en) * | 2005-10-21 | 2011-03-29 | Isilon Systems, Inc. | Systems and methods for accessing and updating distributed data |
US7848261B2 (en) | 2006-02-17 | 2010-12-07 | Isilon Systems, Inc. | Systems and methods for providing a quiescing protocol |
US7756898B2 (en) * | 2006-03-31 | 2010-07-13 | Isilon Systems, Inc. | Systems and methods for notifying listeners of events |
JP2008009767A (ja) | 2006-06-29 | 2008-01-17 | Hitachi Ltd | データ処理システム及びその方法並びにストレージ装置 |
US8539056B2 (en) | 2006-08-02 | 2013-09-17 | Emc Corporation | Systems and methods for configuring multiple network interfaces |
US7899800B2 (en) * | 2006-08-18 | 2011-03-01 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US7590652B2 (en) | 2006-08-18 | 2009-09-15 | Isilon Systems, Inc. | Systems and methods of reverse lookup |
US7676691B2 (en) | 2006-08-18 | 2010-03-09 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US7882071B2 (en) * | 2006-08-18 | 2011-02-01 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7953704B2 (en) | 2006-08-18 | 2011-05-31 | Emc Corporation | Systems and methods for a snapshot of data |
US7822932B2 (en) * | 2006-08-18 | 2010-10-26 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US7680836B2 (en) * | 2006-08-18 | 2010-03-16 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7680842B2 (en) * | 2006-08-18 | 2010-03-16 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7752402B2 (en) | 2006-08-18 | 2010-07-06 | Isilon Systems, Inc. | Systems and methods for allowing incremental journaling |
JP4953753B2 (ja) * | 2006-10-17 | 2012-06-13 | キヤノン株式会社 | 情報処理装置及びその制御方法、プログラム |
JP5028074B2 (ja) * | 2006-12-04 | 2012-09-19 | キヤノン株式会社 | 画像形成装置 |
US8286029B2 (en) * | 2006-12-21 | 2012-10-09 | Emc Corporation | Systems and methods for managing unavailable storage devices |
US7593938B2 (en) * | 2006-12-22 | 2009-09-22 | Isilon Systems, Inc. | Systems and methods of directory entry encodings |
US7509448B2 (en) | 2007-01-05 | 2009-03-24 | Isilon Systems, Inc. | Systems and methods for managing semantic locks |
US7779048B2 (en) | 2007-04-13 | 2010-08-17 | Isilon Systems, Inc. | Systems and methods of providing possible value ranges |
US8966080B2 (en) * | 2007-04-13 | 2015-02-24 | Emc Corporation | Systems and methods of managing resource utilization on a threaded computer system |
US7900015B2 (en) | 2007-04-13 | 2011-03-01 | Isilon Systems, Inc. | Systems and methods of quota accounting |
CN100454265C (zh) * | 2007-06-07 | 2009-01-21 | 华为技术有限公司 | 镜像恢复方法、存储设备及网络系统 |
US7882068B2 (en) | 2007-08-21 | 2011-02-01 | Isilon Systems, Inc. | Systems and methods for adaptive copy on write |
US7966289B2 (en) * | 2007-08-21 | 2011-06-21 | Emc Corporation | Systems and methods for reading objects in a file system |
US7949692B2 (en) | 2007-08-21 | 2011-05-24 | Emc Corporation | Systems and methods for portals into snapshot data |
US7870345B2 (en) | 2008-03-27 | 2011-01-11 | Isilon Systems, Inc. | Systems and methods for managing stalled storage devices |
US7953709B2 (en) * | 2008-03-27 | 2011-05-31 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US7984324B2 (en) | 2008-03-27 | 2011-07-19 | Emc Corporation | Systems and methods for managing stalled storage devices |
US7949636B2 (en) * | 2008-03-27 | 2011-05-24 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US20090300282A1 (en) * | 2008-05-30 | 2009-12-03 | Promise Technology, Inc. | Redundant array of independent disks write recovery system |
JP5637552B2 (ja) * | 2009-02-17 | 2014-12-10 | 日本電気株式会社 | ストレージシステム |
WO2010096519A1 (en) * | 2009-02-18 | 2010-08-26 | Marvell World Trade Ltd. | Method and system for performing i/o operations on disk arrays |
US8560879B1 (en) * | 2009-04-22 | 2013-10-15 | Netapp Inc. | Data recovery for failed memory device of memory device array |
US8417987B1 (en) | 2009-12-01 | 2013-04-09 | Netapp, Inc. | Mechanism for correcting errors beyond the fault tolerant level of a raid array in a storage system |
US8386834B1 (en) * | 2010-04-30 | 2013-02-26 | Network Appliance, Inc. | Raid storage configuration for cached data storage |
US8386841B1 (en) * | 2010-07-21 | 2013-02-26 | Symantec Corporation | Systems and methods for improving redundant storage fault tolerance |
US8694866B2 (en) * | 2011-03-15 | 2014-04-08 | California Institute Of Technology | MDS array codes with optimal building |
CN102541466A (zh) * | 2011-10-27 | 2012-07-04 | 忆正存储技术(武汉)有限公司 | 一种混合存储控制系统和方法 |
CN103389920B (zh) * | 2012-05-09 | 2016-06-15 | 深圳市腾讯计算机系统有限公司 | 一种磁盘坏块的自检测方法和装置 |
CN103971750B (zh) * | 2013-01-29 | 2017-02-08 | 中国航空工业集团公司西安飞机设计研究所 | 一种ram的9相邻单元敏感故障检测方法 |
US9563509B2 (en) | 2014-07-15 | 2017-02-07 | Nimble Storage, Inc. | Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system |
WO2016053189A1 (en) * | 2014-10-03 | 2016-04-07 | Agency For Science, Technology And Research | Method for optimizing reconstruction of data for a hybrid object storage device |
US20170337103A1 (en) * | 2016-05-19 | 2017-11-23 | Intel Corporation | Method and apparatus to provide data redundancy in a solid-state drive |
KR102573301B1 (ko) * | 2016-07-15 | 2023-08-31 | 삼성전자 주식회사 | Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법 |
KR20180012009A (ko) * | 2016-07-26 | 2018-02-05 | 에스케이하이닉스 주식회사 | 데이터 맵핑을 수행하는 반도체 장치 및 시스템 |
US10133630B2 (en) * | 2016-09-06 | 2018-11-20 | International Business Machines Corporation | Disposable subset parities for use in a distributed RAID |
US10152378B2 (en) * | 2016-10-04 | 2018-12-11 | Futurewei Technologies, Inc. | Data protection for a cold storage system |
CN108073364A (zh) * | 2018-01-12 | 2018-05-25 | 江苏华存电子科技有限公司 | 一种数据数组保护和修复闪存内数据方法 |
US10585767B2 (en) | 2018-02-07 | 2020-03-10 | International Business Machines Corporation | Automatic data healing using a storage controller |
US10579285B2 (en) * | 2018-02-07 | 2020-03-03 | International Business Machines Corporation | Automatic data healing by I/O |
KR102490191B1 (ko) * | 2018-03-05 | 2023-01-18 | 삼성전자주식회사 | 데이터 스토리지 장치 및 이를 포함하는 raid 시스템 |
CN109412600A (zh) * | 2018-09-03 | 2019-03-01 | 何祥果 | 一种基于磁性特征的标识号编码方法 |
CN111124264B (zh) * | 2018-10-31 | 2023-10-27 | 伊姆西Ip控股有限责任公司 | 用于重建数据的方法、设备和计算机程序产品 |
US11966608B2 (en) * | 2021-11-15 | 2024-04-23 | Samsung Electronics Co., Ltd. | Memory controller with improved data reliability and memory system including the same |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3893178A (en) * | 1973-12-19 | 1975-07-01 | Information Storage Systems | Synchronization of multiple disc drives |
US4092732A (en) * | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
US4467421A (en) * | 1979-10-18 | 1984-08-21 | Storage Technology Corporation | Virtual storage system and method |
JPS583113A (ja) * | 1981-06-30 | 1983-01-08 | Fujitsu Ltd | デイスク制御方式 |
US4562576A (en) * | 1982-08-14 | 1985-12-31 | International Computers Limited | Data storage apparatus |
FR2561428B1 (fr) * | 1984-03-16 | 1986-09-12 | Bull Sa | Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques |
US4667326A (en) * | 1984-12-20 | 1987-05-19 | Advanced Micro Devices, Inc. | Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives |
US4754397A (en) * | 1985-02-15 | 1988-06-28 | Tandem Computers Incorporated | Fault tolerant modular subsystems for computers |
JPS61264599A (ja) * | 1985-05-16 | 1986-11-22 | Fujitsu Ltd | 半導体記憶装置 |
US4722085A (en) * | 1986-02-03 | 1988-01-26 | Unisys Corp. | High capacity disk storage system having unusually high fault tolerance level and bandpass |
US4761785B1 (en) * | 1986-06-12 | 1996-03-12 | Ibm | Parity spreading to enhance storage access |
US4775978A (en) * | 1987-01-12 | 1988-10-04 | Magnetic Peripherals Inc. | Data error correction system |
US4942579A (en) * | 1987-06-02 | 1990-07-17 | Cab-Tek, Inc. | High-speed, high-capacity, fault-tolerant error-correcting storage system |
US4870643A (en) * | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
US4899342A (en) * | 1988-02-01 | 1990-02-06 | Thinking Machines Corporation | Method and apparatus for operating multi-unit array of memories |
US4993030A (en) * | 1988-04-22 | 1991-02-12 | Amdahl Corporation | File system for a plurality of storage classes |
US4989206A (en) * | 1988-06-28 | 1991-01-29 | Storage Technology Corporation | Disk drive memory |
US4914656A (en) * | 1988-06-28 | 1990-04-03 | Storage Technology Corporation | Disk drive memory |
JPH0290254A (ja) * | 1988-09-27 | 1990-03-29 | Nec Corp | データ入出力システム |
US5148432A (en) * | 1988-11-14 | 1992-09-15 | Array Technology Corporation | Arrayed disk drive system and method |
US5101492A (en) * | 1989-11-03 | 1992-03-31 | Compaq Computer Corporation | Data redundancy and recovery protection |
US5072378A (en) * | 1989-12-18 | 1991-12-10 | Storage Technology Corporation | Direct access storage device with independently stored parity |
US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage system |
US5088081A (en) * | 1990-03-28 | 1992-02-11 | Prime Computer, Inc. | Method and apparatus for improved disk access |
US5130992A (en) * | 1990-04-16 | 1992-07-14 | International Business Machines Corporaiton | File-based redundant parity protection in a parallel computing system |
-
1991
- 1991-03-18 JP JP3077305A patent/JPH0731582B2/ja not_active Expired - Lifetime
- 1991-05-22 DE DE69131562T patent/DE69131562T2/de not_active Expired - Lifetime
- 1991-05-22 EP EP91480082A patent/EP0462917B1/en not_active Expired - Lifetime
- 1991-06-13 CA CA002044521A patent/CA2044521C/en not_active Expired - Lifetime
- 1991-06-14 KR KR1019910009793A patent/KR960001748B1/ko not_active IP Right Cessation
- 1991-06-15 CN CN91103973A patent/CN1038710C/zh not_active Expired - Lifetime
-
1992
- 1992-11-12 US US08/122,739 patent/US5596709A/en not_active Expired - Lifetime
-
1997
- 1997-08-21 CN CN97116199A patent/CN1109973C/zh not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100893342B1 (ko) * | 2005-12-20 | 2009-04-15 | 후지쯔 가부시끼가이샤 | 컴퓨터 장치 및 집합 서버 장치 |
Also Published As
Publication number | Publication date |
---|---|
EP0462917A2 (en) | 1991-12-27 |
JPH0731582B2 (ja) | 1995-04-10 |
KR920005782A (ko) | 1992-04-03 |
EP0462917B1 (en) | 1999-09-01 |
CA2044521C (en) | 1998-03-31 |
CN1182913A (zh) | 1998-05-27 |
DE69131562D1 (de) | 1999-10-07 |
DE69131562T2 (de) | 2000-04-27 |
CN1057533A (zh) | 1992-01-01 |
US5596709A (en) | 1997-01-21 |
CN1109973C (zh) | 2003-05-28 |
CN1038710C (zh) | 1998-06-10 |
JPH04233025A (ja) | 1992-08-21 |
CA2044521A1 (en) | 1991-12-22 |
EP0462917A3 (en) | 1992-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960001748B1 (ko) | 컴퓨터 시스템 동작방법과 컴퓨터 시스템용의 기억 장치 및 기억제어장치 | |
US7111134B2 (en) | Subsystem and subsystem processing method | |
JP3505093B2 (ja) | ファイル管理システム | |
US5790773A (en) | Method and apparatus for generating snapshot copies for data backup in a raid subsystem | |
CA2063897C (en) | Method and means for distributed sparing in dasd arrays | |
US6434666B1 (en) | Memory control apparatus and method for storing data in a selected cache memory based on whether a group or slot number is odd or even | |
US7111117B2 (en) | Expansion of RAID subsystems using spare space with immediate access to new space | |
US5819109A (en) | System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete | |
US6886068B2 (en) | Disk array apparatus and data update method for storing tag blocks | |
EP0871120A2 (en) | Method of storing data in a redundant group of disks and redundant array of disks | |
US7228381B2 (en) | Storage system using fast storage device for storing redundant data | |
EP0569212A1 (en) | Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes | |
US5634109A (en) | Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache | |
US5583876A (en) | Disk array device and method of updating error correction codes by collectively writing new error correction code at sequentially accessible locations | |
JP3204143B2 (ja) | ディスクキャッシュの制御方法 | |
JPH06274409A (ja) | 一括消去型不揮発性メモリ | |
JPH0619632A (ja) | コンピユータ・システムのストレージ装置及びデータのストア方法 | |
US6079000A (en) | XPC backup for in-process audit | |
US20040133741A1 (en) | Disk array apparatus and data writing method used in the disk array apparatus | |
JP3687111B2 (ja) | 記憶装置システムおよび記憶装置の制御方法 | |
EP0351109A2 (en) | Reducing resources in a high reliability data storage subsystem | |
JPH0877074A (ja) | フラッシュメモリを用いた記憶装置システム | |
KR19980047273A (ko) | 레이드 레벨 5 시스템에서 캐쉬 관리 방법 | |
JPH06119125A (ja) | ディスクアレイ装置 | |
JP3067558B2 (ja) | ディスクアレイ装置の拡張構成方法およびディスクアレイ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110110 Year of fee payment: 16 |
|
EXPY | Expiration of term |