KR101930117B1 - 비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법 - Google Patents

비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법 Download PDF

Info

Publication number
KR101930117B1
KR101930117B1 KR1020147006536A KR20147006536A KR101930117B1 KR 101930117 B1 KR101930117 B1 KR 101930117B1 KR 1020147006536 A KR1020147006536 A KR 1020147006536A KR 20147006536 A KR20147006536 A KR 20147006536A KR 101930117 B1 KR101930117 B1 KR 101930117B1
Authority
KR
South Korea
Prior art keywords
slab
capacity
logical disk
allocating
storage device
Prior art date
Application number
KR1020147006536A
Other languages
English (en)
Other versions
KR20140061444A (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 KR20140061444A publication Critical patent/KR20140061444A/ko
Application granted granted Critical
Publication of KR101930117B1 publication Critical patent/KR101930117B1/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2058Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(예를 들어, RAID 어레이와 같은) 스토리지 장치 세트의 스토리지 장치는 스토리지 장치의 물리 매체 상에 논리 디스크, 공간, 스토리지 풀, 및 레이아웃 및 프로비저닝 플랜을 포함한, 스토리지 저장 세트의 구성의 비휘발성 표현을 발생시킬 수 있다. 스토리지 장치 세트에 액세스하는 컴퓨터는 스토리지 장치에 액세스하면서 이용할 스토리지 장치 세트의 휘발성 메모리 표현을 또한 발생시킬 수 있다. 그러나, 비휘발성 표현은 서로 다른 용도 및 특성으로 인해 성는 기준에 맞지 않을 수 있다. 스토리지 장치 세트에 레이아웃 플랜을 적용하면서 슬랩 액세스를 스토리지 장치 액세스로 변환하는 하위 레벨 레이아웃 구성요소와 인터페이싱하는, 그리고, 프로비저닝 플랜을 적용하면서 슬랩 액세스를 취급하는 프로비저닝 구성요소를 포함하는 액세서와, 논리 디스크, 슬랩, 및 익스텐트의 계층 구조를 포함하는 휘발성 메모리 표현에 따라 스토리지 장치 세트에 액세스하기 위한 기술이 여기서 제시된다.

Description

비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법{VOLATILE MEMORY REPRESENTATION OF NONVOLATILE STORAGE DEVICE SET}
컴퓨팅 분야 내에서, 많은 시나리오들은 스토리지 컨트롤러에 의해 관리되는 한 세트의 하드 디스크 드라이브와 같은 스토리지 장치 세트 상에 데이터의 저장을 수반한다. 스토리지 장치 세트는, 예를 들어, 다양한 어드레싱 기법, 스토리지 장치 용량의 용량 결합 형태, 그리고 회복성(resiliency) 및 프로비저닝 플랜(provisioning plan)과 같이, 다양한 방식으로 구성될 수 있다. 예를 들어, 2개 이상의 스토리지 장치 또는 스토리지 영역의 공유 용량을 이용하여 논리적 디스크 또는 논리적 볼륨이 제시되도록, 다양한 스토리지 툴이 발생될 수 있다.
스토리지 장치 세트의 구성은 예를 들어, 하나 이상의 스토리지 장치, 하나 이상의 스토리지 풀, 스토리지 풀로부터 나타나는 공간, 그리고, 스토리지 장치의 물리적 스토리지 영역으로부터 할당되는, 그리고, 공간의 대응하는 논리적 스토리지 영역에 매핑되는, 물리적 익스텐트(physical extent)에 대한 한 세트의 표현으로, 스토리지 장치들 중 하나 이상의 물리적 매체 상에 종종 저장된다. 물리적 스토리지 장치 상의 스토리지 장치 세트의 표현의 지속성은 고장으로부터 스토리지 서비스를 복원할 수 있게 한다(예를 들어, 회복성 스토리지 플랜을 이용함으로써 고장난 스토리지 장치의 데이터를 대체 스토리지 장치에 재구성, 또는 스토리지 장치 세트를 이용하여 컴퓨터의 휘발성 메모리를 소거하는 정전).
이와 같은 간단한 설명은 아래 상세한 설명에서 더 설명되는 단순화된 형태의 개념의 선택을 소개하고자 제공된다. 이러한 간단한 설명은 청구되는 대상의 핵심적 요인 또는 본질적 특징을 식별하고자 함이 아니고, 청구되는 대상의 범위를 제한하는데 사용되고자 함도 아니다.
스토리지 장치 세트를 이용하는 컴퓨터는 스토리지 장치 상에 저장되는 구성 정보를 자주 참조할 필요없이, 정확한 방식으로 스토리지 장치에 액세스하기 위해, 스토리지 장치 세트의 구성의 휘발성 메모리 표현을 발생시킬 수 있다. 일부 시나리오에서, 컴퓨터는 물리적 매체 상에 저장되는 구성과 구조적으로 동일한 휘발성 메모리 표현을 단순히 발생시킬 수 있지만, 스토리지 세트의 이러한 표현이 휘발성 메모리 이용에 불충분할 수 있다. 예를 들어, 스토리지 장치의 물리적 매체 상에서 지속되는 표현이 스토리지 효율, 동시적 액세스, 및 다른 스토리지 장치 상의 물리적 매체 표현의 미러링에 추가하여 선택될 수 있다. 그러나, 스토리지 세트 구성의 물리적 매체 표현의 이와 같은 특성이, 스토리지 세트에 액세스하기 위해 자주 참조될 수 있도록 휘발성 메모리 표현에 대해 특히 유리하지 않을 수 있다. 예를 들어, 물리적 메모리 표현이 공간의 논리 위치에 대응하는 익스텐트 내 물리적 위치를 식별할 수 있게 하지만, 이러한 결정은 성능 기준에 잘 부합하지 않을 수 있고, 스토리지 장치의 액세스시 컴퓨터의 반응성을 지연시킬 수 있다. 따라서, 컴퓨터에 의한 능동적 이용을 위한 이러한 결정을 촉진시키는 스토리지 장치 세트의 구성의 서로 다른 표현을 발생시키는 것이 유리할 수 있다.
스토리지 장치 세트의 구성의 휘발성 메모리 표현을 발생시키기 위한 기술이 여기서 제시된다. 이 기술에 따르면, 스토리지 장치 세트는 한 세트의 논리 디스크로 표현될 수 있고, 각각의 논리 디스크는 한 세트의 슬랩을 포함하며, 각각의 슬랩은 프로비저닝된 용량 및 레이아웃 플랜을 갖는다. 각자의 슬랩은 물론, 스토리지 장치 상의 물리적 할당으로 식별되는 다수의 익스텐트를 포함한다. 이러한 모델의 스토리지 세트는 예를 들어, 계층 구조 또는 트리로, 휘발성 메모리로 표현될 수 있고, 특정 논리 위치에 대해 데이터를 저장하는 익스텐트의 물리적 위치를 신속하게 결정할 수 있게 한다. 추가적으로, 이러한 방식으로 표현되는 스토리지 세트에 대한 액세스는, 한 세트의 슬랩으로 스토리지 장치 세트와 인터페이싱하도록 구성되는 프로비저닝 구성요소와, 슬랩 액세스 요청을 물리적 익스텐트의 액세스로 변환하도록 구성되는 레이아웃 구성요소를 포함하는 시스템에 의해 충족될 수 있다. 이러한 방식으로 액세스 시스템의 구조는 다음과 같이 효율적 분할을 행할 수 있다 - 예를 들어, 프로비저닝 구성요소는 스토리지 장치 세트를 전체론적으로 관리할 수 있고, 프로비저닝 플랜의 세부사항을 취급할 수 있으며(예를 들어, 용량의 슬랩에 대한 할당 요청의 충족), 레이아웃 구성요소는 레이아웃 플랜의 세부사항을 구현할 수 있다(예를 들어, 각자의 슬랩 할당 요청에 대하여, 복수의 스토리지 장치 간에 슬랩의 저장의 스트라이핑, 슬랩 간 용량의 미러링과 같이, 회복성 플랜을 만족시키는 물리적 스토리지 장치 상의 익스텐트 할당).
상기 및 관련 목적을 실현하기 위해, 다음의 설명 및 첨부 도면은 소정의 예시적인 형태 및 구현예를 제시한다. 이들은 하나 이상의 형태들이 이용될 수 있는 다양한 방식들 중 몇몇에 불과하다. 본 개시문의 다른 형태, 장점, 및 신규한 특징들이 첨부 도면과 연계하여 고려될 때 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 스토리지 장치 세트의 비휘발성 메모리 표현을 특징으로 하는 일례의 시나리오의 도면,
도 2는 여기서 제시되는 기술에 따른, 스토리지 세트의 휘발성 메모리 표현을 특징으로 하는 예시적인 시나리오의 도면,
도 3은 여기서 제시되는 기술에 따른, 스토리지 장치 세트의 스토리지 장치 상의 논리적 디스크에 대한 용량 할당을 위한 예시적 방법을 설명하는 순서도,
도 4는 여기서 제시되는 프로비전 중 하나 이상을 실현하도록 구성되는 프로세서-실행가능 명령어를 포함하는 예시적인 컴퓨터-판독가능 매체의 도면,
도 5는 여기서 제시되는 프로비전 중 하나 이상을 구현할 수 있도록 하는, 예시적인 컴퓨팅 환경의 도면.
청구되는 대상은 도면을 참조하여 이제 설명되며, 유사한 도면 부호는 유사한 요소들을 나타내는데 사용된다. 다음의 설명에서, 설명용도로, 청구되는 대상의 완전한 이해를 제공하기 위해 수많은 구체적 세부사항들이 제시된다. 그러나, 청구되는 대상은 이러한 구체적 세부사항 없이도 실시될 수 있음이 명백하다. 다른 예에서, 청구되는 대상의 설명을 용이하게 하기 위해, 구조 및 장치들이 블록도로 도시된다.
A. 배경
컴퓨팅 분야 내에서, 많은 시나리오들은 스토리지 장치 세트의 비휘발성 스토리지 장치에 대한 액세스를 수반한다. 이러한 스토리지 장치들은 많은 타입들(예를 들어, 솔리드 스테이트 스토리지 장치, 및 자기 또는 광학 디스크)을 포함할 수 있고, 많은 타입의 데이터(예를 들어, 파일, 이메일 메시지, 데이터베이스 레코드, 또는 매체 객체, 또는 이들의 조합)를 저장하는데 사용될 수 있다. 스토리지 장치는 특정 컴퓨터 또는 장치에 부착될 수 있고, 또는 네트워크에 연결되거나 네트워크를 통해 액세스될 수 있다. 스토리지 장치는 또한 독립적으로(예를 들어, 스토리지 장치 세트의 다른 스토리지 장치의 상호통신 또는 심지어 상호 인지없이), 또는 느슨한 협업으로(예를 들어, 통신 및 상태 통지 교환하면서), 또는 강한 상호동작(interoperation)(예를 들어, RAID(Redundant Array of Inexpensive Disks) 기기와 같은, 스토리지 컨트롤러 내로 로딩되는 한 세트의 하드 디스크 드라이브)으로, 동작할 수 있다. 또한, 스토리지 장치의 상호동작 및/또는 이용은 그 사이에서 저장되는 데이터 간의 논리적 또는 실제적 파티션을 유도할 수 있고, 또는, 데이터의 결합을 유도할 수 있다. 예를 들어, 2개 이상의 스토리지 장치의 가용 용량이 단일 통합 볼륨으로 컴퓨터에 제시되는 스토리지 풀 내로 결합될 수 있다.
스토리지 장치는 스패닝(예를 들어, 스토리지 장치의 용량을 논리적으로 합성(coneatenation), 스트리핑(예를 들어, 스토리지 장치 간에 순차적 및 논리적 어드레스의 인터리빙), 미러링(예를 들어, 스토리지 장치 세트의 각자의 스토리지 장치 상에 데이터 세트의 동일 사본들을 저장하고, 모든 사본에 데이터 세트에 대한 변경을 자동적으로 그리고 동시에 적용함으로써 사본의 신원을 유지), 그리고, 패리티 연산(예를 들어, 데이터가 하나 이상의 스토리지 장치 상에 저장될 때, 스토리지 장치의 고장으로부터 복원을 위해, 저장된 데이터의 체크섬이 자동적으로 연산되어 다른 스토리지 장치 상에 저장될 수 있음)과 같은 다양한 레이아웃 플랜을 또한 구현할 수 있다. 추가적으로, 스토리지 장치의 용량은 다양한 프로비저닝 플랜에 따라 프로비저닝될 수 있다. 첫 번째 예로서, 고정 프로비저닝 플랜에서, 스토리지 영역 할당 요청이 수신될 때, 하나 이상의 스토리지 장치는 프로비저닝 요청에서 요청된 모든 용량을 즉시 할당할 수 있고, 이러한 용량이 가용함을 요청 사용자 또는 프로세스에 알릴 수 있다(그리고 선택적 사항으로서, 디폴트 값으로 용량을 초기화할 수 있다). 두번째 예로서, 지연된 프로비저닝 플랜에서, 스토리지 영역 할당 요청이 수신될 때, 스토리지 장치는 스토리지 영역이 기록 가용함을 표시할 수 있지만, 스토리지 영역을 위한 용량을 즉시 할당하지는 않을 수 있다. 대신에, 스토리지 장치는 스토리지 영역 내 일 위치에 대한 액세스 요청을 기다릴 수 있고, 액세스 요청을 수신하면, 스토리지 장치의 물리적 스토리지(예를 들어, 익스텐트)를 즉시 할당할 수 있고, 이를 해당 위치의 논리적 어드레스로 묶을 수 있다. 이러한 "저스트-인-타임"(just-in-time) 지연 프로비저닝은 소정의 선응 개선을 제시할 수 있다(예를 들어, 스토리지 장치 발생 요청을 즉시 충족시킬 수 있고, 및/또는 미사용 상태로 남는 스토리지 영역에 대한 용량 할당보다, 스토리지 장치 세트의 가용 용량의 더 효율적인 할당). 추가적인 변형예로서, "씬 프로비저닝"(thin provisioning) 플랜에서, 스토리지 장치 세트는 스토리지 장치 세트의 가용 용량을 넘어서는 용량 할당 요청을 승인할 수 있다. 대신에, 스토리지 장치 세트는 용량을 사용되는 것으로 할당할 수 있고, 가용 용량에 대해 낮게 구동될 때, 추가 용량을 제공하는 스토리지 장치를 추가함을 관리자에게 알릴 수 있다. 이러한 타입 및 다른 타입의 레이아웃 및/또는 프로비저닝 플랜이 스토리지 장치에 적용될 수 있다.
복수의 스토리지 장치, 스토리지 풀, 및 레이아웃 및 프로비저닝 플랜을 수반하는 복합 저장 시나리오를 나타내기 위해, 스토리지 장치 세트는 스토리지 장치 및 그 할당에 대한 물리적인 비휘발성 표현을 저장할 수 있다. 예를 들어, 클러스터의 스토리지 풀 매니저는 다양한 프로세스를 대신하여 스토리지 영역 및 용량을 할당하기 위한 요청을 취급하도록 지정될 수 있고, 스토리지 풀의 특징 및 할당을 설명하는 메타데이터를 저장하도록 구성되는 하나 이상의 스토리지 장치의 스토리지 영역에 대해 배타적 기록 액세스를 가질 수 있다. 더욱이, 스토리지 장치 세트의 비휘발성 표현은 임의의 스토리지 장치 상의 메타데이터를 가용하게 하기 위해, 스토리지 장치 사이에서 자동적으로 동기화될 수 있다 - 예를 들어, 임의의 스토리지 장치가 고장날 경우, 다른 스토리지 장치들이 스토리지 장치 세트의 비휘발성 표현을 이용하여 고정난 스토리지 장치의 콘텐츠를 결정하고 저장된 데이터를 재구성할 수 있다.
도 1은 하나 이상의 스토리지 장치 상에 저장될 수 있는 스토리지 장치 세트의 비휘발성 표현을 특징으로 하는 예시적인 시나리오(100)의 도면을 제시한다. 이러한 비휘발성 표현은, 예를 들어, 각각의 스토리지 장치(108), 하나 이상의 스토리지 풀(104), (논리적 볼륨, 패리티 공간, 및 저널(journals)과 같은) 스토리지 풀(104)로부터 명백한 공간(106), 그리고 스토리지 장치(108)의 물리적 용량으로부터 할당된, 그리고, 각자의 공간(106)의 각자의 논리 어드레스에 구속된, 물리적 익스텐트(110)를 나타내는 레코드를 포함할 수 있다. 이러한 예시적이 비휘발성 표현은 스토리지 장치 세트의 스토리지 장치에 의해 구현 및 전시되는 할당, 프로비전, 및 관계를 결정하기 위해, 스토리지 장치 세트에 액세스하고자 하는 임의의 컴퓨터 또는 장치에 의해 판독될 수 있다.
컴퓨터는 휘발성 메모리에서, 스토리지 장치 세트의 표현을 또한 발생시킬 수 있다. 예를 들어, 스토리지 장치 세트의 특정 논리적 위치에 액세스하기 위해, 컴퓨터는 논리적 위치가 저장되는 물리적 위치를 식별하려 노력할 수 있고, 스토리지 장치 세트의 프로비저닝 플랜 및/또는 레이아웃 플랜에 순응하려 노력할 수 있다. 이러한 일 시나리오에서, 컴퓨터는 휘발성 메모리에 비휘발성 표현을 단순히 로딩할 수 있고, 이러한 결정을 행하기 위해 비휘발성 표현을 참조할 수 있다. 그러나, 메모리 표현에서, 비휘발성 표현과 휘발성 표현 간의 용도 차이는 소정의 단점을 제시할 수 있다. 예를 들어, 비휘발성 표현은 정확하고 일관된 방식으로(예를 들어, 많은 컴퓨터 및 스토리지 장치들이 동시적으로 액세스 및/또는 업데이트할 수 있는 방식으로) 스토리지 장치 세트의 성질을 문서화시키도록 발생될 수 있다. 특히, 스토리지 장치 상에 저장되는 비휘발성 표현은 간헐적으로 액세스될 수 있고(예를 들어, 컴퓨터 또는 스토리지 장치에 의해 가끔씩만 판독될 수 있고), 성능을 위해 고안 또는 최적화되지 않을 수 있다. 예를 들어, 특정 공간(106)에 속한 익스텐트(110)의 위치를 파악하기 위해, 컴퓨터는 모든 공간(106) 및/또는 익스텐트(110)를 검사하여야 할 수 있는데, 왜냐하면, 이러한 구조들이 임의의 특정 방식으로 인덱싱되거나 정렬되지 않을 수 있기 때문이다. 그러나, 컴퓨터는 빈번한 원칙으로, 예를 들어, 초당 많은 횟수로, 휘발성 메모리 표현을 이용하고자 할 수 있다. 따라서, 휘발성 메모리 표현의 구조는 스토리지 장치의 액세스에서 컴퓨터의 성능에 영향을 미칠 수 있고, 신속한 액세스용(예를 들어, 비휘발성 표현)으로 특별히 구성되지 않은 휘발성 메모리 표현은 컴퓨터의 성능을 상당히 저하시킬 수 있다. 더욱이, 컴퓨터는 많은 휘발성 스토리지 용량을 포함할 수 있고, 다른 컴퓨터에 이러한 휘발성 메모리를 노출시키지 않을 수 있으며, 따라서, 표현의 크기를 감소시키기 위한, 그리고 동시적 액세스 문제를 감소시키기 위한, 비휘발성 표현의 구성이, 컴퓨터에 의한 이용에 적용되지 않을 수 있다.
B. 제시되는 기술
컴퓨터와 같은 장치의 휘발성 메모리에 저장될 수 있는, 그리고, 스토리지 장치 세트에 대한 액세스를 촉진시킬 수 있는, 스토리지 장치의 표현을 발생시키기 위한 기술이 여기서 제시된다. 특히, 관심 대상인 논리적 위치에 대응하는 스토리지 장치의 물리적 위치 식별을 촉진시키기 위해 이러한 표현을 구조화하는 것은, 스토리지 장치 세트에 액세스함에 있어서 컴퓨터의 성능에 상당한 영향을 미칠 수 있다.
도 2는 컴퓨터 또는 다른 장치의 휘발성 메모리에서 발생될 수 있는, 그리고, 스토리지 장치 세트의 논리적 용량에 액세스하는데 신속하게 이용될 수 있는, 스토리지 장치 세트의 일례의 휘발성 메모리 표현을 특징으로 하는 예시적인 시나리오(200)의 도면을 도시한다. 이러한 예시적인 시나리오(200)에서, 휘발성 메모리 표현(202)은 계층 구조를 포함하고, 컴퓨터 상에 나타나는 한 세트의 논리 디스크(204)로 시작된다. 논리 디스크(204)는 슬랩(slab)(206)과 연관되고, 각각의 슬랩은 논리 디스크(204)의 저장 용량의 논리 블록을 포함한다. 슬랩(206)은 프로비저닝 크기(208)를 가질 수 있고, 및/또는 레이아웃 플랜(210)을 표시할 수 있다(예를 들어, 미러링된 슬랩, 스트라이핑된 슬랩, 또는 패리티 슬랩). 그러나, 레이아웃 플랜(210)의 세부사항은 슬랩(206)의 레벨에서 노출되지 않으며, 예를 들어, 100기가바이트 미러링된 슬랩 및 100 기가바이트 간단한 슬랩이 동일 프로비저닝 용량(208)으로 표현될 수 있고, (2개의 스토리지 장치 상에서 수행될 경우) 미러링이 200기가바이트의 물리적 용량을 이용할 수 있음에도 불구하고, 각각은 논리 디스크(204)에 100기가바이트의 프로비저닝된 용량을 제공할 수 있다. 대신에, 레이아웃 플랜(210)의 세부사항은, 각자의 슬랩에 할당되는 그리고 각자의 슬랩에 구속된, 그리고, 스토리지 장치(108)의 물리적 용량으로부터 프로비저닝되는, 익스텐트(110)의 하위 레벨에서 구현된다.
이러한 휘발성 메모리 표현(202)은 성능 기준을 충족시키는 방식으로 논리 어드레스와 연관된 물리적 위치를 식별하는데 이용될 수 있다. 예를 들어, 논리 어드레스가 논리 디스크(204)를 명시할 수 있다. 특정 논리 어드레스를 이용하여, 논리 디스크(204)의 논리 어드레스에 구속된 슬랩(206)이 식별될 수 있다. 그 후, 슬랩(206) 내의 논리 위치를 이용하여, 슬랩(206) 내의 논리 어드레스를 포함하는 논리 어드레스 범위에 구속된 익스텐트(110)를 식별할 수 있으며, 이는 익스텐트(110) 내의 물리적 어드레스로 변환될 수 있다. 마지막으로, 익스텐트(110) 내의 물리적 어드레스는 스토리지 장치(106) 상의 물리적 위치에 매핑될 수 있고, 요청받은 논리적 위치가 발견될 수 있고, 액세스될 수 있다. 이러한 방식으로, 휘발성 메모리 표현(202)의 계층적 속성은, 논리 디스크(204)의 논리 위치에 매핑되는 스토리지 장치(108)의 물리적 위치를 신속하게 식별하는데 특히 적합할 수 있다.
추가적으로, 휘발성 메모리 표현(202)의 계층적 속성은 스토리지 장치의 용량 할당의 복잡성을 유연하게 취급하는 액세서를 발전시킬 수 있다. 특히, (프로비저닝 플랜에 따른) 슬랩(206)의 할당과, (슬랩(206)의 레이아웃 플랜(210)에 따른) 익스텐트(110)의 할당 사이에 개념적 파티션이 식별될 수 있다. 특히, 위치 액세스 요청 또는 용량 할당 요청은 프로비저닝 구성요소(220)에 의해 개념적으로 취급될 수 있고, 이는 스토리지 장치 세트의 논리 저장 용량을 전체론적으로 평가할 수 있고, 슬랩(206)의 프로비저닝 플랜의 프로비저닝 개념을 적용할 수 있다. 그러나, 액세스 및 할당 요청은 각자의 슬랩의 레이아웃 플랜(210)을 강제할 수 있도록, 레이아웃 구성요소(222)에 의해 취급될 수 있는 물리적 액세스 요청으로 변환될 수 있다. 예를 들어, 투폴드 미러링 레이아웃 플랜 및 100기가바이트의 즉시 프로비저닝되는 용량을 갖는 슬랩(206)의 할당 요청은, 첫번째로, 100기가바이트의 즉시 할당 용량을 갖는 슬랩(206)을 할당하기 위한 프로비저닝 구성요소(220)에 대한 요청으로, 그리고, 두번째로, 서로 다른 2개의 스토리지 장치(108) 상에 2개의 100-기가바이트 익스텐트(110) 형태로 슬랩(206)에 대한 용량의 할당을 위한, 레이아웃 구성요소(222)에 대한 요청으로, 취급될 수 있다. 마찬가지로, 논리 볼륨(204)의 논리 어드레스에서의 데이터 세트에 대한 액세스 요청을 수신하면, 프로비저닝 구성요소(220)는 논리 볼륨의 논리 어드레스와 연관된 슬랩(206)을 식별할 수 있고, 이러한 액세스 요청을 슬랩(206)의 특정 논리 위치에 액세스하기 위한 슬랩 액세스 요청으로 변환할 수 있다. 그러나, 레이아웃 구성요소(222)는 슬랩(2060을 검사할 수 있고, 스토리지 장치(108) 상에 저장되는 3개의 익스텐트(110) 간에 스트라이핑된 레이아웃 플랜(210)을 식별할 수 있다. 따라서, 레이아웃 구성요소(222)는 각자의 익스텐트(110) 상에서 데이터 세트의 각자의 부분에 액세스하기 위해 3개의 액세스 요청을 발생시킬 수 있고, 판독한 데이터를 원본 데이터 세트로 디-스트라이핑(de-striping)할 수 있다. 이러한 방식으로, 프로비저닝 구성요소(220) 및 레이아웃 구성요소(222)는 액세스 및 할당 작업을, 슬랩(206)에 의해 구현되는 레이아웃 플랜에 따라 스토리지 세트의 스토리지 장치(108) 및 익스텐트(110)와의 물리적 상호작용 및 프로비저닝 플랜을 수반하는 슬랩(206) 및 논리 디스크(204)와의 논리 상호작용으로 액세스 및 할당 작업을 나눌 수 있다.
C. 주 실시예
도 2는 스토리지 장치 세트의 스토리지 장치(108) 상에 논리 디스크(204)용 용량을 할당하도록 구성되는 예시적인 시스템(218)으로 예시되는, 이러한 기술들의 제 1 실시예를 특징으로 하는 예시적인 시나리오(200)의 도면을 제시한다. 예시적인 시스템(218)은 예를 들어, 한 세트의 상호동작 구성요소로 구현될 수 있고, 각각의 상호동작 구성요소는, 컴퓨터의 프로세서에 의해 실행될 때, 여기서 제시되는 기술에 따라 컴퓨터로 하여금 용량을 할당하게 하는 컴퓨터의 메모리 구성요소에 저장되는 한 세트의 명령어를 포함한다. 예시적인 시스템(218)은, 레이아웃 플랜을 명시하는 슬랩 할당 요청을 수신하면, 슬랩 할당 요청 및 레이아웃 플랜을 함께 충족시키는 스토리지 장치(108)에 대한 익스텐트를 할당하도록 구성되는 레이아웃 구성요소(220)를 포함한다. 레이아웃 구성요소(220)는, 슬랩 액세스를 위한 레이아웃 액세스 요청을 수신하면, 레이아웃 플랜에 따라 슬랩의 익스텐트에 액세스하도록 또한 구성된다. 예시적인 시스템(218)은 프로비저닝 구성요소(222)를 또한 포함하며, 상기 프로비저닝 구성요소는, 논리 디스크용 용량 할당을 위한 용향 요청을 수신하면, 레이아웃 플랜을 명시하는 적어도 하나의 슬랩 할당 요청을 발생시키도록 구성되고, 그리고, 각자의 논리 디스크를 슬랩의 시퀀스로 제시하도록 구성된다. 프로비저닝 구성요소(222)는, 논리 디스크의 일 위치에 액세스하기 위한 액세스 요청을 수신하면, 액세스 위치를 포함하는 적어도 하나의 슬랩을 식별하도록 또한 구성되고, 액세스 요청에 따라 슬랩에 액세스하기 위한 레이아웃 액세스 요청을 발생시키도록 또한 구성된다. 이러한 방식으로, 예시적인 시스템(218)은 여기서 제시되는 기술에 따라 스토리지 장치 세트의 스토리지 장치(108)에 대한 용량을 할당한다.
도 3은 적어도 하나의 스토리지 장치(108)를 포함하는 스토리지 장치 세트 상에서 논리 디스크에 대한 용량을 할당하는 예시적 방법(300)으로 도시되는, 여기서 제시되는 기술의 제 2 실시예를 제시한다. 예시적 방법(300)은 예를 들어, 컴퓨터의 메모리 구성요소(예를 들어, 메모리 회로, 하드 디스크 드라이브의 플래터(platter), 고상 메모리 구성요소, 또는, 자기 또는 광학 디스크)에 저장되는 한 세트의 명령어로 구현될 수 있고, 이는 컴퓨터의 프로세서에 의해 실행될 때, 여기서 제시되는 기술을 컴퓨터로 하여금 실행하게 한다. 예시적인 방법(300)은 단계(302)에서 시작되고, 프로세서 상에서 명령어를 실행하는 단계(304)를 수반한다. 구체적으로, 논리 디스크에 대한 용량 할당을 위한 할당 요청을 수신하면(306), 명령어는 레이아웃 플랜을 명시하는, 그리고, 할당 요청의 용량을 함께 충족시키는, 적어도 하나의 슬랩을 발생시키도록 구성되고(308), 각자의 슬랩에 대하여, 레이아웃 플랜을 함께 충족시키는 스토리지 장치 상의 익스텐트를 할당하도록 구성된다(310). 명령어는 또한, 논리 디스크의 적어도 하나의 위치에 액세스하기 위한 액세스 요청을 수신하면(312), 레이아웃 액세스 요청의 각자의 위치를 포함하는 적어도 하나의 슬랩을 식별하도록 구성되고(314), 각자의 슬랩(316)에 대하여, 슬랩의 레이아웃 플랜을 식별하도록 구성되며(318), 레이아웃 플랜에 따라 슬랩의 익스텐트에 액세스하도록 구성된다(320). 여기서 제시되는 기술에 따라 스토리지 장치 상의 용량 할당을 실현하면, 예시적 방법(300)이 단계(322)에서 종료된다.
또 다른 실시예는 여기서 제시되는 기술을 적용하도록 구성되는 프로세서-실행가능 명령어를 포함하는 컴퓨터-판독가능 매체를 수반한다. 이러한 컴퓨터-판독가능 매체는, 장치의 프로세서에 의해 실행될 때, 여기서 제시되는 기술을 장치로 하여금 구현하게 하는 한 세트의 컴퓨터-판독가능 명령어를 인코딩하는, 메모리 반도체(예를 들어, 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 및/또는 동기식 동적 랜덤 액세스 메모리(SDRAM) 기술), 하드 디스크 드라이브의 플래터, 플래시 메모리 장치, 또는 자기 또는 광학 디스크(예를 들어, CD-R, DVD-R, 또는 플라피 디스크)와 같은 유형의 장치를 수반하는, 예를 들어, 컴퓨터-판독가능 저장 매체를 포함할 수 있다. 이러한 컴퓨터-판독가능 매체는 다양한 유선 시나리오(예를 들어, 이더넷 또는 광섬유 케이블을 통해) 및/또는 무선 시나리오(예를 들어, 와이파이와 같은 무선 근거리 네트워크(WLAN), 블루투스와 같은 개인 영역 네트워크(PAN), 또는 셀룰러 또는 라디오 네트워크)를 이용하여 다양한 물리적 현상을 통해 전파될 수 있는 신호와 같은 다양한 타입의 통신 매체를 (컴퓨터-판독가능 저장 매체로부터 구분되는 기술들의 클래스로) 또한 포함할 수 있고, 상기 신호와 같은 다양한 타입의 통신 매체는, 장치의 프로세서에 의해 실행될 때, 여기서 제시되는 기술을 장치로 하여금 구현하게 하는 컴퓨터-판독가능 명령어를 인코딩한다.
이러한 방식으로 고안될 수 있는 예시적인 컴퓨터-판독가능 매체가 도 4에 예시되며, 구현예(400)는 컴퓨터-판독가능 데이터(404)를 인코딩한 컴퓨터-판독가능 매체(402)(예를 들어, CD-R, DVD-R, 또는 하드 디스크 드라이브의 플래터)를 포함한다. 이러한 컴퓨터-판독가능 데이터(404)는, 컴퓨터(410)의 프로세서(412) 상에서 실행될 때, 여기서 제시되는 원리에 따라 컴퓨터(410)로 하여금 스토리지 장치(108) 상에 스토리지를 할당할 수 있게 하는 한 세트의 컴퓨터 명령어(406)를 또한 포함한다. 이러한 일 실시예에서, 프로세서-실행가능 명령어(406)는 도 3의 예시적 방법(300)과 같이, 스토리지 장치 세트의 스토리지 장치 상의 논리 디스크용 스토리지를 할당하는 방법을 수행하도록 구성될 수 있다. 이러한 컴퓨터-판독가능 매체의 일부 실시예는 이러한 방식으로 구성되는 프로세서-실행가능 명령어를 저장하도록 구성되는 비-일시적 컴퓨터-판독가능 저장 매체(예를 들어, 하드 디스크 드라이브, 광학 디스크, 또는 플래시 메모리 장치)를 포함할 수 있다. 이러한 많은 컴퓨터-판독가능 매체는 여기서 제시되는 기술에 따라 동작하도록 구성되도록, 당업자에 의해 고안될 수 있다.
D. 변형예
여기서 논의되는 기술은 여러 형태의 변형예로 고안될 수 있고, 일부 변형예는 이 기술 및 기타 기술의 다른 변형예에 대해 추가적인 장점을 제시하고 및/또는 단점을 감소시킬 수 있다. 더욱이, 일부 변형예는 조합하여 구현될 수 있고, 일부 조합은 시너지적 협력을 통해 추가적인 장점 및/또는 감소된 단점을 특징으로 할 수 있다. 변형예는 다양한 실시예에서 통합되어 이러한 실시예에 대한 개별적 및/또는 시너지적 장점을 논의한다.
D1 . 시나리오
이러한 기술들의 실시예 사이에서 변할 수 있는 제 1 형태는, 이러한 기술들을 이용할 수 있는 시나리오에 관련된다. 이러한 제 1 형태의 제 1 변형예로서, 이러한 기술들은, 하드 디스크 드라이브, 고상 스토리지 장치, 비휘발성 메모리 회로, 테이프-기반 스토리지 장치, 및 자기 및 광학 디스크를 포함한, 많은 타입의 스토리지 장치와 함께 사용될 수 있다. 이러한 스토리지 장치는 이러한 기술들을 구현하는 (컴퓨터와 같은) 장치에 직접 연결될 수도 있고, 유선 또는 무선 근거리 네트워크를 통해(예를 들어, 802.11 와이파이 네트워크 또는 ad-hoc 연결, 또는 적외선 연결) 액세스가능할 수도 있으며, 및/또는 유선 또는 무선 광역 네트워크를 통해(예를 들어, 셀룰러 네트워크 또는 인터넷) 액세스가능할 수도 있다. 더욱이, 이러한 기술들은 독립적으로 동작하는(예를 들어, 소프트웨어 프로세스를 통해 독립적으로 액세스되는 스토리지 장치), 또는, 느슨한 상호동작으로 동작하는(예를 들어, 독립적으로 동작하지만 스토리지 세트를 공유하는 다른 스토리지 장치와 통신할 수 있는 스토리지 장치), 또는, 강한 상호동작으로 동작하는(예를 들어, 스토리지 시스템의 구성요소로 여러 개의 스토리지 장치를 관리하는 RAID(Redundant Array of Inexpensive Disks) 컨트롤러), 2개 이상의 스토리지 장치와 함께 이용될 수 있다.
이러한 제 1 형태의 제 2 변형예로서, 이러한 기술들은 다양한 타입의 이진 객체를 저장하는 이전 스토리지 시스템, 파일을 저장하는 파일 시스템, 매체 객체를 저장하는 매체 라이브러리, 많은 타입의 객체를 저장하는 객체 시스템, 레코드를 저장하는 데이터베이스, 및 이메일 메시지를 저장하는 이메일 시스템을 포함한, 다양한 타입의 데이터 세트를 포함하는 많은 타입의 스토리지 세트와 연계하여 사용될 수 있다.
이러한 제 1 형태의 제 3 변형예로서, 이러한 기술들 모두 또는 일부분이, 예를 들어, 스토리지 장치(예를 들어, RAID 컨트롤러)와, 또는, 스토리지 세트 내 각자의 스토리지 장치 내에서, 인터페이싱하도록 구성되는 스토리지 시스템에 의해, (예를 들어, 운영 체제 프로세스 또는 하드웨어 드라이버와 같은) 스토리지 장치에 액세스하는 컴퓨터 또는 장치의 휘발성 또는 비휘발성으로 저장되는 한 세트의 소프트웨어 명령어와 같이, 컴퓨팅 환경 내의 하나 이상의 구성요소 내에서 구현될 수 있다.
이러한 제 1 형태의 제 4 변형예로서, 여기서 제시되는 기술에 의해 발생 및 사용되는 휘발성 메모리 표현은 많은 구조를 제시할 수 있다. 이러한 일례로서, 도 2의 예시적 시나리오(200)에 묘사되는 바와 같이, 휘발성 메모리 표현은 슬랩의 시퀀스로 각자 표현되는 논리 디스크를 포함하는 논리 디스크 세트와, 익스텐트의 컬렉션으로 각각 표현되는 슬랩 세트와, 스토리지 장치, 물리적 어드레스, 및 익스텐트 길이로 각각 표현되는 익스텐트를 포함하는 익스텐트 세트와 같이, 한 세트의 상호관련된(interrelated) 레코드 또는 객체로 구조화될 수 있다. 더욱이, 이러한 상호관련된 레코드 또는 객체의 컬렉션이, 예를 들어, 논리 디스크를 나타내는 제 1 계층 레벨과, 슬랩을 나타내는 제 2 계층 레벨과, 익스텐트를 나타내는 제 3 계층 레벨을 포함하는 계층 구조와 같은, 특정 조직을 나타낼 수 있다. 스토리지 장치 세트에 의해 나타나는 논리 디스크 내의 위치는 따라서, 논리 디스크의 위치를 포함하는 식별을 먼저 식별함으로써, 그리고 그 후 이 위치를 포함하는 슬랩 내 적어도 하나의 익스텐트를 식별함으로써 위치 파악될 수 있다.
이러한 제 1 형태의 제 5 변형예로서, 여기서 제시되는 기술을 통해 스토리지 장치 세트에 액세스함으로써, 스토리지 장치 세트에서 특정 타입의 유연성이 가능해진다. 제 1 예로서, 제 1 슬랩은 제 1 레이아웃 플랜을 명시하는 논리 디스크용으로 할당될 수 있고, 제 2 슬랩은 제 1 레이아웃 플랜과는 다른 제 2 레이아웃 플랜을 명시하는 논리 디스크용으로 할당될 수 있다. 제 2 예로서, 적어도 하나의 용량 요청이 슬랩 이용을 명시하는 애플리케이션으로부터 수신되고, 프로비저닝 구성요소는 슬랩의 슬랩 이용에 따라 레이아웃 플랜을 선택하도록 구성된다. 특히, 제 1 슬랩은 제 1 슬랩 용량을 갖는 논리 디스크용으로 할당되고, 제 2 슬랩은 제 1 슬랩 용량과는 다른 제 2 슬랩 용량을 갖는 논리 디스크용으로 할당된다.
이러한 제 1 형태의 제 6 변형예에서, 많은 타입의 레이아웃 플랜이 스토리지 세트에 의해 표현될 수 있다. 예시적인 레이아웃 플랜 세트는 예를 들어, 하나의 스토리지 장치 상의 익스텐트 할당을 명시하는 모놀리식 레이아웃 플랜과, 슬랩 할당 요청의 용량을 함께 제공하는 적어도 2개의 스토리지 장치 상의 익스텐트 할당을 명시하는 스트라이핑 레이아웃 플랜과, 슬랩 할당 요청의 용량을 각자 제공하는, 그리고 미러링되는, 익스텐트의 할당을 명시하는 미러링 레이아웃 플랜과, 슬랩 할당 요청의 용량을 함께 제공하는 적어도 하나의 스토리지 장치 상의 적어도 하나의 데이터 익스텐트, 및 데이터 익스텐트에 대한 확인자(verifier)를 저장하는 적어도 하나의 다른 스토리지 장치 상의 적어도 하나의 확인자 익스텐트의 할당을 명시하는 확인(verifying) 레이아웃 플랜을 포함할 수 있다. 당업자는 여기서 제시되는 기술의 시나리오, 조직, 및 이용에서의 많은 변형예를 고안할 수 있다.
D2 . 프로비저닝 플랜 및 레이아웃 플랜
이러한 기술들의 실시예 간에 변할 수 있는 제 2 형태는, 여기서 표현되는 스토리지 장치 세트에 대한 각자의 프로비저닝 플랜 및 레이아웃 플랜의 표현 및 실시에 관한 것이다. 이러한 제 2 형태의 제 1 예로서, 각자의 논리 디스크는 프로비저닝 플랜을 구현할 수 있고, 스토리지 장치에 대한 익스텐트 할당은 논리 디스크에 대한 용량 할당을 위한 할당 요청을 수신하면, 논리 디스크의 프로비저닝 플랜에 따라 익스텐트를 할당함으로써 실현될 수 있으며, 논리 디스크의 슬랩 액세스는 논리 디스크의 프로비저닝 플랜에 따라 슬랩의 익스텐트에 액세스하는 단계를 포함할 수 있다. 프로비저닝 플랜은 액세스 요청에 응답하여 슬랩에 액세스하면서, 논리 디스크에 대한 슬랩 할당을 명시하는 지연 프로비저닝 플랜과, 논리 디스크의 용량을 충족시키는 슬랩의 즉각적 할당을 명시하는 고정 프로비저닝 플랜을 포함한, 예시적인 프로비저닝 플랜 세트로부터 선택될 수 있다. 특히, 지연 프로비저닝 플랜은 논리 디스크의 위치를 명시하는 액세스 요청을 수신하면, 액세스 요청의 위치와 연관된 슬랩을 식별하는 단계와, 액세스 요청에 따라 슬랩에 액세스하는 단계를 수반할 수 있고, 액세스 요청의 위치와 연관된 슬랩의 식별에 실패하면, 논리 디스크에 대한 슬랩을 할당하는 단계와, 액세스 요청에 의해 명시된 논리 디스크의 위치와 슬랩을 연관시키는 단계를 포함할 수 있다. 슬랩을 할당하면, 실시예는 익스텐트의 콘텐츠를 디폴트 값으로 초기화할 수 있고, 따라서, 익스텐트의 저장된 콘첸츠를 직접 참조함으로써 모든 기록 요청을 충족시킬 수 있다. 대안으로서, 실시예는 슬랩의 익스텐트의 초기화를 지연시킬 수 있고, 판독 요청의 위치와 연관된 슬랩이 식별될 수 없는 경우(예를 들어, 기록이 앞서 수행되지 않았기 때문에 슬랩이 해당 위치에 구속되지 않는 경우)에 해당하는 판독 요청을 수신할 때, 이러한 실시예의 기술은 판독 요청에 응답하여 디폴트 값(예를 들어, 0)을 되보낼 수 있다. 추가적으로, 지연 프로비저닝은 씬 프로비저닝을 특징으로 하는 스토리지 시나리오를 가능하게 할 수 있고, 이 경우, 슬랩의 프로비저닝된 크기는 스토리지 장치 세트의 가용 용량을 넘는다. 예를 들어, 스토리지 장치 세트는 스토리지 장치 세트의 가용 용량을 넘어서는 프로비저닝된 용량을 갖는 논리 디스크를 포함할 수 있다. 씬 프로비저닝의 다른 예로서, 각자의 논리 디스크는 스토리지 장치 세트의 가용 용량 내 프로비저닝된 용량을 갖지만, 논리 디스크의 프로비저닝된 총 용량은 스토리지 장치 세트의 가용 용량을 넘는다.
이러한 제 2 형태의 제 2 예로서, 각자의 슬랩 및/또는 익스텐트의 크기가, 서로 다른 범주에서 서로 다르게 선택될 수 있다. 이러한 제 1 예로서, 슬랩은 액세스 요청을 충족시키는 소용량으로 할당될 수 있다. 소형 크기의 슬랩 할당은 유리할 수 있다 - 예를 들어, 수리되어야할 슬랩의 용량을 제한함으로써 수리 프로세스를 촉진시킴에 있어 유리할 수 있다. 대안으로서, 고정 프로비저닝 플랜에 따라 특정 스토리지 장치에 대해 할당된 슬랩의 경우에, 슬랩 크기는, 예를 들어, 대형 크기의 슬랩을 감소된 숫자로 할당함으로써, 최대화될 수 있다. 이러한 변형예는 스토리지 장치 세트의 비휘발성 표현에서 표현되는 레코드의 수를 감소시킬 수 있고, 따라서, 비휘발성 메모리 표현을 통해 스토리지 장치 세트에 대한 액세스의 성능을 개선시킬 수 있다. 추가적으로, 수리 동작 중 슬랩 및 익스텐트의 할당은, 다양한 팩터에 비추어 선택될 수 있다. 첫번째 예로서, 레이아웃 구성요소는 고장난 스토리지 장치의 고장 검출시, 고장난 스토리지 장치의 각자의 익스텐트에 대하여, 익스텐트를 포함하는 슬랩을 식별하도록 구성되고, 슬랩에 대한 대체 익스텐트를 할당하도록 구성되며, 적어도 하나의 대체 익스텐트를 포함하는 그리고 회복성 레이아웃 플랜을 갖는, 각자의 슬랩의 경우, 대체 익스텐트를 포함하는 슬랩의 수리를 개시하도록 구성된다. 따라서, 레이아웃 구성요소는 구현되는 레이아웃 플랜에 기초하여 익스텐트의 수리 동작을 자동적으로 개시할 수 있다. 두번째 예로서, 스토리지 장치 세트가 적어도 3개의 스토리지 장치를 포함하는 경우에, 대체 익스텐트의 할당은 스토리지 장치 세트의 다른 스토리지 장치 중에서 고장난 스토리지 장치로부터 할당되는 대체 익스텐트를 분포시키는 것일 수 있다. 이는 많은 익스텐트의 할당과 함께 많은 용량을 갖는 스토리지 장치의 오버로드를 감소시킬 수 있다. 이러한 많은 스토리지 시나리오는 여기서 제시되는 기술에 따라 스토리지 장치(102)의 조직을 통해 실현될 수 있다.
E. 컴퓨팅 환경
도 5 및 다음의 설명은 여기서 제시되는 프로비전 중 하나 이상에 대한 실시예를 구현하기에 적절한 컴퓨팅 환경의 간단하고 개략적인 설명을 제공한다. 도 5의 동작 환경은 적절한 동작 환경의 한 예일 뿐이고, 동작 환경의 용도 또는 기능 범위에 대해 어떤 제한을 두고자 함이 아니다. 일례의 컴퓨팅 장치는, 개인용 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩탑 장치, 모바일 장치(예를 들어, 이동 전화, 개인용 디지털 보조기기(PDA), 미디어 플레이어, 등), 멀티프로세서 시스템, 소비자 전자 장치, 미니 컴퓨터, 메인프레임 컴퓨터, 위 시스템 또는 장치들 중 임의의 것을 포함하는 분산형 컴퓨팅 환경, 등을 포함하지만, 이에 제한되지 않는다.
도 5는 여기서 제공되는 하나 이상의 실시예를 구현하도록 구성되는 컴퓨팅 장치(502)를 포함하는 시스템(500)의 일례를 도시한다. 일 구성에서, 컴퓨팅 장치(502)는 적어도 하나의 프로세싱 유닛(506) 및 메모리(508)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 타입에 따라, 메모리(508)가 휘발성(예를 들어, RAM), 비휘발성(예를 들어, ROM, 플래시 메모리, 등), 또는 이들의 소정의 조합일 수 있다. 이 구성은 도 5에서 점선(504)으로 도시된다.
다른 실시예에서, 장치(502)는 추가적인 특징 및/또는 기능을 포함할 수 있다. 예를 들어, 장치(502)는 자기 스토리지, 광학 스토리지, 등을 포함하는, 그러나 이에 제한되지 않는, 추가적인 스토리지(예를 들어, 제거가능형 및/또는 제거불가형)를 또한 포함할 수 있다. 이러한 추가 스토리지는 도 5에서 스토리지(510)로 도시된다. 일 실시예에서, 여기서 제공되는 하나 이상의 실시예를 구현하기 위한 컴퓨터 판독가능 명령어가 스토리지(510) 내에 존재할 수 있다. 스토리지(510)는 운영 체제, 응용프로그램, 등을 구현하기 위해 다른 컴퓨터 판독가능 명령어를 또한 저장할 수 있다. 컴퓨터 판독가능 명령어는 예를 들어, 프로세싱 유닛(506)에 의한 실행을 위해 메모리(508)에 로딩될 수 있다.
여기서 사용되는 용어 "컴퓨터 판독가능 매체"는 컴퓨터 스토리지 매체를 포함한다. 컴퓨터 스토리지 매체는 컴퓨터 판독가능 명령어 또는 다른 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성의, 제거가능형 및 제거불가형의, 매체를 포함한다. 메모리(508) 및 스토리지(510)는 컴퓨터 저장 매체의 예다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리, 또는 다른 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD), 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 또는 다른 자기 스토리지 장치, 또는 장치(502)에 의해 액세스될 수 있는 그리고 요망 정보의 저장에 사용될 수 있는 그외 다른 매체를 포함하지만, 이에 제한되지 않는다. 임의의 이러한 컴퓨터 저장 매체가 장치(520)의 일부분일 수 있다.
장치(502)는 장치(502)를 타 장치와 통신하게 하는 통신 연결(516)을 또한 포함할 수 있다. 통신 연결(516)은 모뎀, 네트워크 인터페이스 카드(NIC), 일체형 네트워크 인터페이스, RF 송신기/수신기, 적외선 포트, USB 연결, 또는, 컴퓨팅 장치(502)를 타 컴퓨팅 장치에 연결하기 위한 다른 인터페이스를 포함할 수 있지만, 이에 제한되지 않는다. 통신 연결(516)은 유선 연결 또는 무선 연결을 포함할 수 있다. 통신 연결(516)은 통신 매체를 송신 및/또는 수신할 수 있다.
"컴퓨터 판독가능 매체"라는 용어는 통신 매체를 포함할 수 있다. 통신 매체는 통상적으로, 반송파 또는 다른 전송 메커니즘과 같은 "변조 데이터 신호"에 컴퓨터 판독가능 명령어 또는 다른 데이터를 담으며, 임의의 정보 전달 매체를 포함한다. "변조 데이터 신호"라는 용어는 신호 내 정보를 인코딩하는 방식으로 설정 또는 변화되는 특성 중 하나 이상을 갖는 신호를 포함할 수 있다.
장치(502)는 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 적외선 카메라, 비디오 입력 장치, 및/또는 그외 다른 입력 장치와 같은 입력 장치(514)를 포함할 수 있다. 하나 이상의 디스플레이, 스피커, 프린터, 및/또는 그외 다른 출력 장치와 같은 출력 장치(512)가, 장치(502)에 또한 포함될 수 있다. 입력 장치(514) 및 출력 장치(512)는 유선 연결, 무선 연결, 또는 이들의 조합을 통해 장치(502)에 연결될 수 있다. 일 실시예에서, 다른 컴퓨팅 장치로부터의 입력 장치 또는 출력 장치가 컴퓨팅 장치(502)에 대한 입력 장치(514) 또는 출력 장치(512)로 사용될 수 있다.
컴퓨팅 장치(502)의 구성요소는 버스와 같은 다양한 인터커넥트에 의해 연결될 수 있다. 이러한 인터커넥트는 PCI 익스프레스와 같은 주변 컴포넌트 인터커넥트(PCI), 범용 시리얼 버스(USB), 파이어와이어(IEEE 1394), 광학 버스 구조, 등을 포함할 수 있다. 다른 실시예에서, 컴퓨팅 장치(502)의 구성요소는 네트워크에 의해 상호연결될 수 있다. 예를 들어, 메모리(508)는 네트워크에 의해 상호연결되는 서로 다른 물리적 위치에 위치한 복수의 물리적 메모리 유닛으로 구성될 수 있다.
당업자는 컴퓨터 판독가능 명령어의 저장에 이용되는 스토리지 장치가 네트워크 간에 분산될 수 있음을 이해할 것이다. 예를 들어, 네트워크(518)를 통해 액세스가능한 컴퓨팅 장치(520)는 여기서 제공되는 하나 이상의 실시예를 구현하기 위한 컴퓨터 판독가능 명령어를 저장할 수 있다. 컴퓨팅 장치(502)는 컴퓨팅 장치(520)에 액세스할 수 있고, 실행을 위해 컴퓨터 판독가능 명령어의 전부 또는 일부를 다운로드할 수 있다. 대안으로서, 컴퓨팅 장치(502)는 컴퓨터 판독가능 명령어의 조각들을 필요한 만큼 다운로드할 수 있고, 또는 일부 명령어가 컴퓨팅 장치(502)에서 실행되고 일부 명령어는 컴퓨팅 장치(520)에서 실행될 수 있다.
F. 용어 사용
본 출원에서 사용되는 "구성요소", "모듈", "시스템", "인터페이스", 등의 용어는 일반적으로 컴퓨터-관련 실체, 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어를 나타내는 것을 의도한다. 예를 들어, 구성요소는 프로세서 상에서 구동되는 프로세스, 프로세서, 객체, 또는 실행 변수, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이에 제한되지 않는다. 예를 들자면, 컨트롤러 상에서 구동되는 애플리케이션은 물론 컨트롤러도 구성요소일 수 있다. 하나 이상의 구성요소가 프로세스 내에서 및/또는 실행 스레드 내에서 위치할 수 있고, 하나의 구성요소가 하나의 컴퓨터 상에 국부화될 수도 있고, 및/또는, 2개 이상의 컴퓨터 사이에 분산될 수도 있다.
더욱이, 청구되는 대상은 개시되는 대상의 구현을 위해 컴퓨터를 제어하기 위해 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합을 생성하기 위해 표준 프로그램 및/또는 엔지니어링 기술을 이용하여 방법, 장치, 또는 제조 품목으로 구현될 수 있다. 여기서 사용되는 "제조 품목"이라는 용어는 컴퓨터-판독가능 장치, 반송파, 또는 매체로부터 액세스가능한 컴퓨터 프로그램을 포괄하는 것을 의도한다. 물론, 당업자는 청구되는 대상의 사상 또는 범위로부터 벗어나지 않으면서 이러한 구성에 대해 많은 변형이 이루어질 수 있음을 인지할 것이다.
실시예의 다양한 동작이 여기서 제공된다. 일 실시예에서, 설명되는 동작들 중 하나 이상이 하나 이상의 컴퓨터 판독가능 매체 상에 저장되는 컴퓨터 판독가능 명령어를 구성할 수 있고, 이는 컴퓨팅 장치에 의해 실행될 때, 설명되는 동작을 컴퓨팅 장치로 하여금 수행하게 할 것이다. 동작들 전부 또는 일부가 설명되는 순서는, 이러한 동작들이 반드시 순서 의존적인 것임을 의미하는 것으로 간주되어서는 안된다. 이러한 설명의 이점을 갖는 대안의 순서배열이 당업자에 의해 이해될 것이다. 더욱이, 여기서 제공되는 각각의 실시예에 모든 동작들이 반드시 존재하는 것은 아니다.
더욱이, "예시적인"이라는 용어는 일례로서, 사례로서, 또는 예시로서, 기능함을 의미하기 위해 여기서 사용된다. "예시적인"으로 여기서 설명되는 임의의 형태 또는 설계는 다른 형태 또는 설계에 비해 유리하다고 반드시 단정지어서는 안된다. 대신에, 예시적인이라는 단어의 사용은 구체적인 방식으로 개념을 제시하고자 하는 것이다. 본 출원에 사용되는 "또는"이라는 용어는 배타적 "또는"보다는 포괄적 "또는"을 의미하는 것을 의도한다. 즉, 달리 명시하지 않을 경우, 또는, 문맥으로부터 명백하지 않을 경우, "X가 A 또는 B를 이용한다"는 자연 포괄적 순열 중 임의의 것을 의미하고자 하는 것이다. 즉, X가 A를 이용하거나, X가 B를 이용하거나, X가 A 및 B를 이용하는 경우에, "X는 A 또는 B를 이용한다"가 위 사례 중 어느 경우에나 만족된다. 추가적으로, 본 출원 및 첨부 청구범위에 사용되는 "일" 및 "하나의"는 단수 형태를 지향한다고 달리 명시되지 않거나 문맥으로부터 명백하지 않을 경우, 일반적으로 "하나 이상"을 의미한다고 간주될 수 있다.
또한, 명세서가 하나 이상의 구현예와 관련하여 설명 및 도시되었으나, 본 명세서 및 첨부 도면을 읽고 이해하면 동 기술 분야의 다른 사람들에게 동등한 변형 및 변경이 나타날 것이다. 개시문은 이러한 변경 및 변형을 모두 포함하며, 다음의 청구범위에 의해서만 범위가 제한된다. 위 설명한 구성요소(예를 들어, 요소, 리소스, 등)에 의해 수행되는 다양한 기능과 특히 관련하여, 이러한 구성요소를 설명하는데 사용되는 용어는, 여기서 제시되는 개시문의 예시적인 구현예에서 기능을 수행하는 개시 구조물과 구조적으로 동등하지 않더라도, 달리 표시하지 않을 경우, 설명되는 구성요소의 명시된 기능을 수행하는(예를 들어, 기능적으로 동등한) 임의의 구성요소에 대응하는 것을 의도한다. 추가적으로, 개시문의 특별한 특징이 여러 구현예 중 하나에 대해서만 개시되었을 수 있으나, 이러한 특징은 주어진 임의의 응용예 또는 특정 응용예에 대해 바람직하고 유리해질 수 있는 기타 구현예의 하나 이상의 다른 특징과 조합될 수 있다. 더욱이, "포함한다", "갖는", "가진", "구비하는"과 같은 용어, 또는 이들의 변형이 상세한 설명 또는 청구범위에 사용되는 한, 이러한 용어는 "포함하는"과 유사한 방식으로 포괄적인 의미로 간주된다.

Claims (20)

  1. 프로세서를 갖는 장치상에서, 적어도 하나의 스토리지 장치를 포함하는 스토리지 장치 세트 상에 논리 디스크의 용량(capacity for logical disks)을 할당하는 방법으로서,
    상기 방법은 상기 프로세서 상에서 명령어를 실행하는 단계를 포함하고,
    상기 명령어는,
    논리 디스크의 용량을 할당하기 위한 할당 요청을 수신하면,
    적어도 하나의 슬랩(slab)을 생성하고- 상기 적어도 하나의 슬랩은 레이아웃 플랜(layout plan)을 명시하고 또한 함께 상기 할당 요청의 용량을 만족시킴 -,
    각 슬랩에 대하여, 상기 레이아웃 플랜을 함께 만족시키는 익스텐트들(extents)을 상기 스토리지 장치 상에 할당하며,
    논리 디스크의 적어도 하나의 위치에 액세스하기 위한 액세스 요청을 수신하면,
    레이아웃 액세스 요청의 각 위치를 포함하는 적어도 하나의 슬랩을 식별하고,
    각 슬랩에 대하여, 상기 슬랩의 레이아웃 플랜을 식별하고 상기 레이아웃 플랜에 따라 상기 슬랩의 익스텐트에 액세스하도록 구성되고, 대형 크기의 슬랩을 감소된 숫자로 할당함으로써 슬랩의 크기를 최대화하는
    논리 디스크의 용량 할당 방법.
  2. 제 1 항에 있어서,
    스토리지 장치 세트 표현으로 표현되는 상기 스토리지 장치 세트는,
    각각이 슬랩들의 시퀀스로 표현되는 논리 디스크들을 포함하는 논리 디스크 세트와,
    각각이 익스텐트들의 컬렉션으로 표현되는 슬랩들을 포함하는 슬랩 세트와,
    각각이 스토리지 장치, 물리적 어드레스, 및 익스텐트 길이로 표현되는 익스텐트들을 포함하는 익스텐트 세트를 포함하는
    논리 디스크의 용량 할당 방법.
  3. 제 2 항에 있어서,
    계층적 구조를 갖는 상기 스토리지 장치 세트 표현은
    상기 논리 디스크를 표현하는 제1 계층 레벨,
    상기 슬랩을 표현하는 제2 계층 레벨, 및
    상기 익스텐트를 표현하는 제3 계층 레벨을 포함하고,
    논리 디스크 내의 위치를 식별하는 단계는
    상기 논리 디스크의 위치를 포함하는 슬랩을 식별하는 단계, 및
    상기 위치를 포함하는 상기 슬랩 내의 적어도 하나의 익스텐트를 식별하는 단계를 포함하는
    논리 디스크의 용량 할당 방법.
  4. 제 1 항에 있어서,
    논리 디스크에 대해 할당된 제1 슬랩은 제1 레이아웃 플랜을 명시하고,
    상기 논리 디스크에 대해 할당된 제2 슬랩은 상기 제1 레이아웃 플랜과는 다른 제2 레이아웃 플랜을 명시하는
    논리 디스크의 용량 할당 방법.
  5. 제 4 항에 있어서,
    애플리케이션으로부터 수신된 적어도 하나의 용량 요청은 슬랩 사용(slab usage)을 명시하고,
    상기 슬랩의 상기 슬랩 사용에 따라 레이아웃 플랜을 선택하기 위한 프로비저닝 컴포넌트(provisioning component)가 구성되는
    논리 디스크의 용량 할당 방법.
  6. 제 1 항에 있어서,
    논리 디스크에 대해 할당된 제1 슬랩은 제 1 슬랩 용량을 갖고,
    상기 논리 디스크에 대해 할당된 제2 슬랩은 상기 제 1 슬랩 용량과는 다른 제 2 슬랩 용량을 갖는
    논리 디스크의 용량 할당 방법.
  7. 제 1 항에 있어서,
    상기 명령어는 익스텐트를 할당하는 경우, 상기 익스텐트를 디폴트 값으로 초기화하도록 구성된
    논리 디스크의 용량 할당 방법.
  8. 제 1 항에 있어서,
    각 논리 디스크는 프로비저닝 플랜을 가지며,
    상기 스토리지 장치 상에 상기 익스텐트를 할당하는 것은, 논리 디스크의 용량 할당을 위한 할당 요청을 수신하면, 상기 논리 디스크의 프로비저닝 플랜에 따라 익스텐트를 할당하는 것을 포함하고,
    논리 디스크의 상기 슬랩에 액세스하는 것은 상기 논리 디스크의 프로비저닝 플랜에 따라 상기 슬랩의 익스텐트에 액세스하는 것을 포함하는
    논리 디스크의 용량 할당 방법.
  9. 제 8 항에 있어서,
    프로비저닝 플랜 세트에 따라 선택되는 상기 프로비저닝 플랜은,
    상기 논리 디스크의 용량을 만족시키는 슬랩의 즉시적(prompt) 할당을 명시하는 고정 프로비저닝 플랜과,
    액세스 요청에 응답하여 상기 슬랩에 액세스하면서 논리 디스크에 대한 슬랩 할당을 명시하는 지연 프로비저닝 플랜을 포함하는
    논리 디스크의 용량 할당 방법.
  10. 제 9 항에 있어서,
    지연 프로비저닝 플랜에 따라 논리 디스크에 대한 슬랩에 액세스하는 것은,
    상기 논리 디스크의 위치를 명시하는 액세스 요청을 수신한 경우에,
    상기 액세스 요청의 위치와 연관된 슬랩을 식별하는 것과,
    상기 슬랩이 식별되면, 상기 액세스 요청에 따라 상기 슬랩에 액세스하는 것과,
    상기 액세스 요청의 위치와 연관된 슬랩의 식별에 실패하는 경우에,
    상기 논리 디스크에 대한 슬랩을 할당하는 것과,
    상기 액세스 요청에 의해 명시된 상기 논리 디스크의 위치와 상기 슬랩을 연관시키는 것을 포함하는
    논리 디스크의 용량 할당 방법.
  11. 제 10 항에 있어서,
    상기 액세스 요청은 상기 논리 디스크의 위치를 명시하는 판독 요청을 포함하고,
    상기 명령어는 상기 판독 요청의 위치와 연관된 슬랩의 식별에 실패하는 경우에, 상기 판독 요청에 응답하여 디폴트 값을 반환하도록 구성되는
    논리 디스크의 용량 할당 방법.
  12. 제 10 항에 있어서,
    상기 슬랩을 할당하는 것은 상기 액세스 요청을 만족시키는 작은 용량을 갖는 슬랩을 할당하는 것을 포함하는
    논리 디스크의 용량 할당 방법.
  13. 제 10 항에 있어서,
    상기 스토리지 장치 세트는 이용가능 용량을 포함하고,
    적어도 하나의 논리 디스크는 상기 스토리지 장치 세트의 상기 이용가능 용량을 초과하는 프로비저닝된 용량을 갖는
    논리 디스크의 용량 할당 방법.
  14. 제 10 항에 있어서,
    상기 스토리지 장치 세트는 이용가능 용량을 포함하고,
    각각의 논리 디스크는 상기 스토리지 장치 세트의 상기 이용가능 용량 내의 프로비저닝된 용량을 가지며,
    상기 논리 디스크의 프로비저닝된 전체 용량은 상기 스토리지 장치 세트의 상기 이용가능 용량을 초과하는
    논리 디스크의 용량 할당 방법.
  15. 제 10 항에 있어서,
    상기 명령어는 고정 프로비저닝 플랜에 따라 논리 디스크의 용량을 할당하기 위한 할당 요청을 수신하면, 상기 논리 디스크의 용량을 함께 만족시키는 축소된 개수의 슬랩을 할당하도록 구성된
    논리 디스크의 용량 할당 방법.
  16. 적어도 하나의 스토리지 장치를 포함하는 스토리지 장치 세트 상에 논리 디스크의 용량을 할당하는 시스템으로서,
    상기 시스템은 레이아웃 컴포넌트 및 프로비저닝 컴포넌트를 포함하고,
    상기 레이아웃 컴포넌트는,
    레이아웃 플랜을 명시하는 슬랩 할당 요청을 수신하면, 상기 슬랩 할당 요청 및 상기 레이아웃 플랜을 함께 만족시키는 익스텐트들을 상기 스토리지 장치 상에 할당하고,
    슬랩에 액세스하기 위한 레이아웃 액세스 요청을 수신하면, 상기 레이아웃 플랜에 따라 상기 슬랩의 익스텐트에 액세스하도록 구성되며,
    상기 프로비저닝 컴포넌트는,
    논리 디스크의 용량 할당을 위한 용량 요청을 수신하면, 레이아웃 플랜을 명시하는 적어도 하나의 슬랩 할당 요청을 생성하고,
    각각의 논리 디스크를 슬랩들의 시퀀스로서 제시하며,
    상기 논리 디스크의 위치에 액세스하기 위한 액세스 요청을 수신하면,
    액세스의 위치를 포함하는 적어도 하나의 슬랩을 식별하고,
    상기 액세스 요청에 따라 상기 슬랩에 액세스하기 위한 레이아웃 액세스 요청을 생성하도록 구성되고,
    대형 크기의 슬랩을 감소된 숫자로 할당함으로써 슬랩의 크기를 최대화하는
    논리 디스크의 용량 할당 시스템.
  17. 제 16 항에 있어서,
    레이아웃 플랜 세트로부터 선택되는 상기 레이아웃 플랜은,
    하나의 스토리지 장치 상에서의 익스텐트들의 할당을 명시하는 모놀리식 레이아웃 플랜과,
    상기 슬랩 할당 요청의 용량을 함께 제공하는 적어도 2개의 스토리지 장치 상에서의 익스텐트들의 할당을 명시하는 스트라이핑(striping) 레이아웃 플랜과,
    각각이 상기 슬랩 할당 요청의 용량을 제공하고 또한 미러링되는 익스텐트들의 할당을 명시하는 미러링 레이아웃 플랜과,
    확인 레이아웃 플랜(verifying layout plan)을 포함하며,
    상기 확인 레이아웃 플랜은, 상기 슬랩 할당 요청의 용량을 함께 제공하는 적어도 하나의 스토리지 장치 상에서의 적어도 하나의 데이터 익스텐트의 할당, 및 상기 데이터 익스텐트에 대한 확인자(verifier)를 저장하는 적어도 하나의 다른 스토리지 장치 상에서의 적어도 하나의 확인자 익스텐트의 할당을 명시하는
    논리 디스크의 용량 할당 시스템.
  18. 제 17 항에 있어서,
    상기 레이아웃 컴포넌트는, 고장난 스토리지 장치의 고장 검출시,
    상기 고장난 스토리지 장치의 각 익스텐트에 대하여,
    상기 익스텐트를 포함하는 슬랩을 식별하고,
    상기 슬랩에 대한 대체 익스텐트를 할당하며,
    적어도 하나의 대체 익스텐트를 포함하고 회복성(resilient) 레이아웃 플랜을 포함하는 각 슬랩에 대하여, 상기 대체 익스텐트를 포함하는 슬랩의 수리(repair)를 개시하도록 구성되는
    논리 디스크의 용량 할당 시스템.
  19. 제 18 항에 있어서,
    상기 스토리지 장치 세트는 적어도 3개의 스토리지 장치를 포함하고,
    상기 대체 익스텐트를 할당하는 것은 상기 고장된 스토리 장치로부터 할당된 상기 대체 익스텐트를 상기 스토리지 장치 세트의 다른 스토리지 장치들에 걸쳐 분배하는 것을 포함하는
    논리 디스크의 용량 할당 시스템.
  20. 명령어를 저장한 비휘발성 메모리 장치로서,
    상기 명령어는 스토리지 매니저의 프로세서 상에서 실행되는 경우, 상기 스토리지 매니저로 하여금 적어도 하나의 스토리지 장치를 포함하는 스토리지 장치 세트 상에 논리 디스크의 용량을 할당하게 하되,
    상기 용량을 할당하는 것은,
    논리 디스크의 용량을 할당하기 위한 할당 요청을 수신하면,
    적어도 하나의 슬랩을 생성하고- 상기 적어도 하나의 슬랩은 레이아웃 플랜을 명시하고 또한 함께 상기 할당 요청의 용량을 만족시킴 -,
    각 슬랩에 대하여, 상기 레이아웃 플랜을 함께 만족시키는 익스텐트들을 상기 스토리지 장치 상에 할당하고,
    논리 디스크의 적어도 하나의 위치에 액세스하기 위한 액세스 요청을 수신하면,
    레이아웃 액세스 요청의 각 위치를 포함하는 적어도 하나의 슬랩을 식별하고,
    각 슬랩에 대하여, 상기 슬랩의 레이아웃 플랜을 식별하고 상기 레이아웃 플랜에 따라 상기 슬랩의 익스텐트에 액세스함으로써 수행되고,
    대형 크기의 슬랩을 감소된 숫자로 할당함으로써 슬랩의 크기를 최대화하는
    비휘발성 메모리 장치.
KR1020147006536A 2011-09-12 2011-10-10 비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법 KR101930117B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/230,832 2011-09-12
US13/230,832 US8856440B2 (en) 2011-09-12 2011-09-12 Volatile memory representation of nonvolatile storage device set
PCT/US2011/055608 WO2013039523A1 (en) 2011-09-12 2011-10-10 Volatile memory representation of nonvolatile storage device set

Publications (2)

Publication Number Publication Date
KR20140061444A KR20140061444A (ko) 2014-05-21
KR101930117B1 true KR101930117B1 (ko) 2018-12-17

Family

ID=47644589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147006536A KR101930117B1 (ko) 2011-09-12 2011-10-10 비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법

Country Status (6)

Country Link
US (2) US8856440B2 (ko)
EP (1) EP2756401A4 (ko)
JP (1) JP5932043B2 (ko)
KR (1) KR101930117B1 (ko)
CN (1) CN102929786B (ko)
WO (1) WO2013039523A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11366725B2 (en) 2019-12-30 2022-06-21 SK Hynix Inc. Storage device and method of operating the same
US11782616B2 (en) 2021-04-06 2023-10-10 SK Hynix Inc. Storage system and method of operating the same

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856440B2 (en) * 2011-09-12 2014-10-07 Microsoft Corporation Volatile memory representation of nonvolatile storage device set
US8793466B2 (en) * 2012-04-27 2014-07-29 Netapp, Inc. Efficient data object storage and retrieval
US9141626B2 (en) * 2013-03-14 2015-09-22 Microsoft Technology Licensing, Llc Volume having tiers of different storage traits
US9823872B2 (en) * 2013-03-15 2017-11-21 Skyera, Llc Apparatus and method for translation from multi-dimensional to linear address space in storage
JP5962621B2 (ja) * 2013-09-19 2016-08-03 日本電気株式会社 ストレージ装置及びその制御方法、並びにストレージ制御プログラム
JP6260407B2 (ja) * 2014-03-28 2018-01-17 富士通株式会社 ストレージ管理装置、性能調整方法及び性能調整プログラム
CN105094685B (zh) 2014-04-29 2018-02-06 国际商业机器公司 进行存储控制的方法和设备
US9753850B1 (en) * 2014-08-15 2017-09-05 Hazelcast, Inc. On-heap huge slab allocator
CN104484130A (zh) * 2014-12-04 2015-04-01 北京同有飞骥科技股份有限公司 一种横向扩展存储系统的构建方法
US9785575B2 (en) 2014-12-30 2017-10-10 International Business Machines Corporation Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes
CN106095330B (zh) * 2016-05-30 2019-04-16 杭州宏杉科技股份有限公司 一种元数据的存储方法和装置
US10771550B2 (en) 2016-12-28 2020-09-08 Amazon Technologies, Inc. Data storage system with redundant internal networks
US10484015B2 (en) 2016-12-28 2019-11-19 Amazon Technologies, Inc. Data storage system with enforced fencing
US10514847B2 (en) 2016-12-28 2019-12-24 Amazon Technologies, Inc. Data storage system with multiple durability levels
US11301144B2 (en) 2016-12-28 2022-04-12 Amazon Technologies, Inc. Data storage system
US10509601B2 (en) * 2016-12-28 2019-12-17 Amazon Technologies, Inc. Data storage system with multi-tier control plane
US10496531B1 (en) * 2017-04-27 2019-12-03 EMC IP Holding Company LLC Optimizing virtual storage groups by determining and optimizing associations between virtual devices and physical devices
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
CN108038062B (zh) * 2017-11-27 2021-05-04 北京锦鸿希电信息技术股份有限公司 嵌入式系统的内存管理方法和装置
CN108037894B (zh) * 2017-12-05 2021-07-20 浙江大华技术股份有限公司 一种磁盘空间管理方法及装置
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US10936196B2 (en) 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US10901635B2 (en) 2018-12-04 2021-01-26 EMC IP Holding Company LLC Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns
US10931777B2 (en) 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
US11119683B2 (en) 2018-12-20 2021-09-14 EMC IP Holding Company LLC Logical compaction of a degraded chunk in a geographically diverse data storage system
US10892782B2 (en) 2018-12-21 2021-01-12 EMC IP Holding Company LLC Flexible system and method for combining erasure-coded protection sets
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10942827B2 (en) 2019-01-22 2021-03-09 EMC IP Holding Company LLC Replication of data in a geographically distributed storage environment
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US10942825B2 (en) 2019-01-29 2021-03-09 EMC IP Holding Company LLC Mitigating real node failure in a mapped redundant array of independent nodes
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
US11029865B2 (en) * 2019-04-03 2021-06-08 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes
US10944826B2 (en) 2019-04-03 2021-03-09 EMC IP Holding Company LLC Selective instantiation of a storage service for a mapped redundant array of independent nodes
US11119686B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Preservation of data during scaling of a geographically diverse data storage system
US11113146B2 (en) 2019-04-30 2021-09-07 EMC IP Holding Company LLC Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11169723B2 (en) 2019-06-28 2021-11-09 Amazon Technologies, Inc. Data storage system with metadata check-pointing
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
US11228322B2 (en) 2019-09-13 2022-01-18 EMC IP Holding Company LLC Rebalancing in a geographically diverse storage system employing erasure coding
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage environment
US11288139B2 (en) 2019-10-31 2022-03-29 EMC IP Holding Company LLC Two-step recovery employing erasure coding in a geographically diverse data storage system
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11144220B2 (en) 2019-12-24 2021-10-12 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes
US11231860B2 (en) 2020-01-17 2022-01-25 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage with high performance
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes
US11687272B2 (en) * 2021-06-25 2023-06-27 Hewlett Packard Enterprise Development Lp Method and system for dynamic topology-aware space allocation in a distributed system
US11874740B2 (en) * 2021-12-21 2024-01-16 Dell Products L.P. Techniques for avoiding and reducing data unavailability

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110060887A1 (en) * 2009-09-09 2011-03-10 Fusion-io, Inc Apparatus, system, and method for allocating storage

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643654B1 (en) 2001-06-25 2003-11-04 Network Appliance, Inc. System and method for representing named data streams within an on-disk structure of a file system
US7162600B2 (en) 2005-03-29 2007-01-09 Hitachi, Ltd. Data copying method and apparatus in a thin provisioned system
US7200715B2 (en) 2002-03-21 2007-04-03 Network Appliance, Inc. Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
US7603532B2 (en) 2004-10-15 2009-10-13 Netapp, Inc. System and method for reclaiming unused space from a thinly provisioned data container
JP4402565B2 (ja) 2004-10-28 2010-01-20 富士通株式会社 仮想ストレージ管理プログラム、方法及び装置
US7711897B1 (en) 2005-06-10 2010-05-04 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for improving disk array performance
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
JP2007066259A (ja) * 2005-09-02 2007-03-15 Hitachi Ltd 計算機システムとストレージシステム並びにボリューム容量拡張方法
US7467276B1 (en) 2005-10-25 2008-12-16 Network Appliance, Inc. System and method for automatic root volume creation
US7574560B2 (en) * 2006-01-03 2009-08-11 Emc Corporation Methods, systems, and computer program products for dynamic mapping of logical units in a redundant array of inexpensive disks (RAID) environment
US7945726B2 (en) 2006-05-08 2011-05-17 Emc Corporation Pre-allocation and hierarchical mapping of data blocks distributed from a first processor to a second processor for use in a file system
KR100818797B1 (ko) * 2006-10-19 2008-04-01 삼성전자주식회사 메모리 용량 조절 방법과 메모리 용량 조절 장치
JP2008146536A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd ストレージ装置及びこれを用いたデータ管理方法
US7631155B1 (en) * 2007-06-30 2009-12-08 Emc Corporation Thin provisioning of a file system and an iSCSI LUN through a common mechanism
US8402214B2 (en) * 2009-09-16 2013-03-19 Hitachi, Ltd. Dynamic page reallocation storage system management
US8205062B2 (en) * 2009-10-14 2012-06-19 Inetco Systems Limited Tiered data management method and system for high performance data monitoring
US8443153B1 (en) * 2010-01-06 2013-05-14 Netapp, Inc. Dynamic balancing of performance with block sharing in a storage system
US8555022B1 (en) * 2010-01-06 2013-10-08 Netapp, Inc. Assimilation of foreign LUNS into a network storage system
US8468302B2 (en) * 2010-01-14 2013-06-18 Hitachi, Ltd. Storage system
US8543778B2 (en) * 2010-01-28 2013-09-24 Hitachi, Ltd. Management system and methods of storage system comprising pool configured of actual area groups of different performances
WO2011096014A1 (ja) * 2010-02-05 2011-08-11 株式会社日立製作所 仮想マシンと連携したThin-Provisioning容量管理を行う計算機システム、計算機、及び方法
US8732518B2 (en) * 2011-04-13 2014-05-20 Netapp, Inc. Reliability based data allocation and recovery in a storage system
US8856440B2 (en) 2011-09-12 2014-10-07 Microsoft Corporation Volatile memory representation of nonvolatile storage device set
US8793466B2 (en) * 2012-04-27 2014-07-29 Netapp, Inc. Efficient data object storage and retrieval

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110060887A1 (en) * 2009-09-09 2011-03-10 Fusion-io, Inc Apparatus, system, and method for allocating storage

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11366725B2 (en) 2019-12-30 2022-06-21 SK Hynix Inc. Storage device and method of operating the same
US11782616B2 (en) 2021-04-06 2023-10-10 SK Hynix Inc. Storage system and method of operating the same

Also Published As

Publication number Publication date
US8856440B2 (en) 2014-10-07
CN102929786B (zh) 2016-08-03
EP2756401A1 (en) 2014-07-23
WO2013039523A1 (en) 2013-03-21
JP2014530394A (ja) 2014-11-17
US9229826B2 (en) 2016-01-05
US20130067159A1 (en) 2013-03-14
US20150095695A1 (en) 2015-04-02
JP5932043B2 (ja) 2016-06-08
KR20140061444A (ko) 2014-05-21
EP2756401A4 (en) 2015-06-03
CN102929786A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
KR101930117B1 (ko) 비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법
US11249956B2 (en) Scalable distributed storage architecture
US11210035B2 (en) Creating, by host computers, respective object of virtual disk based on virtual disk blueprint
CN110663019B (zh) 用于叠瓦式磁记录(smr)的文件系统
US8947988B2 (en) Efficient access to storage devices with usage bitmaps
CN102255962B (zh) 一种分布式存储方法、装置和系统
US20130097399A1 (en) Interface for management of data movement in a thin provisioned storage system
CN104536903A (zh) 一种按数据属性分类存放的混合存储方法及系统

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant