KR20100077156A - 씬 프로비저닝 이송 및 스크러빙 방법 - Google Patents

씬 프로비저닝 이송 및 스크러빙 방법 Download PDF

Info

Publication number
KR20100077156A
KR20100077156A KR1020107006838A KR20107006838A KR20100077156A KR 20100077156 A KR20100077156 A KR 20100077156A KR 1020107006838 A KR1020107006838 A KR 1020107006838A KR 20107006838 A KR20107006838 A KR 20107006838A KR 20100077156 A KR20100077156 A KR 20100077156A
Authority
KR
South Korea
Prior art keywords
data
partition
mass storage
storage system
incoming
Prior art date
Application number
KR1020107006838A
Other languages
English (en)
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 KR20100077156A publication Critical patent/KR20100077156A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터를 대용량 스토리지 시스템에 이송하는 방법에 있어서, 상기 대용량 스토리지 시스템에서 스토리지를 위한 인커밍 데이터 파티션을 수신하는 단계 및 상기 대용량 스토리지 시스템에서 상기 인커밍 데이터 파티션에 대한 논리적 스토리지를 할당하는 단계를 포함한다. 상기 방법은 상기 인커밍 데이터 파티션이 오직 제로 데이터만을 포함하는지 결정을 하는 단계 및 상기 결정에 응답하여, 상기 인커밍 데이터 파티션의 할당된 논리적 스토리지를 유지하는 동안, 상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션의 물리적 스토리지를 금지하는(inhibiting) 단계를 더 포함한다.

Description

씬 프로비저닝 이송 및 스크러빙 방법{THIN PROVISIONING MIGRATION AND SCRUBBING}
본 발명은 일반적으로 데이터 스토리지에 대한 방법들 및 장치에 관한 것으로, 특히 데이터 스토리지 시스템들에서 다수의 논리적 볼륨들을 관리하기 위한 방법들 및 장치에 관한 것이다.
유저에게 많은 애플리케이션들을 제공하기 위한 구성(organization)에서는, 큰 스케일의 컴퓨터 디스크 스토리지 시스템들이 주로 사용된다. 스토리지 가상화(virtualization) 또한 물리적 스토리지로부터 논리적 스토리지를 추출(abstract)하기 위해서 사용된다. 가상 시스템은 논리적 및 실제 물리적 스토리지 위치(location)간의 매핑의 폼을 관리하면서, 데이터 스토리지에 대한 논리적 공간을 제공한다. 씬 프로비저닝 시스템은 필요에 따라(as-needed basis), 애플리케이션 서버들에게 스토리지 공간을 제공한다. 또한 씬 프로비저닝 시스템은 스토리지 시스템을 공유하는(sharing) 모든 서버들의 요구(needs)를 하나의 증가율(growth rate)로 자동적으로 취합하기 때문에, 용량의 계획(capacity planning)을 간략하게 한다(simplifies).
본 발명의 일 실시예에 따라, 데이터를 대용량 스토리지(mass storage) 시스템에 이송하는(migrating) 방법이 제공된다. 상기 방법은 대용량 스토리지 시스템내에서 스토리지를 위한 인커밍 데이터 파티션(incoming data partition)을 수신하는 단계를 포함한다. 상기 대용량 스토리지 시스템내에서 논리적 스토리지(logical storage)가 상기 인커밍 데이터 파티션에 대해서 할당된다(allocated). 데이터 파티션의 컨텐츠들이 체크되고, 그리고 만약 상기 인커밍 데이터 파티션이 오직 제로 데이터만을 포함하면, 상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션의 할당된 논리적 스토리지가 유지되는 동안 상기 인커밍 데이터 파티션의 물리적 스토리지(physical storage)가 금지된다(is inhibited). 물리적 스토리지의 금지와 논리적 스토리지의 유지는 저장된 정보 레벨의 감소없이 스토리지 공간내의 현저한 절약(saving)을 제공한다.
실시예들에서, 논리적 스토리지를 할당하는 것은, 상기 인커밍 데이터 파티션에 대한 논리적 어드레스를 가지는 파티션 데이터 레코드(partition data record)를 생성하고, 상기 파티션 데이터 레코드를 영구 매체(permanent medium)에 저장하는 것을 포함한다.
일반적으로, 상기 대용량 스토리지 시스템은 씬 프로비저닝 스토리지 시스템이다.
기술된 실시예들에서, 상기 스토리지 시스템으로 오직 제로 데이터를 포함하는 데이터 파티션을 제공하기 위한 요청은 오직 제로 비트들을 포함하는 데이터 파티션을 가지고 응답된다.
본 발명의 다른 실시예에서, 대용량 스토리지 시스템내에서 데이터를 모니터링하는 방법이 제공된다. 본 방법은 물리적 스토리지로부터 데이터 파티션을 리딩(reading)하는 단계 및 상기 데이터 파티션이 오직 제로데이터를 포함하는지 결정하는 단계를 포함한다. 상기 파티션이 오직 제로 데이터만을 포함했다는 결정에 대한 응답으로, 상기 데이터 파티션의 논리적 어드레스의 할당을 유지하는 동안, 상기 데이터 파티션의 물리적 스토리지가 상기 대용량 스토리지 시스템내에서 할당해제(de-allocating)된다.
기술된 실시예들에서, 상기 데이터 파티션을 리딩하는 단계는 무결성(integrity) 및 정확성(correctness) 중 적어도 하나에 대해서 상기 데이터 파티션을 체크하는 단계 및 상기 체크에 응답하여, 상기 데이터 파티션을 정정하는(correcting) 단계를 더 포함한다.
실시예들에서, 상기 물리적 스토리지를 할당해제하는 단계는 상기 데이터 파티션과 연관된 파티션 기술 레코드(descriptor record)에서 물리적 어드레스를 삭제하는(removing) 단계를 포함한다.
그러므로, 본 발명의 일 실시예에 따라, 데이터를 대용량 스토리지(mass storage) 시스템에 이송하는(migrating) 방법이 제공되는데, 이 방법은:
상기 대용량 스토리지 시스템내에서 스토리지를 위한 인커밍 데이터 파티션(incoming data partition)을 수신하는 단계;
상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션에 대한 논리적 스토리지(logical storage)를 할당하는(allocating) 단계;
상기 인커밍 데이터 파티션이 오직 제로 데이터(zero data)만을 포함하는지 결정을 하는 단계 및
상기 결정에 응답하여, 상기 인커밍 데이터 파티션의 할당된 논리적 스토리지를 유지하는 동안, 상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션의 물리적 스토리지(physical storage)를 금지하는(inhibiting) 단계를 포함한다.
바람직하게는, 상기 논리적 스토리지를 할당하는 단계는 상기 인커밍 데이터 파티션에 대한 논리적 어드레스를 적어도 하나 포함하는 파티션 데이터 레코드(partition data record)를 생성하는 단계를 포함한다. 상기 파티션 데이터 레코드를 생성하는 단계는 상기 파티션 데이터 레코드를 영구 매체(permanent medium)에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 방법은 상기 인커밍 데이터 파티션이 논-제로 데이터(non-zero data)를 포함하는지에 대한 추가결정을 생성하는 단계 및 상기 추가결정에 응답하여, 영구 매체내에 상기 인커밍 데이터 파티션을 저장하는 단계를 포함한다. 상기 영구 매체내에 상기 인커밍 데이터 파티션을 저장하는 단계는 파티션 데이터 레코드가 상기 인커밍 데이터 파티션에 대한 물리적 어드레스 포함하도록 업데이트 하는 단계를 포함할 수 있다.
기술된 일 실시예에서 상기 대용량 스토리지 시스템은 씬 프로비저닝 스토리지 시스템을 포함한다.
또 다른 일 실시예에서 상기 방법은 상기 대용량 스토리지 시스템으로 오직 제로데이터를 가지는 데이터 파티션을 제공하기 위한 요청에 대해, 제로 비트들의 데이터 파티션을 가지고 응답하는 단계를 포함한다.
본 발명의 일 실시예에 따라, 대용량 스토리지 시스템내에서 데이터를 모니터링하는 방법에 더 제공되는데, 상기 방법은:
물리적 스토리지로부터 데이터 파티션을 리딩(reading)하는 단계;
상기 데이터 파티션이 오직 제로데이터를 포함하는지 결정을 하는 단계 및
상기 결정에 대한 응답으로, 상기 데이터 파티션의 논리적 어드레스의 할당을 유지하는 동안, 상기 대용량 스토리지 시스템내에서 상기 데이터 파티션의 물리적 스토리지를 할당해제(de-allocating)하는 단계를 포함한다.
바람직하게는, 상기 데이터 파티션을 리딩하는 단계는, 무결성(integrity) 및 정확성(correctness) 중 적어도 하나에 대해서 상기 데이터 파티션을 체크하는 단계를 포함한다. 또한 상기 방법은 상기 체크에 응답하여, 상기 데이터 파티션을 정정하는(correcting) 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 파티션을 리딩하는 단계는 상기 데이터 파티션이 오류로(erroneously) 논-제로 데이터를 포함하는지를 결정을 하는 단계를 포함한다.
일 실시예에서, 상기 논리적 스토리지의 할당을 유지하는 단계는 상기 데이터 파티션의 적어도 하나의 논리적 어드레스를 가지는 파티션 데이터 레코드를 생성하는 단계를 포함한다. 바람직하게는 상기 방법은 영구 매체내에 상기 파티션을 저장하는 단계를 더 포함하고, 영구 매체내에 상기 파티션을 저장하는 단계는 상기 인커밍 데이터 파티션에 대한 물리적 어드레스를 포함하기 위해서, 상기 파티션 데이터 레코드를 업데이트 하는 단계를 포함할 수 있고, 그리고 상기 물리적 스토리지를 할당해제하는 단계는 파티션 기술 레코드(descriptor record)에서 물리적 어드레스를 삭제하는(removing) 단계를 포함할 수 있다.
본 발명의 또 다른 실시에에서, 상기 방법은 상기 대용량 스토리지 시스템으로 상기 데이터 파티션을 제공하기 위한 요청에 대해, 제로 비트들의 아웃고잉 데이터를 가지고 응답하는 단계를 포함한다.
본 발명의 일 실시예에 따라, 대용량 스토리지 시스템으로 데이터를 이송하기 위한 장치가 더 제공되는데, 상기 장치는:
제어 유닛(control unit) 및
상기 제어 유닛에 결합되는 프로세서를 포함하며,
상기 제어 유닛은 상기 대용량 스토리지 시스템내에서 스토리지를 위한 인커밍 데이터 파티션을 수신하고, 상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션에 대한 논리적 스토리지를 할당하며,
상기 프로세서는 상기 인커밍 데이터 파티션이 오직 제로 데이터만을 포함하는지 결정을 하고, 상기 결정에 응답하여 상기 인커밍 데이터 파티션의 할당된 논리적 스토리지를 유지하는 동안 상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션의 물리적 스토리지를 금지한다.
본 발명의 일 실시예에 따라, 대용량 스토리지 시스템내에서 데이터를 모니터링하는 장치가 더 제공되는데, 상기 장치는:
물리적 스토리지로부터 데이터 파티션을 리딩(read)하기 위해서 구성된 제어 유닛; 및
상기 제어유닛에 결합된 프로세서를 포함하고,
상기 프로세서는 상기 데이터 파티션이 오직 제로데이터를 포함하는지 결정을 수행하고, 상기 결정에 대한 응답으로 상기 대용량 스토리지 시스템내의 상기 데이터 파티션의 물리적 스토리지를 할당해제하고, 그리고 상기 데이터 파티션에 대한 할당된 논리적 스토리지를 유지한다.
본 발명은 이하의 도면들과 함께 나오는 실시예들의 상세한 설명으로부터 더 자세히 이해될 것이다.
도 1은 본 발명의 일 실시예에 따른 데이터 스토리지 시스템의 구조도이다.
도 2는 본 발명의 일 실시예에 따라, 다른 스토리지 시스템에 연결된 도 1의 데이터 스토리지 시스템의 구조도이다.
도 3은 본 발명의 일 실시예에 따라, 도 1의 데이터 스토리지 시스템내의 이송된 파티션을 저장하기 위한 방법을 구조적으로 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따라, 도 1의 데이터 스토리지 시스템내의 캐쉬의 구조도이다. 그리고
도 5는 본 발명의 일 실시예에 따라, 도 1의 데이터 스토리지 시스템내의 데이터 파티션을 스크러빙하기 위한 방법을 구조적으로 도시한 흐름도이다.
씬 프로비저닝은 "저스트인타임 용량(just in time capacity)"으로, 이는 할당되었으나(allocated) 사용되지 않거나 정지된(stranded) 스토리지(storage)를 필수적으로 제거한다. 스토리지 시스템에서 씬 프로비저닝 메카니즘을 구현하는 하나의 방법은 미국특허 공개공보 번호 2006/0253681 -제목 "계층적 카피들에 대한 스토리지의 다이나믹 할당(dynamic allocation of storage for hierarchical copies)"- 에 기술되어 있는데, 위 발명에 개시된 내용은 레퍼런스로서 여기서 포함되어 있다.
본 발명의 실시예들은 씬 프로비저닝 스토리지 시스템의 성능을 향상시키기 위한 방법을 제공한다. 물리적 데이터 파티션(partition)의 컨텐츠들이 제로값(value zero)를 가질 때 -즉 데이터 비트들 모드가 "오프(off)"일 때-, 상기 파티션은 논리적으로는 정의될 필요가 있으나, 물리적 스토리지 공간은 필요하지 않는다. 이런 경우는 다양한 방법으로 일어날 수 있는데, 예를 들어 애플리케이션이 파티션내에 포함된 데이터를 실행하고 제로와 동일한 결과를 도출한 경우이다.
이하에서 기술된 본 발명의 일 실시예는, 소스 스토리지 시스템에서 목적지 씬 프로비저닝 스토리지 시스템으로 데이터가 이송(migrated)될 때 사용될 수 있다. 이송된 각각의 데이터 파티션은 물리적 스토리지에 할당되기 전에 분석된다. 만약 상기 파티션의 컨텐츠들이 제로값(value zero)을 가졌다면, 논리 스토리지가 할당되고 물리적 스토리지는 사용되지 않는다. 애플리케이션이 이 파티션의 전부 또는 일부를 리드(read)하기 위해 요청하면, 상기 요청은 오직 제로들로 구성된 파티션을 리턴함으로써 적절하게(dully) 응답된다. 이송된 "제로" 파티션들의 물리적 스토리지의 금지(inhibiting)는 스토리지의 효율성을 증가하고, 애플리케이션 데이터를 위한 이용가능한 스토리지 공간을 늘린다.
본 발명의 또 다른 실시예는 "스크러빙(SCRUBBING)" 프로시져의 동작동안, 제로값 컨텐츠들을 가진 파티션들의 물리적 스토리지를 제거한다. 보통, 스토리지 시스템들은 스크러빙 프로시져를 포함하는데, 이는 디스크들상에 저장된 각각의 파티션의 데이터 무결성(integrity) 및 정확성(correctness)을 주기적으로 체크하기 위해서 정규(regular) 시스템 활동(activity)의 백그라운드(background)에서 작동한다. 스크러빙 프로시져는 데이터 클린을 스크러빙함으로써(by scrubbing the data clean), 일반적으로 결함(defective) 있는 것으로 발견된 파티션들에 정확한 데이터를 복구(restore)하기 위해서 적용된다. 스크러빙 프로시져는 무결성 및 정확성 체크의 수행에 더하여, 파티션내에 저장된 데이터가 오직 제로들일 수 있는 가능성을 체크하기 위해서 구현될 수 있다. 만약 파티션이 오직 제로들만을 포함하고 있다면, 상기 파티션은 시스템에 논리적으로만 정의한 채 남겨두고, 상기 디스크상의 물리적 스토리지 공간은 할당해제하고(de-allocate), 상기 파티션의 컨텐츠들(제로만 있는)은 디스크에 라이트(write)되지 않는다. 애플리케이션이 이 파티션의 전부 또는 일부를 리드하기 위해 요청하면, 상기 요청은 오직 제로들로 구성된 파티션을 리턴함으로써 적절하게 응답된다. 스크러빙 동안 제로 파티션들이 발견되었을 때, 상기 "제로" 파티션들에 대한 물리적 스토리지의 제거는 데이터 이송시의 상술한 이점과 유사한 이점을 제공한다.
도 1은 본 발명의 일 실시예에 따른 대용량 데이터 스토리지 시스템(10)의 구조도를 도시한다. 시스템(10)은 하나 또는 그 이상의 호스트들(52)과 본 기술분야에서 알려진 수단 -예를 들어 인터넷과 같은 네트워크(50) 또는 버스- 을 이용하여 연결된다. 데이터는 논리적 유닛들(LUNs)의 시스템(10)내에 저장되며, 논리적 어드레스들(LAs)과 연관된 논리적 블록들의 시퀀스(sequence)를 포함한다. 이러한 블록들의 컨텐츠들은 일반적으로 저속 및/또는 고속 엑세스 타임, 비휘발성 대량(mass) 스토리지 디바이스들(12) -여기서는 일예로서 디스크들로 가정- 그룹들에 걸쳐서 분산된 방식으로 저장된다. 호스트들(52)은 입출력(I/O) 요청들 -입출력 리드 요청들과 입출력 라이트 요청들을 포함- 을 통하여 디스크들(12)내에 저장된 상기 데이터에 엑세스한다. 상기 입출력 리드 요청내의 요청된 데이터는 상기 데이터가 저장된 디스크들(12) 중 하나로부터 리드된다. 상기 입출력 라이트 요청내의 데이터는 하나 또는 그 이상의 디스크들(12)에 라이트된다.
시스템(10)은 관리노드(management node, 25)를 포함할 수 있으며, 이는 일반적으로 하나 또는 그 이상의 프로세싱 유닛들로 구현되며, 당해 기술분야에서 통상의 지식을 가진 자에게 친숙한 방법들에 의해서 디스크들(12) 및/또는 시스템의 다른 요소들(elements)을 포함할 수 있다. 또한 시스템(10)은 하나 또는 그 이상의 기본적으로(substantially) 유사한(similar) 인터페이스들(26)을 포함하는데, 상기 인터페이스들은 디스크들(12)로 엑세스를 요청하는 호스트들(52)로부터의 입출력 리드 및 라이트 요청들을 수신한다. 각각의 인터페이스(26)는 하드웨어 및/또는 소프트웨어로 구현될 수 있고, 스토리지 시스템(10) 내 또는 그 외 적절한 위치 -예를 들어 네트워크(50)나 호스트들(52) 중 어느 하나의 요소- 에 위치될 수 있다. 디스크들(12)과 인터페이스들 사이에는 다수의 임시(interim) 캐쉬들(20)이 있고, 각각의 캐쉬는 디스크들(12)의 서브그룹 각각과 결합되어 있다. 캐쉬들(20)은 본 기술분야에서 알려진 모든 적용가능한 고속(fast) 결합시스템(예를 들어 버스 또는 스위치)에 의해서 인터페이스들(26)에 결합되어 있고, 이를 통해 각각의 인터페이스는 각각의 캐쉬와 통신 및 캐쉬로 또는 캐쉬로부터의 데이터 전송(transfer)를 가능하게 하며, 이에 각각의 캐쉬는 결과적으로(in turn) 디스크들(12)의 서브그룹으로 또는 서브그룹으로부터 데이터를 필요한만큼 전송할 수 있게 된다. 일 예로서, 캐쉬들(20)과 인터페이스들(26)간의 결합은 여기서는 제1 크로스 포인트 스위치(14)에 의해 된 것으로 가정되었다. 인터페이스(26)는 대체로 독립적으로 각각 따로 동작한다. 캐쉬들(20) 및 인터페이스들(26)은 호스트들(52)과 디스크들(12)사이에서 데이터를 전송하는 데이터 전송시스템으로서 동작한다.
프로세서(30)는 하나 또는 그 이상의 프로세서 유닛들을 포함하며, 일반적으로 스토리지 시스템(10)내에 분산되며, 상기 시스템을 동작한다. 상기 프로세서는 일반적으로 명령들(instruction)을 관리노드(25) 및 캐쉬들(20)에 보낸다.
시스템(10)내 각각의 논리 유닛(LUN)의 연속(consecutive) 블록들은 파티션들로 그룹화되고, 이들의 길이들은 일반적으로 시스템의 쓰루아웃(throughout)과 동일(identical)하다. 따라서 상기 논리 유닛(LUN)은 논리 파티션들의 연속 스트링들(strings)을 포함하고, 이는 결과적으로 논리 블록들의 연속된 스트링들을 포함한다. 여기서 기술된 본 발명의 일 실시예에서, 파티션들은 여기서 기술된 대부분의 데이터 트랜잭션들 -스크러빙 프로세스들을 포함- 을 관리하기 위해 사용되는 기본 데이터 부분들(portions)인 것으로 가정된다. 그러나, 데이터 트랜잭션들에서의 데이터 분배를 위한 다른 편리한 시스템들도 사용될 수 있다.
관리노드는 논리 유닛 부분들을 각각의 캐쉬(20)에 어사인(assign)하며, 이를 통해 각각의 캐쉬가 어사인된 파티션들의 LA들의 범위로부터 데이터로부터 리트리브(retrieve)할 수 있고 및/또는 상기 범위에 데이터를 저장할 수 있도록 한다. 상기 범위들은 일반적으로 디스크들(120)의 메모리 어드레스 공간의 완료가 사용되도록 하기 위해서 선택된다. 시스템(10)에서, 데이터는 잉여(redundantly) 저장될 수 있고, 이 경우 각각의 파티션은 적어도 두 개의 캐쉬들에 매핑되고, 그리고 이들은 디스크들(120)에 각각 연관된다. 캐쉬들에 대한 로직 어드레스 범위에 대한 잉여(redundantly) 매핑에 대한 방법은 미국특허출원 공개번호2005/0015566, 제목 "분산 스토리지 시스템내의 데이터 할당(Data Allocation in a Distributed Storage System)"에 기술되어 있는데, 이는 본 발명의 양수인에 양도되었으며, 이러한 방법은 본 발명이 일 실시예에서 사용될 수 있다.
각각의 캐쉬(20)에 대해 할당된 파티션들은 일반적으로 각각의 인터페이스(26)내에 저장된 분산테이블(19)내에서 기록된다. 각각의 분산테이블은 호스트들(52)부터 캐쉬들로 가는 입출력 요청들을 라우팅하기 위해 그들의 인터페이스들에 의해서 사용된다. 대안으로 또는 추가적으로, 각각의 캐쉬(20)에 대한 상기 할당된 파티션들은 본 기술분야에서 알려진 파티션들과 캐쉬들간의 대응을 생성하기 위한 모든 가능한 방법들을 이용하여 각각의 인터페이스(26)에 저장된다. 분산테이블(19)는 각각의 인터페이스(26)에 시스템(10)의 완전한 캐쉬 어드레스 공간의 일반적인 오버류(overview)를 주는 것으로 이해되어 질 것이다. 본 발명의 양수인에 양도된 미국특허 공개공보 번호 2005/0015566, 제목 "분산 스토리지 시스템내의 데이터 할당(Data Allocation in a Distributed Storage System)"는 예를 들어 분산테이블(19)와 같은 테이블들을 생성하기 위해 적용된 방법을 기술한다.
데이터에 엑세스하기 위한 입출력 요청(I/O request)은 특정 캐쉬에 전달되고, 상기 캐쉬 그 자체에 의해서 또는 그 캐쉬와 연결된 디스크들(12)에 의해서 서비스 될 수 있다. 따라서, 대체로 각각의 캐쉬들은 독립적으로 전달된 입출력 요청들에 작용한다. 유사하게, 대체적으로 다른 캐쉬들 및 다른 캐쉬들 각각의 서브그룹들과의 통신과는 독립적으로, 각각의 캐쉬는 자신의 디스크들의 서브그룹 각각과 통신한다. 각각의 캐쉬(20)는 테이블들(17) -캐쉬에 특정된- 의 세트 각각을 포함하고, 상기 파티션 테이블들의 기능들은 이하에서 더 자세히 설명된다.
또한 관리노드(25)는 메인 구성 테이블(18)을 포함하는데, 이는 일부는 파티션 테이블들에 일부는 분산 테이블들(19)에 포함된 정보를 포함한다. 본 발명의 일 실시예에서, 프로세서(30)는 메인 구성 테이블을 변경하고, 상기 대응(relevant)되는 데이터(변경된 정보)를 캐쉬들(20)과 인터페이스들(26)에 브로드캐스팅함으로써 -그들이 각각 파티션 테이블들(17)과 분산 테이블들(19)을 변경하도록- , 시스템내의 구성 변경들을 제공할 수 있다.
도 2는 본 발명의 일 실시예에 따라, 소스 스토리지 시스템(11)에 연결된 스토리지 시스템(10)의 구조도를 도시한다. 시스템(10)에서 각각의 캐쉬(20)는 제어유닛(64), 데이터 공간(66) 및 파티션 기술 레코드들(descriptor records, 70)을 포함할 수 있고, 이들 모두는 이하에서 보다 자세히 기술된다. 명확하게 하기 위해, 도 2에서는 오직 하나의 인터페이스(26)와 하나의 캐쉬(20) 및 그것에 결합된 디스크(12)가 도시되었다. 상기 캐쉬는 도 1보다 더 자세하게 기술되었다. 상기 스토리지 시스템들간의 연결의 목적은 데이터를 상기 소스 스토리지 시스템에서 스토리지 시스템(10) -여기서는 또한 목적지 스토리지 시스템으로 용어됨- 으로 이송하는 것이다. 소스 시스템(11)은 대체적으로 본 기술분야에서 알려진 스토리지 시스템의 어떤 종류라도 포함한다. 인터페이스(26)는 소스 시스템별로 포맷된 데이터를 리드(read)하기 위해 구성되며, 그리고 필요하다면 시스템(10)이 저장할 수 있는 종류의 데이터 파티션들로 상기 이송된 데이터를 재배열하기 위해서 구성되어, 이송 프로세스가 수행될 수 있다.
두 개의 시스템들 사이의 커넥션(connection)들은 시스템(11)내 일부 통신 포트로부터 -예를 들어 시스템(10)내의 하나 또는 그 이상의 인터페이스들(26)- 데이터를 전송하는 링크(84)를 통해서 구현될 수 있다. 호스트들(52)로부터 들어오는 입출력 라이트 요청의 어느 종류의 경우라도, 거기로부터 데이터는 대응되는 캐쉬(20)에 직결될 것이다.
시스템(11)으로부터 들어오는 데이터 파티션이 시스템(10)내의 적절한 캐쉬(20)에 도달할 때, 이는 또한 디스크들(12)상에도 라이트(write) 될 것이다. 상기 캐쉬는 이를 기능적으로 관리하기 위한 제어 유닛(64)을 포함하고, 상기 유닛은 일반적으로 프로세서(30)로부터의 명령들하에서 동작한다. 대안으로 캐쉬 움직임(behavior)은 전용 하드웨어 로직에 의해서 또는 하드웨어와 소프트웨어 요소들의 결합에 의해서, 프로세서(30)의 전체적인 제어하에서 구현될 수 있다. 이하에서는 캐쉬(20)는 제어 유닛(64)을 포함하고, 그리고 그들의 기능들은 제어 유닛(64) 및 교체될 수 있는 프로세서(30)에 의해서 수행되는 것으로 가정한다.
만약 데이터를 저장하기 위한 충분한 데이터 블록들이 디스크들(12)상에서 사용가능하다면, 제어유닛(64)은 디스크들상의 물리적 어드레스들에 데이터를 저장하고 물리적 스토리지 어드레스들과 LUN의 하나 또는 그 이상의 각각의 논리적 파티션들간의 링크들을 생성한다. 제어 유닛에 의해서 생성된 상기 링크들은 여기서는 파티션 기술 레코드(partition descriptor record, PDR)들이라고 호칭되며, 상기 PDR들은 상기 캐쉬의 파티션 테이블(17)내에 저장된다. 스토리지 시스템이 상기 LUN의 논리적 파티션의 데이터를 엑세스하기 위한 입출력 명령을 수신하면, 상기 제어 유닛은 필요한 물리적 위치를 식별하기 위해서 상기 PDR을 사용한다.
만약 데이터를 저장하기 위해 충분한 데이터 블록들이 없다면, 스토리지 시스템(10)은 에러 메시지를 리턴한다.
본 발명의 일 실시예에 따라, 이송하는 파티션은 초기에 데이터 공간(66)에 임시적으로 저장된다. 그리고나서 상기 제어 유닛은 제로들 외의 데이터를 포함하는지를 결정하기 위해서 상기 파티션을 체크한다. 이것이 일반적으로 표준 케이스이다. 그러나, 파티션이 오직 제로들 -다른 말로 그들의 비트들 모두가 턴오프(turned off)된- 로 구성된 케이스가 있을 수 있다.
만약 제어 유닛(64)이 데이터 공간(66)내의 인커밍(incoming) 파티션이 오직 제로들만으로 구성되어 있다고 결정하면, 파티션이 시스템(10)내에 정의되어 있으나, 디스크들상에 파티션을 위한 물리적 스토리지 공간이 할당되지 않고 그리고 디스크들에 이 파티션의 컨텐츠를(오직 제로들) 라이트하지 않는 것을 고려한다(consider). 만약, 이후에, 호스트(52)가 스토리지 시스템(10)에 이송된 파티션들의 모든 또는 일부를 리드하기 위한 요청을 전송하면, 상기 요청은 오직 제로들로 구성된 파티션을 호스트로 리턴함으로써 적절히 응답될 것이다.
도 3은 본 발명의 일 실시예에 따라, 스토리지 시스템(11)으로부터 스토리지 시스템(10)으로 이송된 파티션을 저장하기 위한 방법을 구조적으로 도시한 흐름도(91)이다. 이 방법은 데이터 이송을 제어하기 위한 명령에 응답하여 제어 유닛(64)에 의해서 사용될 수 있다. 부가적으로 또는 대안으로, 상기 방법은 소스 스토리지 시스템에서 스토리지 시스템(10)으로 파티션을 이송하는 것이 필요할 때, 프로세서어 의해 동작된 관리노드(25)에 의해서 호출될(be invoked) 수 있다.
수신 단계(90)에서, 캐쉬(20)는 스토리지 시스템(11)으로부터 이송되고 있는 파티션을 수신하고, 제어 유닛(64)은 분석을 위해 상기 파티션을 데이터 공간(66)에 임시적으로 저장할 수 있다.
PDR 라이팅 단계(92)에서, 상기 제어유닛은 특정 PDR(70)(도 2)을 생성하고, 수신된 파티션의 논리 어드레스(LA)를 상기 PDR에 라이트한다. 상기 PDR은 이송된 파티션의 수신을 레코드하기 위해서, 파티션 테이블(17)에 저장된다.
그리고 나서 파티션 분석 단계(94)에서, 제어 유닛(64)은 비트들 모두가 제로값(value zero)을 가지는지를 결정하기 위해, 데이터 공간(66)내에 있는 상기 이송된 파티션을 분석한다. 만약 제어유닛이 상기 파티션이 오직 제로들만으로 구성되었다고 결정하면, 통지 단계(102)에서 파티션 이송이 완료되었음을 관리노드(25) 또는 프로세서(30)에 통지한다. 또한, 상기 제어유닛은 물리공간이 할당되지 않았음을 통지하기 위해서 PDR(70)을 업데이트한다.
그러나, 만약 제어유닛(64)이 상기 이송된 파티션이 논제로값(non-zero value)을 포함하고 있다고 결정하면, 충분 공간 결정단계(96)에서, 디스크들(12)상에 파티션들을 위한 충분한 물리적 스토리지가 사용가능한지를 보기 위해 체크한다. 만약 상기 디스크상에 사용가능한 공간이 충분치 않으면, 에러 응답 단계(98)에서 에러 조건이 발생한다. 만약 상기 디스크들상에 상기 이송된 파티션을 저장하기 위해 사용가능한 공간이 충분히 있다면, 물리 스토리지 단계(100)에서 상기 제어 유닛이 상기 파티션데이터를 디스크들상에 라이트하고 그리고 파티션의 물리적 어드레스를 레코딩함으로써 이송된 파티션 PDR을 업데이트 한다. 그리고 나서 통지 단계(102)에서, 제어 유닛은 관리노드(25) 또는 프로세서(30)에 파티션 이송이 완료되었음을 알린다. 흐름도(91)의 구현은 이송된 "제로" 파티션들의 물리적 스토리지를 금지하고, 스토리지 효율을 증가시키며 그리고 애플리케이션 데이터를 위해 사용가능한 스토리지 공간을 증가시킨다.
도 4는 본 발명의 일 실시예에 따른 스토리지 시스템(10)내에 있는 하나의 캐쉬(20)와 디스크들(12)의 서브그룹의 구조도를 도시한다. 도 4에서, 캐쉬(20)의 요소들(elements)은 제조 및 동작에 있어 일반적으로 유사한 도 2에서 레퍼런스되면서 상술된 캐쉬(20)의 요소들과 같이, 동일한 식별번호에 의해서 지시된다. 이하의 기술에서 디스크들(12)은 물리적 데이터 파티션들(110)을 포함하는 것으로 가정된다. 스토리지 시스템(10)은 상술한 확장된 씬 프로비저닝 시스템을 통합함으로써, 디스크들상에서 확장된 스크러빙(scrubbing) 프로시져를 구현하기 위해서 구성될 수 있다. 본 발명의 일 실시예에서, 캐쉬는 무결성 및 정확성 체크(앞에서 상술한 바와 같이)를 수행하는 것에 더해서, 또한 파티션내에 저장된 데이터가 오직 제로들인 가능성을 체크한다.
스크러빙에서, 제어유닛(64)은 디스크들(12)상에 저장된 기정해진(given) 물리적 데이터 파티션(110)을 데이터 공간(66)으로 카피(copies)한다. 상기 물리적 파티션은 무결성 및 정확성이 체크되고, 그리고 상기 제어유닛은 발견된 에러들을 정정한다(correct). 그리고나서 상기 제어유닛은 데이터 공간에 저장된 상기 데이터가 오직 제로들만을 포함하는지에 대한 가능성에 대해서 체크한다. 만약 그렇다면, 물리적 어드레스가 할당해제되는 동안 상기 파티션은 논리 어드레스를 유지하도록 상기 제어유닛은 파티션 테이블(170)내의 PDR(70)을 업데이트한다. 만약 상기 파티션이 논-제로(non-zero) 데이터를 포함하고 있다면, 상기 제어유닛은 데이터 공간(66)의 스크러브된(scrubbed) 파티션을 디스크들상의 물리적 데이터 파티션들에 다시 라이트한다.
무결성 및 정확성 체크에서 발견될 수 있는 에러 중 하나의 타입은 물리적 데이터 파티션이 실제로는 오직 논-제로 데이터만을 포함하고 있어야 하나, 잘못된 오류로(erroneously) 논-제로 데이터를 포함하는 경우이다. 만약 이런 경우라면, 상술한 바와 같이, 상기 파티션이 상기 물리적 어드레스가 할당해제되는 동안 논리적 어드레스를 유지하기 위해서, 상기 제어 유닛은 파티션 테이블(70)의 PDR(70)을 업데이트 한다.
도 5는 본 발명의 일 실시예에 따라, 도 4의 캐쉬에 의해 데이터 파티션을 스크러빙하기 위한 방법을 구조적으로 도시한 흐름도(121)이다.
파티션 수신 단계(120)에서, 제어 유닛(64)은 스크러빙을 위해 디스크들(12)로부터 파티션을 수신하고, 그리고 디스크 공간(66)에 임시적으로 저장한다. 무결성 체크단계(122)에서, 상기 제어유닛은 무결성 및 정확성에 대해서 상기 파티션 데이터를 체크한다. 무결성 체크는 일반적으로 파티션 데이터가 관련된 데이터를 따르는(comply with) 것을 체크하는 것을 포함하고, 정확성 체크는 일반적으로 상기 파티션 데이터 값들이 유효(valid)한지를 체크하는 것을 포함한다. 결함(defective) 데이터 결정 단계(124)에서는, 상기 제어 유닛이 상기 파티션 데이터가 에러들을 포함했는지를 결정한다. 데이터 정정 단계(126)에서, 상기 제어 유닛은 발견되는 결함 데이터를 정정한다. 상기 정정들은 도 4를 참조하여 위에서 기술한 정정들을 포함하여 적용한다.
파티션 분석 단계(128)에서, 그리고나서 제어 유닛(64)은 비트들 모두가 제로값을 가졌는지를 결정하기 위해 데이터 공간(66)내의 파티션들을 분석한다. 스토리지 할당해제 단계(132)에서, 만약 제어 유닛이 파티션이 오직 제로들만으로 구성되었다고 결정하면, 제어 유닛은 물리적 파티션을 할당해제한다. 이는 스토리지용으로 사용하기 위해서 디스크들(12)상의 물리적 디스크 공간 -이전에 파티션에 의해서 점유된- 을 해제(free)한다.
단계 132로부터 이어지는, PDR 업데이트 단계(134)에서, 파티션에 대해 레코드 된 파티션 데이터가 논리적 어드레스(LA)를 유지하면서 물리적 어드레스를 삭제하기 위해 업데이트 된다. 제어 유닛은 대응되는 물리적 어드레스 없이 논리적 어드레스를 포함하는 PDR(70)을 상기 파티션이 오직 제로들만으로 구성된 것을 가리키는 것으로 이해한다. 이는 이후에 만약 호스트(52)가 스토리지 시스템(10)에 파티션의 전부 또는 일부를 리드하기 위한 요청을 전송하면, 상기 요청은 스토리지 시스템에 의해서 호스트에 오직 제로들만으로 구성된 아웃고잉(outgoing) 파티션을 돌려주는 것으로 적절히(duly) 응답되는 것을 보장한다.
파티션 분석 단계(128)로 돌아와서 만약 논-제로 파티션 데이터가 발견되면, 파티션 라이팅 단계(130)에서, 제어유닛(64)은 데이터 공간(66)의 파티션 데이터를 디스크들에 라이트한다. 만약 데이터 정정이 파티션 사이즈를 변경했으면, PDR 변경 단계(134)에서 제어 유닛(64)이 PDR(70)에 대한 물리적 어드레스를 업데이트 할 수 있다.
단계 130 또는 134의 다음에 있는 통지 단계(136)에서, 제어 유닛(64)은 관리노드(25) 또는 프로세서(30)에 스크러빙 파티션이 완료되었음을 통지한다. 흐름도(121)의 구현은 스크러빙 프로세스동안 발견된 "제로" 파티션들의 물리적 스토리지를 제거하고, 스토리지 효율을 증가시키고, 애플리케이션 데이터를 위한 사용가능한 스토리지 공간을 증가시킨다.
위에서 기술된 실시예들은 일 예로서 기술되었으며, 그리고 본 발명은 여기서 특별히 도시되거나 기술된 내용들에 의해서 권리범위가 제한되지 않는다는 점에 유념해야 한다. 또한, 본 발명의 권리범위는 여기서 기술된 다양한 특징뿐만 아니라, 앞의 설명을 읽음으로써 본 기술분야에서 통상의 기술을 가진 자에 의해 발생하는 이들의 변형 또는 변경 및 공지기술분야에 공개되지 않은 내용들의 조합들 또는 서브조합(subcombination)들을 포함한다.

Claims (32)

  1. 데이터를 대용량 스토리지(mass storage) 시스템에 이송하는(migrating) 방법에 있어서,
    상기 대용량 스토리지 시스템내에서 스토리지를 위하여 인커밍 데이터 파티션(incoming data partition)을 수신하는 단계;
    상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션에 대하여 논리적 스토리지(logical storage)를 할당하는(allocating) 단계;
    상기 인커밍 데이터 파티션이 오직 제로 데이터(zero data)만을 포함하는지 결정을 하는 단계 및
    상기 결정에 응답하여, 상기 인커밍 데이터 파티션에 대하여 할당된 논리적 스토리지를 유지하는 동안, 상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션의 물리적 스토리지(physical storage)를 금지하는(inhibiting) 단계를 포함하는
    데이터를 대용량 스토리지 시스템에 이송하는 방법
  2. 제 1항에 있어서,
    상기 논리적 스토리지를 할당하는 단계는
    상기 인커밍 데이터 파티션에 대한 논리적 어드레스를 적어도 하나 포함하는 파티션 데이터 레코드(partition data record)를 생성하는 단계를 포함하는
    데이터를 대용량 스토리지 시스템에 이송하는 방법.
  3. 제 2항에 있어서,
    상기 파티션 데이터 레코드를 생성하는 단계는
    상기 파티션 데이터 레코드를 영구 매체(permanent medium)에 저장하는 단계를 포함하는
    데이터를 대용량 스토리지 시스템에 이송하는 방법.
  4. 제 1항에 있어서,
    상기 인커밍 데이터 파티션이 논-제로 데이터(non-zero data)를 포함하는지에 대한 추가결정을 생성하는 단계 및
    상기 추가결정에 응답하여, 영구 매체내에 상기 인커밍 데이터 파티션을 저장하는 단계를 더 포함하는
    데이터를 대용량 스토리지 시스템에 이송하는 방법.
  5. 제 4항에 있어서,
    상기 영구 매체내에 상기 인커밍 데이터 파티션을 저장하는 단계는
    파티션 데이터 레코드가 상기 인커밍 데이터 파티션에 대한 물리적 어드레스를 포함하도록 업데이트 하는 단계를 포함하는
    데이터를 대용량 스토리지 시스템에 이송하는 방법.
  6. 제 1항에 있어서,
    상기 대용량 스토리지 시스템은
    씬 프로비저닝 스토리지 시스템을 포함하는
    데이터를 대용량 스토리지 시스템에 이송하는 방법.
  7. 제 1항에 있어서,
    상기 대용량 스토리지 시스템으로 오직 제로데이터를 포함하는 데이터 파티션을 제공하기 위한 요청에 대해, 제로 비트들로 구성된 데이터 파티션으로 응답하는 단계를 더 포함하는
    데이터를 대용량 스토리지 시스템에 이송하는 방법.
  8. 대용량 스토리지 시스템내에서 데이터를 모니터링하는 방법에 있어서,
    물리적 스토리지로부터 데이터 파티션을 리딩(reading)하는 단계;
    상기 데이터 파티션이 오직 제로데이터만을 포함하는지 결정을 하는 단계 및
    상기 결정에 대한 응답으로, 상기 데이터 파티션에 대한 논리적 어드레스의 할당을 유지하는 동안, 상기 대용량 스토리지 시스템내의 상기 데이터 파티션의 물리적 스토리지를 할당해제(de-allocating)하는 단계를 포함하는
    데이터를 모니터링하는 방법.
  9. 제 8항에 있어서,
    상기 데이터 파티션을 리딩하는 단계는,
    무결성(integrity) 및 정확성(correctness) 중 적어도 하나에 대해서 상기 데이터 파티션을 체크하는 단계를 포함하는
    데이터를 모니터링하는 방법.
  10. 제 9항에 있어서,
    상기 체크에 응답하여, 상기 데이터 파티션을 정정하는(correcting) 단계를 더 포함하는
    데이터를 모니터링하는 방법.
  11. 제 8항에 있어서,
    상기 데이터 파티션을 리딩하는 단계는
    상기 데이터 파티션이 오류로(erroneously) 논-제로 데이터를 포함하는지를 결정을 하는 단계를 포함하는
    데이터를 모니터링하는 방법.
  12. 제 8항에 있어서,
    상기 논리적 스토리지의 할당을 유지하는 단계는
    상기 데이터 파티션의 적어도 하나의 논리적 어드레스를 포함하는 파티션 데이터 레코드를 생성하는 단계를 포함하는
    데이터를 모니터링하는 방법.
  13. 제 12항에 있어서,
    영구 매체내에 상기 파티션을 저장하는 단계를 더 포함하는
    데이터를 모니터링하는 방법.
  14. 제 13항에 있어서,
    영구 매체내에 상기 파티션을 저장하는 단계는
    상기 인커밍 데이터 파티션에 대한 물리적 어드레스를 포함하기 위해서, 상기 파티션 데이터 레코드를 업데이트 하는 단계를 포함하는
    데이터를 모니터링하는 방법.
  15. 제 12항에 있어서,
    상기 물리적 스토리지를 할당해제하는 단계는,
    파티션 기술 레코드(descriptor record)에서 물리적 어드레스를 삭제하는(removing) 단계를 포함하는
    데이터를 모니터링하는 방법.
  16. 제 8항에 있어서,
    상기 대용량 스토리지 시스템으로 상기 데이터 파티션을 제공하기 위한 요청에 대해, 제로 비트들로 구성된 아웃고잉 데이터 파티션으로 응답하는 단계를 더 포함하는
    데이터를 모니터링하는 방법.
  17. 대용량 스토리지 시스템으로 데이터를 이송하기 위한 장치에 있어서,
    제어 유닛(control unit) 및
    상기 제어 유닛에 결합되는 프로세서를 포함하며,
    상기 제어 유닛은 상기 대용량 스토리지 시스템내에서 스토리지를 위하여 인커밍 데이터 파티션을 수신하고, 상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션에 대한 논리적 스토리지를 할당하며,
    상기 프로세서는 상기 인커밍 데이터 파티션이 오직 제로 데이터만을 포함하는지 결정을 하고, 상기 결정에 응답하여 상기 인커밍 데이터 파티션에 대하여 할당된 논리적 스토리지를 유지하는 동안 상기 대용량 스토리지 시스템내에서 상기 인커밍 데이터 파티션의 물리적 스토리지를 금지하는
    데이터를 이송하기 위한 장치.
  18. 제 17항에 있어서,
    상기 논리적 스토리지의 할당은,
    상기 인커밍 데이터 파티션에 대한 적어도 하나의 논리적 어드레스를 포함하는 파티션 데이터 레코드를 생성하는 것을 포함하는
    데이터를 이송하기 위한 장치.
  19. 제 18항에 있어서,
    파티션 데이터 레코드의 생성은
    상기 파티션 데이터 레코드를 영구 매체내에 저장하는 것을 포함하는
    데이터를 이송하기 위한 장치.
  20. 제 17항에 있어서,
    상기 프로세서는
    상기 인커밍 데이터 파티션이 논-제로 데이터(non-zero data)를 포함하는지에 대한 추가결정을 생성하고,
    상기 추가결정 단계에 응답하여 영구 매체내에 상기 인커밍 데이터 파티션을 저장하기 위해 구성된
    데이터를 이송하기 위한 장치.
  21. 제 20항에 있어서,
    상기 영구 매체내에 상기 인커밍 데이터 파티션을 저장하는 것은
    파티션 데이터 레코드를 상기 인커밍 데이터 파티션에 대한 물리적 어드레스를 포함하도록 업데이트 하는 것을 포함하는
    데이터를 이송하기 위한 장치.
  22. 제 17항에 있어서,
    상기 대용량 스토리지 시스템은
    씬 프로비저닝 스토리지 시스템을 포함하는
    데이터를 이송하기 위한 장치.
  23. 제 17항에 있어서,
    상기 프로세서는
    상기 대용량 스토리지 시스템으로 상기 데이터 파티션을 제공하기 위한 요청에 대해, 제로 비트들로 구성된 아웃고잉 데이터 파티션으로 응답하기 위해 구성된
    데이터를 이송하기 위한 장치.
  24. 대용량 스토리지 시스템내에서 데이터를 모니터링하는 장치에 있어서,
    물리적 스토리지로부터 데이터 파티션을 리딩(read)하기 위해서 구성된 제어 유닛; 및
    상기 제어유닛에 결합된 프로세서를 포함하고,
    상기 프로세서는 상기 데이터 파티션이 오직 제로데이터를 포함하는지 결정을 수행하고, 상기 결정에 대한 응답으로 상기 대용량 스토리지 시스템내의 상기 데이터 파티션의 물리적 스토리지를 할당해제하고, 그리고 상기 데이터 파티션에 대하여 할당된 논리적 스토리지를 유지하는
    데이터를 모니터링하는 장치.
  25. 제 24항에 있어서,
    상기 데이터 파티션을 리딩하는 것은,
    무결성(integrity) 및 정확성(correctness) 중 적어도 하나에 대해서 상기 데이터 파티션을 체크하는 것을 포함하는
    데이터를 모니터링하는 장치.
  26. 제 25항에 있어서,
    상기 프로세서는
    상기 체크에 대한 응답으로 상기 데이터 파티션을 정정(correct)하도록 구성된
    데이터를 모니터링하는 장치.
  27. 제 24항에 있어서,
    상기 데이터 파티션을 리딩하는 것은
    상기 데이터 파티션이 오류로서(erroneously) 논-제로 데이터를 포함하는지 결정을 하는 것을 포함하는
    데이터를 모니터링하는 장치.
  28. 제 24항에 있어서,
    상기 논리적 스토리지를 할당하는 것은
    상기 데이터 파티션에 대한 적어도 하나의 논리적 어드레스를 포함하는 파티션 데이터 레코드를 생성하는 것을 포함하는
    데이터를 모니터링하는 장치.
  29. 제 28항에 있어서,
    파티션의 상기 물리적 스토리지는
    영구 매체내에 상기 파티션을 저장하는 것을 포함하는
    데이터를 모니터링하는 장치.
  30. 제 29항에 있어서,
    영구 매체내에 상기 파티션을 저장하는 것은
    상기 인커밍 데이터 파티션에 대한 물리적 어드레스를 포함하기 위해서 상기 파티션 데이터 레코드를 업데이트 하는 것을 포함하는
    데이터를 모니터링하는 장치.
  31. 제 28항에 있어서,
    상기 물리적 스토리지를 할당해제하는 것은,
    파티션 기술 레코드(partition descriptor record, PDR)에서 물리적 어드레스를 삭제하는(removing) 것을 포함하는
    데이터를 모니터링하는 장치.
  32. 제 24항에 있어서,
    상기 프로세서는
    상기 대용량 스토리지 시스템으로 상기 데이터 파티션을 제공하기 위한 요청에 대해, 제로 비트들로 구성된 아웃고잉 데이터 파티션으로 응답하기 위해 구성된
    데이터를 모니터링하는 장치.
KR1020107006838A 2007-10-01 2008-09-28 씬 프로비저닝 이송 및 스크러빙 방법 KR20100077156A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US97657207P 2007-10-01 2007-10-01
US60/976,572 2007-10-01
US12/019,650 US8386744B2 (en) 2007-10-01 2008-01-25 Thin provisioning migration and scrubbing
US12/019,650 2008-01-25

Publications (1)

Publication Number Publication Date
KR20100077156A true KR20100077156A (ko) 2010-07-07

Family

ID=40509709

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107006838A KR20100077156A (ko) 2007-10-01 2008-09-28 씬 프로비저닝 이송 및 스크러빙 방법

Country Status (6)

Country Link
US (1) US8386744B2 (ko)
EP (1) EP2206045A4 (ko)
JP (1) JP5315348B2 (ko)
KR (1) KR20100077156A (ko)
CN (1) CN101809551B (ko)
WO (1) WO2009044397A2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140752B2 (en) * 2007-09-20 2012-03-20 Xyratex Technology Limited Method of executing a background task and an array controller
US8108634B1 (en) * 2008-06-27 2012-01-31 Emc B.V., S.A.R.L. Replicating a thin logical unit
US8176284B2 (en) * 2009-08-11 2012-05-08 Texas Memory Systems, Inc. FLASH-based memory system with variable length page stripes including data protection information
US8230131B2 (en) * 2009-09-14 2012-07-24 International Business Machines Corporation Data migration to high speed storage in accordance with I/O activity over time
US8578087B2 (en) * 2010-02-02 2013-11-05 International Business Machines Corporation On demand conversion of standard logical volumes to thin-provisioned logical volumes
US8429391B2 (en) * 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US9195412B2 (en) * 2010-10-07 2015-11-24 International Business Machines Corporation System and method for transforming an in-use raid array including migrating data using reserved extents
CN102446072B (zh) * 2010-10-07 2014-11-19 国际商业机器公司 用于池式存储中的raid 阵列变换的系统和方法
US8510527B1 (en) * 2010-10-08 2013-08-13 Qlogic, Corporation System and methods for migrating information from source storage to destination storage
CN101976223B (zh) * 2010-10-09 2012-12-12 成都市华为赛门铁克科技有限公司 自动精简配置方法和装置
US8688908B1 (en) 2010-10-11 2014-04-01 Infinidat Ltd Managing utilization of physical storage that stores data portions with mixed zero and non-zero data
CN102651009B (zh) * 2011-02-28 2014-09-24 国际商业机器公司 一种存储系统中检索数据的方法和设备
US8577836B2 (en) 2011-03-07 2013-11-05 Infinidat Ltd. Method of migrating stored data and system thereof
EP2702550A4 (en) * 2011-04-25 2014-10-01 Ikanos Communications Inc METHOD AND APPARATUS FOR CACHING IN A NETWORK ENVIRONMENT
US9465737B1 (en) * 2012-07-02 2016-10-11 Toshiba Corporation Memory systems including a duplicate removing filter module that is separate from a cache module
CN102915275A (zh) * 2012-09-13 2013-02-06 曙光信息产业(北京)有限公司 一种自动精简配置系统
CN104035887B (zh) * 2014-05-22 2017-10-31 中国科学院计算技术研究所 一种基于精简配置系统的块设备缓存装置及其方法
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
CN111273870B (zh) * 2020-01-20 2023-06-06 深圳奥思数据科技有限公司 云存储系统间海量数据迭代迁移方法、设备及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3236152B2 (ja) 1992-10-22 2001-12-10 日本電気株式会社 ファイル圧縮処理装置
JP3133525B2 (ja) 1992-11-27 2001-02-13 三洋電機株式会社 データバックアップシステム
JP3554045B2 (ja) 1994-10-28 2004-08-11 富士通株式会社 補助記憶装置の記録内容復元装置および記録復元装置
US5649158A (en) 1995-02-23 1997-07-15 International Business Machines Corporation Method for incrementally archiving primary storage to archive storage by utilizing both a partition archive status array and a partition map
US7162600B2 (en) 2005-03-29 2007-01-09 Hitachi, Ltd. Data copying method and apparatus in a thin provisioned system
US7546482B2 (en) * 2002-10-28 2009-06-09 Emc Corporation Method and apparatus for monitoring the storage of data in a computer system
US7024526B2 (en) 2002-10-31 2006-04-04 Hitachi, Ltd. Apparatus and method of null data skip remote copy
US7908413B2 (en) 2003-07-15 2011-03-15 International Business Machines Corporation Data allocation in a distributed storage system
US7293156B2 (en) 2003-07-15 2007-11-06 Xiv Ltd. Distributed independent cache memory
US7225314B1 (en) * 2004-05-26 2007-05-29 Sun Microsystems, Inc. Automatic conversion of all-zero data storage blocks into file holes
US20060200481A1 (en) * 2005-03-04 2006-09-07 Khalid Goyan Method and system for data optimization and protection in DSP firmware
US7130960B1 (en) 2005-04-21 2006-10-31 Hitachi, Ltd. System and method for managing disk space in a thin-provisioned storage subsystem
US7490213B2 (en) 2005-05-06 2009-02-10 Xiv Ltd. Dynamic allocation of storage for hierarchical copies
US20070150690A1 (en) 2005-12-23 2007-06-28 International Business Machines Corporation Method and apparatus for increasing virtual storage capacity in on-demand storage systems
US20070174549A1 (en) 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module
JP4927408B2 (ja) 2006-01-25 2012-05-09 株式会社日立製作所 記憶システム及びそのデータ復元方法
JP2008146574A (ja) 2006-12-13 2008-06-26 Hitachi Ltd 記憶制御装置及び記憶制御方法
JP2008171311A (ja) 2007-01-15 2008-07-24 Matsushita Electric Ind Co Ltd データ保存装置
US20080288436A1 (en) * 2007-05-15 2008-11-20 Harsha Priya N V Data pattern matching to reduce number of write operations to improve flash life

Also Published As

Publication number Publication date
EP2206045A4 (en) 2012-08-01
WO2009044397A3 (en) 2010-03-04
WO2009044397A2 (en) 2009-04-09
CN101809551A (zh) 2010-08-18
US20090089534A1 (en) 2009-04-02
JP2010541060A (ja) 2010-12-24
US8386744B2 (en) 2013-02-26
EP2206045A2 (en) 2010-07-14
JP5315348B2 (ja) 2013-10-16
CN101809551B (zh) 2013-06-05

Similar Documents

Publication Publication Date Title
KR20100077156A (ko) 씬 프로비저닝 이송 및 스크러빙 방법
US11829617B2 (en) Virtual storage system
US8566550B2 (en) Application and tier configuration management in dynamic page reallocation storage system
US8639898B2 (en) Storage apparatus and data copy method
US20080010398A1 (en) Storage system and write distribution method
WO2012049711A1 (en) Data migration system and data migration method
JP2020035300A (ja) 情報処理装置および制御方法
JP2000010738A (ja) ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体
US20180307426A1 (en) Storage apparatus and storage control method
US20210326207A1 (en) Stripe reassembling method in storage system and stripe server
US20040250043A1 (en) Virtualization of physical storage using size optimized hierarchical tables
JP6294569B2 (ja) ストレージシステム及びキャッシュ制御方法
CN104426965B (zh) 自管理存储方法和系统
US11216195B1 (en) Sharing blocks of non-volatile data storage to support cache flushes in a multi-node data storage system
US11449237B2 (en) Targetless snapshot system replication data pointer table
US10853257B1 (en) Zero detection within sub-track compression domains
WO2019026221A1 (ja) ストレージシステム及びストレージ制御方法
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP2013089225A (ja) 階層変更方法及び装置
JP2021124796A (ja) 分散コンピューティングシステム及びリソース割当方法
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units
JP2013122691A (ja) 割り当て装置およびストレージ装置
US11544005B2 (en) Storage system and processing method
JP7373018B2 (ja) 仮想ストレージシステム
JP6605762B2 (ja) 記憶ドライブの故障により消失したデータを復元する装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E601 Decision to refuse application