KR20110108314A - Raid 시스템에서 패리티와 미러링을 사용하지 않으면서 하이 레벨의 리던던시, 내고장성, 및 성능을 확립하기 위한 방법 - Google Patents

Raid 시스템에서 패리티와 미러링을 사용하지 않으면서 하이 레벨의 리던던시, 내고장성, 및 성능을 확립하기 위한 방법 Download PDF

Info

Publication number
KR20110108314A
KR20110108314A KR1020110027186A KR20110027186A KR20110108314A KR 20110108314 A KR20110108314 A KR 20110108314A KR 1020110027186 A KR1020110027186 A KR 1020110027186A KR 20110027186 A KR20110027186 A KR 20110027186A KR 20110108314 A KR20110108314 A KR 20110108314A
Authority
KR
South Korea
Prior art keywords
drive
drives
data
raid
compression
Prior art date
Application number
KR1020110027186A
Other languages
English (en)
Other versions
KR101158838B1 (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 KR20110108314A publication Critical patent/KR20110108314A/ko
Application granted granted Critical
Publication of KR101158838B1 publication Critical patent/KR101158838B1/ko

Links

Images

Classifications

    • 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/16Error detection or correction of the data by redundancy in hardware
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1014Compression, i.e. RAID systems with parity using compression techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명은, 적어도 2개의 드라이브들의 논리적 인접 그룹, 루프 및 압축/복원 회로를 포함한다. 드라이브들의 각각은, (i) 이전 드라이브의 압축 데이터를 저장하도록 구성된 제1 영역 및 (ii) 드라이브의 복원 데이터를 저장하도록 구성된 제2 영역을 포함한다. 루프는 논리적 인접 그룹의 다음 드라이브에 연결될 수 있다. 압축/복원 회로는 드라이브들의 각각에 저장된 데이터를 압축 및 복원하도록 구성될 수 있다.

Description

RAID 시스템에서 패리티와 미러링을 사용하지 않으면서 하이 레벨의 리던던시, 내고장성, 및 성능을 확립하기 위한 방법{METHOD TO ESTABLISH HIGH LEVEL OF REDUNDANCY, FAULT TOLERANCE AND PERFORMANCE IN A RAID SYSTEM WITHOUT USING PARITY AND MIRRORING}
본 발명은 일반적으로 데이터의 저장에 관한 것으로, 특히, RAID 시스템에서 패리티를 사용하지 않으면서 하이 레벨의 리던던시, 내고장성, 및 성능을 구현하기 위한 방법 및/또는 장치에 관한 것이다.
RAID(redundant array of inexpensive drives) 스토리지 시스템들에 사용되는 종래의 방식들은 리던던시를 얻고 내고장성을 제공하기 위해 주로 XOR 함수(패리티 연산) 또는 미러 함수에 기반을 두고 있다. RAID 1 및 RAID 10 기술들에 있어서, 드라이브들은 리던던시를 얻기 위해 미러링된다. 매체에서 새로운 기록이 발생할 때마다, 전체 데이터는 복제되어 데이터 드라이브와 해당 미러링된 드라이브에 기록될 필요가 있다.
도 1은 RAID 10 방식을 도시한 도면이다. 드라이브(DISK1)에 미러링된 드라이브(DISK0)가 도시되어 있다. 드라이브(DISK3)에 미러링된 드라이브(DISK2)가 도시되어 있다. RAID 1 및 RAID 10 방식들은 한 드라이브에서 또 하나의 드라이브로의 완전한 컨텐츠들의 미러링을 포함한다. RAID 1로 구성된 2개의 드라이브가 있으면(여기서, 각 드라이브는 용량 C GB를 가짐), RAID 그룹의 총 용량은 C GB가 될 것이다(즉, 총 용량은 2C GB가 아님). 따라서, RAID 1 또는 RAID 10의 전체 스토리지 용량은, RAID 1 또는 RAID 10 구성에 있는 모든 드라이브들의 총 용량의 50% 이다.
도 2는 RAID 4 및 RAID 5 방식을 도시한 도면이다. 복수의 드라이브들(DISK0, DISK1, DISK2 및 DISK3)이 도시되어 있다. RAID 4 및 RAID 5에 있어서, 데이터 블록들은 RAID 그룹의 복수의 드라이브들(DISK0-DISK3)에 걸쳐 스트라이프된다. 도시한 RAID 4 구성에 있어서, 드라이브들(DISK0, DISK1 및 DISK2)는 데이터를 저장한다. 패리티 블록은 전용 드라이브(드라이브(DISK3)로 도시됨)에 저장된다. RAID 5에 있어서, 패리티는 RAID 그룹의 모든 드라이브들(DISK0-DISK3)에 걸쳐 분포된다. 드라이브(DISK3)가 패리티만을 유지하는 RAID 4와 비교하여, 도시한 RAID 5 구성에서는 드라이브(DISK3)는 데이터를 유지한다. D 패리티(즉, 데이터 블록 D의 패리티)는 디스크(DISK0)에 저장된다. C 패리티는 디스크(DISK1)에 저장된다. 도시된 바와 같이, B 패리티는 디스크(DISK2)에 저장된다. 도시된 바와 같이, A 패리티는 디스크(DISK3)에 저장된다.
RAID 4 및 RAID 5 방식들은 XOR 함수를 기반으로 한 패리티 발생을 사용한다. RAID 4 및 RAID 5에 있어서, 데이터의 모든 스트라이프(stripe)는 패리티를 발생시키는데 사용된다. 그리고 발생한 패리티는 또 하나의 전용 드라이브에 저장되거나 또는 RAID 그룹의 모든 드라이브들에 걸쳐 분포된다. RAID 4 및 RAID 5는 데이터 손실없이 한번에 단 하나의 드라이브 고장만을 견딜 수 있다.
도 3은 전용 압축 데이터 드라이브 방식을 도시한 도면이다. 복수의 드라이브들(DRIVE 1, DRIVE 2 및 DRIVE 3)이 도시되어 있다. 또한, 드라이브(DRIVE C)가 도시되어 있다. 드라이브들(DRIVE 1, DRIVE 2 및 DRIVE 3)은 복원(uncompressed) 데이터(D0-D8)를 저장한다. 드라이브(DRIVE C)는, 데이터(C-D0 내지 C-D8)로 표시된 데이터(D0-D8)의 압축 버전을 저장하기 위한 전용 드라이브이다.
전용 압축 데이터 드라이브 방법의 성능은 결점들을 갖는다. 단일의 전용 드라이브(DRIVE C)는 모든 RAID 그룹의 압축 데이터를 저장한다. 모든 새로운 기록은 복수의 스트라이프들로 나뉜다. 각각의 스트라이프들에 대하여, 압축 데이터(D-D0 내지C-D8)가 생성되어 전용 드라이브(DRIVE C)에 저장된다. 만약 RAID 그룹 내에 n 드라이브들이 있다면, n-1 스트라이프들의 압축 데이터는 전용 드라이브(DRIVE C) 내에 저장된다. n-1 스트라이프들의 처리는 압축 데이터의 기록을 완료할 때에 지연을 발생시켜 병목 현상을 일으킨다. 데이터 스트라이프와 압축 데이터 모두를 기록하기 위해 구성된 시스템은, 압축 드라이브(DRIVE C)의 큐업(que up)된 기록들 때문에, 지연들을 동시에 접할 것이다. 또한, 전용 압축 데이터 드라이브 방법은 내-고장성 결점들을 갖는다. RAID 그룹의 전용 압축 드라이브 및 또 하나의 드라이브의 고장은, 데이터 손실을 유발한다(논리적 드라이브 고장).
도 4는 분포된 압축 드라이브 방식을 도시한 도면이다. 복수의 드라이브들(DRIVE 1, DRIVE 2, DRIVE 3 및 DRIVE 4)이 도시되어 있다. 압축 데이터는, RAID 5 방식에서 패리티가 분포된 방식과 유사하게, 드라이브들에 걸쳐 분포되어 있다. 드라이브들(DRIVE 1-4)의 각각은, 다른 3개의 드라이브들 각각으로부터의 데이터의 스트라이프에 대한 압축 버전을 포함한다. 분포된 압축 데이터 방식은, 전용 압축 데이터 방법에 비해 더 나은 성능을 제공한다. 하지만, 분포된 압축 데이터 방법에서의 하나 이상의 드라이브의 고장은 데이터의 손실을 가져올 것이다.
본 발명의 목적들, 특징들 및 장점들은, (ⅰ) 고레벨의 리던던시 및 내고장성을 확립할 수 있고, (ⅱ) 패리티를 사용하지 않고 구현될 수 있고, (ⅲ) 압축/복원 동작들을 위한 ASIC을 구현할 수 있고, (ⅳ) 드라이브 인클로저 내의 종래의 리던던트 드라이브 채널을 사용할 수 있고, (ⅴ) 데이터를 저장하기 위해 이미 사용중인 드라이브 포트들을 사용할 수 있고, (ⅵ) 압축/복원을 구현하기 위한 펌웨어를 제공할 수 있고, (ⅶ) 또 하나의 드라이브에 저장된 압축 데이터 블록에 비교되는 드라이브 각각의 데이터 블록들 간의 매핑을 저장하기 위한 펌웨어를 구현할 수 있고 및/또는 (ⅷ) 구현하는 데에 저렴할 수 있는 드라이브 스토리지 구성의 제공을 포함한다.
본 발명은, 적어도 2개의 드라이브들의 논리적 인접 그룹, 루프 및 압축/복원 회로를 포함하는 장치에 관한 것이다. 드라이브들의 각각은, (i) 이전 드라이브의 압축 데이터를 저장하도록 구성된 제1 영역과 (ii) 드라이브의 복원 데이터를 저장하도록 구성된 제2 영역을 포함한다. 루프는 논리적 인접 그룹의 다음 드라이브에 연결될 수 있다. 압축/복원 회로는 드라이버들의 각각에 저장된 데이터를 압축하거나 복원하도록 구성될 수 있다.
본 발명이 바람직한 실시예들을 참조하여 특별히 도시되고 설명되었지만, 본 발명의 범위를 일탈하지 않고 형태와 상세에 있어 다양한 변형물들이 가능하다는 것을 이 기술분야의 당업자는 이해할 것이다.
본 발명의 목적들, 특징들 및 장점들은 다음의 상세한 설명, 첨부한 청구범위, 및 도면들로부터 명백할 것이다.
도 1은 RAID 1 및 RAID 10 방식을 도시한 도면이다.
도 2는 RAID 4 및 RAID 5 방식을 도시한 도면이다.
도 3은 전용 압축 데이터 드라이브 방식을 도시한 도면이다.
도 4는 분포된 압축 데이터 방식을 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 드라이브를 도시한 도면이다.
도 6은 압축 데이터 RAID 메커니즘의 루프 체인연결 방식에서의 복수의 드라이브들을 도시한 도면이다.
도 7은 압축/복원 동작들을 위한 전용 로직을 도시한 도면이다.
도 8은 드라이브 인클로저를 도시한 도면이다.
도 9는 드라이브들로의 데이터 흐름의 일례를 도시한 도면이다.
도 10은 본 발명에서 2개의 드라이브 고장의 경우를 설명하는 도면이다.
도 11은 분포된 압축 데이터 방법에서 2개의 드라이브가 고장난 예를 도시한 도면이다.
도 12는 전용 압축 데이터 드라이브 방법에서 2개의 드라이브가 고장난 예를 도시한 도면이다.
최대화된 스토리지 효율 및/또는 성능을 갖는 고레벨의 리던던시 달성은, 데이터 스토리지가 커져가고 있는 현대 세계에서의 공동의 목표이다. 본 발명은 RAID 구성의 데이터의 리던던트 사본을 압축하기 위한 압축 기술을 구현할 수 있다. 리던턴트 데이터는 단일 체인연결 방식(single chained manner)으로 분포될 수 있다. 패리티 및/또는 미러링 기술들을 필요로 하지 않고 RAID 구성에서 고레벨의 리던던시 및/또는 성능을 얻기 위하여, 논리적 루프가 구현될 수 있다. 리던던시를 위해 압축 기술을 사용하면, 부가적인 리던던시, 우수한 내고장성 및/또는 개선된 성능이 제공된다. 한 세트의 드라이브들은 RAID 그룹으로 그룹화될 수 있다. 드라이브들 각각의 데이터 컨텐츠는 압축되어 RAID 그룹의 또 하나의 드라이브에 저장될 수 있다. 단일 체인연결 논리 구조가 구현될 수 있다. 드라이브들 상의 리던던트 포트와 드라이브 인클로저에서의 리던던트 드라이브 채널은 논리 구조를 제공하는데 사용될 수 있다.
데이터에 50% 압축이 이루어진다는 시나리오에서, 본 발명은, RAID 1 드라이브 그룹에 비하여 스토리지 활용을 33.33% 증가시킬 수 있다. 본 발명의 스토리지 효율은, 데이터에 적용된 압축량에 따라 개선될 수 있다. 50% 이상의 압축에 대하여, 본 발명의 스토리지 효율은 더욱 증가되고, 내고장성의 어떠한 절충도 없이 RAID 4 및/또는 RAID 5의 스토리지 효율보다 일반적으로 우수하다.
스토리지 서브시스템들에서 특정의 성능을 보장하기 위한 압축 및/또는 복원 동작들을 위해, ASIC(application speific integrated circuit)이 구현될 수 있다. 리던던트 포트 드라이브 및/또는 드라이브 인클로저에 리던던트 드라이브 채널들을 사용하면, 드라이브들의 그러한 특정의 성능을 보장할 수 있다. 본 발명의 체인연결 압축 해결책은 개선된 내고장성, 리던던시 및/또는 이용성을 RAID 시스템에 제공할 수 있다.
본 발명의 RAID 그룹은 드라이브들의 집합을 포함할 수 있다. 예시적인 데이터 블록은 단일 드라이브에 저장될 수 있다. 하나의 드라이브로부터의 압축된 형태의 예시적인 데이터는 동일한 RAID 그룹 내의 또 하나의 드라이브에 저장될 수 있다. 이들 2개의 드라이브들은 "논리적으로 인접한" 드라이브들이라 할 수 있다. 압축을 도입함으로써 패리티 및/또는 미러링의 사용에 대한 필요성을 회피할 수 있다. 특정 드라이브의 압축 데이터는 체인연결 방식의 드라이브에 저장될 수 있다. 예를 들면, 루프가 형성될 수 있다. 고레벨의 리던던시, 내고장성 및/또는 성능이 달성될 수 있다.
도 5는 본 발명의 드라이브(100)를 도시한 도면이다. 드라이브(100)는 일반적으로 영역(102) 및 영역(104)을 포함한다. 영역(104)은 복원 데이터를 저장하는데 사용될 수 있다. 영역(102)은 하나의 논리적으로 인접한 드라이브의 압축 데이터(예를 들면, 드라이브 n-1로부터의 압축 데이터)를 저장하는데 사용될 수 있다.
구현되는 특정 압축 메커니즘은 드라이브(100)의 실제적 컨텐츠들의 1 대 1 매핑을 포함할 수 있다(도 6을 참조하여 더욱 상세하게 설명됨). 예를 들면, 하나의 드라이브에서의 데이터의 압축 버전은 논리적 인접 드라이브에 저장될 수 있다. 매핑 정보는 스토리지 어레이 컨트롤러에 내장된 펌웨어에 의해 유지될 수 있다. 매핑 정보는, 논리적 인접 드라이브로부터의 압축 데이터 블록을 복원함으로써, 드라이브 고장 및/또는 에러 정정의 경우에 드라이브의 데이터를 재구성하는데 사용될 수 있다. 고장난 드라이브를 새로운 교체 드라이브로 교체할 때, 논리적 인접 드라이브로부터의 압축 데이터 블록을 복원함으로써, 고장난 드라이브의 데이터가 새로운 드라이브에 재구성될 수 있다. 매핑 정보는, 리던던트 스토리지 어레이 컨트롤러들의 각각에 내장된 컨트롤러 펌웨어에 의해 구현될 수 있다(도 7을 참조하여 더욱 상세하게 설명됨).
도 6은 드라이브 시스템(또는 구성)(150)을 도시한 블록도이다. 시스템(150)은 일반적으로 복수의 드라이브들(100a-100n)을 포함한다. 특정 구현의 설계 기준을 충족시키기 위해, 드라이브들(100a-100n)의 특정 개수는 변경될 수 있다. 드라이브들(100a-100n)의 각각은 데이터 섹션(예를 들면, D1-D5) 및 압축 섹션(예를 들면, C1-C5)을 가질 수 있다. 예를 들면, 드라이브(100a)는 복원 데이터(D1)를 저장하도록 구성된 데이터 섹션을 가질 수 있다. 데이터 블록들(D1)의 압축 형태는 데이터(C1)로서 논리적 인접 드라이브에 저장될 수 있다. 예를 들면, 압축 데이터(C1)는 드라이브(100b)에 저장될 수 있다. 드라이브들(100a-100n)은 루프(160a-160n)를 형성할 수 있다. 루프(160a-160n)는 논리적 체인연결 루프를 형성할 수 있다. 일반적으로, 루프(160a-160n)는, 드라이브들(100a-100n) 간의 복수의 논리 연결들로서 구현될 수 있다. 예를 들면, 부분(160a)은, 드라이브(100a)의 데이터(D1)를 드라이브(100b)의 압축 데이터(C1)에 논리적으로 연결할 수 있다. 도시한 바와 같이, 루프(160a-160n)는, 일반적으로 좌→우 방식일 수 있다. 하지만, 루프(160a-160n)는 우→좌 방식으로 구현될 수도 있다. 예를 들면, 부분(160d)은 드라이브(100n)의 데이터(D5)를 드라이브(100d)의 압축 데이터(C5)에 논리적으로 연결할 수 있다. 루프(160a-160n)의 특정 배열은 특정 구현의 설계 기준을 충족시키기 위해 변경될 수 있다.
도시한 예에서, 드라이브(100b)는 데이터(D2)를 저장할 수 있다. 데이터 D2의 압축 버전은, 데이터 C2로서 드라이브(100c)에 저장될 수 있으며, 논리적 루프(160a-160n)의 부분(160d)을 통해 액세스가능하다. 마찬가지로, 드라이브(100a)의 데이터 D1은, 드라이브(100b)의 데이터 C1로서 저장된 데이터 D1의 압축 버전을 가질 수 있다. 드라이브(100n)의 압축 데이터(C5)는 드라이브(100a)에 저장될 수 있다. 일반적으로, 어떤 2개의 드라이브들(100a-100n)이라도 논리적 인접 그룹을 형성할 수 있다. 일례에 있어서, 드라이브들(100b 및 100c)은 논리적 인접 그룹일 수 있다. 논리적 인접 그룹은 서로 인접하게 도시되지 않은 드라이브들로 이루어질 수 있다. 드라이브(100c)의 데이터(D3)는 압축 데이터(C3)로서 드라이브(100d)에 저장되어 있다.
도 7은 스토리지 서브시스템(200)을 도시한 도면이다. 서브시스템(200)은 일반적으로 복수의 블록들(또는 회로들)(202a-202b)을 포함한다. 회로들(202a-202b)의 각각은 압축/복원 회로들로서 구현될 수 있다. 회로(202a)와 회로(202b) 사이에 미드-플레인(mid-plane)(204)이 구현될 수 있다. 압축 회로(202a)는 일반적으로 블록(또는 회로)(210), 블록(또는 회로)(212), 블록(또는 회로)(214) 및 블록(또는 회로)(216)을 포함한다. 회로(210)는 호스트 인터페이스로서 구현될 수 있다. 회로(212)는 데이터 캐시와 함께 프로세서로 구현될 수 있다. 회로(214)는 압축/복원 엔진으로 구현될 수 있다. 회로(216)는 드라이브 인터페이스로 구현될 수 있다. 회로(212)는 일반적으로 캐시 회로(218) 및 프로세서 회로(220)를 포함한다. 호스트 인터페이스(210)는 신호(예를 들면, DATA)를 수신할 수 있는 입력(230)을 가질 수 있다. 신호(DATA)는 일반적으로, 도 6에 기재된 데이터(D1-D5)를 나타내는 하나 이상의 데이터 블록들(또는 패킷들)을 나타낸다. 호스트 인터페이스는 신호(DATA)를 회로(212)의 입력(234)에 제공할 수 있는 출력(232)을 가질 수 있다. 회로(212)는 신호(DATA)를 회로(214)의 입력(238)에 제공할 수 있는 출력(236)을 가질 수 있다. 또한, 회로(212)는 신호(DATA)를 회로(216)의 입력(242)에 제공할 수 있는 출력(240)을 가질 수 있다. 회로(214)는 신호(예를 들면, C_DATA)를 회로(216)의 입력(246)에 제공할 수 있는 출력(244)을 가질 수 있다. 신호(C_DATA)는 신호(DATA)의 압축 버전일 수 있다. 신호(C_DATA)는 일반적으로 도 6에 기재된 압축 데이터(C1-C5)를 나타내는 하나 이상의 데이터 블록들(또는 패킷들)을 나타낸다. 회로(202b)는 유사한 구현을 가질 수 있다. 회로(214)는 압축 및/또는 복원 동작들을 구현하기 위해 전용 로직을 제공할 수 있다.
회로(202a) 및/또는 회로(202b)의 로직은 RAID 엔진을 위한 코드와 함께 컨트롤러 펌웨어의 일부로서 실행되는 코드에 내장되거나, 또는 컨트롤러 펌웨어 코드에 의해 제어 및 운용되는 ASIC에 오프로드(offload)될 수 있다. 코드를 오프로딩하면 추가적인 회로의 비용으로 성능을 증대시킬 수 있다. 회로(214)에 의해 구현되는 압축/복원의 특정 타입은 특정 구현의 설계 기준을 충족시키기 위해 변할 수 있다. 회로(202a) 및/또는 회로(202b)는 리던던시, 내고장성 및/또는 RAID 그룹 장애복구 메커니즘들에 사용될 수 있다.
도 8은 드라이브 인클로저(300)를 도시한 도면이다. 복수의 드라이브들(100a-100n)을 포함하는 드라이브 인클로저(300)가 도시되어 있다. 포트(예를 들면, P1) 및 또 하나의 포트(예를 들면, P2)를 갖는 각각의 드라이브들(100a-100n)이 도시되어 있다. 인클로저는, 일반적으로 회로(302), 회로(304), 미드-플레인(204), 회로(308), 및 회로(310)를 포함한다. 회로(302)는 주 ESM으로 구현될 수 있다. 회로(308)는 대체 ESM으로 구현될 수 있다. 드라이브들(100a-100n) 각각의 포트들(P1 및 P2) 중 하나는 주 포트일 수 있다. 드라이브들(100a-100n) 각각의 포트들(P1 및 P2) 중 다른 하나는 보조 포트일 수 있다. 드라이브들로의 복원 데이터(D1-D5) 및 압축 데이터(C1-C5)의 I/O 경로들은 별도로 유지될 수 있다. 복원 데이터(D1-D5)와 압축 데이터(C1-C5)는 동일한 컨트롤러에 의해 처리된다. 드라이브들(100a-100n)은 리던던시를 구현하기 위해(예를 들면, 드라이브들(100a-100n)의 압축 데이터(C1-C5)를 저장하고 검색하기 위해), 듀얼 포트 드라이브들로 구현될 수 있다. SOC(304)(또는 310)는 ESM(302)(또는 308)에 상주할 수 있으며, 드라이브들(100a-100n)로의 데이터의 스위칭/라우팅을 행할 수 있다. 드라이브 인클로저(300) 내의 미드 플레인(204)은, 드라이브 인클로저(300)의 리던던트 ESM(302 또는 308)으로 압축 데이터를 전송하기 위해 사용될 수 있다. 또한, 미드 플레인(204)은 보조 포트(P2)를 이용하여 드라이브들(100a-100n)에 압축 데이터를 전송하기 위해 사용될 수 있다.
신호(DATA)의 압축 데이터 C_DATA는, 드라이브 인클로저(300) 내의 미드-플레인 회로(204)를 통해, 데이터(D1-D5)를 동일한 ESM으로 유지하는 대체 ESM(308)에 라우팅될 수 있다. 컨트롤러(202a) 소유의 RAID 논리 드라이브에 대하여, 드라이브들(100a-100n) 각각의 주 포트(P1)는, 주 채널을 통해 ESM(302)에 의해 처리된 복원 데이터를 전달하기 위해 사용될 수 있다. 드라이브들(100a-100n) 각각의 보조 포트(P2)는, 보조 채널을 통해 ESM(308)에 의해 처리된 압축 데이터를 전달하기 위해 사용될 수 있다. 컨트롤러(202b) 소유의 RAID 논리 드라이브(100a-100n)에 대하여, 포트(P2)는, 주 채널을 통해 ESM B(308)에 의해 처리된 복원 데이터를 전달하기 위한 주 포트로 사용될 수 있다. 포트(P1)는 보조 채널을 통해 ESM(302)에 의해 처리된 압축 데이터를 전달하기 위한 보조 포트로 사용될 수 있다.
본 발명을 이용하여 구현되는 RAID 그룹은, 드라이브들(100a-100n) 중 하나에 저장된 실제(복원) 데이터(D1-Dn) 및 2개의 다른 논리적 인접 드라이브들(100a-100n)에 저장된 압축 데이터(C1-Cn)를 가질 수 있다. 호스트로부터 각각의 데이터 세그먼트가 도달하면, 데이터(D1-D5)는 드라이브 인터페이스(216)로 전달될 복수의 스트라이프들로 분할된다. 이 프로세스와 병행하여, 스트라이프된 데이터는 압축 엔진에 의해 압축되어 드라이브 인터페이스로 전달된다. 압축 데이터(C1-Cn)와 함께 실제 데이터(D1-Dn)는 드라이브 인클로저(300)에 전달된다.
도 9는 드라이브들(100a-100n)로의 데이터 흐름의 일례를 도시한 도면이다. 데이터는 데이터 채널(320)로 전달될 수 있다. 드라이브들(100a-100n) 각각은 데이터 채널(320)로부터 주 포트(P1)로 데이터를 수신할 수 있다. 데이터 채널(320)로부터의 데이터는 압축/복원 엔진(214)에 의해 압축될 수 있다. 드라이브들(100a-100n) 각각은 압축/복원 엔진(214)으로부터 보조 포트(P2)로 압축 데이터를 수신할 수 있다. 이는, 드라이브 성능의 손실없이, RAID 그룹이 어떠한 개수의 드라이브들(100a-100n)과 작동한다는 것을 보장한다. 본 발명은 보통 n/2 드라이브들의 내고장성을 제공한다(여기서, n은 논리적 인접 드라이브 고장이 없는 경우의 RAID 그룹의 드라이브들의 총 개수).
본 발명에서 50% 데이터 압축을 이용하면, RAID 1 구현과 비교하여 우수한 스토리지 효율 및 우수한 성능을 보장할 것이다. 2개의 드라이브를 갖는 예를 든다. 드라이브들(100a-100n) 각각이 용량 C GB을 가지면, RAID 1이 차지하는 최대 공간은 C GB 이다. 하지만, 본 발명에서, 드라이브들(100a-100n) 각각의 데이터 영역은 0.666C GB를 차지하고, 압축 영역은 0.333C GB를 차지한다(50% 압축). 2개의 드라이브들에 있어서, RAID 그룹이 저장하는 실제 데이터의 총 용량은 대략 1.33C GB이다. 드라이브들(100a-100n)이 두 드라이브들에 걸쳐 스트라이프된 데이터를 갖는 RAID 0 그룹처럼 액세스될 수 있기 때문에, 성능은 더 우수하다. 따라서, 본 발명은 50% 이상의 압축을 갖는 RAID 1보다 우수한 성능을 제공할 수 있다. 하지만, 50% 이상의 압축을 구현함으로써, 드라이브들(1001-100n)의 스토리지 용량 효율은 더욱 개선될 수 있다.
본 발명은 1개 이상의 드라이브들이 고장나더라도(논리적 인접 드라이브들이 고장나지 않는다면, 최대 n/2 드라이브들) 데이터 손실없이 계속 동작할 수 있기 때문에, 본 발명은 일반적으로 RAID 3 및 RAID 5 구현들보다 내고장성이 우수하다. RAID 3 및 RAID 5 그룹들과 비교하여, 추가적인 내고장성이 구현될 수 있다. RAID 3 및 RAID 5 그룹들의 경우에, 그룹에 대하여 수정 동작이 구현될 때마다, 모든 드라이브들은 패리티를 재연산하고 수정된 데이터와 함께 패리티를 업데이트하기 위해 읽혀질 필요가 있다. 본 발명에 의하여, 데이터는 모든 수정 동작마다 스트라이프되어 드라이브들(100a-100n)의 각각에 기록된다. 그리고 스트라이프들의 압축이 독립적으로 발생하고 RAID 그룹의 논리적 인접 드라이브들에 기록된다. 패리티 발생 방법들에 비하여 적은 수의 읽기들 및/또는 업데이트들이 요구된다.
도 10은 2개의 드라이브가 고장난 드라이브 시스템(150)을 도시한 도면이다. 고장난 모든 드라이브들이 인접하지 않는다면, 드라이브 시스템(150)은 복수의 드라이브 손실 시나리오를 처리할 수 있다. 드라이브 고장을 나타내기 위해 드라이브(100a) 및 드라이브(100d)가 X로 표시되어 있다. 2개의 드라이브들이 고장나더라도, 모든 데이터는 계속 이용가능할 것이다. 다음의 [표 1]은 드라이브 각각의 상태와 데이터 이용성을 나타낸다.
드라이브 상태 데이터 이용성
1 고장 드라이브 2의 C1을 통해
2 최적 D2를 통해
3 고장 드라이브 4의 C3를 통해
4 최적 D4를 통해
5 최적 D5를 통해
도 11은 2개의 드라이브가 고장난 경우의 분포된 압축 데이터 방법을 도시한 도면이다. 분포된 압축 데이터 방법을 이용하는 어떤 2개의 드라이브들에서의 고장은 데이터의 손실을 가져온다. 드라이브 고장을 나타내기 위해 DRIVE 2 및 DRIVE 4가 X로 표시되어 있다. 결과적으로, 데이터(D1 및 D8)가 손실된다.
도 12는 2개의 드라이브가 고장난 경우의 전용 압축 데이터 방법을 도시한 도면이다. 전용 압축 데이터 방법을 이용하는 RAID 시스템의 전용 드라이브 및 어떤 다른 드라이브에서의 고장은, 데이터의 손실을 가져온다. 드라이브 고장을 나타내기 위해 DRIVE 2 및 전용 드라이브 DRIVE 4가 X로 표시되어 있다. 결과적으로, 데이터 블록들(D1, D4 및D7)이 손실된다.
본 발명은, 분포된 압축 데이터 방법 및 전용 압축 데이터 방법에 비해, 더 높은 레벨의 리던던시뿐만 아니라, 성능과 내고장성에서 더 우수한 균형을 제공한다.

Claims (14)

  1. 적어도 2개의 드라이브들의 논리적인 그룹으로서, 상기 드라이브들의 각각은 (i) 이전 드라이브의 압축 데이터를 저장하도록 구성된 제1 영역과 (ii) 상기 드라이브의 복원 데이터를 저장하도록 구성된 제2 영역을 포함하는, 적어도 2개의 드라이브들의 논리적 인접 그룹;
    상기 논리적 인접 그룹의 다음 드라이브에 연결된 루프; 및
    상기 드라이브들의 각각에 저장된 데이터를 압축 및 복원하도록 구성된 압축/복원 회로를 포함하는 장치.
  2. 제1항에 있어서,
    상기 논리적 인접 그룹의 상기 드라이브들 중 하나의 상기 제2 영역은 상기 다음 드라이브의 상기 제1 영역에 연결되는 것을 특징으로 하는 장치.
  3. 제1항에 있어서,
    상기 루프의 일부는 상기 드라이브들 중 하나의 상기 제2 영역을 상기 다음 드라이브의 상기 제1 영역에 연결하는 것을 특징으로 하는 장치.
  4. 제1항에 있어서,
    상기 드라이브들 중 하나의 상기 제1 영역의 압축 데이터는, 상기 루프의 일부를 통해 액세스가능한 것을 특징으로 하는 장치.
  5. 제1항에 있어서,
    (i) 스토리지 어레이 컨트롤러에 내장되고 (ii) 드라이브 고장 및/또는 에러 정정의 경우에 상기 드라이브의 데이터를 재구성하기 위해 사용되는 펌웨어에 의해 매핑 정보가 유지되는 것을 특징으로 하는 장치.
  6. 제1항에 있어서,
    상기 압축/복원 회로의 전용 로직이 컨트롤러 펌웨어 RAID 엔진 코드에 내장되는 것을 특징으로 하는 장치.
  7. 제1항에 있어서,
    상기 압축/복원 회로의 전용 로직이 ASIC 주변 디바이스로 전송되는 것을 특징으로 하는 장치.
  8. 제1항에 있어서,
    상기 드라이브들의 각각은, 압축 데이터를 저장하고 검색하는 데 사용되는 드라이브 포트를 포함하는 것을 특징으로 하는 장치.
  9. 제1항에 있어서,
    상기 드라이브들의 각각은, 드라이브 인클로저에 사용되는 리던던트 드라이브 채널을 포함하는 것을 특징으로 하는 장치.
  10. 제1항에 있어서,
    상기 장치는, 패리티를 사용하지 않으면서 RAID 레벨 5보다 우수한 리던던시 및 내고장성을 확립하는 것을 특징으로 하는 장치.
  11. 적어도 2개의 드라이브들의 논리적 인접 그룹을 구현하기 위한 수단으로서, 상기 드라이브들 각각은 (i) 이전 드라이브의 압축 데이터를 저장하도록 구성된 제1 영역과 (ii) 상기 드라이브의 복원 데이터를 저장하도록 구성된 제2 영역을 포함하는, 적어도 2개의 드라이브들의 논리적 인접 그룹을 구현하기 위한 수단;
    상기 논리적 인접 그룹의 다음 드라이브에 연결된 루프를 구현하기 위한 수단; 및
    상기 드라이브들의 각각에 저장된 데이터를 압축 및 복원하도록 구성된 압축/복원 회로를 구현하기 위한 수단을 포함하는 장치.
  12. 제11항에 있어서,
    상기 장치는, 패리티를 사용하지 않으면서 RAID 레벨 5보다 우수한 리던던시 및 내고장성을 확립하는 것을 특징으로 하는 장치.
  13. 드라이브 어레이에서 내고장성을 구현하기 위한 방법으로서:
    (A) 적어도 2개의 드라이브들의 논리적 인접 그룹을 구현하는 단계로서, 상기 드라이브들 각각은 (i) 이전 드라이브의 압축 데이터를 저장하도록 구성된 제1 영역과 (ii) 드라이브의 복원 데이터를 저장하도록 구성된 제2 영역을 포함하는, 적어도 2개의 드라이브들의 논리적 인접 그룹을 구현하는 단계;
    (B) 상기 논리적 인접 그룹의 다음 드라이브에 연결된 루프를 구현하는 단계; 및
    (C) 상기 드라이브들의 각각에 저장된 데이터를 압축 및 복원하도록 구성된 압축/복원 회로를 구현하는 단계를 포함하는 드라이브 어레이에서의 내고장성 구현 방법.
  14. 제13항에 있어서,
    상기 방법은, 패리티를 사용하지 않으면서 RAID 레벨 5보다 우수한 리던던시 및 내고장성을 확립하는 것을 특징으로 하는 드라이브 어레이에서의 내고장성 구현 방법.
KR1020110027186A 2010-03-26 2011-03-25 Raid 시스템에서 패리티와 미러링을 사용하지 않으면서 하이 레벨의 리던던시, 내고장성, 및 성능을 확립하기 위한 방법 KR101158838B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/732,908 US8181062B2 (en) 2010-03-26 2010-03-26 Method to establish high level of redundancy, fault tolerance and performance in a raid system without using parity and mirroring
US12/732,908 2010-03-26

Publications (2)

Publication Number Publication Date
KR20110108314A true KR20110108314A (ko) 2011-10-05
KR101158838B1 KR101158838B1 (ko) 2012-06-27

Family

ID=44528210

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110027186A KR101158838B1 (ko) 2010-03-26 2011-03-25 Raid 시스템에서 패리티와 미러링을 사용하지 않으면서 하이 레벨의 리던던시, 내고장성, 및 성능을 확립하기 위한 방법

Country Status (6)

Country Link
US (1) US8181062B2 (ko)
EP (1) EP2375331A3 (ko)
JP (1) JP4965722B2 (ko)
KR (1) KR101158838B1 (ko)
CN (1) CN102200934B (ko)
TW (1) TWI372339B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181062B2 (en) 2010-03-26 2012-05-15 Lsi Corporation Method to establish high level of redundancy, fault tolerance and performance in a raid system without using parity and mirroring
US10929040B1 (en) * 2011-09-28 2021-02-23 EMC IP Holding Company LLC RAID 1—half compressed data storage
US9959284B2 (en) * 2014-01-10 2018-05-01 Appex Networks Holding Limited System and method for synchronizing history data for compression and decompression
CN107562576A (zh) * 2017-09-14 2018-01-09 郑州云海信息技术有限公司 一种数据保护的方法
US10776202B1 (en) * 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757642A (en) 1995-01-20 1998-05-26 Dell Usa L.P. Multi-function server input/output subsystem and method
WO1997011426A1 (en) * 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
US5812754A (en) 1996-09-18 1998-09-22 Silicon Graphics, Inc. Raid system with fibre channel arbitrated loop
JP3595099B2 (ja) 1997-03-17 2004-12-02 富士通株式会社 デバイスアレイ・システム
US6076143A (en) 1997-09-02 2000-06-13 Emc Corporation Method and apparatus for managing the physical storage locations for blocks of information in a storage system to increase system performance
US6151659A (en) 1997-12-22 2000-11-21 Emc Corporation Distributed raid storage system
US6442659B1 (en) * 1998-02-17 2002-08-27 Emc Corporation Raid-type storage system and technique
US6192027B1 (en) * 1998-09-04 2001-02-20 International Business Machines Corporation Apparatus, system, and method for dual-active fibre channel loop resiliency during controller failure
KR100340686B1 (ko) 2000-09-19 2002-06-15 오길록 다중 호스트 컴퓨터와 레이드 사이의 중복연결을 위한 장치
US6678768B1 (en) 2000-10-06 2004-01-13 International Business Machines Corporation Method and apparatus for configuring redundant array of independent disks (RAID)
US6862609B2 (en) * 2001-03-07 2005-03-01 Canopy Group, Inc. Redundant storage for multiple processors in a ring network
US7076606B2 (en) * 2002-09-20 2006-07-11 Quantum Corporation Accelerated RAID with rewind capability
WO2004072815A2 (en) 2003-02-10 2004-08-26 Netezza Corporation Rapid regeneration of failed disk sector in a distributed database system
WO2004090676A2 (en) 2003-04-03 2004-10-21 Commvault Systems, Inc. Remote disaster data recovery system and method
JP2006113648A (ja) 2004-10-12 2006-04-27 Hitachi Ltd ディスクアレイ装置
CN101095115A (zh) * 2004-11-05 2007-12-26 数据机器人技术公司 存储系统条件指示器和方法
JP2006251960A (ja) 2005-03-09 2006-09-21 Hitachi Ltd ストレージ装置
US7512862B1 (en) 2005-04-13 2009-03-31 Network Appliance, Inc. Compression of data for protection
TW200807258A (en) 2006-07-28 2008-02-01 Qnap Systems Inc Data recovery method and system when redundant array of independent disks (RAID) is damaged
US7958273B2 (en) * 2006-10-10 2011-06-07 Lsi Corporation System and method for connecting SAS RAID controller device channels across redundant storage subsystems
CN101320342A (zh) * 2007-06-07 2008-12-10 威达电股份有限公司 应用于数据处理装置的数据备份/恢复系统及方法
JP2009098996A (ja) * 2007-10-18 2009-05-07 Hitachi Ltd ストレージシステム
JP5112003B2 (ja) * 2007-10-19 2013-01-09 株式会社日立製作所 ストレージ装置及びこれを用いたデータ格納方法
US8073993B2 (en) * 2009-04-20 2011-12-06 International Business Machines Corporation Management of redundant physical data paths in a computing system
US8407378B2 (en) * 2009-04-22 2013-03-26 Lsi Corporation High-speed inline data compression inline with an eight byte data path
US8112663B2 (en) * 2010-03-26 2012-02-07 Lsi Corporation Method to establish redundancy and fault tolerance better than RAID level 6 without using parity
US8181062B2 (en) 2010-03-26 2012-05-15 Lsi Corporation Method to establish high level of redundancy, fault tolerance and performance in a raid system without using parity and mirroring

Also Published As

Publication number Publication date
EP2375331A3 (en) 2011-10-26
US20110239041A1 (en) 2011-09-29
CN102200934B (zh) 2014-12-17
US8181062B2 (en) 2012-05-15
KR101158838B1 (ko) 2012-06-27
CN102200934A (zh) 2011-09-28
JP2011243190A (ja) 2011-12-01
EP2375331A2 (en) 2011-10-12
TWI372339B (en) 2012-09-11
JP4965722B2 (ja) 2012-07-04
TW201209575A (en) 2012-03-01

Similar Documents

Publication Publication Date Title
JP3595099B2 (ja) デバイスアレイ・システム
US6675318B1 (en) Two-dimensional storage array with prompt parity in one dimension and delayed parity in a second dimension
EP0518603B1 (en) Distributed sparing in DASD arrays
KR100275900B1 (ko) 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
US5862312A (en) Loosely coupled mass storage computer cluster
US20050166017A1 (en) Loosely coupled mass storage computer cluster
KR101162702B1 (ko) 패리티를 사용하지 않고 raid 레벨 6 보다 우수한 리던던시 및 내고장성을 확립하기 위한 방법
JP2000207136A (ja) 複数ドライブ故障トレラントraidアルゴリズム
KR101158838B1 (ko) Raid 시스템에서 패리티와 미러링을 사용하지 않으면서 하이 레벨의 리던던시, 내고장성, 및 성능을 확립하기 위한 방법
WO1997015942A9 (en) Loosely coupled mass storage computer cluster
US7743308B2 (en) Method and system for wire-speed parity generation and data rebuild in RAID systems
CN108604166A (zh) 冷存储系统的数据保护
US20100211736A1 (en) Method and system for performing i/o operations on disk arrays
JP2000148409A (ja) 冗長記憶装置
JP2000347812A (ja) 情報処理装置およびディスクアレイ装置
JPH11259240A (ja) データ記憶装置
JP2019121279A (ja) ディスクアレイコントローラ、ストレージ装置、ストレージ装置の復旧方法、及びディスクアレイコントローラの復旧プログラム
Terao Technologies of ETERNUS 6000 and ETERNUS 3000 Mission-Critical Disk Arrays
JPH10222314A (ja) 記憶装置アレイシステム
JPH10143331A (ja) 記憶装置アレイシステム
WO2005006174A1 (ja) ディスクシステム
JPH07152496A (ja) 誤り訂正符号化復号装置および誤り訂正符号化復号装置を備えたディスクアレイシステムコントローラ

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee