KR100703016B1 - 스토리지 제어 장치 및 방법 - Google Patents

스토리지 제어 장치 및 방법 Download PDF

Info

Publication number
KR100703016B1
KR100703016B1 KR1020050029270A KR20050029270A KR100703016B1 KR 100703016 B1 KR100703016 B1 KR 100703016B1 KR 1020050029270 A KR1020050029270 A KR 1020050029270A KR 20050029270 A KR20050029270 A KR 20050029270A KR 100703016 B1 KR100703016 B1 KR 100703016B1
Authority
KR
South Korea
Prior art keywords
storage
strips
parity
data
stripes
Prior art date
Application number
KR1020050029270A
Other languages
English (en)
Other versions
KR20060067084A (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 KR20060067084A publication Critical patent/KR20060067084A/ko
Application granted granted Critical
Publication of KR100703016B1 publication Critical patent/KR100703016B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • 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/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
    • G11B2220/415Redundant array of inexpensive disks [RAID] systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 2종류 이상의 패리티(parity)를 이용하여 데이터의 용장화를 행하는 RAID와 같은 스토리지 장치에 있어서, 시퀀셜 리드(sequential read)의 성능을 개선하는 맵핑(mapping)을 행한다.
N개의 데이터 스트립(strip)과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 N+M개의 디스크에 분산하여 저장함으로써 데이터의 용장화를 실현한다. N+M개의 디스크가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 디스크에 패리티 스트립이 연속하여 저장되지 않도록, 각 스트라이프에 포함되는 데이터 스트립과 패리티 스티립의 저장소의 디스크를 결정한다.
스토리지 제어 장치, 스토리지 제어 방법

Description

스토리지 제어 장치 및 방법{STORAGE CONTROLLER AND METHOD FOR STORAGE CONTROL}
도 1은 본 발명의 스토리지 제어 장치의 원리도.
도 2는 제 1 스토리지 시스템의 구성도.
도 3은 M=2의 제 1 맵핑을 나타내는 도면.
도 4는 M=2의 제 2 맵핑을 나타내는 도면.
도 5는 M=2의 제 3 맵핑을 나타내는 도면.
도 6은 M=2의 제 4 맵핑을 나타내는 도면.
도 7은 M=2의 제 5 맵핑을 나타내는 도면.
도 8은 M=3의 제 1 맵핑을 나타내는 도면.
도 9는 M=3의 제 2 맵핑을 나타내는 도면.
도 10은 M=3의 제 3 맵핑을 나타내는 도면.
도 11은 M=3의 제 4 맵핑을 나타내는 도면.
도 12는 프로그램 및 데이터의 제공 방법을 나타내는 도면.
도 13은 제 2 스토리지 시스템의 구성도.
도 14는 제 3 스토리지 시스템의 구성도.
도 15는 RAID 5의 스트라이프를 나타내는 도면.
도 16은 RAID 5의 맵핑을 나타내는 도면.
도 17은 RAID 6의 맵핑을 나타내는 도면.
[도면의 주요 부분에 대한 부호의 설명]
101 ; 스토리지 제어 장치
102-1, 102-2, 102-(N+M) ; 기억 장치
111 ; 결정 수단
l12 ; 제어 수단
201, 130l, 1401 ; 호스트 장치
202 ; RAID 장치
211 ; 컨트롤러
211, 1321, 1411 ; 프로세서
222, 1322, 1412 ; 메모리
223, 1323 ; 캐시 메모리
60l, 602, 603, 604, 605, 606 ; 스트라이프
1201 ; 외부장치
1202 ; 가반 기록 매체
131l ; 호스트 버스 어댑터
Disk0, Disk1, Disk2, Disk3, Disk4, Disk5 ; 디스크
본 발명은 RAID(Redundant Array of Inexpensive Disks)와 같은 복수의 기억 장치에 데이터 및 패리티를 분산하여 저장하는 제어를 행하는 스토리지 제어 장치 및 방법에 관한 것이다.
RAID는 복수의 하드디스크를 조합하여 용장화된 한대의 하드디스크로서 관리하는 기술로서, 디스크로의 데이터 배치나 데이터의 용장화(redundancy)의 방법에 의해, RAID 0 내지 RAID 6의 7개의 레벨로 분류되어 있다. 이 중, RAID 3 내지 RAID 6에서는, 데이터로부터 생성된 패리티를 데이터와는 별도로 저장함으로써 용장화를 실현하고 있다(예를 들어 일본국 특개 2000-259359호 공보 참조).
우선, RAID 5의 맵핑에 대해서 설명한다. RAID 5에서는, RAID 4에서 고정되어 있던 패리티 담당의 디스크를 스트라이프마다 변경하여 패리티를 분산시킴으로써 성능 개선을 행하고 있다. 예를 들면, (4+1) RAID 구성의 경우, RAID 5의 맵핑에 의한 1스트라이프의 배치는, 도 15에 나타내는 바와 같다.
여기에서, (N+1) RAID 구성이란, (N+1)개의 디스크 중, N개의 디스크가 데이터 스트립을 담당하고, 하나의 디스크가 패리티 스트립을 담당하는 구성을 나타낸다. 도 15의 예에서는, Disk0 내지 Disk3의 4개의 디스크에 각각 할당된 데이터(D00 내지 D03)와, Disk4에 할당된 패리티(P00)로부터 1스트라이프가 구성되어 있다. 데이터(D00 내지 D03)는 D00로부터의 첨자(添字)의 순서대로 나열하여 배치된다.
이렇게 하여 저장된 데이터를 판독하는 일반적인 리드 처리에서는, 패리티 (PO0)를 필요로 하지 않는다. 이 때문에, D00 내지 D03의 리드 요구에 대하여는 패리티가 배치된 Disk4는 사용되지 않는다.
Disk0 내지 Disk4에 복수의 스트라이프가 저장되어 있는 경우, 다른 스트라이프에 걸치는 데이터를 첨자의 순서대로 판독하는 리드 요구도 고려된다. 이러한 연속적인 리드 처리에서의 성능을 고려하면, 다음의 스트라이프의 선두가 되는 데이터(D04)는 이전의 스트라이프에서 패리티(P00)가 배치되고, 액세스가 없었던 Disk4에 배치하는 것이 효과적이다. 예를 들면, 각 스트라이프의 선두 데이터의 위치를 스트라이프마다 하나씩 시프트한 경우, 데이터와 패리티의 배치는 도 16에 나타내는 바와 같다.
일반적으로는, (N+1) RAID 구성에 대응하는 (N+1) 스트라이프의 주기에서, 데이터와 패리티의 맵핑이 행해진다. 여기에서는, N=4이므로 5스트라이프 주기이다. 다음에, RAID 6의 맵핑에 대해서 설명한다. RAID 6은 복수 디스크의 고장에 대응한 RAID 레벨이다. RAID 6은 (N+M) RAID 구성에 의해 나타나고, RAID 5와 마찬가지로 스트라이프마다 패리티를 갖는다. 패리티가 할당된 디스크의 수 M은 복수 디스크의 고장에 대응하기 위하여 2이상으로 된다. 이 패리티로서는, 보통 RAID 5 상당의 패리티(P)와, 이것과는 다른 패리티(Q, R, S)등이 사용된다.
이하의 설명에서는, 2개의 디스크의 고장에 대응하기 위하여, M=2로 하여 패리티(P)와 패리티(Q)를 사용한다.
도 16에 나타낸 RAID 5의 맵핑을 RAID 6에서의 (4+2) RAID 구성에 적용하면, 데이터와 패리티의 배치는 도 17에 나타내는 바와 같다. 일반적으로는, (N+M) 스 트라이프의 주기에서의 배치로 되고, 모든 디스크가 패리티(P)와 패리티(Q)의 양쪽을 담당한다.
상술한 종래의 RAID 6의 맵핑에는 다음과 같은 문제가 있다.
도 17에 나타낸 RAID 6의 맵핑에서는, 연속하는 2개의 스트라이프에서, 동일한 디스크가 패리티(P)와 패리티(Q)를 담당하게 되고, 이 사이 데이터를 담당하지 않는다. 이 때문에, 시퀀셜 리드(sequential read)의 성능이라는 관점에서는 바람직하지 못하다.
본 발명의 과제는 2종류 이상의 패리티를 사용하여 데이터의 용장화를 행하는 RAID와 같은 스토리지 장치에 있어서, 시퀀셜 리드의 성능을 개선하는 맵핑을 행하는 것이다.
도 1은 본 발명의 스토리지 제어 장치의 원리도이다. 도 1의 스토리지 제어 장치(101)는 결정 수단(111) 및 제어 수단(112)을 구비하고, N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 N+M개의 기억 장치(102-1, 102-2,..., 102-(N+M))에 분산하여 저장하는 제어를 행함으로써 데이터의 용장화를 실현한다.
결정 수단(111)은 기억 장치(102-1, 102-2,..., 102-(N+M))가 복수의 스트라프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록, 각 스트라이프에 포함되는 N개의 데이터 스트립 과 M개의 패리티 스트립의 저장소의 기억 장치를 결정한다. 제어 수단(112)은 N개의 데이터 스트립과 2개 이상의 패리티 스트립을, 결정된 각각의 저장소의 기억 장치에 저장하는 제어를 행한다.
(N+M) RAID 구성의 경우, 각 기억 장치는 하나 이상의 자기 디스크 장치에 상당한다. 복수의 스트라이프가 저장되는 경우, 연속하는 2개의 스트라이프 사이에서, 동일 기억 장치가 같은 종류 또는 다른 종류의 패리티 스트립을 연속하여 담당하지 않도록, 1스트라이프 내의 데이터 및 패리티가 기억 장치(102-1, l02-2,..., 102-(N+M))에 분산하여 저장된다. 이것에 의해, 다른 스트라이프에 걸치는 데이터를 연속적으로 판독할 때에, N+M개의 기억 장치로의 액세스 빈도가 평균화된다.
스토리지 제어 장치(101)는, 예를 들면, 후술하는 도 2의 컨트롤러(211), 도 13의 호스트 버스 어댑터(host bus adaptor)(1311), 또는 도 14의 호스트 장치(1401)에 대응한다.
이하, 도면을 참조하면서, 본 발명을 실시하기 위한 최선의 형태를 상세하게 설명한다.
도 2는 실시예의 스토리지 시스템의 구성예를 나타내고 있다. 도 2의 스토리지 시스템은 호스트 장치(201) 및 RAID 장치(202)로 이루어지고, RAID 장치(202)는 컨트롤러(211) 및 Disk0 내지 Disk5의 6개의 디스크를 구비하는 스토리지 장치에 대응한다.
각 디스크는 하나 이상의 자기 디스크 장치로 이루어지고, 호스트 장치(201) 는 각 디스크를 하나의 기억 장치로 간주하여 데이터의 리드/라이트(read/write)를 행한다. 컨트롤러(211)에 접속되는 디스크의 수는 6개로 한정되는 것은 아니다.
컨트롤러(211)는 프로세서(221), 메모리(222) 및 캐시 메모리(cache memory) (223)를 구비하고, Disk0 내지 Disk5에 대한 액세스를 제어한다. 프로세서(221)는 메모리(222)에 저장된 프로그램을 실행함으로써 액세스 제어를 행한다.
다음에, 도 3 내지 도 11을 참조하면서, (N+M) RAID 구성에서의 본 실시예의 맵핑의 예에 대해서 설명한다.
(1) 제 1 맵핑
도 17에 나타낸 (4+2) RAID 구성에서, 시퀀셜 리드의 성능을 고려하여 패리티가 연속되지 않도록 배치를 2개씩 시프트하면, 도 3과 같이 된다. 이 맵핑에서는, 데이터와 패리티가 각각 집합적으로 배치되고, 같은 종류의 패리티를 담당하는 디스크는 스트라이프마다 M개씩 시프트된다. 이 경우, 연속하는 2개의 스트라이프에서, 같은 디스크가 패리티를 담당하지 않으므로 시퀀셜 리드의 성능이 개선된다.
일반적으로, (N+M) RAID 구성에서, 디스크 수 (N+M)가 패리티 수 M의 배수의 관계에 있는 경우, 배치가 M디스크씩 시프트되므로 (N+M)/M스트라이프의 주기에서의 배치로 된다. 여기에서는, N=4, M=2이므로 3스트라이프 주기이다. 그러나, 도 3의 맵핑에서는, Disk1, Disk3 및 Disk5에는 패리티(P)가 배치되는 일은 없고, Disk0 , Disk2 및 Disk4에는 패리티(Q)가 배치되는 일은 없다.
한편, 하나의 디스크 고장시의 리드 처리나 재구축(Rebuild)처리에서는, 패리티(Q)를 사용하지 않고 패리티(P)만을 사용한 RAID 5 상당의 처리가 성능의 관점 등으로부터 채용된다. 이 경우, 패리티(P)가 전혀 배치되지 않는 디스크와 그 이외의 디스크에서는 부하가 다르므로, 맵핑을 개선할 여지가 있다. 패리티의 맵핑 개선안으로서는, 예를 들면, 이하의 (2) 및 (3)이 고려된다.
(2) 제 2 맵핑
도 4에 나타낸 바와 같이, P, Q의 순서대로 나열되는 스트라이프와, Q, P의 순서대로 나열되는 스트라이프의 양쪽을 설치하여, 모든 디스크가 P와 Q의 양쪽을 담당하도록 배치한다. 그리고, (N+M)/M스트라이프마다 P 및 Q를 담당하는 디스크를 순회시킨다. 이 때문에, (N+M) 스트라이프 주기에서의 배치로 된다.
(3) 제 3 맵핑
도 5에 나타낸 바와 같이, P와 Q를 연속시키지 않고 1디스크 이상 이간하여 배치한다. 여기에서는, P와 Q가 N/M(=2) 디스크만큼 이간되어 배치되고, 데이터와 패리티의 배치가 스트라이프마다 1디스크씩 시프트된다. 따라서, 모든 디스크가 P와 Q의 양쪽을 담당할 수 있다.
또한, 하나의 스트라이프 내에서는, P와 Q가 N/M디스크만큼 이간되어 배치되므로, 어떤 디스크가 P 또는 Q 중 어느 하나를 담당하는 기회는, (N+M)/M스트라이프 주기에서 균등해진다. 그러나, 각 데이터와 패리티의 배치가 RAID 5와는 다르다.
상기한 2개의 개선안은 RAID 6에서의 패리티(P)와 패리티(Q)가 동등한 패리티 스트립이 아니라 역할이 다름으로써 발생하는 부하의 차이를 삭감하기 위한 개선안이다. 이들 중에서는, (2)의 개선안 쪽이 효과적이라고 생각된다.
그런데, 패리티(P)와 패리티(Q)에서 역할이 다르도록 데이터 스트립에 대해서도 역할이 다를 경우가 있다. 예를 들면, RDP(Row-Diagonal Parity) 방식이라고 불리는 RAID 6에서는, 데이터와 RAID 5의 패리티(P)를 이용하여, 대각(對角) 패리티(Q)를 생성하지만, 하나의 스트라이프 내의 각 스트립의 역할은 균등하지 않다. 구체적으로는, 데이터 또는 P 중 하나의 스트립에 대해서는 그 스트립 전체가 대각 패리티(Q)의 생성에 사용된다. 이에 대하여, 나머지의 데이터와 패리티(P)의 스트립에서는, 그 일부분만이 Q의 생성에 사용된다.
이러한 점에서, 하나의 디스크 고장시의 재구축 처리에서 패리티(Q)의 복원을 행할 때에는, 데이터와 패리티(P)를 담당하는 디스크 사이에서 부하의 차이가 발생한다. 따라서, 맵핑을 개선할 여지가 있다. 데이터의 맵핑 개선안으로서는, 예를 들면, 이하의 (4) 및 (5)가 고려된다.
(4) 제 4 맵핑
예를 들면, Q의 생성에 P의 스트립 전체를 사용하는 경우, P의 갱신에 따른 Q의 갱신이 더욱 많이 발생한다. 즉, 소량의 데이터의 갱신을 위한 Q의 갱신이 증가하므로 그다지 효과적이지는 않다. 여기에서, Q의 생성에 스트립 전체를 사용하는 것은 P의 스트립이 아니라 데이터 스트립의 하나에 할당하기로 한다.
가령, 스트라이프 내의 선두의 데이터 스트립을 Q의 생성에 모든 데이터를 사용하는 스트립으로 가정한다. 이 경우, 도 3 및 도 4의 맵핑에서는, 선두 데이터를 담당하는 디스크와 그렇지 않은 디스크가 있으므로 부하가 균등하게 분산되지 않는다. 예를 들면, 도 3의 맵핑에서는, Disk0, Disk2 및 Disk4에만 선두 데이터 가 배치되어 있고, Disk1, Disk3 및 Disk5에는 선두 데이터가 배치되는 일이 없다.
이러한 편중을 경감하기 위하여, 도 6에 나타낸 바와 같이, 도 4의 맵핑에서 채용한 P와 Q의 주기적인 재배열(rearrangement)을 데이터 스트립에 대해서도 채용한다. 그리고, M개 나열된 디스크로의 데이터 및 패리티의 맵핑 순서를 (N+M)/M스트라이프마다 순회시킨다.
예를 들면, 최초 3개의 스트라이프(601 내지 603)의 배치는 도 4와 동일하고, 각각의 스트라이프의 선두 데이터(D00, D04 및 D08)가 Disk0, Disk4 및 Disk2에 분산되어 있다.
다음의 3개의 스트라이프(604 내지 606)에서는, P와 Q의 배치는 도 4와 동일하지만, 데이터의 배치는 인접하는 2개의 디스크 사이에서 도 4의 경우와 반대이다. 구체적으로는, 스트라이프(604)의 D0c와 D0d의 배치가 도 4와 반대로 되어 있고, D0e와 D0f의 배치도 도 4와 반대로 되어 있다. 스트라이프(605, 606)에 대해서도 마찬가지이다. 이러한 데이터의 재배열의 결과, 각각의 스트라이프의 선두 데이터 (D0c, Dl0 및 D14)가 데이터(Disk1, Disk5 및 Disk3)에 분산되어 있다.
이와 같이, 도 6의 맵핑에서는, P, Q 및 선두 데이터를 모든 디스크에 분산하여 배치할 수 있다.
(5) 제 5 맵핑
상기 (4)의 개선안의 변화이다. 도 7에 나타낸 바와 같이, 패리티의 배치는 도 3과 동일하지만, 데이터의 배치가 다르다. 이 맵핑에서는, 스트라이프 내의 선두 데이터의 위치를 직전의 스트라이프에서 패리티를 담당하고 있던 M개의 디스크 중에서, 스트라이프마다 시프트하여 선택한다. 단, 스트라이프 내의 2번째부터 M번째까지의 데이터는 직전의 스트라이프에서도 데이터를 담당하고 있던 디스크에 할당되는 경우가 있으므로, 시퀀셜 리드의 성능에서는 (4)의 개선안보다 뒤떨어진다.
도 3 내지 도 7에서는, M=2인 경우의 맵핑 예를 나타내고 있지만, 이들의 맵핑은 M≥3의 RAID 구성에 대하여도 마찬가지로 적용 가능하다. 도 8, 도 9, 도 10 및 도 11은 (3+3) RAID 구성에 대하여, (1), (2), (3) 및 (4)의 맵핑을 각각 적용한 예를 나타내고 있다.
컨트롤러(211)는 디스크에 대한 데이터 또는 패리티의 리드/라이트 액세스를 행하기 위하여, RAID 구성에 따라서 상술한 바와 같은 맵핑 처리를 행한다. 여기에서, (N+M) RAID 구성에서 컨트롤러(211)가 행하는 맵핑 처리를 더욱 상세하게 설명한다.
이하의 설명에서는, C언어와 마찬가지로 연산자“/”는 정수의 나눗셈의 몫을 나타내고, 연산자“%”는 나눗셈의 나머지를 나타내는 것으로 한다. 우선, 맵핑 처리에 사용하는 변수 정의에 대해서 설명한다.
·RAID 구성의 디스크 수: (N+M)
(N+M)은 RAID 그룹을 구성하는 디스크의 수이다. RAID 그룹은 데이터 용량분 N개와 패리티 용량분 M개의 합계 (N+M)개의 디스크로 이루어진다. 여기에서는, 모든 디스크 수 (N+M)는 패리티용 디스크 수 M의 배수로 설정된다.
·스트립 사이즈: S
S는 1스트립의 데이터 용량(블록수 등)을 나타내고, 스트라이프 뎁스(depth)와 동일하다.
·데이터에 할당되는 어드레스: a
a는 패리티를 제외하는 데이터에 순서대로 할당되는 어드레스로서, O이상의 정수이다. 호스트 장치(201)로부터의 데이터에 대한 I/O 요구는 어드레스 a를 지정함으로써 행해진다.
·스트라이프 번호: i
i는 데이터와 그것에 대응하는 패리티가 소속하는 스트라이프를 나타내는 번호로서, 0이상의 정수이다. i는 데이터 어드레스 a와 RAID 구성으로부터 결정되고, 다음 식에 의해 부여된다.
i=a/(N*S)
·스트립 번호: j
j는 어떤 스트라이프에 소속하는 스트립의 순서를 나타내는 번호이다. 데이터의 스트립에 대하여는, 0<=j<=(N-1)인 j가 할당된다. 데이터 스트립의 j는 다음 식에 의해 부여되며, 데이터는 데이터 어드레스 a를 따라서 순서대로 저장된다.
j=(a%(S*N))/S
패리티의 스트립에 대하여는, N<=j<=(N+M-1)인 j가 할당된다. 예를 들면, j=N은 패리티(P)에 대하여 할당되고, j=N+1은 패리티(Q)에 대하여 할당된다.
·디스크 번호: d
d는 RAID를 구성하는 디스크 중, 액세스 대상이 되는 디스크를 특정하는 번 호로서, 0<=d<=(N+M-1)이다. d는 채용하는 맵핑 방법에 따라서 i와 j를 파라미터로서 결정한다.
다음에, 이상의 변수 정의를 사용한 맵핑 처리에 대해서 설명한다. 맵핑 처리에서는, 맵핑 방법에 따라 데이터 어드레스 a로부터 스트라이프 번호 i와 스트립 번호 j를 결정하고, 액세스 대상의 디스크 번호 d를 결정한다.
1. 종래의 맵핑
도 17에 나타낸 종래의 맵핑 방법에서는, 디스크 번호 d를 하나씩 시프트해 나간다. d는 다음 식에 의해 계산된다.
d=(j+i*(N+M-1))%(N+M)
2. 제 1 맵핑
도 3 및 도 8에 나타낸 맵핑 방법에서는, 디스크 번호 d를 패리티의 수만큼 시프트해 나간다. d는 다음 식에 의해 계산된다.
d=(j+(i*N))%(N+M)
3. 제 2 맵핑
도 4 및 도 9에 나타낸 맵핑 방법에서는, 상기 제 1 맵핑에서 M개의 패리티의 나열을 순환시킨다. 데이터의 경우의 d는 제 1 맵핑과 동일해지며, 다음 식에 의해 계산된다.
d=(j+(i*N))%(N+M)
한편, 패리티의 경우에는, 우선, 각 스트라이프 내에서 패리티를 할당하는 디스크 중, 선두 디스크의 번호를 ptop로 하여, ptop를 다음 식에 의해 계산한다.
ptop=(N+(i*N))%(N+M)
이 ptop를 사용하여, 패리티의 경우의 d는 다음 식에 의해 계산된다.
d=ptop+(j-N+(M-1)*(i/(N+M)/M))%M
4. 제 3 맵핑
도 5 및 도 10에 나타낸 맵핑 방법에서는, 각 패리티를 연속시키지 않고 배치하고, 디스크 번호 d를 하나씩 시프트해 나간다. 데이터의 경우, d는 다음 식에 의해 계산된다.
d=(i*(N+M-1)+j/(N/M)*((N+M)/M)+j%(N/M))%(N+M)
한편, 패리티의 경우, d는 다음 식에 의해 계산된다.
d=(i*(N+M-1)+(j-N)*((N+M)/M)+(N/M))%(N+M)
5. 제 4 맵핑
도 6 및 도 11에 나타낸 맵핑 방법에서는, 상기 제 2 맵핑에서의 M개의 패리티의 순환을 데이터에도 적용하고, M개의 데이터의 나열을 1그룹으로 하여 그룹마다 순환시킨다. 이 때, 패리티 및 데이터의 그룹의 총수 gnum은 다음 식에 의해 계산된다.
gnum=(N+M)/M
데이터 또는 패리티가 소속하는 그룹의 번호 gi와, 그룹내에서의 순서 gj는다음 식에 의해 부여된다.
gi=j/M
gj=j%M
데이터 또는 패리티가 소속하는 그룹의 선두 디스크의 번호를 gtop로 하면, gtop는 다음 식에 의해 계산된다.
gtop=(gi*M+i*N))%(N+M)
이 gtop를 사용하여, d는 다음 식에 의해 계산된다.
d=gtop+((gj+(M-1)*(i/gnum)))%M)
컨트롤러(211)는 이상의 계산식에 의해 얻은 d의 값에 대응하는 디스크를 액세스 대상으로 하여 데이터 또는 패리티의 리드/라이트를 행한다.
도 12는 컨트롤러(211)의 프로세서(221)가 처리에 사용하는 프로그램 및 데이터의 제공 방법을 나타내고 있다. 정보 처리 장치 등의 외부 장치(1201)나 가반(可搬) 기록 매체(1202)에 저장된 프로그램 및 데이터는 RAID 장치(202)의 메모리(222)에 로드된다.
외부 장치(1201)는 그 프로그램 및 데이터를 반송하는 반송 신호를 생성하고, 통신 네트워크 상의 임의의 전송 매체를 통하여 RAID 장치(202)에 송신한다. 가반 기록 매체(1202)는 메모리 카드, 플렉시블 디스크, 광디스크, 광자기 디스크 등의 임의의 컴퓨터 판독 가능한 기록 매체이다. 프로세서(221)는 그 데이터를 사용하여 그 프로그램을 실행하고, 필요한 처리를 행한다.
도 13 및 도 14는 스토리지 시스템의 다른 구성예를 나타내고 있다. 도 13은 호스트 장치에 실장된 호스트 버스 어댑터가 디스크 액세스의 제어를 행하는 예를 나타내고 있고, 도 14는 호스트 장치에 실장된 소프트웨어가 디스크 액세스의 제어를 행하는 예를 나타내고 있다. 어느 구성에서도, 필요한 프로그램 및 데이터 는 RAID 장치(202)의 경우와 동일하게 제공된다.
도 13의 스토리지 시스템은 호스트 장치(1301) 및 Disk0 내지 Disk5로 이루어지고, 호스트 장치(1301)는 호스트 버스 어댑터(1311)를 구비한다. 호스트 버스 어댑터(1311)는 프로세서(1321), 메모리(1322) 및 캐시 메모리(1323)를 구비하고, Disk0 내지 Disk5에 대한 액세스를 제어한다. 이 때, 프로세서(1321)는 메모리(1322)에 저장된 프로그램을 실행함으로써, 상술한 맵핑 처리를 행한다.
도 14의 스토리지 시스템은 호스트 장치(1401) 및 Disk0 내지 Disk5로 이루어진다. 호스트 장치(1401)는 프로세서(1411) 및 메모리(1412)를 구비하고, Disk0 내지 Disk5에 대한 액세스를 제어한다. 이 때, 프로세서(1411)는 메모리(1412)에 저장된 프로그램을 실행함으로써, 상술한 맵핑 처리를 행한다.
또한, 이상의 실시예에서는 디스크 장치로서 자기 디스크 장치가 사용되고 있지만, 본 발명은 광디스크 장치, 광자기 디스크 장치 등의 다른 디스크 장치나, 테이프 장치와 같은 다른 기억 장치를 사용한 스토리지 시스템에 대하여도 적용 가능하다.
(부기 1)
N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 N+M개의 기억 장치에 분산하여 저장하는 제어를 행함으로써 데이터의 용장화를 실현하는 스토리지 제어 장치로서, 상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록, 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 결정 수단과, 상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 제어를 행하는 제어 수단을 구비하는 것을 특징으로 하는 스토리지 제어 장치.
(부기 2)
상기 결정 수단은 상기 복수의 스트라이프에 포함되는 패리티 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록, 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 부기 1에 기재된 스토리지 제어 장치.
(부기 3)
상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록, 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 부기 2에 기재된 스토리지 제어 장치.
(부기 4)
상기 결정 수단은 지정된 데이터 어드레스로부터 데이터 또는 패리티가 소속하는 스트라이프를 나타내는 스트라이프 번호 i와, 이 스트라이프 내에서 데이터 또는 패리티가 소속하는 스트립을 나타내는 스트립 번호 j를 결정하고, 정수의 나눗셈의 나머지를 나타내는 연산자를 %로 하여,
d=(j+(i*N))%(N+M)
의 계산에 의해, 데이터 또는 패리티를 저장하는 기억 장치의 번호 d를 구하는 것을 특징으로 하는 부기 2 또는 3에 기재된 스토리지 제어 장치.
(부기 5)
상기 결정 수단은 상기 복수의 스트라이프에 포함되는 같은 종류의 패리티 스트립이 상기 N+M개의 기억 장치에 균등하게 분산되도록, 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 부기 2에 기재된 스토리지 제어 장치.
(부기 6)
상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 하며, 또한 M개의 패리티 스트립을 저장하는 기억 장치의 번호가 (N+M)/M스트라이프마다 순회되도록, 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 부기 5에 기재된 스토리지 제어 장치.
(부기 7)
상기 결정 수단은 지정된 데이터 어드레스로부터 데이터 또는 패리티가 소속하는 스트라이프를 나타내는 스트라이프 번호 i와, 이 스트라이프 내에서 데이터 또는 패리티가 소속하는 스트립을 나타내는 스트립 번호 j를 결정하고, i 및 j로부터 저장소의 기억 장치의 번호 d를 구할 때에, 데이터의 저장소에 대해서는 정수의 나눗셈의 나머지를 나타내는 연산자를 %로 하여,
d=(j+(i*N))%(N+M)
의 계산에 의해 d를 구하고, 패리티의 저장소에 대해서는 정수의 나눗셈의 몫을 나타내는 연산자를 /로 하여,
ptop=(N+(i*N))%(N+M)
d=ptop+(j-N+(M-1)*(i/(N+M)/M))%M
의 계산에 의해 d를 구하는 것을 특징으로 하는 부기 5 또는 6에 기재된 스토리지 제어 장치.
(부기 8)
상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 하나씩 시프트되도록 하며, 또한 각 스트라이프 내에서 M개의 패리티 스트립을 저장하는 기억 장치의 번호가 연속되지 않도록, 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 부기 5에 기재된 스토리지 제어 장치.
(부기 9)
상기 결정 수단은 지정된 데이터 어드레스로부터 데이터 또는 패리티가 소속하는 스트라이프를 나타내는 스트라이프 번호 i와, 이 스트라이프 내에서 데이터 또는 패리티가 소속하는 스트립을 나타내는 스트립 번호 j를 결정하고, i 및 j로부터 저장소의 기억 장치의 번호 d를 구할 때에, 데이터의 저장소에 대해서는 정수의 나눗셈의 몫을 나타내는 연산자를 /로 하고, 정수의 나눗셈의 나머지를 나타내는 연산자를 %로 하여,
d=(i*(N+M-1)+j/(N/M)*((N+M)/M)+j%(N/M))%(N+M)
의 계산에 의해 d를 구하고, 패리티의 저장소에 대해서는,
d=(i*(N+M-1)+(j-N)*((N+M)/M)+(N/M))%(N+M)
의 계산에 의해 d를 구하는 것을 특징으로 하는 부기 5 또는 8에 기재된 스토리지 제어 장치.
(부기 10)
상기 결정 수단은 상기 복수의 스트라이프에 포함되는 데이터 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록, 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 부기 1 또는 5에 기재된 스토리지 제어 장치.
(부기 11)
상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 하고, M개의 패리티 스트립을 저장하는 기억 장치의 번호가 (N+M)/M스트라이프마다 순회되도록 하며, 또한 M개의 데이터 스트립을 저장하는 기억 장치의 번호가 (N+M)/M스트라이프마다 순회되도록, 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 부기 10에 기재된 스토리지 제어 장치.
(부기 12)
상기 결정 수단은 지정된 데이터 어드레스로부터 데이터 또는 패리티가 소속하는 스트라이프를 나타내는 스트라이프 번호 i와, 이 스트라이프 내에서 데이터 또는 패리티가 소속하는 스트립을 나타내는 스트립 번호 j를 결정하고, 정수의 나눗셈의 몫을 나타내는 연산자를 /로 하고, 정수의 나눗셈의 나머지를 나타내는 연산자를 %로 하여,
gtop=(gi*M+i*N))%(N+M)
d=gtop+((gj+(M-1)*(i/gnum)))%M)
의 계산에 의해, 데이터 또는 패리티를 저장하는 기억 장치의 번호 d를 구하는 것을 특징으로 하는 부기 10 또는 11에 기재된 스토리지 제어 장치.
(부기 13)
데이터의 용장화를 실현하기 위하여, N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 분산하여 저장하는 N+M개의 기억 장치와, 상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록, 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 결정 수단과, 상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 제어를 행하는 제어 수단을 구비하는 것을 특징으로 하는 스토리지 장치.
(부기 14)
N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 N+M개의 기억 장치에 분산하여 저장하는 제어를 행함으로써 데이터의 용장화를 실현하는 프로세서를 위한 프로그램으로서, 상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록, 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하고, 상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 처리를 상기 프로세서에 실행시키는 것을 특징으로 하는 프로그램.
(부기 15)
N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스 트라이프를 N+M개의 기억 장치에 분산하여 저장함으로써 데이터의 용장화를 실현하는 스토리지 제어 방법으로서, 상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록, 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하고, 상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 것을 특징으로 하는 스토리지 제어 방법.
본 발명에 의하면, N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 N+M개의 기억 장치에 분산하여 저장하는 스토리지 장치에 있어서, 시퀀셜 리드의 성능이 개선된다.

Claims (20)

  1. N개의 데이터 스트립(data strip)과 다른 종류의 M개의 패리티 스트립(parity strip)으로 이루어지는 스트라이프를 N+M개의 기억 장치에 분산하여 저장하는 제어를 행함으로써 데이터의 용장화(redundancy)를 실현하는 스토리지 제어 장치로서,
    상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 결정 수단과,
    상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 제어를 행하는 제어 수단을 구비하는 것을 특징으로 하는 스토리지 제어 장치.
  2. 제 1 항에 있어서,
    상기 결정 수단은 상기 복수의 스트라이프에 포함되는 패리티 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
  3. 제 2 항에 있어서,
    상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
  4. 제 2 항에 있어서,
    상기 결정 수단은 상기 복수의 스트라이프에 포함되는 같은 종류의 패리티 스트립이 상기 N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
  5. 제 4 항에 있어서,
    상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 하며, 또한 M개의 패리티 스트립을 저장하는 기억 장치의 번호가 (N+M)/M스트라이프마다 순회되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
  6. 제 4 항에 있어서,
    상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 하나씩 시프트되도록 하며, 또한 각 스트라이프 내에서 M개의 패리티 스트립을 저장하는 기억 장치의 번호가 연속되지 않도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
  7. 제 1 항 또는 4 항에 있어서,
    상기 결정 수단은 상기 복수의 스트라이프에 포함되는 데이터 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
  8. 제 7 항에 있어서,
    상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 하고, M개의 패리티 스트립을 저장하는 기억 장치의 번호가 (N+M)/M스트라이프마다 순회되도록 하며, 또한 M개의 데이터 스트립을 저장하는 기억 장치의 번호가 (N+M)/M스트라이프마다 순회되도록, 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
  9. 데이터의 용장화를 실현하기 위하여, N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 분산하여 저장하는 N+M개의 기억 장치와,
    상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 결정 수단과,
    상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 제어를 행하는 제어 수단을 구비하는 것을 특징으로 하는 스토리지 장치.
  10. N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 N+M개의 기억 장치에 분산하여 저장하는 제어를 행함으로써, 데이터의 용장화를 실현하는 프로세서를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 처리와,
    상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 처리를 상기 프로세서에 실행시키는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  11. N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 N+M개의 기억 장치에 분산하여 저장함으로써 데이터의 용장화를 실현하는 스토리지 제어 방법으로서,
    상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 단계와,
    상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 단계를 포함하는 것을 특징으로 하는 스토리지 제어 방법.
  12. 제 9 항에 있어서,
    상기 결정 수단은 상기 복수의 스트라이프에 포함되는 패리티 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 장치.
  13. 제 12 항에 있어서,
    상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 장치.
  14. 제 12 항에 있어서,
    상기 결정 수단은 상기 복수의 스트라이프에 포함되는 같은 종류의 패리티 스트립이 상기 N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 장치.
  15. 제 10 항에 있어서,
    상기 결정하는 처리는 상기 복수의 스트라이프에 포함되는 패리티 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  16. 제 15 항에 있어서,
    상기 결정하는 처리는 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  17. 제 15 항에 있어서,
    상기 결정하는 처리는 상기 복수의 스트라이프에 포함되는 같은 종류의 패리티 스트립이 상기 N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  18. 제 11 항에 있어서,
    상기 결정하는 단계는 상기 복수의 스트라이프에 포함되는 패리티 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 방법.
  19. 제 18 항에 있어서,
    상기 결정하는 단계는 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 방법.
  20. 제 18 항에 있어서,
    상기 결정하는 단계는 상기 복수의 스트라이프에 포함되는 같은 종류의 패리티 스트립이 상기 N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 방법.
KR1020050029270A 2004-12-14 2005-04-08 스토리지 제어 장치 및 방법 KR100703016B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004361149A JP2006171957A (ja) 2004-12-14 2004-12-14 ストレージ制御装置および方法
JPJP-P-2004-00361149 2004-12-14

Publications (2)

Publication Number Publication Date
KR20060067084A KR20060067084A (ko) 2006-06-19
KR100703016B1 true KR100703016B1 (ko) 2007-04-06

Family

ID=36283791

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050029270A KR100703016B1 (ko) 2004-12-14 2005-04-08 스토리지 제어 장치 및 방법

Country Status (5)

Country Link
US (1) US7433999B2 (ko)
EP (1) EP1674997A3 (ko)
JP (1) JP2006171957A (ko)
KR (1) KR100703016B1 (ko)
CN (1) CN100412806C (ko)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7552357B2 (en) * 2005-04-29 2009-06-23 Network Appliance, Inc. Lost writes detection in a redundancy group based on RAID with multiple parity
US7406578B2 (en) * 2005-09-30 2008-07-29 Xiotech Corporation Method, apparatus and program storage device for providing virtual disk service (VDS) hints based storage
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
JP2007179297A (ja) * 2005-12-28 2007-07-12 Fujitsu Ltd Raid5のパリティチェック強化方法、装置及びプログラム
US7664915B2 (en) * 2006-12-19 2010-02-16 Intel Corporation High performance raid-6 system architecture with pattern matching
JP4358869B2 (ja) 2007-02-21 2009-11-04 富士通株式会社 ストレージ制御装置、ストレージ制御方法
TWI345224B (en) * 2007-09-27 2011-07-11 Quanta Comp Inc Rotating parity redundant array of independent disks and method for storing parity the same
JP4691154B2 (ja) * 2008-12-22 2011-06-01 富士通株式会社 データ管理装置,データ管理システム,データ管理方法およびデータ管理プログラム
JP4843695B2 (ja) * 2009-06-26 2011-12-21 株式会社東芝 ディスクアレイ制御装置及びディスクアレイ装置
KR101445025B1 (ko) * 2012-02-09 2014-09-26 서울시립대학교 산학협력단 신뢰성 있는 ssd를 위한 효율적인 raid 기법
JP2014199591A (ja) * 2013-03-29 2014-10-23 株式会社東芝 記憶装置制御システム、記憶装置制御装置及びプログラム
CN107479824B (zh) * 2016-06-08 2020-03-06 宜鼎国际股份有限公司 冗余磁盘阵列系统及其数据储存方法
CN107544862B (zh) * 2016-06-29 2022-03-25 中兴通讯股份有限公司 一种基于纠删码的存储数据重构方法和装置、存储节点
US10374637B1 (en) * 2017-04-28 2019-08-06 EMC IP Holding Company LLC System and method for unbalanced load handling with distributed erasure coding
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10817388B1 (en) 2017-07-21 2020-10-27 EMC IP Holding Company LLC Recovery of tree data in a geographically distributed environment
US10684780B1 (en) 2017-07-27 2020-06-16 EMC IP Holding Company LLC Time sensitive data convolution and de-convolution
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
US10817374B2 (en) 2018-04-12 2020-10-27 EMC IP Holding Company LLC Meta chunks
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US10936196B2 (en) 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US10719250B2 (en) 2018-06-29 2020-07-21 EMC IP Holding Company LLC System and method for combining erasure-coded protection sets
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US10901635B2 (en) 2018-12-04 2021-01-26 EMC IP Holding Company LLC Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns
US11119683B2 (en) 2018-12-20 2021-09-14 EMC IP Holding Company LLC Logical compaction of a degraded chunk in a geographically diverse data storage system
US10931777B2 (en) 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
US10892782B2 (en) 2018-12-21 2021-01-12 EMC IP Holding Company LLC Flexible system and method for combining erasure-coded protection sets
US10768840B2 (en) 2019-01-04 2020-09-08 EMC IP Holding Company LLC Updating protection sets in a geographically distributed storage environment
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10942827B2 (en) 2019-01-22 2021-03-09 EMC IP Holding Company LLC Replication of data in a geographically distributed storage environment
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10942825B2 (en) 2019-01-29 2021-03-09 EMC IP Holding Company LLC Mitigating real node failure in a mapped redundant array of independent nodes
US11029865B2 (en) 2019-04-03 2021-06-08 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes
US10944826B2 (en) 2019-04-03 2021-03-09 EMC IP Holding Company LLC Selective instantiation of a storage service for a mapped redundant array of independent nodes
US11113146B2 (en) 2019-04-30 2021-09-07 EMC IP Holding Company LLC Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
US11119686B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Preservation of data during scaling of a geographically diverse data storage system
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11228322B2 (en) 2019-09-13 2022-01-18 EMC IP Holding Company LLC Rebalancing in a geographically diverse storage system employing erasure coding
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11288139B2 (en) 2019-10-31 2022-03-29 EMC IP Holding Company LLC Two-step recovery employing erasure coding in a geographically diverse data storage system
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage environment
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11144220B2 (en) 2019-12-24 2021-10-12 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes
US11231860B2 (en) 2020-01-17 2022-01-25 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage with high performance
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09330180A (ja) * 1996-06-10 1997-12-22 Hitachi Ltd コンピュータシステムのディスクアレイ装置
KR19980047273A (ko) * 1996-12-14 1998-09-15 양승택 레이드 레벨 5 시스템에서 캐쉬 관리 방법
KR20000056291A (ko) * 1999-02-19 2000-09-15 윤종용 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법
JP2000259359A (ja) 1999-03-04 2000-09-22 Toshiba Corp Raid装置および記録媒体
KR20030051996A (ko) * 2001-12-20 2003-06-26 한국전자통신연구원 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법
KR20030056653A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 디스크어레이 시스템에서의 디스크 캐쉬 관리 장치 및관리 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522032A (en) * 1994-05-05 1996-05-28 International Business Machines Corporation Raid level 5 with free blocks parity cache
KR100267366B1 (en) 1997-07-15 2000-10-16 Samsung Electronics Co Ltd Method for recoding parity and restoring data of failed disks in an external storage subsystem and apparatus therefor
JPH11203056A (ja) * 1998-01-19 1999-07-30 Fujitsu Ltd 入出力制御装置及びアレイディスク装置
US6453428B1 (en) 1998-07-17 2002-09-17 Adaptec, Inc. Dual-drive fault tolerant method and system for assigning data chunks to column parity sets
JP2000148409A (ja) 1998-11-12 2000-05-30 Hitachi Ltd 冗長記憶装置
US6957433B2 (en) * 2001-01-08 2005-10-18 Hewlett-Packard Development Company, L.P. System and method for adaptive performance optimization of data processing systems
US6766480B2 (en) * 2001-03-14 2004-07-20 Hewlett-Packard Development Company, L.P. Using task description blocks to maintain information regarding operations
US6950966B2 (en) * 2001-07-17 2005-09-27 Seachange International, Inc. Data transmission from raid services
US7085953B1 (en) * 2002-11-01 2006-08-01 International Business Machines Corporation Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array
JP2006107311A (ja) * 2004-10-08 2006-04-20 Hitachi Ltd ディスクアレイ装置およびその制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09330180A (ja) * 1996-06-10 1997-12-22 Hitachi Ltd コンピュータシステムのディスクアレイ装置
KR19980047273A (ko) * 1996-12-14 1998-09-15 양승택 레이드 레벨 5 시스템에서 캐쉬 관리 방법
KR20000056291A (ko) * 1999-02-19 2000-09-15 윤종용 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법
JP2000259359A (ja) 1999-03-04 2000-09-22 Toshiba Corp Raid装置および記録媒体
KR20030051996A (ko) * 2001-12-20 2003-06-26 한국전자통신연구원 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법
KR20030056653A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 디스크어레이 시스템에서의 디스크 캐쉬 관리 장치 및관리 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A performance evaluation tool for RAID disk arrays
Enhancing Write I/O performance of disk array RM2

Also Published As

Publication number Publication date
EP1674997A3 (en) 2008-06-11
CN100412806C (zh) 2008-08-20
US7433999B2 (en) 2008-10-07
US20060143508A1 (en) 2006-06-29
JP2006171957A (ja) 2006-06-29
KR20060067084A (ko) 2006-06-19
CN1790281A (zh) 2006-06-21
EP1674997A2 (en) 2006-06-28

Similar Documents

Publication Publication Date Title
KR100703016B1 (ko) 스토리지 제어 장치 및 방법
US9128846B2 (en) Disk array device, control device and data write method
US6718436B2 (en) Method for managing logical volume in order to support dynamic online resizing and software raid and to minimize metadata and computer readable medium storing the same
US7921257B1 (en) Dynamic parity distribution technique
US7552280B1 (en) Asymmetrically interleaving access to redundant storage devices
US7281089B2 (en) System and method for reorganizing data in a raid storage system
US7051155B2 (en) Method and system for striping data to accommodate integrity metadata
US7305579B2 (en) Method, apparatus and program storage device for providing intelligent rebuild order selection
CN103049222B (zh) 一种raid5的写io优化处理方法
CN101587425B (zh) 一种增加独立磁盘冗余阵列冗余性的方法及装置
US20120154946A1 (en) Method and system for determining access sequence of data stored on a tape medium
CN103577115B (zh) 数据的排布处理方法、装置和服务器
JP5349769B2 (ja) 方向性および浮動ライトバンドを有するコマンドキュー順序付け
US6223323B1 (en) Method for storing parity information in a disk array storage system
US20030105923A1 (en) Raid system and mapping method thereof
US10678470B2 (en) Computer system,control method for physical storage device,and recording medium
CN102722340A (zh) 数据处理方法、装置及系统
CN110196687B (zh) 数据读写方法、装置、电子设备
US6681290B2 (en) Physical data layout to reduce seeks in a raid system
US20120162807A1 (en) Method and system for operating a tape drive
CN113296702B (zh) 一种磁盘阵列扩容方法、装置、设备及存储介质
CN106095330A (zh) 一种元数据的存储方法和装置
US9122416B2 (en) Mainframe storage apparatus that utilizes thin provisioning
US20080059708A1 (en) Command queue ordering by positionally pushing access commands
CN106610788B (zh) 硬盘阵列控制方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130304

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee