KR100703016B1 - 스토리지 제어 장치 및 방법 - Google Patents
스토리지 제어 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
-
- 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/1057—Parity-multiple bits-RAID6, i.e. RAID 6 implementations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/40—Combinations of multiple record carriers
- G11B2220/41—Flat 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/415—Redundant 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
도 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)
- N개의 데이터 스트립(data strip)과 다른 종류의 M개의 패리티 스트립(parity strip)으로 이루어지는 스트라이프를 N+M개의 기억 장치에 분산하여 저장하는 제어를 행함으로써 데이터의 용장화(redundancy)를 실현하는 스토리지 제어 장치로서,상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 결정 수단과,상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 제어를 행하는 제어 수단을 구비하는 것을 특징으로 하는 스토리지 제어 장치.
- 제 1 항에 있어서,상기 결정 수단은 상기 복수의 스트라이프에 포함되는 패리티 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
- 제 2 항에 있어서,상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
- 제 2 항에 있어서,상기 결정 수단은 상기 복수의 스트라이프에 포함되는 같은 종류의 패리티 스트립이 상기 N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
- 제 4 항에 있어서,상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 하며, 또한 M개의 패리티 스트립을 저장하는 기억 장치의 번호가 (N+M)/M스트라이프마다 순회되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
- 제 4 항에 있어서,상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 하나씩 시프트되도록 하며, 또한 각 스트라이프 내에서 M개의 패리티 스트립을 저장하는 기억 장치의 번호가 연속되지 않도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
- 제 1 항 또는 4 항에 있어서,상기 결정 수단은 상기 복수의 스트라이프에 포함되는 데이터 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
- 제 7 항에 있어서,상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 하고, M개의 패리티 스트립을 저장하는 기억 장치의 번호가 (N+M)/M스트라이프마다 순회되도록 하며, 또한 M개의 데이터 스트립을 저장하는 기억 장치의 번호가 (N+M)/M스트라이프마다 순회되도록, 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 장치.
- 데이터의 용장화를 실현하기 위하여, N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 분산하여 저장하는 N+M개의 기억 장치와,상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 결정 수단과,상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 제어를 행하는 제어 수단을 구비하는 것을 특징으로 하는 스토리지 장치.
- N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 N+M개의 기억 장치에 분산하여 저장하는 제어를 행함으로써, 데이터의 용장화를 실현하는 프로세서를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 처리와,상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 처리를 상기 프로세서에 실행시키는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
- N개의 데이터 스트립과 다른 종류의 M개의 패리티 스트립으로 이루어지는 스트라이프를 N+M개의 기억 장치에 분산하여 저장함으로써 데이터의 용장화를 실현하는 스토리지 제어 방법으로서,상기 N+M개의 기억 장치가 복수의 스트라이프를 저장할 때, 연속하는 2개의 스트라이프 사이에서 동일 기억 장치에 패리티 스트립이 연속하여 저장되지 않도록 각 스트라이프에 포함되는 N개의 데이터 스트립과 M개의 패리티 스트립의 저장소의 기억 장치를 결정하는 단계와,상기 N개의 데이터 스트립과 2개 이상의 패리티 스트립을 결정된 각각의 저장소의 기억 장치에 저장하는 단계를 포함하는 것을 특징으로 하는 스토리지 제어 방법.
- 제 9 항에 있어서,상기 결정 수단은 상기 복수의 스트라이프에 포함되는 패리티 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 장치.
- 제 12 항에 있어서,상기 결정 수단은 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 장치.
- 제 12 항에 있어서,상기 결정 수단은 상기 복수의 스트라이프에 포함되는 같은 종류의 패리티 스트립이 상기 N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 장치.
- 제 10 항에 있어서,상기 결정하는 처리는 상기 복수의 스트라이프에 포함되는 패리티 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
- 제 15 항에 있어서,상기 결정하는 처리는 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
- 제 15 항에 있어서,상기 결정하는 처리는 상기 복수의 스트라이프에 포함되는 같은 종류의 패리티 스트립이 상기 N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
- 제 11 항에 있어서,상기 결정하는 단계는 상기 복수의 스트라이프에 포함되는 패리티 스트립이 상기N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 방법.
- 제 18 항에 있어서,상기 결정하는 단계는 같은 종류의 패리티 스트립을 저장하는 기억 장치의 번호가 스트라이프마다 M개씩 시프트되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 방법.
- 제 18 항에 있어서,상기 결정하는 단계는 상기 복수의 스트라이프에 포함되는 같은 종류의 패리티 스트립이 상기 N+M개의 기억 장치에 균등하게 분산되도록 상기 저장소의 기억 장치를 결정하는 것을 특징으로 하는 스토리지 제어 방법.
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)
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)
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)
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 | ディスクアレイ装置およびその制御方法 |
-
2004
- 2004-12-14 JP JP2004361149A patent/JP2006171957A/ja not_active Withdrawn
-
2005
- 2005-03-24 EP EP05251847A patent/EP1674997A3/en not_active Withdrawn
- 2005-03-25 US US11/089,218 patent/US7433999B2/en active Active
- 2005-04-08 KR KR1020050029270A patent/KR100703016B1/ko not_active IP Right Cessation
- 2005-04-25 CN CNB2005100662690A patent/CN100412806C/zh not_active Expired - Fee Related
Patent Citations (6)
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)
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 |