KR20100135765A - 데이터 스토리지 라이브러리를 위한 디듀플리케이션 프로토콜 선택 - Google Patents
데이터 스토리지 라이브러리를 위한 디듀플리케이션 프로토콜 선택 Download PDFInfo
- Publication number
- KR20100135765A KR20100135765A KR1020107021839A KR20107021839A KR20100135765A KR 20100135765 A KR20100135765 A KR 20100135765A KR 1020107021839 A KR1020107021839 A KR 1020107021839A KR 20107021839 A KR20107021839 A KR 20107021839A KR 20100135765 A KR20100135765 A KR 20100135765A
- Authority
- KR
- South Korea
- Prior art keywords
- raid
- data
- protocol
- deduplication protocol
- deduplication
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
RAID 어레이로 구성된 복수의 데이터 스토리지 디바이스들을 포함하는 데이터 스토리지 라이브러리를 위한 디듀플리케이션 프로토콜을 선택하는 방법은, 노멀 디듀플리케이션 프로토콜, RAID 고장 디듀플리케이션 프로토콜, 다수의 스토리지 디바이스 고장 디듀플리케이션 프로토콜을 설정한다. 상기 방법은 복수의 인터리브 데이터 블록들을 포함하는 호스트 데이터를 수신한다. 만약 상기 시스템이 어떤 스토리지 디바이스 고장들이 없이 동작하고 있다면, 상기 방법은 상기 노멀 디듀플리케이션 프로토콜을 사용하여 상기 호스트 데이터를 프로세스한다. 만약 상기 시스템이 스토리지 디바이스 고장을 갖고 동작하고 있다면, 상기 방법은 상기 RAID 고장 디듀플리케이션 프로토콜을 사용하여 상기 호스트 데이터를 프로세스한다. 만약 상기 시스템이 다수의 스토리지 디바이스 고장들을 갖고 동작하고 있다면, 상기 방법은 상기 다수의 스토리지 디바이스 고장 디듀플리케이션 프로토콜을 사용하여 상기 호스트 데이터를 프로세스한다.
Description
본 발명은 데이터 스토리지 라이브러리를 위한 디듀플리케이션(deduplication) 프로토콜을 선택하는 장치 및 방법과 관련된다.
컴퓨팅 시스템들은 정보를 발생시킨다. 복수의 데이터 스토리지 매체를 사용하여 정보를 저장하는 것은 당해 기술 분야에서 잘 알려져 있다. 독립 디스크들의 리던던트 어레이(redundant array of independent disks, "RAID") 구성에서, 정보는 폴트 톨러런스(fault tolerance) 및 향상된 데이터 접근 퍼포먼스를 제공하기 위해 데이터 스토리지 매체의 어레이들에 저장된다. RAID는 특정 하드웨어 또는 소프트웨어를 사용하여 물리적 데이터 스토리지 매체를 하나의 논리적 유닛에 결합시킨다.
RAID 3, 4, 5, 또는 6 어레이 구성에서, "데이터 스트라이핑(data striping)"으로 알려진 프로세스는 패리티 데이터와의 결합, 즉 인코딩된 리던던트 정보에 사용된다. RAID 6에서, 행 스트라이프들(row stripes)과 대각 스트라이프들(diagonal stripes) 모두가 사용되고, 듀얼 리던던시를 위해, 패리티의 하나의 세트는 각각의 행 스트라이프와 연관되고, 패리티의 다른 하나의 세트는 각각의 대각 스트라이프와 연관된다. RAID 6에서, 행 패리티는 하나의 행 패리티 스토리지 매체에 집중될 수 있고, 대각 패리티는 다른 하나의 대각 패리티 스토리지 매체에 집중될 수 있다. 또는 행 및 대각 패리티는 어레이에서 모든 데이터 스토리지 매체에 걸쳐 분산될 수 있다. 각각의 RAID 스트라이프는 미리 정해진 개수의 순차적인 논리적 블록 어레이들을 포함한다.
데이터를 스트라이핑함으로써 그리고 상기 어레이에서 모든 드라이브들에 걸쳐 상기 패리티를 분산시킴으로써, 최적의 퍼포먼스는 하나의 드라이브로의 일정한 접근을 최소화함으로써 구현된다. 만약 드라이브가 RAID 6 어레이 구성에서 고장(fail) 난다면, 상기 고장난 드라이브에 라이트(write)된 데이터는 남아 있는 드라이브들 상의 패리티 데이터를 사용하여 재구성(rebuild)될 수 있다. 만약 상기 어레이가 온라인 스페어 드라이브(online spare drive)를 갖고서 구성된다면, RAID 재구성은 고장난 드라이브가 탐지될 경우 자동적으로 시작된다. 만약 상기 어레이가 스페어 드라이브를 갖고서 구성되지 않는다면, 상기 RAID 재구성은 상기 고장난 드라이브가 대체(replace)된 후 시작된다.
손실된 데이터(lost data)를 재구성하기 위해, 각각의 손실된 스트라이프는 상기 어레이에서 남아 있는 드라이브들로부터 리드된다. 상기 손실된 스트라이프는 배타 논리합(exclusive-OR, "XOR") 연산들 - 이는 RAID 컨트롤러 XOR 엔진에 의해 수행됨 - 을 사용하여 복구된다. 상기 XOR 엔진이 상기 손실된 스트라이프를 복구한 후, 상기 복구된 스트라이프는 상기 대체 드라이브 또는 온라인 스페어 드라이브로 라이트된다. RAID 레벨들 3, 4, 및 5에 있어서, 상기 재구성 프로세스는 상기 어레이에서 동작 드라이브들로부터의 (N-1) 리드들(reads)을 수반하고, 또한 상기 대체 드라이브 또는 온라인 스페어 드라이브로의 하나의 라이트를 수반한다. 스트라이프가 전부(fully) 복구된 경우, 상기 재구성 프로세스는 그 다음의 손실된 스트라이프를 복구하도록 진행된다. RAID 레벨 6 하의 이중 고장(double failure)에 대해서는, 행과 대각 스트라이프들 모두가 두 개의 스페어 드라이브들에 대해 재구성되어 있는 드라이브 데이터를 구성하기 위해 사용된다.
상기 재구성 프로세스 동안, 상기 어레이는 사용자들에게 접근가능하다. 상기 RAID 컨트롤러는 호스트 I/O 요청들을 프로세스하고 또한 상기 RAID 재구성을 프로세스하기 위해 시스템 리소스들을 할당해야만 한다.
본 발명은 RAID 어레이로 구성된 복수의 데이터 스토리지 디바이스들을 포함하는 데이터 스토리지 라이브러리를 위한 디듀플리케이션 프로토콜을 선택하는 방법을 포함한다. 상기 방법은 노멀 디듀플리케이션 프로토콜(normal deduplication protocol), RAID 고장 디듀플리케이션 프로토콜(failure deduplication protocol), 및 다수의 스토리지 디바이스 고장 디듀플리케이션 프로토콜(multiple storage device failure deduplication protocol)을 설정(establish)한다. 상기 방법은 복수의 인터리브 데이터 블록들(interleaved data blocks)을 포함하는 호스트 데이터를 수신한다. 만약 상기 시스템이 스토리지 디바이스 고장들이 없이 동작하고 있다면, 상기 방법은 상기 노멀 듀플리케이션 프로토콜을 사용하여 상기 호스트 데이터를 프로세스한다. 만약 상기 시스템이 스토리지 디바이스 고장을 갖고 동작하고 있다면, 상기 방법은 상기 RAID 고장 디듀플리케이션 프로토콜을 사용하여 상기 호스트 데이터를 프로세스한다. 만약 상기 시스템이 다수의 스토리지 디바이스 고장들(multiple storage device failures)을 갖고 동작하고 있다면, 상기 방법은 상기 다수의 스토리지 디바이스 고장 디듀플리케이션 프로토콜을 사용하여 상기 호스트 데이터를 프로세스한다.
특정 실시예들에서, 상기 방법은 디듀플리케이션 프로토콜을 동적으로(dynamically) 세트한다. 이들 실시예들에서, 상기 디듀플리케이션 프로토콜은 다수의 고장난 데이터 스토리지 디바이스들, 실제 RAID 재구성 레이트(rebuild rate), 최소 RAID 재구성 스레쉬홀드, 및 최대 RAID 재구성 스레쉬홀드의 함수(function)이다.
발명의 실시예들은 이제 첨부된 도면들을 참조하여 기술될 것이다. 첨부된 도면들 및 이하의 설명은 단지 예일 뿐이다.
도 1은 본 발명의 일 실시예에 따른 데이터 스토리지 시스템의 일 실시예를 보여주는 블록도이다.
도 2a는 파이버 채널 중재 루프(fibre channel arbitrated loop)를 사용하여 복수의 데이터 스토리지 매체와 통신하는 RAID 컨트롤러를 보여주는 블록도이다.
도 2b는 듀얼 파이버 채널 중재 루프들을 사용하여 복수의 데이터 스토리지 매체와 통신하는 두 개의 RAID 컨트롤러들을 보여주는 블록도이다.
도 3은 본 발명의 제1 실시예에 따른 방법에서 특정 단계들을 요약하는 흐름도이다.
도 4는 본 발명의 제2 실시예에 따른 방법에서 특정 단계들을 요약하는 흘므도이다.
도 5는 상기 제2 실시예의 특정 추가 단계들을 요약하는 흐름도이다.
도 1은 본 발명의 일 실시예에 따른 데이터 스토리지 시스템의 일 실시예를 보여주는 블록도이다.
도 2a는 파이버 채널 중재 루프(fibre channel arbitrated loop)를 사용하여 복수의 데이터 스토리지 매체와 통신하는 RAID 컨트롤러를 보여주는 블록도이다.
도 2b는 듀얼 파이버 채널 중재 루프들을 사용하여 복수의 데이터 스토리지 매체와 통신하는 두 개의 RAID 컨트롤러들을 보여주는 블록도이다.
도 3은 본 발명의 제1 실시예에 따른 방법에서 특정 단계들을 요약하는 흐름도이다.
도 4는 본 발명의 제2 실시예에 따른 방법에서 특정 단계들을 요약하는 흘므도이다.
도 5는 상기 제2 실시예의 특정 추가 단계들을 요약하는 흐름도이다.
본 발명은 도면들을 참조하여 이하의 설명에서 바람직한 실시예들로 기술될 것인데, 여기서 유사한 참조 부호들은 동일 또는 유사한 구성요소들을 나타낸다. 본 명세서 전체에서 "일 실시예", "하나의 실시예", 또는 이와 유사한 표현은, 그 실시예와 관련되어 기술된 특정 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전체에서 "일 실시예에서", "하나의 실시예에서", 및 이와 유사한 표현은 동일한 실시예를 모두 일컬을 수 있다. 그러나, 반드시 그러한 것은 아니다.
본 발명에 관한 기술된 특징들, 구조들, 또는 특성들은 하나 또는 그 이상의 실시예들에서 어떤 적절한 방법으로 결합될 수 있다. 이하의 설명에서, 수많은 특정 세부사항들은 본 발명의 실시예들에 관한 완전한 이해를 제공하고자 인용될 수 있다. 그러나, 관련 기술 분야에서 숙련된 자라면 본 발명이 특정 세부사항들 중 하나 또는 그 이상 없이도 실시될 수 있고, 또는 다른 방법들, 컴포넌트들, 재료들 등으로 실시될 수 있다는 것을 알 수 있을 것이다. 어떤 경우에는, 잘 알려진 구조들, 재료들, 또는 작업들은 본 발명의 측면들을 모호하게 하지 않도록 하기 위해 상세히 보여지거나 기술되지 않는다.
도 1의 예시된 실시예에서, 데이터 프로세싱 시스템(100)은 RAID 컨트롤러(120) 및 데이터 스토리지 매체(130, 140, 150, 및 160)를 포함한다. 도 1의 예시된 실시예에서, RAID 컨트롤러(120)는 I/O 프로토콜들(132, 142, 152, 및 162)을 통해 각각, 데이터 스토리지 매체(130, 140, 150, 및 160)와 통신한다. I/O 프로토콜들(132, 142, 152, 및 162)은 어떤 종류의 I/O 프로토콜이든 포함할 수 있는데, 그 예들에는 파이버 채널 루프(fibre channel loop), 스몰 컴퓨터 시스템 인터페이스(Small Computer System Interface, SCSI), 인터넷 SCSI(iSCSI), 직렬 어태치 SCSI(Serial Attach SCSI, SAS), 파이버 채널, 파이버 채널을 통한 SCSI, 이더넷, 이더넷을 통한 파이버 채널, 인피니밴드(Infinifand), 및 SATA(직렬 ATA)가 있다. 그러나, 위와 같은 예들로 한정되는 것은 아니다.
"데이터 스토리지 매체"는, 본 명세서에서는 상기 정보 스토리지 매체에 정보를 라이트(write)하기 위해 필요한, 그리고 상기 정보 스토리지 매체로부터 정보를 리드(read)하기 위해 필요한, 하드웨어, 펌웨어, 및/또는 소프트웨어와 결합한, 정보 스토리지 매체를 의미한다. 특정 실시예들에서, 정보 스토리지 매체는 자기 정보 스토리지 매체(예를 들어, 자기 디스크, 자기 테이프 등, 그러나 이러한 것들로 한정되는 것은 아님)를 포함한다. 특정 실시예들에서, 상기 정보 스토리지 매체는 광 정보 스토리지 매체(예를 들어, CD, DVD(Digital Versatile Disk), HD-DVD(High Definition DVD), BD(Blue-Ray Disk) 등, 그러나 이러한 것들로 한정되는 것은 아님)를 포함한다. 특정 실시예들에서, 상기 정보 스토리지 매체는 전자 정보 스토리지 매체(예를 들어, PROM, EPROM, EEPROM, 플래쉬 PROM, 컴팩트플래쉬(compactflash), 스마트매체(smartmedia) 등, 그러나 이러한 것들로 한정되는 것은 아님)를 포함한다. 특정 실시예들에서, 상기 정보 저장 매체는 홀로그래픽 정보 저장 매체를 포함한다.
나아가, 도 1에 예시된 실시예에서, 본 발명의 RAID 컨트롤러(120)는 호스트 컴퓨터들(102, 104, 및 106)과 통신한다. 일반적으로, 호스트 컴퓨터들(102, 104, 및 106)은 각각 컴퓨팅 시스템(예를 들어, 메인프레임, 개인용 컴퓨터, 워크스테이션, 및 이것들의 조합들)을 포함하는데, 이것들은 Windows, AIX, Unix, MVS, LINUX 등의 운영 체계를 포함한다. (Windows는 마이크로소프트사의 등록 상표이고, AIX는 IBM사의 등록 상표이고, 또한 MVS는 IBM사의 등록 상표이며, UNIX는 미국 및 다른 국가들에서 오픈 그룹(Open Group)을 통해 배타적으로 라이센스된 등록 상표이며, LINUX는 리누스 토발드(Linus Torvald)의 등록 상표이다.) 특정 실시예들에서, 호스트 컴퓨터들(102, 104, 및/또는 106) 중 하나 또는 그 이상은 스토리지 관리 프로그램을 더 포함한다. 특정 실시예들에서, 상기 스토리지 관리 프로그램은 데이터 스토리지 및 리트리브(retrieval) 시스템으로의 데이터의 전송 그리고 데이터 스토리지 및 리트리브 시스템으로부터의 데이터의 전송을 관리하는 당해 기술 분야에서 알려진 스토리지 관리 유형 프로그램들의 기능을 포함할 수 있는데, 그 예로서는 IBM MVS 운영 체계에서 구현되는 IBM DFSMS가 있다. 그러나, 이러한 예로 한정되는 것은 아니다.
도 1의 예시된 실시예에서, 본 발명의 RAID 컨트롤러(120)는 프로세서(128), XOR 엔진(129), 컴퓨터 판독가능 매체(121), 컴퓨터 판독가능 매체(121)에 라이트된 마이크로코드(122), 및 컴퓨터 판독가능 매체(121)에 라이트된 명령들(124)을 포함한다. 프로세서(128)는 RAID 컨트롤러(120)를 동작시키기 위해 마이크로코드(122)를 이용한다. 도 1의 예시된 실시예에서, 본 발명의 RAID 컨트롤러(120)는 재구성 비트맵(126)을 더 포함하는데, 여기서 재구성 비트맵은 (N) 인디케이터들(indicators)을 포함하고, 각각의 인디케이터는 다른 데이터 스트라이프와 연관된다. 만약 (i)번째 인디케이터가 제1 값으로 세트되면, 관련된 데이터 스트라이프는 재구성되지 않고, 만약 (i)번째 인디케이터가 제2 값으로 세트되면, 관련된 데이터 스트라이프는 재구성된다. 여기서 (i)는 1보다는 작거나 같고, (N)보다는 크거나 같다.
하나 또는 그 이상의 호스트 컴퓨터들로부터 수신된 데이터에 관련된 입력/출력(input/out, "I/O") 동작들(예를 들어, 데이터 디듀플리케이션, 그러나 이러한 것으로 한정되는 것은 아님)을 프로세스하는 것에 추가하여, 프로세서(128)는 또한 특정한 백그라운드 동작들(Background Operations)(예를 들어, 체킹(checking) 및 증명(certifying) 패리티, RAID 재구성들, 및 다른 "하우스키핑(housekeeping)" 일들(chores) 등, 그러나 이러한 것들로 한정되는 것은 아님)을 수행한다. 특정 실시예들에서, 프로세서(128)는 시스템 리소스들을 할당해야 한다(예를 들어, 데이터 디듀플리케이션과 RAID 재구성 사이의 프로세서 리소스들의 할당들, 그러나 이러한 것으로 한정되는 것은 아님).
도 1의 예시된 실시예에서, 호스트 컴퓨터들(102, 104, 및 106)은 각각 I/O 프로토콜들(103, 105, 및 107)을 이용하여 패브릭(fabric)(110)에 연결된다. I/O 프로토콜들(103, 105, 및 107)은, 패브릭(110)으로 정보를 전달하고 패브릭(110)으로부터 정보를 전달하기 위한, I/O 프로토콜의 형태, 예를 들어, 파이버 채널(Firbr Channel, "FC") 루프, 패브릭(110)으로의 직접 연결 또는 호스트 컴퓨터들(102, 104, 및 106)에 의해 사용된 하나 또는 그 이상의 신호 선들일 수 있다.
특정 실시예들에서, 패브릭(110)은, 예를 들어, 하나 또는 그 이상의 FC 스위치들(115)을 포함한다. 특정 실시예들에서, 이들 하나 또는 그 이상의 스위치들(115)은 하나 또는 그 이상의 통상의 라우터 스위치들을 포함한다. 도 1의 예시된 실시예에서, 하나 또는 그 이상의 스위치들(115)은 I/O 프로토콜(117)을 통해 RAID 컨트롤러(120)로 호스트 컴퓨터들(102, 104, 및 106)을 인터커넥트(interconnect)한다. I/O 프로토콜(117)은, 예를 들어, 파이버 채널, 인피니밴드, 기가비트 이더넷, 이더넷, TCP/IP, iSCSI, SCSI I/O 인터페이스 또는 FC 스위치(115)에 의해 사용되는 하나 또는 그 이상의 신호 선들 등의 I/O 인터페이스의 유형을 포함하여, RAID 컨트롤러(120)로 그리고 RAID 컨트롤러(120)로부터, 그리고 계속해서 데이터 스토리지 매체(130, 140, 150, 및 160)를 통하여 정보를 전달할 수 있다. 다른 실시예들에서, 하나 또는 그 이상의 호스트 컴퓨터들(예를 들어, 호스트 컴퓨터들(102, 104, 및 106), 그러나 이러한 것들로 한정되는 것은 아님)은 각각 I/O 프로토콜들(103, 105, 및 107)을 사용하여 직접적으로 RAID 컨트롤러(120)와 통신한다.
도 2a의 예시된 실시예에서, 본 발명의 RAID 컨트롤러(120)는 스위치들의 파이버 채널 중재(fibre channel arbitrated, "FC-AL") 루프를 사용하여, 데이터 스토리지 매체(130, 140, 150, 및 160)와 통신하는데, 여기서 컨트롤러(120) 및 매체(130, 140, 150, 및 160)는 정보 스토리지 매체 및 리트리브 시스템(200)에 배치된다. 당해 기술 분야에서 숙련된 자라면 이해할 수 있듯이, 정보 스토리지 및 리트리브 시스템(200)은 추가 구성요소들(예를 들어, 하나 또는 그 이상의 호스트 어댑터들, 하나 또는 그 이상의 디바이스 어댑터들, 데이터 캐쉬, 비휘발성 스토리지 등, 그러나 이러한 것들로 한정되는 것은 아님)을 더 포함한다. 도 2a에 예시된 실시예는 본 발명을 파이버 채널 네트워크들 또는 디바이스들로 한정하는 것으로 해석되어서는 아니된다. 다른 실시예들에서, 다른 네트워크 토폴로지들 및 디바이스들이 이용되는데, 이러한 것들에는 SAS 디바이스들 및/또는 SATA 디바이스들이 포함되지만, 이것들로 한정되는 것은 아니된다.
도 2b의 예시된 실시예에서, 본 발명의 정보 스토리지 및 리트리브 시스템(202)은 스위치들의 듀얼 FC-AL 루프들을 포함하는데, 여기서 RAID 컨트롤러(120A) 및 RAID 컨트롤러(120B)는 FC-AL 루프들 둘 모두와 인터커넥트된다. 각각의 FC-AL 루프는 하나 또는 그 이상의 로컬 컨트롤러들(예를 들어, 로컬 컨트롤러들(210, 220, 230, 240, 250, 및 260))을 포함한다. 당해 기술 분야에서 숙련된 자라면 할 수 있듯이, 정보 스토리지 및 리트리브 시스템(200)은 추가 구성요소들(예를 들어, 하나 또는 그 이상의 호스트 어댑터들, 하나 또는 그 이상의 디바이스 어댑터들, 데이터 캐쉬 비휘발성 스토리지 등, 그러나 이러한 것들로 한정되는 것은 아님)을 더 포함한다. 도 2b의 예시된 실시예에서, 각각의 RAID 컨트롤러는 제1의 복수의 데이터 스토리지 매체(270), 제2의 복수의 데이터 스토리지 매체(280), 및 제3의 복수의 데이터 스토리지 매체(290)와 통신한다.
도 2b의 예시된 실시예는 본 발명을 파이버 채널 네트워크들 또는 디바이스들의 사용으로 한정하는 것으로 해석되어서는 아니된다. 도 2b의 예시된 실시예에서, 두 개의 FC-AL 루프들의 설명은 본 발명의 장치의 일 실시예를 포함한다. 다른 실시예들에서, 다른 네트워크 토폴로지들 및 디바이스들이 이용되는데, 그 예들에는 SAS 디바이스들 및/또는 SATA 디바이스들이 포함되나, 이러한 것들로 한정되는 것은 아니다.
당해 기술 분야에서 숙련된 자들이라면 알 수 있듯이, 데이터 듀플리케이션은 리던던트 데이터를 제거하기 위한 프로세스를 포함한다. 상기 듀플리케이션 프로세스에서, 듀플리케이트 데이터는 제거되고, 그 데이터의 단 하나의 카피만이 저장되도록 한다. 특정 실시예들에서, 그 데이터가 언제나 필요하다면, 모든 데이터의 인덱싱이 계속해서 유지된다. 단지 고유의(unique) 데이터만이 저장되기 때문에 디듀플리케이션은 RAID 어레이의 스토리지 용량을 향상시킬 수 있다.
데이터 디듀플리케이션은 일반적으로 그 파일에서 또는 그 데이터 블록 레벨에서 동작할 수 있다. 파일 레벨 듀플리케이션은 듀플리케이트 파일들을 제거하지만, 이것은 디듀플리케이션의 매우 효율적인 수단들은 아니다. 블록 디듀플리케이션은 파일 내에서 각각의 블록 또는 비트의 고유한 반복들(iterations)을 찾아서 저장한다. 데이터의 각각의 청크(chunk)는 MD5 또는 SHA-1과 같은 해쉬(hash) 알고리즘을 사용하여 프로세스된다. 이 프로세스는 하나의 인덱스에 저장되는 각각의 피스에 대해 고유의 번호를 발생시킨다.
만약 하나의 파일이 업데이트되면, 단지 변화된 데이터만이 저장된다. 즉, 만약 단지 문서 또는 프리젠테이션의 소수 비트들만이 변화되면, 그 변화들은 전부 새로운 파일을 구성하지 않는다. 그러므로, 블록 디듀플리케이션은 파일 디듀플리케이션보다 더 많은 스토리지 공간을 절약한다. 그러나, 블록 디듀플리케이션은 더 많은 프로세서 리소스들을 필요로 한다.
RAID 재구성 동안, 본 발명의 RAID 컨트롤러는 상기 RAID 재구성과 데이터 디듀플리케이션 사이에 프로세싱 리소스들을 할당한다. 도 3은 RAID 재구성을 동시에 수행할 때, 데이터 디듀플리케이션 프로토콜을 선택하기 위한 본 발명의 방법을 요약하고 있다. 이제 도 3을 참조하면, 단계 310에서 상기 방법은 RAID 컨트롤러 및 RAID 어레이를 포함하는 데이터 스토리지 시스템을 공급한다.
단계 315에서, 상기 방법은 노멀 디듀플리케이션 프로토콜을 설정한다. 특정 실시예들에서, 단계 315의 노멀 디듀플리케이션 프로토콜은 하나 또는 그 이상의 호스트 컴퓨터들로부터 수신된 정보에 배치된 듀플리케이트 데이터 블록들의 약 90 퍼센트 내지 100 퍼센트 사이에서 디듀플리케이트한다. 특정 실시예들에서, 단계 320의 노멀 디듀플리케이션 프로토콜은 하나 또는 그 이상의 호스트 컴퓨터들로부터 수신된 정보에 배치된 듀플리케이트 데이터 블록들의 100 퍼센트를 디듀플리케이트한다.
특정 실시예들에서, 단계 310의 데이터 스토리지 시스템의 제조자는 단계 315를 수행한다. 특정 실시예들에서, 단계 310의 데이터 스토리지 시스템의 소유자 및/또는 운영자는 단계 315를 수행한다. 특정 실시예들에서, 단계 310의 데이터 스토리지 시스템과 인터커넥트된 호스트 컴퓨터는 단계 315를 수행한다.
단계 320에서, 상기 방법은 RAID 고장 디듀플리케이션 프로토콜을 설정한다. "RAID 고장" 이라는 것은, 본 명세서에서는 RAID 어레이에 구성된 하나의 데이터 스토리지 디바이스의 고장을 의미한다. 특정 실시예들에서, 단계 320의 RAID 고장 디듀플리케이션 프로토콜은 하나 또는 그 이상의 호스트 컴퓨터들로부터 수신된 정보에 배치된 듀플리케이트 데이터 블록들의 약 40 퍼센트 내지 약 60 퍼센트 사이에서 디듀플리케이트한다. 특정 실시예들에서, 단계 320의 RAID 고장 디듀플리케이션 프로토콜은 하나 또는 그 이상의 호스트 컴퓨터들로부터 수신된 정보에 배치된 듀플리케이트 데이터 블록들(duplicative data blocks)의 약 50 퍼센트를 디듀플리케이트한다.
특정 실시예들에서, 단계 310의 데이터 스토리지 시스템의 제조자는 단계 320을 수행한다. 특정 실시예들에서, 단계 310의 데이터 스토리지 시스템의 소유자 및/또는 운영자는 단계 320을 수행한다. 특정 실시예들에서, 단계 310의 데이터 스토리지 시스템과 인터커넥트된 호스트 컴퓨터는 단계 320을 수행한다.
단계 325에서, 상기 방법은 다수의 스토리지 디바이스 고장 디듀플리케이션 프로토콜을 설정한다. 특정 실시예들에서, 단계 320의 상기 다수의 스토리지 디바이스 고장 디듀플리케이션 프로토콜은 하나 또는 그 이상의 호스트 컴퓨터들로부터 수신된 정보에 배치된 듀플리케이트 데이터 블록들의 약 15 퍼센트 내지 약 35 퍼센트 사이에서 디듀플리케이트한다. 특정 실시예들에서, 단계 325의 다수의 스토리지 디바이스 고장 디듀플리케이션 프로토콜은 하나 또는 그 이상의 호스트 컴퓨터들로부터 수신된 정보에 배치된 듀플리케이트 데이터 블록들의 약 25 퍼센트 사이에서 디듀플리케이트한다.
특정 실시예들에서, 단계 310의 데이터 스토리지 시스템의 제조자는 단계 325를 수행한다. 특정 실시예들에서, 단계 310의 데이터 스토리지 시스템의 소유자 및/또는 운영자는 단계 325를 수행한다. 특정 실시예들에서, 단계310의 데이터 스토리지 시스템과 인터커넥트된 호스트 컴퓨터는 단계 325를 수행한다.
단계 330에서, 상기 방법은 복수의 인터리브 데이터 블록들을 포함하는 호스트 데이터를 제공한다. 특정 실시예들에서, 단계 330의 데이터는 RAID 컴퓨터에 의해 수신된다. 특정 실시예들에서, 단계 330은 호스트 컴퓨터에 의해 수행된다.
단계 335에서, 상기 방법은 단계 310의 데이터 스토리지 시스템이 RAID 고장을 갖고 동작하고 있는지, 즉 데이터 스토리지 디바이스 고장이 탐지되는지를 결정한다. 특정 실시예들에서, 단계 335는 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 335는 호스트 컴퓨터에 의해 수행된다.
만약 상기 방법이 단계 335에서 단계 310의 데이터 스토리지 시스템이 RAID 고장을 갖고 동작하고 있지 않다고 결정하면, 상기 방법은 단계 335로부터 단계 345로 이동하는데, 여기서 상기 방법은 단계 315의 노멀 디듀플리케이션 프로토콜을 사용하여 단계 330의 호스트 데이터를 프로세스한다. 특정 실시예들에서, 단계 345는 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 345는 호스트 컴퓨터에 의해 수행된다.
단계 355에서, 상기 방법은 추가 호스트 데이터가 수신되었는지를 결정한다. 특정 실시예들에서, 단계 355는 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 355는 호스트 컴퓨터에 의해 수행된다.
만약 단계 355에서 상기 방법이 어떠한 추가 호스트 데이터도 수신되지 않았다고 결정하면, 상기 방법은 단계 355로부터 단계 370으로 이동하여 종료한다. 이와는 다르게, 만약 단계 355에서 상기 방법이 추가 호스트 데이터가 수신되었다고 결정하면, 상기 방법은 단계 355로부터 단계 335로 이동하며, 여기에 기술된 바와 같이 계속된다.
만약 단계 335에서 상기 방법이 단계 310의 데이터 스토리지 시스템이 RAID 고장을 갖고 동작하고 있다고 결정하면, 상기 방법은 단계 335로부터 단계 340으로 이동하는데, 여기서 상기 방법은 단계 310의 데이터 스토리지 시스템이 멀티 데이터 스토리지 디바이스 고장을 갖고 동작하고 있는지를 결정한다. 특정 실시예들에서, 단계 340은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 340은 호스트 컴퓨터에 의해 수행된다.
만약 단계 340에서 상기 방법이 단계 310의 데이터 스토리지 시스템이 멀티 데이터 스토리지 디바이스 고장을 갖고 동작하고 있지 않다고 결정하면, 상기 방법은 단계 340으로부터 단계 350으로 이동하는데, 여기서 상기 방법은 단계 320의 RAID 고장 디듀플리케이션 프로토콜을 사용하여 단계 330의 호스트 데이터를 프로세스한다. 특정 실시예들에서, 단계 350은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 350은 호스트 컴퓨터에 의해 수행된다. 상기 방법은 단계 350으로부터 단계 355로 이동하고, 여기에 기술된 바와 같이 계속된다.
만약 단계 340에서 상기 방법이 단계 310의 데이터 스토리지 시스템이 멀티 데이터 스토리지 디바이스 고장들을 갖고 동작하고 있다고 결정하면, 상기 방법은 단계 340으로부터 단계 360으로 이동하는데, 여기서 상기 방법은 단계 325의 멀티 디바이스 고장 디듀플리케이션 프로토콜을 사용하여 단계 330의 호스트 데이터를 프로세스한다. 특정 실시예들에서, 단계 360은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 360은 호스트 컴퓨터에 의해 수행된다. 상기 방법은 단계360으로부터 단계 355로 이동하고, 여기에 기술된 바와 같이 계속된다.
특정 실시예들에서, 본 발명의 방법의 도 4는 디듀플리케이션 프로토콜을 동적으로 세트하기 위한 본 발명의 방법의 단계들을 요약한다. 이제 도 4를 참조하면, 단계 410에서 상기 방법은 RAID 컨트롤러 및 RAID 어레이를 포함하는 데이터 스토리지 시스템을 공급한다.
단계 420에서, 상기 방법은 복수의 인터리브된 데이터 블록들을 포함하는 데이터 스토리지 시스템을 제공한다. 특정 실시예들에서, 단계 420의 데이터는 RAID 컨트롤러에 의해 수신된다. 특정 실시예들에서, 단계 420은 호스트 컴퓨터에 의해 수행된다.
단계 430에서, 상기 방법은 상기 RAID 어레이에 구성된 고장난 데이터 스토리지 디바이스들의 수(M)을 결정한다. 특정 실시예들에서, 단계 430은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 430은 호스트 컴퓨터에 의해 수행된다.
단계 440에서, 상기 방법은 오프셋 인자(offset factor, O)에 대한 값을 설정한다. 특정 실시예들에서, 상기 오프셋 인자(O)는 0보다 크거나 같고 2보다 작거나 같다. 특정 실시예들에서, 상기 오프셋 인자(O)는 0보다 크거나 같고 3보다 작거나 같다. 특정 실시예들에서, 상기 오프셋 인자(O)는 0보다 크거나 같고 4보다 작거나 같다. 특정 실시예들에서, 단계 440은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 440은 호스트 컴퓨터에 의해 수행된다.
단계 450에서, 상기 방법은 아래의 수학식 (i)를 사용하여 (N)에 대한 값을 계산한다.
(i) (N) = (M+1) + (M)(O)
특정 실시예들에서, 단계 450은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 450은 호스트 컴퓨터에 의해 수행된다.
단계 460에서, 상기 방법은 단계 420의 호스트 데이터에서 매 (N) 번째의 식별된 듀플리케이트 데이터 블록을 디듀플리케이트한다. 특정 실시예들에서, 단계 460은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 460은 호스트 컴퓨터에 의해 수행된다.
이하의 예들은 당해 기술 분야에서 숙련된 자들에게 도 4의 방법을 어떻게 만들고 사용하는지를 더 설명하기 위해 제공된다. 이들 예들은 본 발명을 한정하기 위한 의도가 아니라, 본 발명의 범위 내에 있는 것이다.
예 I
단계 410의 데이터 스토리지 시스템이 어떤 데이터 스토리지 디바이스 고장없이 동작하고 있는 경우, (N)은 수학식 (i)를 사용하여 1로 계산된다. 이 예에서, 상기 방법은 단계 420의 호스트 데이터에서 식별된 매 듀플리케이트 데이터 블록을 디듀플리케이트한다.
예 II
단계 410의 데이터 스토리지 시스템이 1 데이터 스토리지 디바이스 고장을 갖고 동작하고 있는 경우, 그래서 (O)가 0으로 세트되는 경우, (N)은 수학식 (i)를 사용하여 2로 계산된다. 이 예에서, 상기 방법은 단계 420의 호스트 데이터에서 식별된 듀플리케이트 데이터 블록의 50 퍼센트를 디듀플리케이트한다.
예 III
단계 410의 데이터 스토리지 시스템이 1 데이터 스토리지 디바이스 고장을 갖고 동작하고 있는 경우, 그래서 (O)가 1로 세트되는 경우, (N)은 수학식 (i)를 사용하여 3으로 계산된다. 이 예에서, 상기 방법은 단계 420의 호스트 데이터에서 식별된 듀플리케이트 데이터 블록의 33.3 퍼센트를 디듀플리케이트한다.
특정 실시예들에서, 도 4에 설명된 단계 440은 도 5에 설명된 단계들을 포함한다. 이제 도 5를 참조하면, 단계 510에서, 상기 방법은 최소 RAID 재구성 스레쉬홀드를 설정한다. 예를 들어(이러한 예로 한정되는 것은 아님), 특정 실시예들에서 상기 방법은 단계 510에서 시간 당 약 100GB의 최소 RAID 재구성 레이트로 세트한다. 특정 실시예들에서, 단계 410의 데이터 스토리지 시스템의 제조자는 단계 510을 수행한다. 특정 실시예들에서, 단계 410의 데이터 스토리지 시스템의 소유자 및/또는 운영자는 단계 510을 수행한다. 특정 실시예들에서, 단계 410의 데이터 스토리지 시스템과 인터커넥트된 호스트 컴퓨터는 단계 510을 수행한다.
단계 520에서, 상기 방법은 최대 RAID 재구성 스레쉬홀드를 설정한다. 예를 들어(이러한 예로 한정되는 것은 아님), 특정 실시예들에서, 상기 방법은 단계 520에서 시간 당 약 200GB의 최대 RAID 재구성 레이트를 세트한다. 특정 실시예들에서, 단계 410의 데이터 스토리지 시스템의 제조자는 단계 520을 수행한다. 특정 실시예들에서, 단계 410의 데이터 스토리지 시스템의 소유자 및/또는 운영자는 단계 520을 수행한다. 특정 실시예들에서, 단계 410의 데이터 스토리지 시스템과 인터커넥트된 호스트 컴퓨터는 단계 520을 수행한다.
단계 530에서, 상기 방법은 실제 RAID 재구성 레이트를 결정한다. 특정 실시예들에서, 단계 530은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 530은 호스트 컴퓨터에 의해 수행된다.
단계 540에서, 상기 방법은 단계 530의 실제 RAID 재구성 레이트가 단계 520의 최소 RAID 재구성 레이트 스레쉬홀드보다 더 작은지를 결정한다. 특정 실시예들에서, 단계 540은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 540은 호스트 컴퓨터에 의해 수행된다.
만약 상기 방법이 단계 540에서 단계 530의 실제 RAID 재구성 레이트가 단계 510의 최소 RAID 재구성 레이트 스레쉬홀드보다 더 작다고 결정하면, 상기 방법은 단계 540으로부터 단계 550으로 이동하는데, 여기서 상기 방법은 오프셋 인자(O)를 2로 세트한다. 특정 실시예들에서, 단계 550은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 550은 호스트 컴퓨터에 의해 수행된다. 상기 방법은 단계 550으로부터 단계 450으로 이동하고, 여기에 기술된 바와 같이 계속된다.
만약 상기 방법이 단계 540에서 단계 530의 실제 RAID 재구성 레이트가 단계 510의 최소 RAID 재구성 레이트 스레쉬홀드보다 더 작지 않다면, 상기 방법은 단계 540으로부터 단계 560으로 이동하는데, 여기서 상기 방법은 단계 530의 실제 RAID 재구성 레이트가 단계 520의 최대 RAID 재구성 레이트 스레쉬홀드보다 더 작은지를 결정한다. 특정 실시예들에서, 단계 560은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 560은 호스트 컴퓨터에 의해 수행된다.
만약 상기 방법이 단계 560에서 단계 530의 실제 RAID 재구성 레이트가 단계 520의 최대 RAID 재구성 레이트 스레쉬홀드보다 더 작다고 결정하면, 상기 방법은 단계 560으로부터 단계 570으로 이동하는데, 여기서 상기 방법은 오프셋 인자(O)를 1로 세트한다. 특정 실시예들에서, 단계 570은 RAID 컨트롤러에 의해 수행된다. 특정 실시예들에서, 단계 570은 호스트 컴퓨터에 의해 수행된다. 상기 방법은 단계 570으로부터 단계 450으로 이동하고, 여기에 기술된 바와 같이 계속된다.
이와는 다르게, 만약 상기 방법이 단계 560에서 단계 550의 실제 RAID 재구성 레이트 스레쉬홀드보다 더 작지 않다면, 상기 방법은 단계 560으로부터 단계 580으로 이동하는데, 여기서 상기 방법은 오프셋 인자(O)를 0으로 세트한다. 상기 방법은 단계 580으로부터 단계 450으로 이동하고, 여기에 기술된 바와 같이 계속된다.
특정 실시예들에서, 도 3, 4, 및 5에 설명된 각각의 단계들은 조합될 수 있고, 제거될 수도 있으며, 순서가 바뀔 수도 있다.
특정 실시예들에서, 본 발명은 명령들(예를 들어, 명령들(도 1의 124))을 포함하는데, 이는 컴퓨터 판독가능 매체(예를 들어, 컴퓨터 판독가능 매체(도 1의 121))에 상주한다. 이들 명령들은 프로세서(예를 들어, 프로세서(도 1의 128))에 의해 실행되어, 도 3에 설명된 단계들(315, 320, 325, 330, 335, 340, 345, 350, 355, 360, 및/또는 370) 중 하나 또는 그 이상, 및/또는 도 4에 설명된 단계들(420, 430, 440, 450, 및/또는 460) 중 하나 또는 그 이상, 및/또는 도 5에 설명된 단계들(510, 520, 530, 540, 550, 560, 570, 및/또는 580) 중 하나 또는 그 이상을 수행한다.
다른 실시예들에서, 본 발명은 다른 컴퓨터 프로그램 제품에 상주하는 명령들을 포함하는데, 여기서 이들 명령들은 데이터 스토리지 시스템들(도 1의 100, 도 2a의 200, 또는 도 2b의 202)에 대해 외부적으로, 또는 내부적으로 연결된 컴퓨터에 의해 실행되어, 도 3에 설명된 단계들(315, 320, 325, 330, 335, 340, 345, 350, 355, 360, 및/또는 370) 중 하나 또는 그 이상, 및/또는 도 4에 설명된 단계들(420, 430, 440, 450, 및/또는 460) 중 하나 또는 그 이상, 및/또는 도 5에 설명된 단계들(510, 520, 530, 540, 550, 560, 570, 및/또는 580) 중 하나 또는 그 이상을 수행한다. 어느 경우든지, 상기 명령들은 컴퓨터 판독가능 매체에 인코딩될 수 있는데, 상기 컴퓨터 판독가능 매체는 예를 들어 자기 정보 스토리지 매체, 광학 정보 스토리지 매체, 전자 정보 스토리지 매체 등을 포함한다. "전자 스토리지 매체" 라 함은, 본 출원의 출원인들은, 예를 들어(그리고 이것으로 한정되는 것은 아님), PROM, EPROM, EEPROM, 플래쉬 PROM, 컴팩트플래쉬, 스마트매체, 등과 같은 하나 또는 그 이상의 디바이스들을 의미한다. 그러나 이러한 예들로 한정되는 것은 아니다.
본 발명의 바람직한 실시예들이 상세히 기술되었으나, 당해 기술 분야에서 숙련된 자라면 이하의 청구항들에 제시되는 본 발명의 범위를 벗어남이 없이 위에서 기술된 실시예들에 대한 변경들 및 개조들을 도출해 낼 수 있다는 것은 자명하다.
Claims (14)
- RAID 어레이로 구성된 복수의 데이터 스토리지 디바이스들을 포함하는 데이터 스토리지 라이브러리에 사용하기 위한 디듀플리케이션(deduplication) 프로토콜을 선택하기 위한 방법에 있어서,
노멀(normal) 디듀플리케이션 프로토콜을 설정(establish)하는 단계;
RAID 고장 디듀플리케이션 프로토콜을 설정하는 단계;
다수의 스토리지 디바이스 고장 디듀플리케이션 프로토콜을 설정하는 단계;
복수의 인터리브(interleaved) 데이터 블록들을 포함하는 호스트 데이터를 수신하는 단계;
상기 RAID 어레이가 RAID 고장을 갖고 동작하고 있는지를 결정하는 단계; 및
상기 RAID 어레이가 RAID 고장을 갖고 동작하고 있지 않을 경우, 상기 노멀 디듀플리케이션 프로토콜을 사용하여 상기 호스트 데이터를 프로세스하는 단계를 포함하는
디듀플리케이션 프로토콜 선택 방법. - 청구항 1에 있어서, 상기 노멀 디듀플리케이션 프로토콜은 듀플리케이트(duplicative) 호스트 데이터 블록들의 90 퍼센트 내지 100 퍼센트 사이에서 디듀플리케이트하는
디듀플리케이션 프로토콜 선택 방법. - 청구항 1에 있어서, 상기 디듀플리케이션 프로토콜 선택 방법은
상기 RAID 어레이가 RAID 고장을 갖고 동작하고 있는 경우, 상기 RAID 어레이는 다수의 스토리지 디바이스 고장들을 갖고 동작하고 있는지를 결정하는 단계; 및
상기 RAID 어레이가 RAID 고장을 갖지만 다수의 스토리지 디바이스 고장들을 갖지 않고서 동작하고 있는 경우, 상기 RAID 고장 디듀플리케이션 프로토콜을 사용하여 상기 호스트 데이터를 프로세스하는 단계를 더 포함하는
디듀플리케이션 프로토콜 선택 방법. - 청구항 3에 있어서, 상기 RAID 고장 동작 프로토콜은 듀플리케이트 호스트 데이터 블록들의 40 퍼센트 내지 60 퍼센트 사이에서 디듀플리케이트하는
디듀플리케이션 프로토콜 선택 방법. - 청구항 3에 있어서, 상기 디듀플리케이션 프로토콜 선택 방법은
만약 상기 RAID 어레이가 다수의 스토리지 디바이스 고장들을 갖고 동작하고 있다면, 상기 다수의 스토리지 디바이스 고장 디듀플리케이션 프로토콜을 사용하여 상기 호스트 데이터를 프로세스하는 단계를 더 포함하는
디듀플리케이션 프로토콜 선택 방법. - 청구항 5에 있어서, 상기 다수의 스토리지 디바이스 고장 동작 프로토콜은 듀플리케이트 호스트 데이터 블록들의 15 퍼센트 내지 35 퍼센트 사이에서 디듀플리케이트하는
디듀플리케이션 프로토콜 선택 방법. - RAID 어레이로 구성된 복수의 데이터 스토리지 디바이스들을 포함하는 데이터 스토리지 라이브러리에 사용하기 위한 데이터 디듀플리케이션(deduplication) 프로토콜을 설정하기 위한 방법에 있어서,
인터리브(interleaved) 정보의 복수의 블록들을 수신하는 단계;
고장난 데이터 스토리지 디바이스들의 수(M)를 결정하는 단계;
오프셋 인자(O)에 대한 값을 설정하는 단계;
(N)에 대한 값을 계산하는 단계 - 여기서 (N)=(M+1)+(M)(O) -; 및
매(every) (N) 번째의 데이터 블록을 디듀플리케이트하는 단계를 포함하는
데이터 디듀플리케이션 프로토콜 설정 방법. - 청구항 7에 있어서, 상기 데이터 디듀플리케이션 프로토콜 설정 방법은
(M)이 0일 경우, (O)를 0으로 세트하는 단계를 더 포함하는
데이터 디듀플리케이션 프로토콜 설정 방법. - 청구항 7에 있어서, 상기 데이터 디듀플리케이션 프로토콜 설정 방법은
(M)이 1일 경우, (O)를 1로 세트하는 단계를 더 포함하는
데이터 디듀플리케이션 프로토콜 설정 방법. - 청구항 7에 있어서, 상기 데이터 디듀플리케이션 프로토콜 설정 방법은
(M)이 2일 경우, (O)를 2로 세트하는 단계를 더 포함하는
데이터 디듀플리케이션 프로토콜 설정 방법. - 청구항 7에 있어서, 상기 데이터 디듀플리케이션 프로토콜 설정 방법은
최소 RAID 재구성 레이트 스레쉬홀드를 설정하는 단계;
최대 RAID 재구성 레이트 스레쉬홀드를 설정하는 단계;
실제 RAID 재구성 레이트를 결정하는 단계;
상기 실제 RAID 재구성 레이트가 상기 최소 RAID 재구성 레이트 스레쉬홀드보다 더 작은지를 결정하는 단계; 및
상기 실제 RAID 재구성 레이트가 상기 최소 RAID 재구성 레이트 스레쉬홀드보다 더 작은 경우, (O)를 2로 세트하는 단계를 더 포함하는
데이터 디듀플리케이션 프로토콜 설정 방법. - 청구항 11에 있어서, 상기 데이터 디듀플리케이션 프로토콜 설정 방법은
상기 실제 RAID 재구성 레이트가 상기 최소 RAID 재구성 레이트 스레쉬홀드보다 더 작지 않은 경우, 상기 실제 RAID 재구성 레이트가 상기 최대 RAID 재구성 레이트 스레쉬홀드보다 더 작은지를 결정하는 단계; 및
상기 실제 RAID 재구성 레이트가 상기 최소 RAID 재구성 레이트 스레쉬홀드보다 더 작지 않고 또한 상기 최대 RAID 재구성 레이트 스레쉬홀드보다 더 작은 경우, (O)를 1로 세트하는 단계를 더 포함하는
데이터 디듀플리케이션 프로토콜 설정 방법. - 청구항 12에 있어서, 상기 데이터 디듀플리케이션 프로토콜 설정 방법은
만약 상기 실제 RAID 재구성 레이트가 상기 최대 RAID 재구성 레이트 스레쉬홀드보다 더 작지 않다면, (O)를 0으로 세트하는 단계를 더 포함하는
데이터 디듀플리케이션 프로토콜 설정 방법. - 컴퓨터 판독가능 매체 및 프로세서를 포함하는 RAID 컨트롤러로서,
상기 컴퓨터 판독가능 매체는 상기 프로세서에 의해 실행될 때 청구항 1 내지 13 중 어느 한 항에 기재된 방법의 각 단계를 수행하는 프로그램 코드를 포함하는
RAID 컨트롤러.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/046,315 US8234444B2 (en) | 2008-03-11 | 2008-03-11 | Apparatus and method to select a deduplication protocol for a data storage library |
US12/046,315 | 2008-03-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100135765A true KR20100135765A (ko) | 2010-12-27 |
Family
ID=40941909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107021839A KR20100135765A (ko) | 2008-03-11 | 2009-02-18 | 데이터 스토리지 라이브러리를 위한 디듀플리케이션 프로토콜 선택 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8234444B2 (ko) |
EP (1) | EP2255287B1 (ko) |
JP (2) | JP4876187B2 (ko) |
KR (1) | KR20100135765A (ko) |
CN (2) | CN102981922B (ko) |
WO (1) | WO2009112332A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180051868A (ko) * | 2016-11-09 | 2018-05-17 | 삼성전자주식회사 | 비휘발성 메모리를 포함하는 raid 시스템 |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640746B2 (en) * | 2005-05-27 | 2010-01-05 | Markon Technologies, LLC | Method and system integrating solar heat into a regenerative rankine steam cycle |
US8261068B1 (en) | 2008-09-30 | 2012-09-04 | Emc Corporation | Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit |
US8416954B1 (en) | 2008-09-30 | 2013-04-09 | Emc Corporation | Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management |
US7840537B2 (en) | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US9501355B2 (en) * | 2008-03-31 | 2016-11-22 | International Business Machines Corporation | Storing data and directory information in a distributed storage network |
US9098495B2 (en) | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8166263B2 (en) | 2008-07-03 | 2012-04-24 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
WO2010036754A1 (en) | 2008-09-26 | 2010-04-01 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US8412677B2 (en) | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
US8166314B1 (en) | 2008-12-30 | 2012-04-24 | Emc Corporation | Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown |
US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US8156306B1 (en) | 2009-12-18 | 2012-04-10 | Emc Corporation | Systems and methods for using thin provisioning to reclaim space identified by data reduction processes |
US8140821B1 (en) | 2009-12-18 | 2012-03-20 | Emc Corporation | Efficient read/write algorithms and associated mapping for block-level data reduction processes |
US8819208B2 (en) | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
JP5691234B2 (ja) * | 2010-04-27 | 2015-04-01 | 日本電気株式会社 | ディスクアレイ装置、及び、ミラーリング制御方法 |
JP2010257477A (ja) * | 2010-06-21 | 2010-11-11 | Hitachi Ltd | 記憶制御システム及び同システムの制御方法 |
US8612699B2 (en) | 2010-06-25 | 2013-12-17 | International Business Machines Corporation | Deduplication in a hybrid storage environment |
US8935492B2 (en) | 2010-09-30 | 2015-01-13 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
GB2473409B (en) | 2011-01-17 | 2013-03-13 | Quantum Corp | Cloud-based de-duplication |
WO2012127566A1 (ja) * | 2011-03-18 | 2012-09-27 | 富士通株式会社 | ストレージ装置,制御装置及び制御方法 |
US8775376B2 (en) | 2011-06-30 | 2014-07-08 | International Business Machines Corporation | Hybrid data backup in a networked computing environment |
US8620886B1 (en) | 2011-09-20 | 2013-12-31 | Netapp Inc. | Host side deduplication |
US8781800B2 (en) | 2011-11-01 | 2014-07-15 | International Business Machines Corporation | Data de-duplication in computer storage systems |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US9336076B2 (en) | 2013-08-23 | 2016-05-10 | Globalfoundries Inc. | System and method for controlling a redundancy parity encoding amount based on deduplication indications of activity |
US9298386B2 (en) | 2013-08-23 | 2016-03-29 | Globalfoundries Inc. | System and method for improved placement of blocks in a deduplication-erasure code environment |
KR101748717B1 (ko) * | 2013-09-27 | 2017-06-19 | 인하대학교 산학협력단 | Ssd 기반 raid 시스템에서 패리티 데이터의 중복제거 |
US9454434B2 (en) * | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US10242020B2 (en) * | 2014-06-17 | 2019-03-26 | International Business Machines Corporation | Placement of data fragments generated by an erasure code in distributed computational devices based on a deduplication factor |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9645897B2 (en) | 2015-03-11 | 2017-05-09 | International Business Machines Corporation | Using duplicated data to enhance data security in RAID environments |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US10235396B2 (en) * | 2016-08-29 | 2019-03-19 | International Business Machines Corporation | Workload optimized data deduplication using ghost fingerprints |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US10846178B2 (en) * | 2019-01-11 | 2020-11-24 | EMC IP Holding Company LLC | Hash-based remote rebuild assistance for content addressable storage systems |
US11442642B2 (en) | 2019-01-29 | 2022-09-13 | Dell Products L.P. | Method and system for inline deduplication using erasure coding to minimize read and write operations |
US20200241781A1 (en) | 2019-01-29 | 2020-07-30 | Dell Products L.P. | Method and system for inline deduplication using erasure coding |
US11328071B2 (en) | 2019-07-31 | 2022-05-10 | Dell Products L.P. | Method and system for identifying actor of a fraudulent action during legal hold and litigation |
US20210034472A1 (en) * | 2019-07-31 | 2021-02-04 | Dell Products L.P. | Method and system for any-point-in-time recovery within a continuous data protection software-defined storage |
US11609820B2 (en) | 2019-07-31 | 2023-03-21 | Dell Products L.P. | Method and system for redundant distribution and reconstruction of storage metadata |
US11372730B2 (en) | 2019-07-31 | 2022-06-28 | Dell Products L.P. | Method and system for offloading a continuous health-check and reconstruction of data in a non-accelerator pool |
US11775193B2 (en) | 2019-08-01 | 2023-10-03 | Dell Products L.P. | System and method for indirect data classification in a storage system operations |
EP4053180A4 (en) * | 2019-10-29 | 2023-11-22 | Sekisui Kasei Co., Ltd. | HOLLOW RESIN PARTICLE AND PRODUCTION METHOD THEREFOR |
US11281535B2 (en) | 2020-03-06 | 2022-03-22 | Dell Products L.P. | Method and system for performing a checkpoint zone operation for a spare persistent storage |
US11416357B2 (en) | 2020-03-06 | 2022-08-16 | Dell Products L.P. | Method and system for managing a spare fault domain in a multi-fault domain data cluster |
US11301327B2 (en) | 2020-03-06 | 2022-04-12 | Dell Products L.P. | Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster |
US11418326B2 (en) | 2020-05-21 | 2022-08-16 | Dell Products L.P. | Method and system for performing secure data transactions in a data cluster |
US11403175B2 (en) * | 2020-07-31 | 2022-08-02 | EMC IP Holding Company LLC | Rebuilding data previously stored on a failed data storage drive |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5486844A (en) * | 1992-05-01 | 1996-01-23 | Radius Inc | Method and apparatus for superimposing displayed images |
DE4323471C2 (de) * | 1993-07-14 | 1996-10-17 | Atecom Advanced Telecommunicat | Anordnung und Verfahren zum Bearbeiten von Datenstrukturen bei deren Durchlauf durch einen Netzwerkknoten |
US6453396B1 (en) * | 1999-07-14 | 2002-09-17 | Compaq Computer Corporation | System, method and computer program product for hardware assisted backup for a computer mass storage system |
JP3623697B2 (ja) | 1999-07-29 | 2005-02-23 | 富士通株式会社 | ディスク・タイムシェアリング装置及び方法 |
US6647514B1 (en) * | 2000-03-23 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request |
US6636878B1 (en) * | 2001-01-16 | 2003-10-21 | Sun Microsystems, Inc. | Mechanism for replicating and maintaining files in a spaced-efficient manner |
US7072910B2 (en) * | 2002-03-22 | 2006-07-04 | Network Appliance, Inc. | File folding technique |
JP4322068B2 (ja) * | 2003-03-07 | 2009-08-26 | 富士通株式会社 | ストレージシステム及びそのデイスク負荷バランス制御方法 |
JP4225378B2 (ja) * | 2003-12-17 | 2009-02-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複製装置、複製方法、複製プログラム、ブロック識別情報取得プログラム、及び記録媒体 |
US7188212B2 (en) * | 2004-05-06 | 2007-03-06 | International Business Machines Corporation | Method and system for storing data in an array of storage devices with additional and autonomic protection |
JP4324088B2 (ja) * | 2004-12-17 | 2009-09-02 | 富士通株式会社 | データ複製制御装置 |
JP2006236001A (ja) * | 2005-02-24 | 2006-09-07 | Nec Corp | ディスクアレイ装置 |
US7401253B2 (en) * | 2005-05-09 | 2008-07-15 | International Business Machines Corporation | Convolution-encoded data storage on a redundant array of independent devices |
JP4690783B2 (ja) | 2005-06-08 | 2011-06-01 | 株式会社日立製作所 | ボリューム管理システムおよびその方法 |
US8165221B2 (en) * | 2006-04-28 | 2012-04-24 | Netapp, Inc. | System and method for sampling based elimination of duplicate data |
US8412682B2 (en) * | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US7853750B2 (en) * | 2007-01-30 | 2010-12-14 | Netapp, Inc. | Method and an apparatus to store data patterns |
-
2008
- 2008-03-11 US US12/046,315 patent/US8234444B2/en not_active Expired - Fee Related
-
2009
- 2009-02-18 WO PCT/EP2009/051921 patent/WO2009112332A2/en active Application Filing
- 2009-02-18 EP EP09719575A patent/EP2255287B1/en active Active
- 2009-02-18 KR KR1020107021839A patent/KR20100135765A/ko not_active Application Discontinuation
- 2009-02-18 CN CN201210436082.5A patent/CN102981922B/zh not_active Expired - Fee Related
- 2009-02-18 JP JP2010550113A patent/JP4876187B2/ja not_active Expired - Fee Related
- 2009-02-18 CN CN200980108498.0A patent/CN101971148B/zh not_active Expired - Fee Related
-
2011
- 2011-09-22 JP JP2011207613A patent/JP5147979B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180051868A (ko) * | 2016-11-09 | 2018-05-17 | 삼성전자주식회사 | 비휘발성 메모리를 포함하는 raid 시스템 |
Also Published As
Publication number | Publication date |
---|---|
WO2009112332A3 (en) | 2010-02-25 |
JP2012043449A (ja) | 2012-03-01 |
WO2009112332A2 (en) | 2009-09-17 |
JP5147979B2 (ja) | 2013-02-20 |
CN101971148B (zh) | 2013-04-17 |
EP2255287A2 (en) | 2010-12-01 |
CN102981922B (zh) | 2015-08-26 |
CN102981922A (zh) | 2013-03-20 |
JP4876187B2 (ja) | 2012-02-15 |
CN101971148A (zh) | 2011-02-09 |
EP2255287B1 (en) | 2012-11-07 |
US20090235022A1 (en) | 2009-09-17 |
US8234444B2 (en) | 2012-07-31 |
JP2011515746A (ja) | 2011-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8234444B2 (en) | Apparatus and method to select a deduplication protocol for a data storage library | |
US7979635B2 (en) | Apparatus and method to allocate resources in a data storage library | |
US10613934B2 (en) | Managing RAID parity stripe contention | |
US8984241B2 (en) | Heterogeneous redundant storage array | |
US8464094B2 (en) | Disk array system and control method thereof | |
US9697087B2 (en) | Storage controller to perform rebuilding while copying, and storage system, and control method thereof | |
US8812902B2 (en) | Methods and systems for two device failure tolerance in a RAID 5 storage system | |
US20150339204A1 (en) | Method and apparatus to utilize large capacity disk drives | |
US9563524B2 (en) | Multi level data recovery in storage disk arrays | |
CN100390745C (zh) | 在处理数据时检验数据完整性的装置及方法 | |
US7506200B2 (en) | Apparatus and method to reconfigure a storage array disposed in a data storage system | |
US11157361B2 (en) | Efficient utilization of storage space in arrays of storage drives | |
US7962690B2 (en) | Apparatus and method to access data in a raid array | |
US10133640B2 (en) | Storage apparatus and storage system | |
US11748196B2 (en) | Adaptive parity rotation for redundant arrays of independent disks | |
US11080136B2 (en) | Dropped write error detection | |
US10133630B2 (en) | Disposable subset parities for use in a distributed RAID | |
WO2020261020A1 (en) | Dynamic performance-class adjustment for storage drives |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |