KR101482518B1 - 캐시 계층화를 위한 방법 및 시스템 - Google Patents

캐시 계층화를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101482518B1
KR101482518B1 KR20137007533A KR20137007533A KR101482518B1 KR 101482518 B1 KR101482518 B1 KR 101482518B1 KR 20137007533 A KR20137007533 A KR 20137007533A KR 20137007533 A KR20137007533 A KR 20137007533A KR 101482518 B1 KR101482518 B1 KR 101482518B1
Authority
KR
South Korea
Prior art keywords
data
cache
layer
organizing
way
Prior art date
Application number
KR20137007533A
Other languages
English (en)
Other versions
KR20130105842A (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 KR20130105842A publication Critical patent/KR20130105842A/ko
Application granted granted Critical
Publication of KR101482518B1 publication Critical patent/KR101482518B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

컴퓨터 시스템에서 실행하는 애플리케이션에 의해 검색을 위한 데이터를 저장하기 위한 방법 및 시스템은 적어도 하나의 캐시 계층 및 베이스 계층을 포함하는 계층화된 캐싱 시스템을 제공하는 단계와, 정책에 기초하여 상기 적어도 하나의 캐시 계층 및 상기 베이스 계층 중 적어도 하나에 데이터를 저장하는 단계와, 데이터를 편성하기 위한 수단에 의해 애플리케이션에 상기 데이터의 애플리케이션 뷰를 제시하는 단계를 포함한다. 본 발명은 선택적으로 부가의 오버플로우 계층을 제공하고, 바람직하게는 다중 캐시 계층을 포함한다.

Description

캐시 계층화를 위한 방법 및 시스템 {METHOD AND SYSTEM FOR CACHE TIERING}
본 출원은 그 내용이 본 명세서에 그대로 참조로서 포함되어 있는 2010년 8월 25일 출원된 미국 가출원 제 61/377,018호로부터 우선권을 주장한다.
발명의 분야
본 발명은 일반적으로 컴퓨터 데이터 저장 장치에 관한 것으로서, 더 구체적으로는 계층화(tiered) 캐시 구조를 제공하기 위한 방법 및 시스템에 관한 것이다.
광범위하게 이용 가능하고 용이하게 액세스 가능하게 되는 범용화(commodity) 저장 디바이스로서 2개의 특정 새로운 종류의 저장 디바이스가 최근에 출현하였는데, 이들은 플래시 메모리 기반 고체 상태 드라이브(SSD) 및 클라우드 저장 장치이다. 이들의 각각은 성능 및 비용면에서 컴퓨터 저장 시스템에서 다년간 유행하였던 회전 매체 하드 디스크 드라이브와 명백하게 구별되는 것으로 당 기술 분야에 알려져 있다. 저장 디바이스의 각각의 종류는 순수 데이터 저장 관점으로부터 그 고유의 특정 장점을 갖는데, 예를 들어 SSD는 고속이고, 통상의 하드 드라이브는 저가이고, 클라우드 저장 장치는 융통성이 있다. 현재 사용되는 바와 같이, 상이한 저장 디바이스가 소정의 컴퓨터 시스템에 의해 액세스 가능하고, 이 저장 디바이스와의 상호 작용은 별개의 데이터 흐름을 사용하여 관리된다. 도 1은 다수의 종류의 저장 디바이스와 상호 작용하는 전형적인 통상의 시스템을 도시한다.
상이한 종류의 저장 디바이스 사이의 특성, 성능 및 비용면에서의 차이점은 일반적으로 각각의 종류 내의 다양한 제품 또는 기술 사이의 차이보다 상당히 크다. 그 결과, 이들의 장점의 각각의 최선의 사용을 행하기 위해 적절한 바와 같은 모든 종류의 저장 디바이스를 사용하여 데이터 저장을 관리할 수 있는 것이 바람직하다. 현재 저장 시스템 내의 통상의 하드 드라이브를 위한 캐시로서 작용하는 SSD를 갖는 최근에 나타난 경향이 존재하지만, 구현 방법은 원시적이고 통상의 하드 드라이브와 SSD 사이의 간단한 데이터 흐름을 갖는 시스템 단위 기반으로(per system basis) 설계된다.
수년간, 계층화의 사상 - 데이터에 인가된 정책에 기초하여 개별 저장 디바이스 상에 데이터를 배치함 - 이 예를 들어 비용 효율, 데이터 보유 또는 규제 준수를 위해, 데이터 관리 주변의 비즈니스 목표를 성취하는데 사용되어 왔다. 예를 들어, 모든 데이터는 아카이빙될(archived) 수 있고, 민감 데이터는 암호화될 수 있고, 빈번하게 사용된 데이터는 그 사용자 부근에 유지될 수 있는 등이다. 이 종류의 계층화는 계층(tier)에 대해 사용된 저장 디바이스 또는 데이터 저장 시스템에 의해 주로 차별화되는데 사용된다.
본 발명의 분야에 있어서 현재의 해결책은 일반적으로 도 1에 도시된 것과 같은, 블록 기반 캐싱 및/또는 저장 디바이스의 고정 리스트(또는 클라우드 저장 장치의 경우에 저장 서비스)를 사용하는 네트워크(기기 또는 저장 영역 네트워크) 기반이다.
종래의 시스템은 특정 종류의 저장 디바이스의 장점을 사용하지만, 이들은 컴퓨터 시스템과 특정 저장 디바이스 사이의 상호 작용에 의해 이들의 사용이 제한되어 있다. 더욱이, 적용 레벨에서, 상이한 종류의 저장 디바이스로부터 데이터 검색을 위한 조정이 종종 행해져야 한다. 더욱이, 상이한 저장 디바이스 종류의 상이한 장점으로부터 시너지 효과가 실현되는 경우는 거의 없으며, 따라서 종래의 시스템은 시스템 내의 다른 상이한 종류의 저장 디바이스에 무관하게, 이들이 독립적으로 수행하는 저장 디바이스의 물리적 명시(manifestation)에 한정된다.
따라서, 본 발명의 목적은 이들 상이한 종류의 저장 디바이스를 독립적으로 사용하는데 있어서 실현될 수 있는 상이한 종류의 저장 디바이스의 장점으로부터 발생하는 이점을 성취하기 위한 계층화된 캐시 구조를 제공하기 위한 신규한 시스템 및 방법을 제공하는 것이다.
본 발명은 데이터를 편성하기 위한 단일 수단 내에 상이한 종류의 저장 디바이스를 투명하게 통합하여 이에 의해 데이터를 편성하기 위한 그 고유의 수단을 각각 갖는 독립적으로 동작하는 각각의 종류의 저장 디바이스의 장점을 넘어 확장하는 이들 상이한 종류의 저장 디바이스의 사용에 시너지 이점을 실현하는 신규한 시스템 및 방법을 제공한다. 본 발명은 임의의 다른 종류의 저장 디바이스 상에 임의의 종류의 저장 디바이스를 캐시할 수 있고 선택적으로 다수의 종류 및 유형의 저장 디바이스 중에 통합 방식으로 이러한 캐싱을 제공할 수 있는 일반화된 캐싱 시스템 및 방법을 제공한다.
본 발명의 일 실시예에 따르면, 컴퓨터 시스템에서 실행하는 애플리케이션에 의해 검색을 위한 데이터를 저장하기 위한 방법으로서, 적어도 하나의 캐시 계층 및 베이스 계층을 포함하는 계층화된 캐싱 시스템을 제공하는 단계와, 정책에 기초하여 캐시 계층 및 베이스 계층 중 적어도 하나에 데이터를 저장하는 단계와, 데이터를 편성하기 위한 수단에 의해 애플리케이션에 데이터의 애플리케이션 뷰를 제시하는 단계를 포함하는 방법이 제공된다. 바람직하게는, 데이터를 편성하기 위한 수단은 적어도 하나의 캐시 계층 및 베이스 계층의 각각을 위한 메타데이터 정보를 포함한다. 부가적으로, 적어도 하나의 캐시 계층 및 베이스 계층의 각각은 상이한 저장 리소스 상에 배열되고, 데이터를 편성하기 위한 수단은 상이한 저장 리소스의 각각에 대한 메타데이터 정보를 포함한다.
본 발명의 일 양태에 따르면, 방법은 적어도 하나의 오버플로우 계층을 제공하는 단계를 포함하고, 오버플로우 계층은 적어도 하나의 캐시 계층 및 베이스 계층의 각각과는 상이한 저장 리소스 상에 배열되고, 데이터를 편성하기 위한 수단은 오버플로우 계층에 대한 메타데이터 정보를 포함한다.
본 발명의 다른 양태에 따르면, 적어도 하나의 캐시 계층은 복수의 계층화된 캐시 계층을 포함한다. 적어도 하나의 캐시 계층은 운영 체제와 함께 사용되는 운영 체제 파일 버퍼 캐시일 수 있다.
본 발명의 다른 양태에 따르면, 복수의 캐시 계층은 고체 상태 드라이브 상에 각각 제공되고, 베이스 계층은 하드 디스크 드라이브 상에 제공되고, 오버플로우 계층은 클라우드 저장 장치 리소스 상에 제공된다.
본 발명의 다른 양태에 따르면, 데이터를 편성하기 위한 수단은 하드 디스크 드라이브 상에 저장된다.
본 발명의 다른 양태에 따르면, 방법은 베이스 계층 상에 데이터를 저장하고 복수의 캐시 계층 중 하나 이상에 데이터를 캐싱하는 단계를 추가로 포함하고, 더 상위 레벨의 캐시 계층이 더 하위 레벨의 캐시 계층 상에 데이터를 캐싱한다.
본 발명의 다른 양태에 따르면, 각각의 캐시 계층 레벨은 2개 이상의 저장 리소스를 포함한다.
본 발명의 다른 양태에 따르면, 데이터를 편성하기 위한 수단은 사용되는 특정 저장 디바이스에 애그노스틱(agnostic)하다.
본 발명의 다른 양태에 따르면, 인터셉팅 시스템에 의해 데이터를 편성하기 위한 수단에 독립적으로 수행되거나 프로세싱될 데이터 동작을 편성하기 위한 수단을 인터셉트하는 단계를 추가로 포함한다.
본 발명의 다른 양태에 따르면, 방법은 동작의 적어도 일부가 인터셉팅 시스템에 의해 인터셉트되고 정책에 따라 프로세싱되도록 정책에 따른 입력/출력 동작을 분리하는 단계를 추가로 포함한다.
본 발명의 다른 양태에 따르면, 정책은 정책 모듈에 의해 제공된다.
본 발명의 다른 양태에 따르면, 정책 모듈은 인터셉팅 시스템과 일체이다.
본 발명의 다른 양태에 따르면, 정책 모듈은 데이터를 편성하기 위한 수단과 일체이다.
본 발명의 다른 양태에 따르면, 인터셉트 단계는 (a) 저장 리소스와 인터셉팅 시스템 사이에 제공된 데이터 변환 엔진에 인터셉트된 동작을 전달하는 단계, (b) 인터셉트된 동작의 완료를 로깅하는 단계 및 (c) 인터셉트된 동작을 변경하고 이를 데이터를 편성하기 위한 수단으로 전달하는 단계 중 하나를 추가로 포함한다.
본 발명의 다른 양태에 따르면, 방법은 인터셉팅 시스템과 저장 리소스 사이에 데이터 변환 엔진을 제공하는 단계를 추가로 포함한다.
본 발명의 다른 양태에 따르면, 방법은 데이터를 편성하기 위한 수단의 외부에서 정책을 실행하는 단계를 추가로 포함하고, 정책 실행 단계는 데이터 변환 엔진에 의해 수행된다.
본 발명의 다른 양태에 따르면, 데이터 변환 엔진은 데이터가 존재하는 최고 캐시 계층을 발견하고 데이터를 검색하기 위해 판독 동작을 실행하기 위한 판독 캐싱 모듈을 추가로 포함한다.
본 발명의 다른 양태에 따르면, 데이터 변환 엔진은 상이한 캐시 계층 레벨로 기록 동작을 수행하기 위한 기록 캐싱 모듈을 추가로 포함한다.
본 발명의 다른 양태에 따르면, 데이터 변환 엔진은 데이터를 편성하기 위한 수단을 통해 데이터가 통과하기 전에 데이터를 암호화하고 복호화하기 위한 암호화 모듈을 추가로 포함한다.
본 발명의 다른 양태에 따르면, 데이터 변환 엔진은 메타데이터 정보 내에 저장된 것에 데이터의 특성을 비교하기 위한 무결성 모듈을 추가로 포함한다.
본 발명의 다른 양태에 따르면, 데이터 변환 엔진은 중복 제거 단계를 실행하기 위한 중복 제거 모듈을 추가로 포함한다.
본 발명의 다른 양태에 따르면, 데이터 변환 엔진은 실패한 기록 동작에 응답하여 오버플로우 캐시 계층에 데이터를 기록하기 위한 오버플로우 모듈을 추가로 포함한다.
본 발명의 다른 양태에 따르면, 방법은 저장 리소스와 데이터 변환 엔진 사이에 동작 인터페이스를 제공하기 위한 데이터 저장 인터페이스를 제공하는 단계를 추가로 포함한다.
본 발명의 다른 양태에 따르면, 방법은 각각의 데이터 저장 리소스가 데이터 변환 엔진에 균일하게 나타나도록 데이터 저장 리소스 정보를 추상화하는(abstracting) 단계를 추가로 포함한다.
본 발명의 다른 양태에 따르면, 방법은 적어도 2개 이상의 데이터 저장 리소스를 풀링하는 단계를 추가로 포함한다.
본 발명의 다른 실시예에 따르면, 컴퓨터 시스템에서 실행하는 애플리케이션에 의한 검색을 위한 데이터를 저장하기 위한 시스템으로서, 적어도 하나의 캐시 계층 및 베이스 계층을 포함하는 계층화된 캐싱 시스템 - 데이터는 정책에 기초하여 적어도 하나의 캐시 계층 및 베이스 계층 중 적어도 하나에 저장됨 - 과, 데이터의 애플리케이션 뷰를 애플리케이션에 제시하기 위한 데이터를 편성하기 위한 수단 - 데이터를 편성하기 위한 수단은 적어도 하나의 캐시 계층 및 베이스 계층의 각각을 위한 메타데이터 정보를 포함함 - 을 포함하는 시스템이 제공된다.
이 실시예의 일 양태에 따르면, 적어도 하나의 캐시 계층 및 베이스 계층의 각각은 상이한 저장 리소스 상에 배열되고, 또한 데이터를 편성하기 위한 수단은 상이한 저장 리소스의 각각에 대한 메타데이터 정보를 포함한다.
이 실시예의 다른 양태에 따르면, 시스템은 적어도 하나의 오버플로우 계층을 추가로 포함하고, 오버플로우 계층은 적어도 하나의 캐시 계층 및 베이스 계층의 각각과는 상이한 저장 리소스 상에 배열되고, 데이터를 편성하기 위한 수단은 오버플로우 계층에 대한 메타데이터 정보를 포함한다.
이 실시예의 다른 양태에 따르면, 적어도 하나의 캐시 계층은 복수의 계층화된 캐시 계층을 포함한다.
이 실시예의 다른 양태에 따르면, 복수의 캐시 계층은 고체 상태 드라이브 상에 각각 제공되고, 베이스 계층은 하드 디스크 드라이브 상에 제공되고, 오버플로우 계층은 클라우드 저장 장치 리소스 상에 제공된다.
이 실시예의 다른 양태에 따르면, 데이터를 편성하기 위한 수단은 하드 디스크 드라이브 상에 저장된다.
이 실시예의 다른 양태에 따르면, 데이터는 베이스 계층 상에 저장되고 복수의 캐시 계층 중 하나 이상에 캐싱되고, 더 상위 레벨의 캐시 계층이 더 하위 레벨의 캐시 계층 상에 데이터를 캐싱한다.
이 실시예의 다른 양태에 따르면, 각각의 캐시 계층 레벨은 2개 이상의 저장 리소스를 포함한다.
이 실시예의 다른 양태에 따르면, 데이터를 편성하기 위한 수단은 사용되는 특정 저장 디바이스에 애그노스틱하다.
이 실시예의 다른 양태에 따르면, 데이터를 편성하기 위한 수단에 독립적으로 수행되거나 프로세싱될 데이터 동작을 편성하기 위한 수단을 인터셉트하기 위한 인터셉팅 시스템을 추가로 포함한다.
이 실시예의 다른 양태에 따르면, 인터셉팅 시스템은 동작의 적어도 일부가 인터셉팅 시스템에 의해 인터셉트되고 정책에 따라 프로세싱되도록 정책에 따른 입력/출력 동작을 분리하도록 적용된다.
이 실시예의 다른 양태에 따르면, 시스템은 정책을 제공하기 위한 정책 모듈을 추가로 포함한다.
이 실시예의 다른 양태에 따르면, 정책 모듈은 인터셉팅 시스템과 일체이다.
이 실시예의 다른 양태에 따르면, 정책 모듈은 데이터를 편성하기 위한 수단과 일체이다.
이 실시예의 다른 양태에 따르면, 인터셉팅 시스템은 (a) 저장 리소스와 인터셉팅 시스템 사이에 제공된 데이터 변환 엔진에 인터셉트된 동작을 전달하는 수단, (b) 인터셉트된 동작의 완료를 로깅하는 수단 및 (c) 인터셉트된 동작을 변경하고 이를 데이터를 편성하기 위한 수단으로 전달하는 수단 중 적어도 하나를 포함한다.
이 실시예의 다른 양태에 따르면, 데이터 변환 엔진이 인터셉팅 시스템과 저장 리소스 사이에 제공된다.
이 실시예의 다른 양태에 따르면, 데이터 변환 엔진은 데이터가 존재하는 최고 캐시 계층을 발견하고 데이터를 검색하기 위해 판독 동작을 실행하기 위한 판독 캐싱 모듈을 추가로 포함한다.
이 실시예의 다른 양태에 따르면, 데이터 변환 엔진은 상이한 캐시 계층 레벨로 기록 동작을 수행하기 위한 기록 캐싱 모듈을 추가로 포함한다.
이 실시예의 다른 양태에 따르면, 데이터 변환 엔진은 데이터를 편성하기 위한 수단을 통해 데이터가 통과하기 전에 데이터를 암호화하고 복호화하기 위한 암호화 모듈을 추가로 포함한다.
이 실시예의 다른 양태에 따르면, 데이터 변환 엔진은 메타데이터 정보 내에 저장된 것에 데이터의 특성을 비교하기 위한 무결성 모듈을 추가로 포함한다.
이 실시예의 다른 양태에 따르면, 데이터 변환 엔진은 중복 제거 단계를 실행하기 위한 중복 제거 모듈을 추가로 포함한다.
이 실시예의 다른 양태에 따르면, 데이터 변환 엔진은 실패한 기록 동작에 응답하여 오버플로우 캐시 계층에 데이터를 기록하기 위한 오버플로우 모듈을 추가로 포함한다.
이 실시예의 다른 양태에 따르면, 시스템은 저장 리소스와 데이터 변환 엔진 사이에 동작 인터페이스를 제공하기 위한 데이터 저장 인터페이스를 추가로 포함한다.
이 실시예의 다른 양태에 따르면, 적어도 2개 이상의 데이터 저장 리소스가 풀링된다.
도 1은 각각의 저장 리소스 또는 데이터 저장 시스템이 관리 및 상호 접속된 데이터 흐름의 견지의 모두에서 개별적인 컴퓨터의 종래의 저장 장치 모델을 도시하는 도면.
도 2는 본 발명에 따른 저장 장치 모델을 도시하는 도면.
도 3은 본 발명의 일 실시예에 따른 일반적인 저장 장치 계층화 모델을 도시하는 도면.
도 4는 도 3의 저장 장치 모델의 개량된 버전을 도시하는 도면.
도 5는 본 발명의 일 구현예에 따른 블록 다이어그램.
도 6은 4-방향 RAID0 구성을 에뮬레이팅하는 혼성 저장 리소스로서 사용된 min-OR 저장 트리의 예를 도시하는 도면.
도 7은 RAID6 등가 구성인 미러들 중 하나를 갖는 더 복잡한 3-방향 RAID1 미러링을 도시하는, 혼성 저장 리소스로서 사용된 예시적인 min-OR 저장 트리를 도시하는 도면.
도 8은 본 발명이 구현될 수 있는 일반화된 컴퓨터 시스템을 도시하는 도면.
도 9는 본 발명과 함께 사용을 위한 대표적인 데이터 변환 엔진을 도시하는 도면.
이제 실시예가 첨부 도면을 참조하여 단지 예로서만 설명될 것이다.
본 발명은 단일의 파일시스템 내에 상이한 종류의 저장 디바이스를 투명하게 통합하여 이에 의해 독립적으로 동작하고 각각 그 고유의 파일시스템을 갖는 각각의 종류의 저장 디바이스의 장점을 넘어 확장하는 이들 상이한 종류의 저장 디바이스의 사용에 시너지 이점을 실현하는 신규한 시스템 및 방법을 제공한다. 당 기술 분야의 숙련자들에게 명백해지는 바와 같이, 이어지는 설명과 관련하여, 본 발명은 임의의 다른 종류의 저장 디바이스 상에 임의의 종류의 저장 디바이스를 캐시하고 선택적으로 다수의 종류 및 유형의 저장 디바이스 중에 통합 방식으로 이러한 캐싱을 제공할 수 있는 일반화된 캐싱 시스템 및 방법을 제공한다. 본 발명이 용이한 이해를 위해 파일시스템과 관련하여 설명되었지만, 이들에 한정되는 것은 아니지만, 데이터베이스 및 특히 객체 데이터베이스, 키 값 저장부, 몇몇 네트워크 프로토콜 및 몇몇 공유 데이터 시스템을 포함하는 데이터를 편성하기 위한 임의의 수단이 사용될 수 있다는 것이 이해될 수 있을 것이다.
전술된 기능을 구현하는데 있어서, 본 출원인은 이하의 문제점 (a) 저장 장치 사용자가 이들의 애플리케이션 또는 운영 체제에 변경을 요구하지 않고, 본 명세서에 설명된 이점을 경험하도록 어떻게 상이한 저장 디바이스를 투명하게 통합하는지, (b) 신규한 기술이 발생함에 따라 본 발명이 구현될 수 있도록 어떻게 다수의 이용 가능한 옵션 중에서 저장 디바이스의 선택에 애그노스틱하게 하는지, (c) 일반적인 레벨로 어떻게 저장 디바이스의 보안 및 완전성을 제공하는지 및 (d) 느리거나 원격인 저장 디바이스에 대한 지연 문제점을 어떻게 처리하는지의 문제점에 직면하였다. 이하에는 이들 문제점들이 어떻게 해결되어 본 발명을 야기하였는지의 간략한 고레벨 설명이 이어진다. 본 발명을 실시하는 더 상세한 설명은 그 후에 이어질 것이다.
투명 통합 문제점은 1차 데이터 저장 시스템(파일시스템 내의 파일시스템 메타데이터와 같은)의 현존하는 사용자 가시적 편성을 보유하고 독립적으로 제어된 동일한 또는 다른 저장 디바이스 상에 데이터 배치를 가짐으로써 해결될 수 있다는 것이 발견되었다. 이는 도 1에 도시된 바와 같은 종래의 시스템의 데이터 흐름 및 편성을 도 2에 도시된 바와 같은 것으로 변경하였고, 여기서 본 발명에 따르면 저장 장치의 각각의 레이어(layer) 또는 계층은 하위 레이어에 대한 프론트 엔드이다.
애그노스틱 문제점과 관련하여, 일반적 데이터 저장 리소스로서 시스템 내에 각각의 저장 디바이스를 사용하고 모든 디바이스에 대한 균일한 인터페이스를 제공하기 위해 기초 저장 메커니즘을 추상화하는 것은 각각의 종류의 저장 디바이스가 동일하게 나타날 수 있게 하고 따라서 여전히 특정 종류의 저장 디바이스로부터 이용 가능한 고유적인 물리적 장점을 여전히 유지하면서 애그노스틱하게 처리될 수 있게 한다.
보안 및 완전성 문제점은 시스템을 통해 통과하는 모든 데이터의 정책 기반 프로세싱을 제공함으로써 해결되었고, 포함 데이터는 클라우드 저장 장치에서 해당할 수 있는 바와 같이, 사용자/소유자의 제어를 넘는 소정의 장소에 저장된다. 더욱이, 이는 모든 디바이스가 애그노스틱하게 처리될 수 있고, 따라서 동시에 저장 디바이스 종류 또는 데이터가 상주하는 특정 저장 디바이스에 무관하게 정책 기반 프로세싱을 받게될 데이터를 그 위에 갖도록 모든 디바이스에 대한 균일한 인터페이스를 제공하는 다른 장점이다.
지연 문제점은 성능을 최적화하기 위해 저장 계층의 캐시 캐스케이드를 제공하도록 다수의 저장 디바이스를 위한 투명 통합을 사용함으로써 해결된다. 즉, 특정 종류의 데이터 저장 장치의 물리적 특성이 어느 종류에 데이터가 저장되는지를 결정할 때를 고려할 수 있도록 하는 규칙이 적용될 수 있다. 대안적으로, 시스템-레벨 디자인이 처음에 인가될 수 있어 더 상위의 레벨의 계층이 더 고속 저장 장치 종류를 구비하게 된다.
본 발명은 일반적으로 컴퓨터 시스템의 환경에서 동작하고, 그 일 예가 도 8에 도시되어 있는 일반적인 공지의 컴퓨터 시스템에 이용 가능한 데이터 저장 용량에 대한 개량을 제공하는 기능을 한다. 도시된 바와 같이, 컴퓨터 시스템(20)은 중앙 프로세싱 유닛("CPU")(24), 랜덤 액세스 메모리("RAM")(28), 입력/출력("I/O") 인터페이스(32), 네트워크 인터페이스(36), 비휘발성 저장 장치(40) 및 CPU(24)가 다른 부품들과 통신하는 것을 가능하게 하는 로컬 버스(44)를 포함하는 다수의 물리적 및 논리적 부품을 갖는다. CPU(24)는 운영 체제 및 다수의 소프트웨어 시스템을 실행한다. RAM(28)은 비교적 응답성 휘발성 저장 장치를 CPU(24)에 제공한다. I/O 인터페이스(32)는 키보드, 마우스 등과 같은 하나 이상의 디바이스로부터 입력이 수신될 수 있게 하고, 디스플레이 및/또는 스피커와 같은 출력 디바이스에 정보를 출력한다. 네트워크 인터페이스(36)는 다른 시스템과 통신을 허용한다. 비휘발성 저장 장치(40)는 운영 체제 및 프로그램을 저장한다. 컴퓨터 시스템(20)의 동작 중에, 운영 체제, 프로그램 및 데이터가 비휘발성 저장 장치(40)로부터 검색되어 RAM(28) 내에 배치되어 실행을 용이하게 할 수 있다.
도 2의 예는 컴퓨터 시스템(200)이 계층화된 캐시 구조로부터 데이터를 액세스하는 본 발명의 일 고레벨 구현예를 도시하고, 여기서 캐시 구조는 SSD로 구현된 캐시 계층(210), 통상의 하드 드라이브로 구현된 베이스 계층(220) 및 클라우드 저장 서비스로 구현된 오버플로우 계층(230)을 포함한다. 도시된 바와 같이, 파일시스템(240)은 베이스 계층(220) 상에, 즉 하드 디스크 드라이브 상에 여전히 상주할 수 있고, 여기서 이는 일반적으로 공지의 컴퓨터 시스템에 상주한다.
이제, 도 3을 참조하면, 본 발명에 따른 고레벨 데이터 흐름 모델이 도시되어 있다. 파일시스템(340)은 데이터 저장 시스템의 확장자이고, 컴퓨터(300)에 의해 액세스 가능한 임의의 저장 디바이스 상에 위치될 수 있다. 하나의 베이스 계층(310) 및 오버플로우 계층(330)과 같이, 일련의 캐시 계층(310)이 도시되어 있다. 각각의 캐시 계층은 도시된 바와 같이 각각의 계층 내에 임의의 수의 저장 리소스(311, 321, 331)를 각각 포함할 수 있다. 본 발명에 따르면, 더 상위 레벨의 계층은 스택 내의 더 하위의 다른 계층으로부터 데이터를 캐시한다. 캐시 계층(310)에는, 더 상위 레벨의 캐시 계층(310)이 더 하위 레벨(310a) 상의 캐시 계층으로부터 데이터를 캐시하도록 하는 계층구조(hierarchy)가 존재한다. 베이스 계층(320)은 데이터의 하드 소스이고, 저장은 이 레벨에서 완료된다. 오버플로우 계층(330)은 베이스 계층(320)이 풀 상태인 경우에 데이터가 배치되는 장소이다.
일반적으로, 하나 이상의 캐시 계층(310)이 존재하고, 단일 베이스 계층(320) 및 오버플로우 계층(330)이 선택적으로 제공되지만, 복수의 오버플로우 계층(330)이 존재할 수도 있다. 임의의 종류의 데이터 저장 디바이스가 사용될 수 있고, 하나 초과의 계층에 대해 사용될 수 있다. 각각의 계층에 사용된 특정 종류의 저장 장치는 바람직하게는 도 2에 도시된 바와 같은 것들이지만, 다른 종류의 저장 장치가 또한 고려된다. 예를 들어, 복수의 캐시 계층은 바람직하게는 운영 체제와 함께 사용되는 운영 체제 파일 버퍼 캐시 상에 구현될 수 있다. 이 예에서, 본 발명은 파일 버퍼 캐시를 사용하는데 있어서 운영 체제와 협동하지만, 파일 버퍼는 독점적인 리소스로서 사용되지는 않는다. 즉, 하위 캐싱 중에, 파일 버퍼 캐시는 파일 버퍼 캐시를 암시적으로 사용할 것이고, 본 발명은 무엇인가가 파일 버퍼 캐시 내로 진행하는지 여부에 대한 명시적인 제어가 존재하는 경우에 이보다 더 많은 것을 고려하고, 현존하는 시스템 내의 파일 버퍼 캐시의 통상의 사용을 넘는 방식으로 동작한다.
본 발명은 또한 파일시스템(340) 메타데이터가 다른 목적으로 또한 사용되는 것을 포함하는 임의의 저장 리소스 상에 저장될 수 있게 한다. 실제로, 모든 데이터는 하나의 계층으로부터 다른 계층으로 배열되거나 이동함에 따라 컴퓨터 시스템(300)을 통해 이동할 것이다. 즉, 컴퓨터 시스템(300)은 본 발명을 실행하기 위한 그 위의 명령 및 파일시스템(340) 메타데이터에 기초하여 본 발명의 계층 캐시 레벨들 사이에 데이터를 전송하는 책임이 있다.
도 3은 본 발명의 특정 고레벨 구현예를 도시하고 있지만, 도 3에 도시된 데이터는 단일 유형이다. 도 4를 참조하면, 복수의 유형의 데이터(450a, 450b, 450c, 450n)를 구비하는 본 발명의 일반화된 구현예가 도시되어 있다. 예를 들어, 데이터 유형(450a)은 2개의 캐시 계층(410a, 410b) 상에 그리고 베이스 계층(420) 상에 존재한다. 데이터 유형(450b, 450c)은 상이한 캐시 계층 상에, 그러나 동일한 베이스 및 오버플로우 계층 상에 존재한다. 저장 리소스(411, 421, 431)는 캐시 계층(410), 베이스 계층(420) 및 오버플로우 계층(430) 상에 각각 존재한다. 당 기술 분야의 숙련자에 의해 이해될 수 있는 바와 같이, 본 발명은 도 4의 일반화된 경우에 의해 도시된 바와 같이, 임의의 캐시 계층 상에 및 임의의 유형의 저장 리소스 상에 저장되는 임의의 유형의 데이터를 고려한다. 각각의 종류의 데이터에 대해, 이하에 설명되는 바와 같은 정책에 의해 결정되는 바와 같이, 계층화 스택은 모든 캐시 계층 및 오버플로우 계층 옵션을 갖고 그리고 단지 베이스 계층만이 요구되는 상태로 존재한다. 데이터는 그 계층화 스택을 통해 순차적으로 흐른다. 동일한 저장 리소스가 저장 리소스의 네임스페이스 내의 명시적으로 또는 저장된 데이터를 위한 명명 알고리즘에 기인하여 암시적으로 데이터 분리 특징에 기인하는 상충 없이 다수의 계층화 스택 내에 나타날 수 있다. 이들 특징의 구현예의 상세가 이하에 설명된다. 당 기술 분야의 숙련자에 의해 이해될 수 있는 바와 같이, 본 발명은 데이터가 관리되고 다수의 종류의 저장 리소스를 가로질러 저장되는 신규한 패러다임을 제공한다.
도 3 및 도 4는 저장 리소스를 포함하는 것으로서 설명되어 있지만, 이들은 또한 물리적 리소스 자체의 상부에 다른 편성 정보를 구비하는 데이터 저장 시스템일 수도 있다. 본 발명은 또한 각각의 계층 상에 저장 리소스의 편성에 구조를 제공한다. 도 3 및 도 4의 각각의 저장 리소스는 또한 데이터 저장 트리로서 편성될 수도 있다. 트리 내의 특정 노드가 리프(leaf)이면, 이는 본 발명의 구현예의 소정 레벨에서 균일한 인터페이스를 갖는 데이터 저장 리소스이다. 특정 노드가 내부 노드이면, 이 노드를 위한 저장 데이터는 최소 수의 그 자식 노드에 대한 저장 데이터를 대표한다. 따라서, 이러한 저장 트리의 내부 노드는 이 특정 분기의 상위 저장 레이어이고, 내부 노드로부터 발생하는 리프 저장 리소스를 관리하기 위한 시맨틱(semantics)을 포함하는 단일 저장 리소스로서 파일시스템에 나타난다. 더욱이, 본 발명은 원시 블록 저장 장치(디스크 디바이스와 같은), 파일 시스템 및 키 값 저장부를 포함하는 다수의 형태의 데이터 저장 시스템 또는 저장 리소스를 위한 지원을 고려한다. 이들 저장 리소스의 각각은 또한 복잡한 구조를 가질 수 있고, 예를 들어 개별 디스크로부터 블록을 포함하지만, 본 발명의 파일시스템(340, 440)으로의 균일한 출력이 본 발명을 구현하기 위해 그리고 이어서 저장 리소스의 이러한 기초 상세에 애그노스틱한 사용 애플리케이션 또는 운영 체제로의 뷰를 제공하기 위해 제시된다. 이들 특징의 구현예의 상세는 이하의 설명과 관련하여 명백해질 것이다.
요약하면, 본 발명은 이하의 비한정적인 개별적으로 고유한 특징을 갖는데,
a) 각각의 (정책 결정된) 카테고리의 데이터가 그 고유의 계층의 스택을 갖는 일반적 캐시 계층화 저장 모델을 사용하고,
b) 사용되는 특정 저장 디바이스에 애그노스틱하고,
c) 현존하는 데이터 저장 시스템(예를 들어, 파일시스템)의 확장자로서 생성될 수 있는 점에서 사용자에게 투명하고,
d) 기초 구현이 아니라 데이터 저장 시스템의 사용자 가시적 편성에 기초하고, 따라서 예를 들어 파일시스템에 대해 블록 기반이 아니라, 파일 기반이고,
e) 현존하는 운영 체제 설치의 추가의 설비로서 전개되거나 네트워크 기기로서 패키징될 수 있다.
더욱이, 본 발명은 예를 들어 데이터베이스 및 특히 객체 데이터베이스, 키 값 저장부, 몇몇 네트워크 프로토콜 및 몇몇 공유된 데이터 시스템과 같은 이들의 1차 인터페이스로서 실제 저장 리소스 위의 더 고레벨 추상화를 제공하는 파일시스템 이외의 데이터 저장 시스템을 위해 이들 특징을 제공하는 것이 가능하다.
본 발명의 장점 및 결과의 고레벨 상세가 이제 설명되었고, 당 기술 분야의 숙련자가 발명을 실시하는 것을 가능하게 하기 위한 바람직한 시스템 및 방법이 이제 본 발명의 바람직한 실시예가 도시되어 있는 도 5를 특히 참조하여 설명될 것이다. 도 5에는, 컴퓨터 시스템 상의 애플리케이션(510)에 대한 인터페이스를 제시하고 인터셉팅 시스템(560)과 통신하는 파일시스템(540)이 도시되어 있다. 인터셉팅 시스템(560)은 본 발명에 따른 캐시 계층화된 저장 시스템을 제공하는데 사용되는 다양한 데이터 저장 디바이스(590) 사이에서 이동하는 데이터를 인터셉트하기 위해 정책 모듈(570)로부터 명령에 작용한다. 데이터 변환 엔진(580) 및 데이터 저장 인터페이스(585)는 이하에 설명되는 바와 같이, 인터셉팅 시스템(560) 또는 파일시스템(540)에 의해 데이터에 동작을 실행하기에 앞서 데이터를 프로세싱하도록 제공된다.
파일시스템
본 발명은 파일시스템(540)의 사용을 필요로 한다. 파일시스템(540), 이들의 일반적인 특징 및 기능은 운영 체제/애플리케이션과 데이터 저장 시스템 사이의 인터페이스인 것으로 당 기술 분야에 공지되어 있다. 파일시스템(540)은 바람직하게는 애플리케이션이 수정되지 않고 사용이 가능한 애플리케이션으로의 파일시스템 인터페이스를 제시한다. 이 방식으로, 파일시스템(540)은 최적화된 방식으로 본 발명의 교시의 장점을 취하고 사용하는 신규한 유형의 파일시스템일 수 있고, 현존하는 파일시스템의 수정된 버전일 수 있고, 또는 현존하는 파일시스템의 확장된 버전일 수 있다. 각각의 경우에, 완전한 파일시스템 기능성이 유지되어 데이터가 파일시스템 내에 저장될 수 있게 되지만, 선택 정책에 일치하는 파일시스템 동작은 이들 파일시스템 동작을 인터셉팅 시스템(560)이라 명명된 모듈에 재지향시킴으로써 종래의 파일시스템 동작과는 상이하게 프로세싱된다. 현존하는 파일시스템의 경우에, 인터셉팅 시스템(560)으로의 이 재지향을 구현하기 위한 일 특정 시스템 및 방법은 그 내용이 본 명세서에 참조로서 포함되어 있는 발명의 명칭이 "데이터 저장 시스템 기능을 확장하기 위한 시스템 및 방법(System and Method For Extending Data Storage System Function)"인 본 출원인의 공동 계류중인 PCT 출원 번호 PCT/CA2011/050114호에 개시되어 있다.
파일시스템 인터페이스를 제공하지 않는 데이터 저장 시스템에 대해, 본 발명은 이 데이터 저장 시스템의 바람직한 인터페이스를 제공할 수 있고, 동일한 원리가 파일시스템에 대해 행해진 바와 같이 다른 데이터 저장 시스템에 대한 데이터 흐름을 수정하는 것과 유사한 방식으로 적용될 수 있다.
인터셉팅 시스템
본 발명의 추가된 기능성의 구현에 의해 일반적인 파일시스템 기능성을 확장하기 위해, 인터셉팅 시스템(560)이 제공된다. 인터셉팅 시스템(560)은 파일시스템 동작을 적절하게 인터셉트하고 이들 동작이 파일시스템 자체의 외부로 투명하게 프로세싱될 수 있게 하도록 적용된다. 선택적으로, 인터셉팅 시스템(560)은 파일시스템 자체의 확장자일 수 있고, 또는 인터셉팅 시스템(560)은 내장 운영 체제 기능성을 사용함으로써 제공될 수 있고, 또는 이는 다른 방식으로, 예를 들어 당 기술 분야에서 현재 입수 가능한 상업 제품을 통해 제공될 수 있다. 본 발명은 인터셉팅 시스템(560)의 특정 구현예에 한정되는 것은 아니다.
본 발명에 있어서, 인터셉팅 시스템(560)은 정책에 따라 데이터 저장 시스템 내의 입력/출력 동작을 분리하도록 제공되어, 하나의 세트의 동작이 데이터 저장 시스템에 대해 일반적인 것으로서 처리되고 다른 세트는 인터셉팅 시스템에 의해 정책에 따라 해석되게 된다. 이 방식으로, 데이터 저장 시스템은 그 원래 기능성을 유지하여, (a) 인터셉팅 시스템(560)의 동작이 그 시맨틱이 유지되기 때문에 데이터 저장 시스템의 사용자에게 일반적으로 투명하게 하고, (b) 데이터 저장 시스템의 시맨틱이 인터셉팅 시스템에 의해 확장되게 하고, (c) 데이터 저장 시스템 자체가 그 정책을 구현하는데 있어서 인터셉팅 시스템에 의해 리소스로서 사용 가능하게 한다.
본 발명은 본 발명의 일반적인 특성 및 교시로부터 벗어나지 않고 상기 기능성으로부터 변형 및 이탈을 고려한다. 예를 들어, 콘텍스트(데이터 다형성)에 따라 상이하게 나타나는 데이터를 포함하는 정책을 구현하는 경우에, 데이터 저장 시스템의 시맨틱이 보유되지 않을 수도 있고, 인터셉팅 시스템에 의해 덮어쓰기될 수도 있다. 이는 또한 상기 (b)에 따라 파일 시스템 시맨틱을 확장하는 일 방식이다.
상기 (c)와 관련하여, 정책은 특정 파일이 암호화되어야 하지만, 그렇지 않으면 이들이 암호화되지 않는 경우와 동일한 파일시스템 상에 동일한 방식으로 저장될 수 있고 또는 인터셉팅 시스템이 그 작업을 지원하기 위해 파일시스템 상에 데이터베이스를 유지할 수 있고 또는 파일시스템이 모든 메타데이터에 대해 책임을 유지할 수 있고, 인터셉팅 시스템은 본 발명의 바람직한 실시예에서와 같이 일부 또는 전체 데이터에 대한 책임을 떠맡는 것을 지정할 수 있다는 것이 고려된다.
따라서, 인터셉팅 시스템(560)은 응용 레벨로 제시되는 계층화된 캐시 저장 장치의 기초 구조와 파일시스템(540) 사이의 인터페이스를 제공한다. 파일시스템 자체는 예를 들어 메타데이터가 데이터 완전성을 보장하기 위해 분산형 캐시 및 로크 관리를 제공하는 파일시스템과 물리적으로 분산될 수 있게 하기 위한 복잡한 혼성 파일시스템일 수 있다는 것이 주목되어야 한다.
설명된 바와 같은 인터셉팅 시스템에 의해, 데이터 저장 시스템의 사용자 가시적 편성은 인터셉팅 시스템이 어떻게 데이터를 배치하는지에 상관 없이 명백하게 변경되지 않는다. 이는 전술된 바와 같이, 상이한 저장 디바이스의 투명한 통합을 제공하는 문제점에 대한 일 해결책이다. 그러나, 저장 디바이스의 상이한 특성 및 종류가 제공되면, 사용자 경험은 또한 인터셉팅 시스템에 의해 행해질 수 있는 데이터 배치의 선택의 성능 특성에 의해 영향을 받는다. 이 문제점을 해결하는 통상의 방법은 캐싱에 의한 것이고, 데이터를 임의의 장소에 배치하는 인터셉팅 시스템의 능력이 제공되면, 본 발명은 사용자 및 이들의 애플리케이션에 대한 성능의 최적화를 지원하기 위해 전술된 바와 같이 캐시 계층화 저장 모델을 적용한다.
정책
본 발명은 또한 정책 모듈(570)을 제공하고, 또는 대안적으로 정책은 인터셉팅 시스템 내에 내장되거나 파일시스템의 확장자로서 제공될 수 있다. 정책 및 그 실행은 바람직하게는 본 발명의 모든 다른 주요 모듈의 동작을 지시한다. 정책 모듈은 바람직하게는 정책 저장 기능 및 사용자 인터페이스 기능을 포함한다.
일반적으로, 정책은 데이터의 저장 및 프로세싱이 실행되는 동작 또는 특정 규칙과 연관된 콘텍스트 패턴이다. 예를 들어, ".avi" 확장자를 갖고 1 메가바이트보다 큰 임의의 파일에 대해 커널 파일 캐시를 통해 파일을 버퍼링하지 않고 또는 허용된 작업 시간의 외측의 파일 데이터에 액세스하는 임의의 사용자 "조(Joe)"에 대해 동작을 실행하지 않고 또는 항상 새로운 데이터를 "오프사이트 저장 장치(offsite storage)"라 명명된 데이터 저장부에 복제하고 또는 이 동작이 완료되게 하기 위해 불충분한 공간이 존재하면 "클라우드 저장 장치" 상의 저장 장치를 사용하는 정책이 제공될 수 있다. 이들 예는 단지 정책을 통해 적용될 수 있는 광범위한 규칙을 예시하기 위해 제공된 것이다. 다양한 다른 정책이 본 발명의 교시를 적용하는데 있어서 정책 모듈(570)에 의해 구현될 수 있다.
선택적으로, 이들 정책을 정책 모듈(570)에 통신하기 위한 사용자 인터페이스가 제공될 수 있다. 이는 예를 들어 현존하는 컴퓨터 시스템과 본 발명에 따른 계층화된 캐시를 먼저 통합할 때 실행되는 애플리케이션일 수 있고, 또는 대안적으로 본 발명의 관리자에 액세스 가능한 애플리케이션일 수 있다. 정책 모듈(570)과 관련하여, 패턴은 정책 모듈(570)이 동작을 실행하고 또는 본 발명의 임의의 다른 요소에 의한 동작의 실행을 위해 배열되는 것에 응답하여 데이터의 관찰, 요구된 작용 또는 상태로서 정의된다. 본 발명의 다른 요소의 각각과 정책 모듈(570)의 상호 작용이 이하에 설명된다.
정책은 정책 모듈(570)에 의해 어느 파일시스템 동작이 인터셉팅 시스템(540)이 인터셉트하는지와, 일단 인터셉팅되면 이들 동작으로 무엇을 할것인지를 제어한다. 인터셉션은 콘텍스트가 인터셉팅 시스템(540)에 이용 가능하기 때문에 콘텍스트 패턴에 정합함으로써 제어된다. 콘텍스트는 파일시스템이 애플리케이션에 의해 개시된 특정 동작에 관하여 이를 이용 가능하게 하는 임의의 정보로서 본 명세서에 더 광범위하게 정의된다. 이 정보의 예는 이들에 한정되는 것은 아니지만, (a) 동작을 요구하는 프로세스의 아이덴티티, (b) 동작을 요구하는 프로세스의 소유자의 아이덴티티, (c) 수반된 파일의 명칭, (d) 요구된 동작, (d) 요구된 동작의 파라미터, (e) 이들에 한정되는 것은 아니지만, 크기, 생성 날짜/시간, 최종 수정 시간을 포함하는 동작에 수반된 파일의 개별 속성, (f) 날짜 및 시간, 시스템 상태, 시스템 리소스 사용량 등과 같은 일반적인 콘텍스트 정보, (g) 애플리케이션이 로컬인지 원격인지 여부 및 (h) 파일이 로컬인지 원격인지 여부를 포함한다. 설명은 정책 및 정책 모듈에 상호 교환 가능한 것을 칭한다. 실제로, 정책은 정책 모듈에 의해 수행되거나 전달되는 임의의 명령의 세트이다.
인터셉팅 시스템(540)은 정책 모듈(570)로부터 정책을 채택하는 것에 응답하여, 3개의 동작, 즉 (i) 인터셉팅된 동작을 데이터 변환 엔진(580)에 전달하고 무엇이 파일시스템에 전달되는지를 데이터 변환 엔진에 의해 고지되는 것을 대기하고, (ii) 인터셉팅된 동작이 발생되는 것(가능하게는 상태 변화 또는 로깅 기능의 부분으로서)을 주지하고, (iii) 인터셉팅된 동작을 변경하고 파일시스템 내에 즉시 이를 전달하는 것 중 하나를 취할 수 있다. 정책 모듈(570)은 일단 특정 콘텍스트 패턴을 인식하면 무엇을 할것인지를 인터셉팅 시스템(540)에 명령하도록 적용된다.
정책 모듈은 전술된 바와 같이 상이한 저장 리소스 상의 상이한 캐시 계층 내에 데이터를 적응적으로 저장하기 위해 전술된 계층화된 캐시 모델을 구현하는 규칙을 포함한다.
데이터 변환 엔진
정책은 바람직하게는 데이터 변환 엔진(580)의 부분을 형성하거나 또는 그와 통신하는 기능 모듈의 세트가 제공되면 어떻게 각각의 인터셉팅된 동작이 프로세싱되는지를 정확하게 결정한다. 선택적으로, 정책은 또한 동일한 작용이 콘텍스트에 기초하여 상이한 특정 방식으로 수행될 수 있도록 기능 모듈을 위한 파라미터를 제공한다. 데이터 변환 엔진(580)은 바람직하게는 파일시스템의 동작 흐름의 외부의 정책을 실행하는 책임이 있다. 그 상세가 이하에 설명되는 데이터 저장 인터페이스(585)는 본 발명의 계층화된 캐시 편성을 제공하는데 사용되는 데이터 변환 엔진(580)과 데이터 저장 리소스 사이의 인터페이스를 제공한다.
본 발명에 따르면, 정책 모듈은 데이터 저장 레벨이 제공되면 입력/출력 동작을 수행하는데 사용된 알고리즘과 데이터 변환 엔진(580)에 의해 사용된 바와 같은 데이터 저장 레벨을 연관시킨다.
데이터 변환 엔진(580)은 바람직하게는 프로세싱 명령의 세트로 각각의 정책 동작을 위해 조립된 다수의 기능 모듈을 포함한다. 간단한 동작이 각각의 기능 모듈에 대해 1 입력 및 1 출력을 갖고 배열된 기능 모듈의 원시 세트에 의해 표현될 수 있다. 따라서, 가장 간단한 유형의 데이터 변환 엔진(580)은 고정 정책을 갖고, 따라서 하나의 입력 및 하나의 출력을 각각 갖는 서로에 대한 고정 접속을 갖는 기능 모듈을 사용한다. 실제로, 기능 모듈은 하위 레벨 모듈이 실행되기 전 및 후의 모두에 동작을 수행하는 것이 실제로 가능해야 하고, 따라서 개념적인 단일 입력 단일 출력 모듈은 실제로 2개의 입력 및 2개의 출력을 가져 예를 들어 데이터 변환 엔진(580) 내의 각각의 기능 모듈 사이의 반복 상호 작용을 허용한다.
데이터 변환 엔진(580)의 역할은 이 프로세싱 흐름을 통해 인터셉팅된 동작을 송신하고, 인터셉팅 시스템(540)이 파일시스템 및 이를 사용하는 애플리케이션에 인터셉팅된 동작을 투명하게 프로세싱하는 그 책임을 적절하게 충족할 수 있도록 인터셉팅 시스템(540)에 정보를 반환하는 것이다. 기능 모듈은 본 발명의 특정 가시적 기능성을 제공하도록 생성된다. 본 발명과 특정 관련하여, 기능 모듈은 캐시 계층화 모델에 구체적으로 관련되지만, 다른 기능 모듈은 또한 부가의 기능성을 제공하기 위해 이 레벨에서 구현될 수 있다.
도 9를 참조하면, 이하의 모듈이 바람직하게 본 발명에 따른 캐시 계층화를 구현하기 위해 제공된다.
판독 캐싱 모듈(905)이 데이터가 존재하는 최고 캐시 계층을 발견하고 데이터를 검색하도록 판독 동작을 실행하기 위해 제공될 수 있다. 데이터가 최고 계층에서 캐시되지 않으면, 판독 캐싱 모듈(805)은 기록 캐싱 모듈에 의해 실행될 기록 동작을 이 특정 데이터에 대한 최고 캐시 계층으로 큐잉할 수 있다.
기록 캐싱 모듈(910)이 기록 동작을 수행하도록, 예를 들어 최고 캐시 계층에 데이터를 기록하고 캐시 계층으로 또는 베이스 계층으로 다음 레벨 아래로 기록을 큐잉할 수 있다. 상이한 캐시 레벨에 저장되는 특정 데이터에 관련하는 데이터 저장 규칙은 바람직하게는 정책에 의해 지시된다.
암호화 모듈(915)이 기록 동작을 위한 데이터를 암호화하고 판독 동작을 위한 데이터를 복호화하도록 제공될 수 있다. 암호화의 방법 또는 유형은 본 발명에 의해 한정되는 것은 아니고, 따라서 임의의 유형의 암호화 모듈 및/또는 방법이 사용될 수 있다.
무결성 모듈(920)이 데이터 상의 콘텐트 해시 또는 체크섬을 계산하고 이를 메타데이터 내에 저장된 값에 비교하고 판독 동작에 대한 에러에 적절한 동작을 취하고, 또는 대안적으로 기록 동작에 대해 데이터 상에 콘텐트 해시 또는 체크섬을 계산하고 메타데이터 내에 값을 저장하도록 제공될 수 있다.
기록 동작의 실행시에, 기록이 이와 같이 지정되는(예를 들어, 클라우드 저장 장치) 데이터 저장부에 진행하면 기록을 중복 제거하도록 - 즉, 데이터 저장부에 미리 존재하지 않는 경우에만 데이터를 기록하도록 하는 중복 제거 모듈(925)이 제공될 수 있다.
저장 리소스 상의 불충분한 데이터 공간으로의 실패된 기록의 관찰시에 상이한 저장 리소스로 기록 동작을 재지향하기 위해 오버플로우 모듈(930)이 제공된다. 본 발명의 경우에, 이는 바람직하게는 오버플로우 계층으로의 재지향이다.
이들 모듈의 각각은 예를 들어 콘텐트 해시 또는 체크섬의 특정 선택에서, 오버플로우를 위한 대안적인 데이터 저장부에서, 암호화 메커니즘의 선택에서 등과 같은 활성 정책에 의해 파라미터화된다는 것이 당 기술 분야의 숙련자들에 의해 이해될 수 있을 것이다. 정책의 상세는 본 발명에 의해 한정되지 않고, 오히려 본 명세서에 정의된 계층화된 캐시 시스템의 환경에서 이러한 모듈의 배열에 의해 한정된다. 더욱이, 이들 모듈은 큐잉된 기록의 완료, 캐시의 유지 및 선점 또는 예측 계산의 수행과 같은 동작을 실행하는 헬퍼 프로세스 및/또는 스레드가 제공될 수 있다. 기능 모듈은 또한 이들을 통해 흐르는 데이터 및 동작에 관한 그 자신의 공유된 메타데이터로의 액세스를 가질 수 있고, 이 메타데이터는 파일시스템 내에 또는 데이터베이스 또는 소정의 다른 공유된 데이터 구조 내에 저장될 수 있다.
기능 모듈은 파일시스템을 통한 동작 흐름에 영향을 미치기 위해 인터셉팅 시스템을 사용하는 것이 또한 가능하다. 예를 들어, 암호화 모듈은 단지 전달되는 데이터 상에 그 디폴트 암호화 작용을 수행하도록 파일시스템에 요구함으로써 동작할 수도 있다. 복제, 압축, 버전화, 명칭 가상화, 일반적 데이터 가상화, 데이터 다형성 및 다수의 다른 것들을 포함하는 다른 기능이 이 아키텍처로 가능하다.
데이터 저장 인터페이스
데이터 저장 인터페이스(585)는 본 명세서에 설명된 바와 같이 상이한 계층화된 캐시 레벨 상에서 사용된 기초 저장 리소스와 데이터 변환 엔진(580) 사이의 동작 인터페이스로서 작용하는데 있어서 2개의 1차 동작을 바람직하게 실행하도록 제공된다.
먼저, 데이터 저장 인터페이스(585)는 데이터 저장 리소스의 각각이 데이터 변환 엔진에 균일하게 나타나도록 추상화 기능성을 수행한다. 다음에, 데이터 저장 인터페이스는 정책에 의해 지시된 바와 같이 데이터 변환 엔진(580)에 의해 요구된 바와 같은 입력/출력 동작을 혼성 동작으로 변환하기 위한 풀링 기능성을 제공한다.
데이터 저장 메커니즘의 추상화는 저장 리소스, 이 경우에 데이터 변환 엔진(580) 및 그 기능 모듈을 사용하여 요소의 논리를 간단화하기 위해 다수의 기본적으로 유사하지만 구체적으로 상이한 데이터 저장 시스템 또는 저장 리소스를 취급하는 방법이다.
추상화 프로세스를 구현하는 다양한 방법이 가능하지만, 바람직한 실시예에 따르면, 기본 저장 장치 추상화 모델은 키 값 저장부이다. 데이터의 특정 단편이 특정 키(명칭 또는 라벨)를 갖고 저장되어, 동일한 키를 데이터 저장부에 제공함으로써 검색될 수 있게 된다. 예를 들어, 디스크 상에 저장된 데이터 블록은 특정 위치(그 키)에 저장되고, 이후에 동일한 방식으로 또는 디스크의 다른 시맨틱을 사용함으로써(이 키는 연속적인 공간을 형성하고, 상이한 크기의 데이터 블록이 이 키 공간 내에 중첩됨) 검색된다. 다른 예는 클라우드 저장 장치이고, 이는 통상적으로 기본 키 값 저장 인터페이스를 제시한다. 본 발명은 데이터 저장부로서 파일시스템을 지원하고 파일시스템 내에서 이전에 저장된 값의 서브세트를 지정하는 능력이 있기 때문에, 본 발명의 바람직한 실시예는 데이터 변환 엔진(580)에 제시된 추상화로서 파일 인터페이스 모델을 사용한다. 이 추상화에서, 데이터의 특정 단편은 특정 키 및 위치(및 암시적으로 데이터의 크기)를 갖고 저장되고, 각각의 키에 대해 전형적인 파일(또는 상기 예에서와 같이 디스크) 시맨틱은 위치 정보 및 중첩 데이터에 대해 적용된다. 이는 추상화 내로의 파일 시스템의 간단한 통합을 허용하지만, 이를 대응적으로 클라우드 저장 장치 및 다른 유사한 키 값 저장부에 통합을 용이하게 하는 구현예에서 키 값 저장 추상화를 일 레이어 감소로 용이하게 맵핑한다.
본 발명은 사용을 위한 데이터 저장 시스템 또는 저장 리소스가 할당되기 때문에, 다수의 더 많은 원시 데이터 저장 시스템 또는 저장 리소스의 사용을 행하는 혼합 데이터 저장부를 생성할 수 있는 것이 유용하다. 이러한 혼성 저장 리소스의 매우 광범위한 예는 RAID 어레이이고, 이는 단일 혼성 가상 디스크 내에 다수의 원시 독립 디스크를 집합한다. 본 발명은 저장 리소스 풀링 메커니즘을 통해 이를 성취한다.
본 발명에 있어서, 데이터 저장 시스템 및 저장 리소스는 분류되고(어느 종류의 저장 장치인지, 어떻게 그와 통신하는지), 파라미터화되고(단지 이것만을 많이 사용하고, 그 위의 이 장소에, 이들 자격 증명서를 갖고), 라벨링된다(이 명칭을 제공함: "..."). 이들은 디폴트될 수 있어, 사용자 인터페이스 내에 노출된 것이 그 완성도 레벨에 필요하지 않게 된다. 본 발명은 비제로 세트의 다른 데이터 저장 시스템, 저장 리소스 또는 다른 풀링된 저장 장치의 견지에서 정책에 의해 규정되는 풀링된 저장 장치 및 본 명세서에서 복제 회수라 칭하는 지속적인 것으로 고려되기 전에 기록 동작을 확인해야 하는 최소 수의 세트의 요소인 수의 생성을 허용하지만, 이는 필수적인 것은 아니다.
이 구조는 min-OR 트리라 칭한다. 도 6 및 도 7은 노드 내에 도시된 복제 회수(단지 내부 노드에 관련됨)를 갖는 min-OR 트리를 도시한다. 이러한 구조는 RAID 레벨을 사용하여 전통적으로 행해졌던 것에 유사한 다수의 데이터 저장 및 데이터 중복성 정책을 표현하는데 사용될 수 있다. 예를 들어, 도 6의 구조는 자식 노드 중 임의의 하나로의 기록이 성공할 때 루트 노드로의 기록 동작이 성공적인 4-방향 RAID0 구성에 유사하다. 자식 노드 내의 데이터 배치를 위한 3개의 정량적으로 상이한 시맨틱이 복제 회수 요구를 충족하기 위해 본 발명에 의해 고려된다.
랜덤 배치: 데이터는 자식 노드 상에 본질적으로 랜덤하게 배치된다.
순서화된 배치: 데이터는 오버플로우 보호를 제공하는 방법인 노드의 순서화된 시퀀스(예를 들어, "최좌측")로 배치된다.
알고리즘 배치: 데이터는 예를 들어 패킹(노드를 채우려고 시도하는), 마모 균등화(모든 레벨을 동일한 충전 레벨로 유지하려고 시도하는), 부하 인식(모든 노드를 동등하게 비지 상태로 유지하려고 시도하는), 높은 이용 가능성(유효성/비용 기능을 최대화하려고 시도하는), 에너지(에너지 사용을 최소화하려고 시도하는), 친화성(무엇인가에 "가까운" 노드를 사용하려고 시도하는), 서버(바람직한 서버에 연결된 노드를 사용하려고 시도하는) 및 토폴로지(서로 가까운 노드를 사용하려고 시도하는)와 같은 특정 동작 또는 파라미터를 최적화하기 위해 외부 정보를 사용하는 알고리즘에 따라 배치된다.
다른 예는 2개의 레벨을 포함하는 구성을 도시하는 도 7에 도시된 것이고, 2개의 레벨 중 상위 레벨은 3-방향 RAID1 미러로서 작용하고(실제 상황에서, 이는 "나의 고속 로컬 저장 장치, 나의 저속 사이트 아카이브 및 원격 통합 클라우드 아카이브에 모든 것을 기록"에 대응할 수 있음), 자식 노드 중 하나는 자체로 2개의 노드가 고장인 경우에(RAID6이라 칭하는 표준에 부합함) 생존성을 생성하는 "이들 5개의 노드 중 임의의 3개에 기록"에서와 같이 복제를 사용하여 생성된 중복 구성이다.
본 발명은 아무것도 없는 것(즉, 단지 간단한 저장 리소스)을 포함하여 임의의 수의 이 구조의 레벨을 지원할 수 있고, 구조의 각각의 노드는 독립적으로 복잡한 데이터 저장 시스템 또는 저장 리소스일 수 있다.
중복성은 복제에 의해 제공되기 때문에, 활성 노드를 제거하는 것은 부모 노드의 복제 정책이 자식 노드들 사이에 데이터를 정확하게 복사함으로써 유지되는 것을 보장하는 것으로 이루어진다. 따라서, 데이터가 min-OR 저장 트리 상에 모든 동작을 성취하는 것을 돕도록 저장되는 레코드를 갖는 개별적으로 유지된 메타데이터가 존재한다. 복제 회수가 1이면, 자식 노드를 제거하는 것은 통지 없이 비파괴적으로 행해질 수 없지만, 통지에 의해 자식에 고유한 데이터는 제거 또는 실패에 앞서 다른 노드로 복사될 수 있다. 시맨틱은 데이터가 상이한 자식 노드 상에 적어도 복제 회수가 존재해야 하도록 규정되지만, 고도의 복제가 항상 허용된다는 것을 주목하라.
이 방식으로 생성된 저장 구조는 섹터 대응성을 유지하지 않음으로써(RAID1의 경우에), 중복성을 위한 패리티를 사용하지 않음으로써(RAID6의 경우에), 그리고 스트립핑을 위한 고정 블록을 사용하지 않음으로써(RAID0의 경우에) 전통적인 RAID 구현예(정의되지는 않았지만)와는 상이지만, 기능성은 본 발명을 수행하기 위해 적용된다.
이 바람직한 풀링 메커니즘은 강력하고 일정한 복제 모델을 제공하고, 다수의 전통적인 RAID 레벨에 기능적으로 동등하고, 복잡한 저장 정책의 용이한 표현을 허용하고, 저장 리소스의 대형 풀의 간단한 관리를 허용하기 때문에 유용하다.
예를 들어, 디스크로 래크를 채우고, 본 발명에 따른 계층 내에 저장 리소스로서 사용을 위해 이들 모두를 선언하고, 복제 회수(예에서 4)로 설정하는 원하는 중복성 레벨("3개의 디스크의 동시 고장에 생존함")을 지정할 수 있고, 데이터 저장 인터페이스는 이 정책에 따라 데이터 변환 엔진을 위한 데이터를 저장하고 검색하는 것을 관리할 수 있다.
스펙트럼의 대향 단부에서, 사소한 min-OR 트리는 디스크 또는 파일시스템과 같은 단일 원시 노드이다. 전통적인 RAID 구현예(내부 노드에 최소-패리티 복제 파라미터를 추가함으로써) 또는 다른 콘텐트 분산 방법(예를 들어, "리드-솔로몬 분산")과 같은 복제형 파라미터를 추가함으로써)을 정확하게 시뮬레이팅하기 위해 min-OR 트리를 확장함으로써 풀링 개념을 확장하는 것이 가능하다.
본 발명의 다양한 수정이 이어지는 청구범위에 규정된 본 발명의 사상 및 범주로부터 벗어나지 않고 고려된다. 다양한 단계 및 컴퓨터 부품이 본 명세서에 사용되지만, 명시적으로 한정되지 않거나 본 명세서에 달리 규정되지 않으면 당 기술 분야에 알려진 바와 같이 이들은 이들의 일반적인 한정이 제공된다.
전술된 실시예는 본 발명의 예인 것으로 의도되고, 변경 및 수정이 첨부된 청구범위에 의해서만 규정되는 본 발명의 범주로부터 벗어나지 않고 당 기술 분야의 숙련자들에 의해 실시될 수 있다.
20: 컴퓨터 시스템 24: 중앙 프로세싱 유닛(CPU)
28: 랜덤 액세스 메모리(RAM) 32: 입력/출력(I/O) 인터페이스
36: 네트워크 인터페이스 40: 비휘발성 저장 장치
200: 컴퓨터 230: 클라우드
240: 파일시스템 300: 컴퓨터
400: 컴퓨터 410: 캐시 계층
420: 베이스 계층 430: 오버플로우 계층
510: 애플리케이션 540: 파일시스템
560: 인터셉팅 시스템 570: 정책
580: 데이터 변환 엔진 585: 데이터 저장 인터페이스

Claims (56)

  1. 컴퓨터 시스템에서 실행하는 애플리케이션에 의한 검색을 위한 데이터를 저장하는 방법에 있어서,
    a. 적어도 하나의 캐시 계층 및 베이스 계층을 포함하는 계층화된 캐싱 시스템을 제공하는 단계와,
    b. 상기 베이스 계층에 데이터를 저장하고, 데이터의 카테고리에 대해 사용될 계층의 스택을 지정하는 정책에 기초하여 복수의 캐시 계층 중 하나 이상에 상기 데이터를 캐싱(caching)하는 단계 - 더 상위 레벨의 캐시 계층이 더 하위 레벨의 캐시 계층 상에 데이터를 캐싱함 - 와,
    c. 데이터를 편성하기 위한 수단에 의해 애플리케이션에 상기 데이터의 애플리케이션 뷰를 제시하는 단계 - 상기 데이터를 편성하기 위한 수단은 복수의 캐시 계층 및 상기 베이스 계층의 각각을 위한 메타데이터 정보를 포함하고, 사용되는 저장 디바이스에 애그노스틱(agnostic)함 - 와,
    d. 인터셉팅 시스템에 의해 상기 데이터를 편성하기 위한 수단에 독립적으로 수행되거나 프로세싱될 데이터 동작을 편성하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 캐시 계층 및 상기 베이스 계층의 각각은 상이한 저장 리소스 상에 배열되고, 또한 상기 데이터를 편성하기 위한 수단은 상기 상이한 저장 리소스의 각각에 대한 메타데이터 정보를 포함하는
    방법.
  3. 제 2 항에 있어서,
    적어도 하나의 오버플로우 계층을 제공하는 단계를 더 포함하되, 상기 오버플로우 계층은 상기 적어도 하나의 캐시 계층 및 상기 베이스 계층의 각각과는 상이한 저장 리소스 상에 배열되고, 상기 데이터를 편성하기 위한 수단은 상기 오버플로우 계층에 대한 메타데이터 정보를 포함하는
    방법.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 캐시 계층은 복수의 계층화된 캐시 계층을 포함하는
    방법.
  5. 제 4 항에 있어서,
    상기 복수의 캐시 계층은 고체 상태 드라이브 상에 각각 제공되고, 상기 베이스 계층은 하드 디스크 드라이브 상에 제공되고, 상기 오버플로우 계층은 클라우드 저장 장치 리소스 상에 제공되는
    방법.
  6. 제 5 항에 있어서,
    상기 데이터를 편성하기 위한 수단은 상기 하드 디스크 드라이브 상에 저장되는
    방법.
  7. 제 5 항에 있어서,
    상기 베이스 계층 상에 상기 데이터를 저장하고 상기 복수의 캐시 계층 중 하나 이상에 상기 데이터를 캐싱하는 단계를 더 포함하되,
    더 상위 레벨의 캐시 계층이 더 하위 레벨의 캐시 계층 상에 데이터를 캐싱하는
    방법.
  8. 제 7 항에 있어서,
    각각의 캐시 계층 레벨은 2개 이상의 저장 리소스를 포함하는
    방법.
  9. 제 1 항에 있어서,
    상기 데이터를 편성하기 위한 수단은 사용되는 특정 저장 디바이스에 애그노스틱(agnostic)한
    방법.
  10. 삭제
  11. 제 1 항에 있어서,
    상기 동작의 적어도 일부가 상기 인터셉팅 시스템에 의해 인터셉트되고 상기 정책에 따라 프로세싱되도록 상기 정책에 따른 입력/출력 동작을 분리하는 단계를 더 포함하는
    방법.
  12. 제 1 항에 있어서,
    상기 정책은 정책 모듈에 의해 제공되는
    방법.
  13. 제 12 항에 있어서,
    상기 정책 모듈은 상기 인터셉팅 시스템과 일체인
    방법.
  14. 제 12 항에 있어서,
    상기 정책 모듈은 상기 데이터를 편성하기 위한 수단과 일체인
    방법.
  15. 제 1 항에 있어서,
    상기 편성하는 단계는, (a) 저장 리소스와 상기 인터셉팅 시스템 사이에 제공된 데이터 변환 엔진에 인터셉트된 동작을 전달하는 단계와, (b) 인터셉트된 동작의 완료를 로깅(logging)하는 단계와, (c) 인터셉트된 동작을 변경하고 이를 상기 데이터를 편성하기 위한 수단으로 전달하는 단계 중 하나를 더 포함하는
    방법.
  16. 제 1 항에 있어서,
    상기 인터셉팅 시스템과 상기 저장 리소스 사이에 데이터 변환 엔진을 제공하는 단계를 더 포함하는
    방법.
  17. 제 16 항에 있어서,
    상기 데이터를 편성하기 위한 수단의 외부에서 정책을 실행하는 단계를 더 포함하되, 상기 정책을 실행하는 단계는 상기 데이터 변환 엔진에 의해 수행되는
    방법.
  18. 제 16 항에 있어서,
    상기 데이터 변환 엔진은 데이터가 존재하는 최고 캐시 계층을 발견하고 상기 데이터를 검색하기 위해 판독 동작을 실행하는 판독 캐싱 모듈을 더 포함하는
    방법.
  19. 제 16 항에 있어서,
    상기 데이터 변환 엔진은 상이한 캐시 계층 레벨로 기록 동작을 수행하는 기록 캐싱 모듈을 더 포함하는
    방법.
  20. 제 16 항에 있어서,
    상기 데이터 변환 엔진은 상기 데이터를 편성하기 위한 수단을 통해 상기 데이터가 통과하기 전에 데이터를 암호화하고 복호화하는 암호화 모듈을 더 포함하는
    방법.
  21. 제 16 항에 있어서,
    상기 데이터 변환 엔진은 상기 데이터의 특성을 메타데이터 정보 내에 저장된 것과 비교하는 무결성 모듈(integrity module)을 더 포함하는
    방법.
  22. 제 16 항에 있어서,
    상기 데이터 변환 엔진은 중복 제거 단계를 실행하는 중복 제거 모듈(a de-duplication module)을 더 포함하는
    방법.
  23. 제 19 항에 있어서,
    상기 데이터 변환 엔진은 실패한 기록 동작에 응답하여 오버플로우 캐시 계층에 데이터를 기록하는 오버플로우 모듈을 더 포함하는
    방법.
  24. 제 16 항에 있어서,
    상기 저장 리소스와 상기 데이터 변환 엔진 사이에 동작 인터페이스를 제공하는 데이터 저장 인터페이스를 제공하는 단계를 더 포함하는
    방법.
  25. 제 24 항에 있어서,
    각각의 데이터 저장 리소스가 상기 데이터 변환 엔진에 균일하게 나타나도록 데이터 저장 리소스 정보를 추상화하는(abstracting) 단계를 더 포함하는
    방법.
  26. 제 24 항에 있어서,
    적어도 2개 이상의 데이터 저장 리소스를 풀링하는(pooling) 단계를 더 포함하는
    방법.
  27. 제 4 항에 있어서,
    상기 복수의 캐시 계층은 운영 체제 파일 버퍼 캐시를 포함하는
    방법.
  28. 제 1 항에 있어서,
    상기 데이터를 편성하기 위한 수단은 파일시스템을 포함하는
    방법.
  29. 제 1 항에 있어서,
    상기 데이터를 편성하기 위한 수단은 객체 데이터베이스, 키 값 저장부, 네트워크 프로토콜 및 공유된 데이터 시스템을 포함하는 그룹으로부터 선택되는
    방법.
  30. 컴퓨터 시스템에서 실행하는 애플리케이션에 의한 검색을 위한 데이터를 저장하는 시스템에 있어서,
    a. 적어도 하나의 캐시 계층 및 베이스 계층을 포함하는 계층화된 캐싱 시스템 - 상기 데이터는 정책에 기초하여 상기 적어도 하나의 캐시 계층과 상기 베이스 계층 중 적어도 하나에 저장됨 - 과,
    b. 상기 데이터의 애플리케이션 뷰를 애플리케이션에 제시하기 위한 데이터를 편성하기 위한 수단 - 상기 데이터를 편성하기 위한 수단은 복수의 캐시 계층 및 상기 베이스 계층의 각각을 위한 메타데이터 정보를 포함하고, 사용되는 저장 디바이스에 애그노스틱함 - 과,
    c. 상기 데이터를 편성하기 위한 수단에 독립적으로 수행되거나 프로세싱될 데이터를 편성하기 위한 수단의 동작을 인터셉트하기 위한 인터셉팅 시스템을 포함하는
    시스템.
  31. 제 30 항에 있어서,
    상기 적어도 하나의 캐시 계층 및 상기 베이스 계층의 각각은 상이한 저장 리소스 상에 배열되고, 또한 상기 데이터를 편성하기 위한 수단은 상기 상이한 저장 리소스의 각각에 대한 메타데이터 정보를 포함하는
    시스템.
  32. 제 31 항에 있어서,
    적어도 하나의 오버플로우 계층을 더 포함하되, 상기 오버플로우 계층은 상기 적어도 하나의 캐시 계층 및 상기 베이스 계층의 각각과는 상이한 저장 리소스 상에 배열되고, 상기 데이터를 편성하기 위한 수단은 상기 오버플로우 계층에 대한 메타데이터 정보를 포함하는
    시스템.
  33. 제 32 항에 있어서,
    상기 적어도 하나의 캐시 계층은 복수의 계층화된 캐시 계층을 포함하는
    시스템.
  34. 제 33 항에 있어서,
    상기 복수의 캐시 계층은 고체 상태 드라이브 상에 각각 제공되고, 상기 베이스 계층은 하드 디스크 드라이브 상에 제공되고, 상기 오버플로우 계층은 클라우드 저장 장치 리소스 상에 제공되는
    시스템.
  35. 제 34 항에 있어서,
    상기 데이터를 편성하기 위한 수단은 상기 하드 디스크 드라이브 상에 저장되는
    시스템.
  36. 제 34 항에 있어서,
    상기 데이터는 상기 베이스 계층 상에 저장되고 상기 복수의 캐시 계층 중 하나 이상에 캐싱되고, 더 상위 레벨의 캐시 계층이 더 하위 레벨의 캐시 계층 상에 데이터를 캐싱하는
    시스템.
  37. 제 36 항에 있어서,
    각각의 캐시 계층 레벨은 2개 이상의 저장 리소스를 포함하는
    시스템.
  38. 제 30 항에 있어서,
    상기 데이터를 편성하기 위한 수단은 사용되는 특정 저장 디바이스에 애그노스틱한
    시스템.
  39. 삭제
  40. 제 30 항에 있어서,
    상기 인터셉팅 시스템은 상기 동작의 적어도 일부가 상기 인터셉팅 시스템에 의해 인터셉트되고 상기 정책에 따라 프로세싱되도록 상기 정책에 따른 입력/출력 동작을 분리하도록 구성되는
    시스템.
  41. 제 30 항에 있어서,
    상기 정책을 제공하는 정책 모듈을 더 포함하는
    시스템.
  42. 제 41 항에 있어서,
    상기 정책 모듈은 상기 인터셉팅 시스템과 일체인
    시스템.
  43. 제 41 항에 있어서,
    상기 정책 모듈은 상기 데이터를 편성하기 위한 수단과 일체인
    시스템.
  44. 제 40 항에 있어서,
    상기 인터셉팅 시스템은, (a) 저장 리소스와 상기 인터셉팅 시스템 사이에 제공된 데이터 변환 엔진에 인터셉트된 동작을 전달하는 수단과, (b) 인터셉트된 동작의 완료를 로깅하기 위한 수단과, (c) 인터셉트된 동작을 변경하고 이를 상기 데이터를 편성하기 위한 수단으로 전달하는 수단 중 적어도 하나를 포함하는
    시스템.
  45. 제 40 항에 있어서,
    상기 인터셉팅 시스템과 상기 저장 리소스 사이에 데이터 변환 엔진을 더 포함하는
    시스템.
  46. 제 45 항에 있어서,
    상기 데이터 변환 엔진은 데이터가 존재하는 최고 캐시 계층을 발견하고 상기 데이터를 검색하기 위해 판독 동작을 실행하는 판독 캐싱 모듈을 더 포함하는
    시스템.
  47. 제 45 항에 있어서,
    상기 데이터 변환 엔진은 상이한 캐시 계층 레벨로 기록 동작을 수행하는 기록 캐싱 모듈을 더 포함하는
    시스템.
  48. 제 45 항에 있어서,
    상기 데이터 변환 엔진은 상기 데이터를 편성하기 위한 수단을 통해 상기 데이터가 통과하기 전에 데이터를 암호화하고 복호화하기 위한 암호화 모듈을 더 포함하는
    시스템.
  49. 제 45 항에 있어서,
    상기 데이터 변환 엔진은 상기 데이터의 특성을 메타데이터 정보 내에 저장된 것과 비교하는 무결성 모듈을 더 포함하는
    시스템.
  50. 제 45 항에 있어서,
    상기 데이터 변환 엔진은 중복 제거 단계를 실행하는 중복 제거 모듈을 더 포함하는
    시스템.
  51. 제 48 항에 있어서,
    상기 데이터 변환 엔진은 실패한 기록 동작에 응답하여 오버플로우 캐시 계층에 데이터를 기록하는 오버플로우 모듈을 더 포함하는
    시스템.
  52. 제 45 항에 있어서,
    상기 저장 리소스와 상기 데이터 변환 엔진 사이에 동작 인터페이스를 제공하는 데이터 저장 인터페이스를 더 포함하는
    시스템.
  53. 제 45 항에 있어서,
    각각의 데이터 저장 리소스는 상기 데이터 변환 엔진에 균일하게 나타나는
    시스템.
  54. 제 30 항에 있어서,
    적어도 2개 이상의 데이터 저장 리소스가 풀링되는(pooled)
    시스템.
  55. 제 33 항에 있어서,
    상기 복수의 캐시 계층은 운영 체제 파일 버퍼 캐시를 포함하는
    시스템.
  56. 제 30 항에 있어서,
    상기 데이터를 편성하기 위한 수단은 객체 데이터베이스, 키 값 저장부, 네트워크 프로토콜 및 공유된 데이터 시스템을 포함하는 그룹으로부터 선택되는
    시스템.
KR20137007533A 2010-08-25 2011-08-24 캐시 계층화를 위한 방법 및 시스템 KR101482518B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37701810P 2010-08-25 2010-08-25
US61/377,018 2010-08-25
PCT/CA2011/050515 WO2012024801A1 (en) 2010-08-25 2011-08-24 Method and system for cache tiering

Publications (2)

Publication Number Publication Date
KR20130105842A KR20130105842A (ko) 2013-09-26
KR101482518B1 true KR101482518B1 (ko) 2015-01-14

Family

ID=45722796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20137007533A KR101482518B1 (ko) 2010-08-25 2011-08-24 캐시 계층화를 위한 방법 및 시스템

Country Status (7)

Country Link
US (1) US9864685B2 (ko)
EP (1) EP2609510A4 (ko)
JP (1) JP5620581B2 (ko)
KR (1) KR101482518B1 (ko)
CN (1) CN103493024B (ko)
AU (1) AU2011293015B2 (ko)
WO (1) WO2012024801A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542466B2 (en) * 2012-05-10 2017-01-10 Aetherstore Inc. Systems and methods for distributed storage
CN102833331B (zh) * 2012-08-21 2015-06-10 北京邦诺存储科技有限公司 云存储系统及其元数据写入方法、元数据读取方法
US9239784B1 (en) * 2013-06-05 2016-01-19 Amazon Technologies, Inc. Systems and methods for memory management
US9811531B2 (en) * 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US10747475B2 (en) 2013-08-26 2020-08-18 Vmware, Inc. Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US10541053B2 (en) 2013-09-05 2020-01-21 Optum360, LLCq Automated clinical indicator recognition with natural language processing
US10552931B2 (en) * 2013-09-05 2020-02-04 Optum360, Llc Automated clinical indicator recognition with natural language processing
US10257274B2 (en) 2014-09-15 2019-04-09 Foundation for Research and Technology—Hellas (FORTH) Tiered heterogeneous fast layer shared storage substrate apparatuses, methods, and systems
US9830091B2 (en) * 2015-02-20 2017-11-28 Netapp, Inc. Policy-based data tiering using a cloud architecture
JP2016170729A (ja) 2015-03-13 2016-09-23 株式会社東芝 メモリシステム
CN106484691B (zh) 2015-08-24 2019-12-10 阿里巴巴集团控股有限公司 移动终端的数据存储方法和装置
EP3270371B1 (en) * 2016-07-12 2022-09-07 NXP USA, Inc. Method and apparatus for managing graphics layers within a graphics display component
US10536522B2 (en) * 2018-04-30 2020-01-14 EMC IP Holding Company LLC Data storage system with LUN archiving to cloud using volume-to-object translation
US20230224153A1 (en) * 2022-01-13 2023-07-13 Dell Products L.P. Dynamic cryptographic key management for cached data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100092590A (ko) * 2009-02-13 2010-08-23 (주)인디링스 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
CN101027668B (zh) * 2004-07-21 2012-01-04 海滩无极限有限公司 基于块映射表缓冲存储和虚拟文件系统的可堆叠文件系统模块的分布式存储结构
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
US7631155B1 (en) * 2007-06-30 2009-12-08 Emc Corporation Thin provisioning of a file system and an iSCSI LUN through a common mechanism
US9390102B2 (en) * 2008-09-29 2016-07-12 Oracle International Corporation Client application program interface for network-attached storage system
US8397016B2 (en) * 2008-12-31 2013-03-12 Violin Memory, Inc. Efficient use of hybrid media in cache architectures
US8893050B2 (en) * 2009-01-12 2014-11-18 International Business Machines Corporation Assembly and output of user-defined groupings
US9355109B2 (en) * 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
US20130346672A1 (en) * 2012-06-22 2013-12-26 Microsoft Corporation Multi-Tiered Cache with Storage Medium Awareness

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100092590A (ko) * 2009-02-13 2010-08-23 (주)인디링스 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템

Also Published As

Publication number Publication date
CN103493024A (zh) 2014-01-01
EP2609510A1 (en) 2013-07-03
US9864685B2 (en) 2018-01-09
JP2013536515A (ja) 2013-09-19
KR20130105842A (ko) 2013-09-26
EP2609510A4 (en) 2015-01-21
CN103493024B (zh) 2018-07-10
AU2011293015A1 (en) 2013-03-21
WO2012024801A1 (en) 2012-03-01
AU2011293015B2 (en) 2015-05-21
JP5620581B2 (ja) 2014-11-05
US20140304473A1 (en) 2014-10-09

Similar Documents

Publication Publication Date Title
KR101482518B1 (ko) 캐시 계층화를 위한 방법 및 시스템
JP7053682B2 (ja) データベーステナントマイグレーションのシステム及び方法
US11954220B2 (en) Data protection for container storage
US11995336B2 (en) Bucket views
US12001688B2 (en) Utilizing data views to optimize secure data access in a storage system
WO2019231634A1 (en) Mechanism for updating host file system and flash translation layer based on underlying nand technology
US20210349657A1 (en) Providing data management as-a-service
JP2014517952A (ja) ストレージシステムにおける信頼性に基づいたデータ割り当てと復旧
US20140074834A1 (en) Storage Block Metadata Tagger
US20210055885A1 (en) Enhanced data access using composite data views
US11675503B1 (en) Role-based data access
US20220253225A1 (en) Protecting Sensitive Data In Snapshots
US20220317912A1 (en) Non-Disruptively Moving A Storage Fleet Control Plane
US10725971B2 (en) Consistent hashing configurations supporting multi-site replication
KR101510025B1 (ko) 데이터 저장 시스템 기능을 확장하는 방법 및 시스템
WO2022066865A1 (en) Bucket versioning snapshots
US8631215B1 (en) Provisioning different types of write once, read many states
US11829631B2 (en) Protection of objects in an object-based storage system
US20230195539A1 (en) Meta Orchestrator for Containerized Application Deployment Across Clusters
US20230195373A1 (en) Containerized Application Deployment Across Clusters
ONEFS A Technical Overview
JP2024521617A (ja) サービスとしてのストレージのためのロールエンフォースメント
CN117616378A (zh) 在分区式驱动器存储系统中高效地写入数据
Bach et al. Storage Layout

Legal Events

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