KR102226017B1 - 동적으로 입도를 업데이트하는 적응적 캐시 대체 매니저 및 공유 플래시-기반 스토리지 시스템의 파티셔닝 방법 - Google Patents

동적으로 입도를 업데이트하는 적응적 캐시 대체 매니저 및 공유 플래시-기반 스토리지 시스템의 파티셔닝 방법 Download PDF

Info

Publication number
KR102226017B1
KR102226017B1 KR1020170086593A KR20170086593A KR102226017B1 KR 102226017 B1 KR102226017 B1 KR 102226017B1 KR 1020170086593 A KR1020170086593 A KR 1020170086593A KR 20170086593 A KR20170086593 A KR 20170086593A KR 102226017 B1 KR102226017 B1 KR 102226017B1
Authority
KR
South Korea
Prior art keywords
acrm
virtual machines
solid
temporal
adjusting
Prior art date
Application number
KR1020170086593A
Other languages
English (en)
Other versions
KR20180027327A (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 KR20180027327A publication Critical patent/KR20180027327A/ko
Application granted granted Critical
Publication of KR102226017B1 publication Critical patent/KR102226017B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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
    • 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
    • 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0643Management of files
    • 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
    • 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/0673Single storage device
    • G06F3/068Hybrid storage device
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

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)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

가상화 파일 시스템의 동작과 연관된 시간적 및 공간적 입도(Granularity)를 조정하는 방법은, 상기 가상화된 파일 시스템과 연관된 복수의 가상 머신들의 이전 워크로드를 분석하는 단계, 그리고 상기 시간적 및 공간적 입도를 상기 이전 워크로드에 대응하는 데이터 셋의 평균 재접근 시간적 및 공간적 거리와 유사하게 조정하는 단계를 포함한다.

Description

동적으로 입도를 업데이트하는 적응적 캐시 대체 매니저 및 공유 플래시-기반 스토리지 시스템의 파티셔닝 방법{ADAPTIVE CACHING REPLACEMENT MANAGER WITH DYNAMIC UPDATING GRANULATES AND PARTITIONS FOR SHARED FLASH-BASED STORAGE SYSTEM}
본 발명은 가상화된 파일 시스템에서 디스크 할당을 효율을 높이기향상시키기 위한 시스템 및 방법에 관련된 것이다.
가변/이종 입출력(IO) 요구를 갖는 물리적 서버에서 가상 머신들(VMs)을 운영하는 공유된 가상 스토리지 시스템에서, 하이퍼바이저 호스트가 복수의 가상 머신들(VMs) 중에서 솔리드-스테이트 드라이브(SSD)의 자원을 효율적 비용비용 효율적으로 파티션분할하고 할당하는 것은 하이퍼바이저 호스트에게 어려운 작업이울 수 있다. 예를 들면, 하드 디스크 드라이브(HDD) 스토리지 풀의 캐시로 사용될 때, SSD에 대응하는 입출력의 히트율(Hit ratio)은 받아들이기용납하기 어려울 정도로 낮고, SSD-HDD의 입출력의 업데이트 비용은 방받아들이기 어려울 정도로 높다.
게다가, 통상종래의 기술에서 입출력 인기도(IO popularity)의 분포는 상대적으로 고정되어 있고, 그런 까닭에 따라서 입출력 인기도는 시간에 따라 급격하게 변하지 않는다. 따라서, 통상종래의 기술에서는 운영 비용을 저렴하게 유지하기 위해 단순히 SSD-HDD 업데이트에 지연적이고 비동기적인 접근을 사용하는 것은 운영 비용을 저렴하게 유지하기에 충분하다을 전제로 한다.
통상종래의 기술의 접근 방식은 공간적 입도(예를 들면, SSD와 HDD 간의 데이터 블록의 배치를 업데이트하기 위한 마이그레이션 단위의들의 사이즈크기를로서 1MB로 하는)를 고정하고, 또한 시간적 입출력 업데이트 입도(예를 들면, 업데이트 주기기간으로 5분의 타임 주기로 하는 기간)를 고정하는 것이다. 하지만, 가상 머신들의 워크로드가 빈번하게 변하거나, 가상화된 파일 시스템에서 연집(Bursty) 입출력들/입출력 요청들이 때때로 연집적(Bursty)으로 발생할 때에는 시간적 및 공간적 입도를 고정하는 것은 SSD 리소스들의 이점을 충분히 활용될할 수 없다.
본 발명은 가상화된 파일 시스템에서 디스크 할당 성능을 향상시킬 수 시스템 및 방법을 제공하는데 있다.
본 발명의 실시 예의 특징양상들은 가상화 된 파일 시스템에서 디스크 할당을 향상시키는 시스템 및 방법에 관한 것이다.
본 발명의 실시 예에 따르면, 가상화된 파일 시스템의 동작과 연관된 시간적 및 공간적 입도(Granularity)를 조정하는 방법이 제공되며, 이 방법은, 상기 가상화된 파일 시스템과 연관된 복수의 가상 머신들의 이전 워크로드를 분석하는 단계, 그리고 상기 시간적 및 공간적 입도를 상기 이전 워크로드에 대응하는 데이터 셋의 평균 재접근 시간적 및 공간적 거리와 유사하게 조정하는 단계를 포함한다.
이 실시 예에서, 상기 가상 머신들의 각 가상 머신 디스크에 대해 상기 가상화된 파일 시스템의 솔리드-스테이트 드라이브 내의 파티션 사이즈를 조정하는 단계를 더 포함한다.
이 실시 예에서, 각 가상 머신 디스크의 입출력(IO) 변화를 검출하는 단계를 더 포함하되, 상기 파티션 사이즈를 조정하는 단계는 상기 검출된 입출력(IO) 변화에 기반한다.
이 실시 예에서, 상기 시간적 및 공간적 입도를 조정하는 단계는, 상기 가상화된 파일 시스템의 캐시로 사용되는 솔리드-스테이트 드라이브의 콘텐츠를 업데이트하기 위한 워크로드 모니터 슬라이딩 윈도우의 시간 간격을 조정하는 단계를 포함한다.
이 실시 예에서, 상기 복수의 가상 머신들의 이전 워크로드들을 분석하는 단계는, 상기 워크로드 모니터 슬라이딩 윈도우의 종단끝에서 발생한다.
이 실시 예에서, 상기 시간적 및 공간적 입도를 조정하는 단계는, 상기 가상화된 파일 시스템의 솔리드-스테이트 드라이브 또는 하드 디스크 드라이브로부터 복구된 데이터의 양에 대응하는 프리패치 빈 사이즈(Prepatch bin size)를 조정하는 단계를 포함한다.
이 실시 예에서, 상기 시간적 및 공간적 입도를 조정하는 단계는, 상기 이전 워크로드들에 기초하여 캐시 사이즈 또는 각각의 가상 머신들의 에포크 업데이트 주파수를 조정하는 단계를 포함한다.
이 실시 예에서, 상기 조정된 시간적 및 공간적 입도에 근거하여 가장 최근 시간의 데이터를 프리패치함으로써 상기 가상화된 파일 시스템의 캐시로 사용되는 솔리드-스테이트 드라이브를 업데이트하는 단계를 더 포함한다.
이 실시 예에서, 상기 이전 워크로드들에 기초하여 로드 밸런싱, 웨어 레벨링, 디스크 헬스 모니터링, 그리고 디스크 제거/교체를 수행하는 단계를 더 포함한다.
이 실시 예에서, 상기 가상 머신을 서브-파티션들로 분리하는 단계; 그리고 상기 솔리드-스테이트 드라이브들의 웨어 레벨의 균형을 위해 복수의 솔리드-스테이트 드라이브의 어레이에 상기 서브-파니션들을 할당하는 단계를 더 포함하다.
본 발명의 실시 예에 따라 제공되는 가상화된 파일 시스템은, 복수의 가상 머신들, 하나 또는 그 이상의 하드 디스크 드라이브들, 상기 하나 또는 그 이상의 하드 디스크 드라이브들의 캐시로 제공되는 솔리드-스테이트 드라이브, 메모리, 그리고 상기 메모리와 연결되며, 상기 가상화된 파일 시스템과 연관된 복수의 가상 머신들의 이전 워크로드들을 분석하고, 그리고 상기 이전 워크로드들에 대응하는 데이터 셋들의 평균 재접근 시간적 및 공간적 거리와 유사하게 시간적 및 공간적 입도를 조정하는 소프트웨어 컴포넌트를 실행하는 프로세서를 포함한다.
이 실시 예에서, 상기 소프트웨어 컴포넌트는 상기 가상 머신들의 가상 머신 디스크 각각의 상기 솔리드-스테이트 드라이브 내의 파티션 사이즈를 조정한다.
이 실시 예에서, 상기 소프트웨어 컴포넌트는, 가상 머신 디스크 각각의 입출력(IO) 변화를 검출하고, 상기 검출된 입출력(IO) 변화에 기반하여 상기 파티션 사이즈를 조정한다.
이 실시 예에서, 상기 소프트웨어 컴포넌트는, 상기 가상화된 파일 시스템의 캐시로 사용되는 솔리드-스테이트 드라이브의 콘텐츠를 업데이트하기 위한 워크로드 모니터 슬라이딩 윈도우의 시간 간격을 조정한다.
이 실시 예에서, 상기 소프트웨어 컴포넌트는, 상기 가상화된 파일 시스템의 솔리드-스테이트 드라이브 또는 하드 디스크 드라이브로부터 복구된 데이터의 양에 대응하는 프리패치 빈 사이즈를 조정함으로써 상기 시간적 및 공간적 입도를 조정한다.
이 실시 예에서, 상기 소프트웨어 컴포넌트는, 캐시 사이즈 또는 상기 이전 워크로드들에 기초하여 각각의 가상 머신들의 에포크 업데이트 주파수를 조정함으로써 상기 시간적 및 공간적 입도를 조정한다.
이 실시 예에서, 상기 조정된 시간적 및 공간적 입도에 근거하여 가장 최근 시간의 데이터를 프리패치함으로써 상기 가상화된 파일 시스템의 캐시로 사용되는 솔리드-스테이트 드라이브를 업데이트한다.
이 실시 예에서, 상기 소프트웨어 컴포넌트는 상기 이전 워크로드들에 기초하여 로드 밸런싱, 웨어 레벨링, 디스크 헬스 모니터링, 그리고 디스크 제거/교체를 수행한다.
이 실시 예에서, 상가 소프트웨어 컴포넌트는, 상기 가상 머신들을 서브-파티션들로 분리하고, 상기 솔리드-스테이트 드라이브들의 소모성 균형을 위해 복수의 솔리드-스테이트 드라이브의 어레이에 상기 서브-파니션들을 할당한다.
본 발명의 실시 예에 따르면, 가상화된 파일 시스템의 동작과 연관된 시간적 및 공간적 입도(Granularity)를 조정하는 방법은, 상기 가상화된 파일 시스템의 복수의 가상 머신들에 대응하는 워크로드 모니터 슬라이딩 윈도우의 종단끝에 도달했는지 결정하는 단계, 상기 가상 머신들 각각의 프리패치 입도, 캐시 사이즈, 그리고 콘텐츠 업데이트 에포크 슬라이딩 윈도우의 업데이트 주파수 중 하나 또는 그 이상을 업데이트하는 단계, 상기 가상 머신들 중 하나에 대응하는 콘텐츠 업데이트 에포크 슬라이딩 윈도우의 종단끝에 도달했는지 결정하는 단계, 그리고 상기 가상 머신들 중 하나에 대응하는 콘텐츠를 업데이트하는 단계를 포함한다.
입출력 요청과 관련된 시간적 및 공간적 입도를 동적으로 조정함으로써 가상화된 파일 시스템에서 디스크 할당 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 적응형 캐시 교체 매니저(adaptive caching replacement manager: ACRM) 가상 머신 공유 스토리지 시스템의 시스템 아키텍쳐를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 ACRM에 의해서 수행되는 SSD-HDD 갱신 절차를 보여주는 예이다.
도 3은 본 발명의 실시 예에 따른 ACRM의 주요 순서작업 도이다흐름의 예이다.
도 4는 본 발명의 실시 예에 따른 주어진 타임라인 동안의 워크로드 모니터 슬라이딩 윈도우(workload monitor sliding window) "Sw"와 콘텐츠 업데이트 에포크 슬라이딩 윈도우(content update sliding window) "Sc" 간의 비교를 보여주는 도면이다.
도 5는 입출력(IO) 요청 사이즈크기 및 캐시 라인 사이즈크기의를 보여주는 예를 보여주고이고, 도 6은 프리패치 입도의를 보여주는 도면예이다.
도 7은 본 발명의 실시 예에 따른 업데이트 트리의 순서도를작업 흐름을 보여주고, 도 8은 본 발명의 실시 예에 따른 빈들의 재사용 거리의 예를 보여준다.
도 9는 본 발명의 실시 예에 따른 ACRM 메인 프레임워크와 ACRM 스토리지 모니터 데몬을 포함하는 ACRM의 블록도이다.
도 10은 본 발명의 실시 예에 따른 스토리지 모니터 데몬이 활성화된 ACRM 및 스토리지 모니터 데몬을 갖지 않은 ACRM 모두를 사용한 콘텐츠 업데이트 및 웨어 레벨링 과정의 비교를 보여준다.
여기의 게시되는 본 발명의 실시 예들의 특징양상들은 가상화된 파일 시스템에서 입출력 요청과 연관된 시간적 및 공간적 입도를 동적으로 조정함으로써 가상화된 파일 시스템에서 디스크 할당을 효율을 높이기 향상 시키기 위한 시스템과 방법들로 제공될 에 관한 것이다.
본 발명의 특징, 그리고 그것을 달성하는 방법은 실시 예의 상세한 설명 및 첨부 된 도면들을 참조하면 명확해질 것이다. 이하, 예시적인 실시 예들은 유사한 참조 번호들은 유사한 구성 요소들을 지칭하는 첨부 도면을 참조하여 상세히 설명될 것이다. 그러나 본 발명은 여러 가지 다양한 형태로 구현 될 수 있고, 본 명세서에서 단지 예시 된 실시 예에 한정되는 것은 아니다. 오히려, 이러한 실시 예들은 이 개시가 철저하고 완전하게 되기 위한 예로서 제공되며, 당업자에게 본 발명의 특징 및 기능을 완전하게 전달할 것이다. 따라서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명의 특징 및 기능을 완벽하게 이해하기 위해 필요하지 않은 프로세스, 요소들, 및 기술들은 설명되지 않을 수 있다. 특별히 언급하지 않는 한, 유사한동일한 참조 번호들은 첨부된 도면들 및 쓰여진 설명에서 유사한동일한 구성요소들을 나타내고, 따라서 그것에 대한 설명은 반복되지 않을 것이다. 도면에서, 구성 요소, 층 및 영역들의 상대적인 크기는 명확성을 위해 과장될 수 있다.
비록 여기에서 제 1, 제 2, 제3 등의 용어들은 다양한 요소들, 성분들, 영역들, 층들 그리고/또는 섹션들을 설명하기 위해 사용되지만, 이러한 요소들, 성분들, 영역들, 층들 그리고/또는 섹션들은 이러한 용어들로 인해 제한되지 않는 것으로 이해될 것이다. 이러한 용어들은 다른 요소, 성분, 영역, 층, 또는 섹션으로부터 하나의 요소, 구성, 영역, 층 또는 섹션을 구별하기 위해 사용된다. 따라서, 후술하는 제 1 구성 요소, 성분, 영역, 층, 또는 섹션은 본 발명의 사상 및 범위를 벗어나지 않고, 제 2 구성 요소, 성분, 영역, 층, 또는 섹션을 지칭 할 수 있다.
하나의 요소 또는 도면에서 도시된 다른 구성 요소(들) 또는 특징(들)과의 특징적인 관계를 설명하기 위한 설명을 용이하게 하기 위해 "아래의", "아래", "낮은", "특정 부분 아래", "위에", "상부"와 같은 공간적이고 상대적인 용어들이 여기에서 사용될 수 있다. 공간적이고 상대적인 용어들은 도면에서 묘사된 방향에 더해 사용 또는 동작에서 장치의 다른 방향들을 포함하도록 의도된 것이 이해될 것이다. 예를 들면, 만약 도면의 장치가 뒤집어지면, 다른 구성 요소들 또는 특징들의 "아래" 또는 "아래의" 또는 "특정 부분 아래"로 설명된 구성요소들은 다른 구성 요소들 또는 특징들의 "위로" 맞춰지게 된다. 따라서, "아래의" 또는 "특정 부분 아래"의 예시적인 용어들은 위 또는 아래 방향 모두를 포함할 수 있다. 장치는 다르게 맞춰질 수 있으며(예를 들면, 90도 도는 다른 방향으로 회전됨) 그리고 공간적으로 상대적인 기술어들은 그에 따라 해석되어야 한다.
요소, 층, 영역, 또는 성분이 다른 요소, 층, 영역 또는 성분 "에", "에 연결된", "에 결합된" 것으로 언급되는 때, 그것은 다른 요소, 층, 영역, 또는 성분 "에 직접적으로", "에 직접적으로 연결된", "에 직접적으로 결합된"일 수 있거나, 하나 또는 그 이상의 사이의 요소들, 층들, 영역들, 또는 성분들이 존재할 수 있다. 또한, 요소 또는 층이 두 개의 요소들 또는 층들 사이로 언급되는 때, 그것은 단지 요소 또는 층이 두 요소들 또는 층들 사이에 있을 수 있거나, 또는 하나 또는 그 이상의 사이의 요소들 또는 층들이 또한 존재할 수 있다.
다음의 예들에서, x축, y축, 그리고 z축은 직각 좌표 시스템의 3가지 축들로 한정되지 않고, 넓은 의미로 해석될 수 있다. 예를 들어, x축, y축, 그리고 z축은 서로 직교할 수 있고, 또는 서로 직교하지 않은 다른 방향들을 나타낼 수 있다.
본 명세서에서 사용된 용어들은 단지 특정한 실시 예들을 설명하기 위한 것이고, 본 발명을 제한하려는 것으로 의도되지 않았다. 본 명세서에서 사용된 바와 같이, 문맥상 명백하게 다르게 뜻하지 않는 한, 단수 형태 "하나"는 복수의 형태도 포함하는 것으로 의도된다. "구성되는", "구성되고 있는", "포함하는", 그리고 "포함하고 있는" 용어들이 본 명세서에서 사용될 때, 이러한 용어들은 정해진 특징들, 정수들, 단계들, 동작들, 요소들, 그리고/또는 성분들이 존재를 명시하나, 하나 또는 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 성분들, 그리고/또는 그것들의 그룹들의 추가 또는 존재를 불가능하게 하지 않는다. 본 명세서에서 사용된 바와 같이, "그리고/또는" 용어는 하나 또는 그 이상의 열거된 항목들과 연관된 임의의 그리고 모든 조합들 포함한다. "적어도 하나"와 같은 표현들은 요소들 전체 리스트를 수정하고 그리고 리스트의 개별 요소들을 수정하지 않는다.
본 명세서에서 사용된 바와 같이, "대체로", "약" 용어 그리고 이와 유사한 용어들은 근사치의 용어들로서 사용되고, 정도의 용어들로서 사용되지 않고. 본 발명의 당업자에 의해 식별되는 측정된 또는 계산된 값들의 고유한 변동을 고려하기 위한 것이다. 또한, 본 발명의 실시 예들을 기술할 때 "할 수 있다"의 사용은 "본 발명의 하나 이상의 실시 예들"을 의미한다. 본 명세서에서 사용된 바와 같이, "사용", "사용되는", 그리고 "사용된" 용어들은 "이용”, "이용되는", 그리고 "이용된" 용어들의 동의어로 각각 간주 될 수 있다. 또한, "예시" 용어는 예 또는 그림을 의미한다.
특정 실시 예는 상이하게 구현 될 수 있는 경우, 특정 프로세스 순서는 설명 된 순서와 다르게 수행 될 수 있다. 예를 들면, 설명된 연속적인 두 개의 프로세서들은 동시에 대체적으로 수행되거나 설명된 순서와 반대 순서로 수행될 수도 있다.
본 명세서에서 기술된 본 발명의 실시 예에 따른 전자 또는 전기 장치들 그리고/또는 다른 임의의 관련된 장치들 또는 요소들은 임의의 적합한 하드웨어, 펌웨어(예를 들면, Application Specific Integrated Circuit; ASIC), 소프트웨어, 또는 소프트웨어, 펌웨어, 그리고 하드웨어의 조합을 이용하여 구현될 수 있다. 예를 들어, 이러한 장치들의 다양한 요소들은 하나의 집적 회로(Integrated Circuit; IC) 칩 또는 분리된 IC 칩들로 형성될 수 있다. 또한, 이러한 장치들의 다양한 요소들은 유연한 인쇄 회로 필름(Flexible Printed Circuit Film), TCP(Tape Carrier Package), 인쇄 회로 기판(Printed Circuit Board; PCB) 위에 구현되거나 하나의 기판 위에서 형성될 수 있다. 또한, 이러한 장치들의 다양한 요소들은 컴퓨터 프로그램 명령들을 실행하고 본 명세서에서 설명된 다양한 기능들을 수행하기 위한 다른 시스템 요소들과 상호 작용하는 하나 이상의 컴퓨팅 장치들에서 또는 하나 이상의 프로세서들에서 수행되는 프로세스 또는 스레드(Thread)일 수 있다. 컴퓨터 프로그램 명령들은 예를 들면 RAM(Random Access Memory)과 같은 표준 메모리 장치를 이용하는 컴퓨팅 장치에서 구현되는 메모리 내에 저장된다. 컴퓨터 프로그램 명령들은 또한 예를 들면 CD-ROM, 플래시 드라이브(Flash Drive), 또는 그와 같은 다른 일시적이지 않은 컴퓨터 읽기 가능한 미디어(Non-transitory Computer Readable Media)에 저장될 수도 있다. 또한, 본 발명의 당업자는 본 발명의 예시적인 실시 예들의 사상 및 범위를 벗어나지 않고 다양한 컴퓨팅 장치들의 기능은 단일 컴퓨팅 장치에 통합되거나 집적되고, 특정 컴퓨팅 장치의 기능이 하나 또는 그 이상의 다른 컴퓨팅 장치들에 분산될 수 있음을 인식해야 한다.
다르게 정의되지 않는 한, 본 명세서에서 사용된 모든 용어들(기술적 그리고 과학적 용어들을 포함하는)은 본 발명이 속한 기술 분야에서 당업자에 의해 일반적으로 이해되는 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 이러한 용어들은 본 명세서 그리고/또는 관련 기술의 문맥에서 그들의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의되지 않는 한 이상화되거나 지나지게 형식적인 감각으로 해석되지 않아야 한다.
도 1은 본 발명의 실시 예에 따른 적응형 캐시 교체 매니저(adaptive caching replacement manager: ACRM) 가상 머신 공유 스토리지 시스템의 시스템 아키텍처를 보여주는 블록도이다.
도 1을 참조하면, 상업적 클라우드 컴퓨팅 환경에서 가상화된 파일 시스템들은 상업적 클라우드 컴퓨팅 환경에서 기본적으로인 지원되는 기반 구조시설로 동작한다. 이러한 가상화된 파일 시스템에서, 각각의 가상 머신(VM)은 자신의 고유한 워크로드 패턴과 캐시 요구를 가지고 있지만, 물리적 서버 상에서 운영되는 복수의 가상 머신들(VMs, 110)은, 각각 고유한 워크로드 패턴과 캐시 요구를 가지고 있지만, 종종 상호간의 스토리지 서비스를 서로 공유한다. 따라서, 입출력 접근 성능을 높이고, 저전력 소모(예를 들면, 입출력 쓰루풋처리량을 증가시키고, 입출력 지연을 감소시킴으로써)를 달성하기 위해, 하나 또는 그 이상의 플래시 기반 솔리드-스테이트 드라이브(SSDs, 120)는 가상 파일 시스템(100) 내의 스토리지 풀 레벨(140)로 사용되는 의 하나 또는 그 이상의 하드 디스크 드라이브(HDDs, 130)에 대한 가상 머신 디스크 각각당(per-VMDK)의 2 계층(L2) 캐시로 배치될 수 있다.
가상 파일 시스템(100)은 하나 또는 그 이상의 물리적 서버에서 운영되는 4개의 가상 머신들(110a-110d)을 포함하는 하이버파이저 호스트 레벨(150)을 포함할 수 있다. 가상 머신들(110) 각각은 스토리지 풀 레벨(140)의 하드 디스크 드라이브(130)의 캐시로 사용되는 하나 또는 그 이상의 솔리드-스테이트 드라이브(120)뿐만 아니라, 하나 또는 그 이상의 하드 디스크 드라이브(130)를 포함하는 스토리지 풀 레벨(140)로의 접근을 공유한다. 가상 머신들(110)은 하이퍼바이저 호스트 레벨(150)에서 구동되며, 입출력 컨트롤러(160)는 입출력들/입출력 요청들을 최적화 하고 이들을 계층 매니저(170)를 통해 스토리지 풀 레벨(140)에게로 보낸다.로의 입출력/입출력 요청을 최적화 및 디스패치한다. 하이퍼바이저 호스트 레벨(150)에서 램(RAM, 180)은 계층 매니저(170)로부터 수신되는 입출력과 관련된 논리 및 물리 어드레스들을 저장하고 유지한다.
앞서 설명된 바와 같이, 일반적인 가상화된 파일 시스템들에서, 하이퍼바이저 호스트 레벨(150)이 공유 가상 머신 파일 시스템(190)을 사용하여 변화하는 입출력 요구를 갖는 복수의 가상 머신들(110) 중에서 솔리드-스테이트 드라이브(120)의 리소스를 비용-효율적으로 분할하고 할당하는 것은 쉽지 않다. 이것은 통상의 캐싱 알고리즘들은 이러한 가상 머신 환경에 적합하지 않은 사실에 기인할 수 있다.
예를 들면, SSD-HDD 업데이트 방식에서 업데이트의 입도는 일반적으로 고정되어 있고, 매우 작거나 세밀하여, 각각의 입출력 요청은 캐시로 사용되는 SSD(120) 내에 입출력 요청에 대응하는 정보가 이미 존재하는지 결정판별하기 위해 SSD(120)에 대한 검색을 요구한다. 그 후에, 계층 매니저(170)는 SSD(120)에서 발견된 정보를 스토리지 풀 레벨(140)의 하나 또는 그 이상의 HDD(130)의 스토리지에 전달하기 위하여 끌어불러올 것이다. 게다가, 하나 또는 그 이상의 가상 머신들(110)로부터 수신되는 정보는 SSD(120)에 캐시될 필요가 없을 때도 있다. 이러한 통상의 캐싱 알고리즘에 관련된 고유한 결과들은 가상화된 파일 시스템의 성능 저하를 야기시킬 수 있다.
더불어, 입출력 빈도인기의 분포는 일반적으로 시간에 따라 급격히 변화하지 않을 수 있으며, 따라서 지연적이고 및 비동기 SSD-HDD 업데이트를 위한 접근만으로도 동작 비용을 줄이거나 최소화하는데 충분할 수 있다. 하지만, SSD 자원의 이점을 충분히 사용하는 고정된 시간적 및 공간적 입도를 사용함으로써(예를 들면, SSD 120와 HDD 130 사이의 데이터 블록을 할당의의 배치를 업데이트를하기 위한 마이그레이션 유닛의 크기를으로 1MB 사용하고, 업데이트 주기기간으로 5분을 사용하는 경우함으로써)를 사용하는 것은 가상 머신(VM)의 워크로드를들이 빈번하게 변화시킬 수 있고될때, 또한 연집(bursty) 입출력이 때때로 발생때때로 발생할 때 SSD 자원의 이점이 충분히 활용될 수 있다. 하는 것을 야기할 수 있다.
[0055] 따라서, 본 발명의 실시 예에서는, 공유 가상 머신(VM) 시스템에서 SSD의 할당과 관련된 2가지의 주요 문제점들을 해결하기 위해 일반적으로 적응형 캐시 대체 매니저(adaptive caching replacement manager: 이하, ACRM)이라 불리는 새로운 시스템과 방법이 제공된다. 이들 2가지 문제들은 낮은 입출력 힛트율(IO hit ratio)와 높은 SSD-HDD의 입출력의 업데이트 비용이다. ACRM은 종래의 시스템과 달리, 가상 파일 시스템(100)의 동작과 관련된 시간적 및 공간적 입도의 조정할 수 있어, 수정할 수 있는 스마트 SSD-HDD 업데이트 방식을 제공함으로써 이들 문제점을 해결할 수 있다. 이것은, SSD-HDD의 갱신 입도를 최신 워크로드에서의 접근된 대부분의다수의 접근된 데이터 세트의 평균 재접근 시간적 및 공간적 거리들에 재접근 평균과 근접하도록게 SSD-HDD의 갱신 입도들을 일치시킴으로 가능하이루어질 수 있다. ACRM은 가상 장치의 사용자에게 투명하고, 또한, 각각의 가상 머신 디스크(VMDK)의 입출력 변화에 기초하여 SSD(120) 내부에 위치하는의 각각의 가상 머신 디스크(VMDK) 각각의 파티션 사이즈를 적응적으로 조정할 수 있는, 가상 기계머신(VM)당 동적 파티션 최적화 프레임워크를 사용할 수 있으며, 따라서, SSD의 리소스를 2차계층 캐시(L2 캐시)로써 충분히 사용할 수 있다. 따라서, ACRM은 SSD(120)의 입출력 히트율을 향상시킬 수 있고, SSD-HDD의 입출력 갱신 비용을 줄일 수 있다.
본 발명의 실시 예에 따른 ACRM은 SSD(120)와 HDD들(130)을 종래의 캐시 알고리즘과 관련된 시스템들처럼 빈번하게 업데이트하지 않는다. 대신, ACRM은 시간적 및 공간적 레벨 모두에서 "코스 입도(course granularity)"라 불리는 방식을 따른다. 예를 들면, 시간적 레벨에 있어서, ACRM은 SSD(120)의 콘텐츠를 업데이트하기 위해 시간 간격을 조정할 수 있다(즉, 콘텐츠의 업데이트 빈도를 조정할 수 있다). 공간적 레벨에 있어서, ACRM은 스토리지 풀 레벨(140)의 SSD(120)나 HDD들(130)에서 복구되는 데이터의 양에 대응하는 프리패치 사이즈/프리패치 빈 사이즈를 조정할 수 있다. ACRM은 각각의 가상 기계머신(110)의 워크로드의 변화에 기초하여 실행시간 동안 이러한 조정을 런타임으로 수행할 수 있다.
게다가, ACRM의 최적화 프레임워크가 시간적 및 공간적 입도를 위한 최상의 글로벌 솔루션을 제공할 수 있고, 반면에, 도 10에서 후술되겠지만, 공유되는 SSD(120)에서 가상 머신당 파티션에 대한 최상의 솔루션을 적응적으로 찾기 위해 가상 머신당 파티션 사이즈를 설명할 수 있도록ACRM은 진보된 수학을 사용하여 가상 파일 시스템(100)의 동작 절차를 조정하기 위한 정책을 발전시킬전략을 개발할 수 있으며다., 파티션 사이즈를 적응적으로 찾는데 최선의 솔루션을 제공할 수 있다. ACRM의 최적화 프레임워크는 가상 머신들(110)의 워크로드 변화를 모니터링하고, 각각의 입출력의 목적지를 업데이트하기 위해도록 결정하고, 또한 입출력 히트율을 향상시키기 위하여 HDD들(130)로부터 SSD(120)으로의 프리패치 동작을 업데이트하는도록 결정하는 계층 매니저(170)에서 구동운영될 수 있다.
서로 다른 목적에 적절한 멀티 타입다양한 유형의 슬라이딩 윈도우 및 입도를 사용함으로써, ACRM은 지연적 및 공격적 업데이트 모드, 그리고 프리패치 모드를간을 스위칭할 수 있어, 워크로드 패턴의 검출 정확도를 높일 수 있으며, 또한 동적 캐시 설정구성 조정의 효율을 높일 수 있다. 게다가, 워크로드의 입출력 패턴들에 대응하는 피드백, 추정된 캐시 성능, 그리고 SSD-HDD 프리패칭의 추정된 이득과 비용을 사용활용함으로써, ACRM에 의해서 제공되는 최적화 프레임워크는 리소스 할당에 있어서 정확한 결정을 할 수 있고, 따라서, 낮은 입출력 관리 비용으로 높은 입출력 히트율을 얻을 수 있다. 더불어, ACRM에 의해서 제공되는 최적화 프레임워크는 가상 파일 시스템(100)의 주어진 하드웨어 리소스에서 구동 가능한 운영중인 지원 가상 머신들(110)의 최대수를 증가시킬 수 있다.
비록, 스토리지 풀 레벨(140)이 SSD(120)와 HDD들(130)의 사용을 암시하가리키지만, ACRM은 임의 타입의 스토리지 장치를 사용하는 2-계층 스토리지 아키텍처와 양립할호환될 수 있음은 잘 이해될 것이다. 예를 들면, ACRM은 2-계층 스토리지의 캐시 계층으로 PCIe 또는 NVMe SSD(독립적 디스크(RAID)의 어레이를 포함하는)를 지원할 수 있고, 2-계층 스토리지의 디스크 계층으로 스핀형 HDD들(RAID 포함)을 지원할 수 있다. 게다가, ACRM은 도 9에서 상세히 설명되겠지만, 부하 균형, 웨어 레벨링, 디스크 헬스 모니터링, 그리고 디스크 제거/교체 동작을 위한행하는 스토리지 모니터 데몬(Daemon)을 가질 수 있다.
도 2는 본 발명의 실시 예에 따른 ACRM에 의해서 수행되는 SSD-HDD 갱신 절차를 보여주는 예이다.
도 2를 참조하면, ACRM은 각각의 에포크(220)의 시작시 SSD(120) 내의 가상 머신들(110) 각각의 콘텐츠를 업데이트할 수 있다. 본 발명의 실시 예에 따르면, 가상 머신들(110)에 대응하는 워크로드의 변화에 따라 에포크(220)의 길이가 가변한다. 가장 최근의 에포크(220)의 모든 가상 머신들(110)의 워크로드에 대한 통계 정보는, 아래에서 설명되겠지만, 램(180)에 저장되고, ACRM의 최적화 프레임워크는 캐시 사이즈 "C", 프리패치 입도/프리패치 사이즈 "b", 그리고 각 워크로드 모니터 슬라이딩 윈도우의 시작시점에 각각의 가상 머신들(110) 각각의 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 주파수를 결정한다결정하도록 구성되며 이는 아래에서 더 자세히 설명된다.
결정된 캐시 사이즈 "C", 프리패치 입도 "b", 에포크 업데이트 주파수 "Sc"에 근거하여, ACRM은 캐시로 사용되는 SSD(120)의 새로운 사이즈를 채우기도록 가장 최신 에포크(220) 내의 탑 블록/핫 빈(210)을 프리패치함으로써 SSD(120)를 업데이트한하도록 구성된다. 각 에포크(220)의 시작 시점에서 ACRM은 각 에포크(220)의 시작시점에SSD(120)와 HDD들(130)만을 업데이트하기 때문에, 에포크(220) 동안에 발생하는 모든 미스손실된 입출력들은 런타임실행시간 동안에 직접 HDD들(130)로 바이패스될 것이다. 게다가, ACRM은 각각의 에포크(220)의 시작 시점의에 SSD-HDD 업데이트 프로세스를 위한 단지 재기입 정책을 채택할 수 있다.
도 3은 본 발명의 실시 예에 따른 ACRM의 주요 순서도작업 흐름의 예이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 ACRM의 메인 순서주요 작업흐름도에서, 주기적으로 프리패치 입도 "b", 캐시 사이즈 "C", 그리고 시간적 입도에 대응하는 가상 머신(110) 각각의 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 갱신 주파수를 업데이트/조정(예를 들면, 20분간의 워크로드 모니터 슬라이딩 윈도우 "Sw"에 근거한 고정된 주파수로)하는 외부 루프와; 외부 루프에 의해서 결정되는 서로 다른 할당 설정구성을 갖는 가상 머신(110) 각각의 SSD(120)와 HDD(130)를 업데이트하는 내부 루프의 2개 루프가 존재한다. 프리패치 입도 "b"는 워크로드(즉, 모든 SSD-HDD 콘텐츠 업데이트 에포크(220)를 위한 HDD(130)로부터 SSD(120)로 프리패치되는 데이터의 사이즈)의 공간적 프리패치 입도(예를 들면, 바이트 단위)를 가리킨다. 더불어더욱이, 캐시 사이즈 "C"는 캐시(즉, SSD (120))의 전체 사이즈를 나타내고, 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 갱신 주파수는 시간적 입도에 대응한다.
S301에서, ACRM은 워크로드 모니터 슬라이딩 윈도우 "Sw"가 종단끝에 도달했는지 판단별한다. S302에서, 만일 워크로드 모니터 슬라이딩 윈도우 "Sw"가 종단끝에 도달했다면, S302에서, ACRM은 프리패치 입도 "b", 캐시 사이즈 "C", 그리고 가상 머신(110) 각각의 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 업데이트주파수를(예를 들면, 지연적 또는 공격 모드 사이의 스위칭을 위해) 주파수를 업데이트한다. S303에서, 업데이트 이후, S303에서, ACRM은 대응하는 가상 머신(110)이 존재하는지 판단별하며, 만일 존재하는 경우, ACRM은 S304에서 가상 머신(110)의 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 업데이트 주파수에 대응하는 슬라이딩 윈도우의가 종단에 도달했는지 판단한다. 가상 머신(110)의 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 업데이트 주파수에 대응하는 슬라이딩 윈도우의가 종단끝에 도달하면, ACRM은 S305에서 가상 머신(110)의 콘텐츠를 업데이트한다. 가상 머신(110)의 콘텐츠가 업데이트되면, S306에서 카운트가 증가하고, 후속하는 가상 머신(110)이 연속하여 업데이트되고, 그 이후에 절차는 S301로 복귀한다.
따라서, 가상 파일 시스템(100)에서 구동운영되는 가상 머신(110) 각각에 사용되는 두 가지 타입의 슬라이딩 윈도우가 ACRM에 의해서 사용된다. 슬라이딩 윈도우의 첫 번째 타입은 워크로드 모니터 슬라이딩 윈도우 "Sw"이다. 가상 머신(110) 각각은 워크로드 모니터 슬라이딩 윈도우 "Sw"를 갖는다. 각각의 가상 머신(110) 각각은 고정된 사이즈(예를 들면, 20분)의 워크로드 모니터 슬라이딩 윈도우 "Sw"를 갖고, 가상 머신(110) 각각의 입출력 동작을 언제 추적해야 하는지 결정하며, 또한 SSD-HDD 업데이트 주기(예를 들면즉, 콘텐츠 업데이트 에포크)를 결정한다.
슬라이딩 윈도우의 두 번째 타입은 앞서 설명한 상기 업데이트 주파수주기에 대응하는 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"이다. 가상 머신(110) 각각은, 최근 에포크(220)의 입출력 패턴에 근거하여 SSD(120)를 업데이트하기 위한 슬라이딩 윈도우고, "시간적 업데이트 입도(temporal update granularity)", "업데이트 주파수주기", 또는 "업데이트 에포크"로 불리는 해당 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"를 가진다. ACRM은 워크로드 모니터 슬라이딩 윈도우 "Sw"의 시작시 각각의 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"를 업데이트할 수 있고, 워크로드 모니터 슬라이딩 윈도우 "Sw" 내에서는 동일한 사이즈로를 유지시킬할 수 있다. 더불어, 워크로드 모니터 슬라이딩 윈도우 "Sw"의 시작시, ACRM은 가상 머신(110) 각각의 캐시 사이즈 "C", 시간적 업데이트 입도 "Sc", 그리고 공간적 업데이트 입도 "b"를 변경하기 위해 최적화 프레임워크를 구동시킬운영할 수 있다.
간략히 정리하면, ACRM은 프리패치 입도 "b"와 캐시 사이즈 "C"에 대응하는 공간적 입도를 동적으로 조정하고, 워크로드 모니터 슬라이딩 윈도우 "Sw"의 사이즈와 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 사이즈에 대응하는 시간적 입도를 동적으로 조정할하도록 구성될 수 있다. 예를 들면, 도 3의 S301과에서와 같이, ACRM은 프리패치 워크로드 모니터 슬라이딩 윈도우 "Sw"가 언제 종단끝에 도달하는지, 언제 가상 머신 리스트의가 종단끝에 도달하는지를 결정할 수 있고, 그리고이후 후술하게 될아래에서 더 자세히 설명되는 누적 분포 함수(CDF)를 체크할 수 있고, 그 결과에 이들에 기초하여 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"를 업데이트할 수 있다.
도 4는 본 발명의 실시 예에 따른 주어진 타임라인 동안의 워크로드 모니터 슬라이딩 윈도우 "Sw"와 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc" 간의 비교를 보여주는 도면이다.
도 4를 참조하면, 2개의 가상 머신들(110)(즉, 제 1 가상 머신(110a)과 제 2 가상 머신(110b))이 예시적으로 제공된다. 처음에, 제 2 가상 머신(110b)에 대응하는 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc2"는 매 5.83분마다 한번씩인 업데이트 주파수주기에 대응하는 것에 비하여, 제 1 가상 머신(110a)에 대응하는 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc1"는 매 3.33분마다 한번씩의 업데이트 주파수주기에 대응한다. 20분 표시(즉, 도 3의 S301에서 설명한 바와 같이 가상 머신들(110a 및 110b)에 대응하는 워크로드 모니터 슬라이딩 윈도우 "Sw"의 종단끝)에서, ACRM은 가상 머신들(110a 및 110b)에 대응하는 에포크들(220)의 사이즈가 각각 4.50분 및 7.50분이 되도록 콘텐츠 업데이트 에포크 슬라이딩 윈도우들 "Sc1", Sc2"을 업데이트한다.
이 실시 예에서, 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 사이즈는 ACRM의 업데이트 순간에 변경된다. 예를 들면, 제 2 가상 머신(110b)이 여전히 20분 표시의 제 4 에포크 내에 여전히 존재하는 경우, 제 4 에포크의 사이즈(즉, 20분 표시 이전의 마지막 에포크)는 ACRM의 업데이트 순간에 5.83분에서 7.50분으로 연장된다(즉, 워크로드 모니터 슬라이딩 윈도우 "Sw"와 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc" 간에는 상관성이 없어야 한다있을 필요는 없다).
본 발명의 실시 예에서, 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"는 각 워크로드 모니터 슬라이딩 윈도우 "Sw" 각각의 종단끝에서 각각의 가상 머신 들(110)의 콘텐츠 업데이트 에포크 슬라이딩 윈도우 “Sc”가 에 대해 조정되는 반면, 워크로드 모니터 슬라이딩 윈도우 "Sw"는 실행시간 동안 20분동안에 고정된다. 구체적으로, 각각의 워크로드 모니터 슬라이딩 윈도우 "Sw" 동안, ACRM은 각각의 가상 머신 들(110)의 1MB 단위의 워크로드 통계 빈들로 할당된 접근된 입출력들을 북키핑 부기(bookkeep)한다. ACRM은 그후에 기준 시간보다 짧은 재접근 타임시간에 대응하는 입출력 빈의 비백분율을 나타내는 누적분포함수(CDF)를 생성한만든다.
워크로드 모니터 슬라이딩 윈도우 "Sw"의 종단 시점끝에서, ACRM은 미리 결정사전 설정된 임계치와의 비교를 통한 다수 입출력들을 기반으로 시간적 업데이트 입도를 결정할 수 있다. 이 실시 예에서, 워크로드 통계 빈의 사이즈 "bw"는 통계적 분석만을 위해서 사용될 수 있고, 후술하게 될 "캐시라인"과 "프리패치 사이즈"에 대응하는 것은 아니다. 게다가, 워크로드 통계 빈의 사이즈 "bw"는, 예를 들면, 워크로드 통계 빈의 사이즈 "bw"가 프리패치 사이즈 "b"와 동일하게 설정되고, 결과적으로 북키핑 오버헤드가 증가하더라도, 1MB로 설정될 수 있다.
따라서, ACRM은 업데이트(프리패치) 주파수를 최근 핫 데이터의 재접근 라이프타임을과 업데이트(프리패치) 주파수와 일치시키기 위해, 그리고 가상화된 파일 시스템(100)의 캐시로 사용되는 SSD(120)에 가능한 많은 핫 빈들을 가능한 많이 수용통합하기 위해 레이지 모드(즉, 업데이트 빈도가 더 낮은)와 공격 모드(즉, 업데이트 빈도가 더 높은) 사이에서간을 스위칭을 수행할 수 있다.
도 5는 입출력 요청 사이즈 및 캐시 라인 사이즈의를 보여주는 예를 보여주이고, 도 6은 프리패치 입도의 보여주는 도면예이다.
도 5 및 도 6을 참조하면, ACRM은 공간 입도에 대응하는 4개의 개념(입출력 요청 사이즈(오프셋, 515), 캐시 라인 사이즈(520), 통계적 입출력 사이즈/워크로드 통계적 빈 사이즈 "bw"; 그리고 프리패치 사이즈 "b")을 고려한다.
입출력 요청 사이즈(515)에 있어서, 입출력 요청(516)은 입출력 시간/도착 시간(511), 입출력 요청이 읽기 기능 또는 쓰기 기능 중에 어느 것에 대응하는지를 지시하는 읽기/쓰기 플레그(512), 시작 어드레스(513, 즉, 논리 어드레스), 입출력 요청의 사이즈를 지시하는 오프셋(515), 그리고 입출력 데이터(514)에 의해서 표현된다. 각각의 입출력 요청(516, 즉, 입출력에 의해서 커버되는 디스크(530)의 어드레스(531))을 커버하는 의 입출력 어드레스 범위는 시작 어드레스/논리 어드레스(513)에 해당하는 의 포인트지점으로부터 시작 어드레스/논리 어드레스(513)에 오프셋(515)을 더한을 더한 것에 해당하는 포인트지점까지 커버한이다.
캐시 라인 사이즈(520)에 있어대해서, 입출력 요청(516)의 시작 어드레스/논리 어드레스(513)는 물리 어드레스(예를 들면, SSD(120)의 FTL 맵핑 테이블을 통해서)로 변환될 것이다. 캐시 라인 사이즈(520)는 입출력 동작의 최소 단위(예를 들면, 본 발명의 실시 예에서는 4KB)에 대응하는 캐시 얼라인먼트의 입도에 대응한다. 예를 들면, 8KB의 입출력 요청 사이즈(515)는 두개의 4KB 단위들로 다루어질 것이고, 만약 입출력 요청 사이즈(515)가 캐시 라인 사이즈(520)의 정수배가 아닌 경우에는, ACRM은 입출력 요청을 거의 4KB 페이지 가까이로이상으로 모은다 반올림한다.
통계적 입출력 사이즈 또는 워크로드 통계적 빈 사이즈 "bw"(예를 들면, 이 실시 예에서 가상 머신(110) 각각에 대해 1MB)는 각각의 워크로드 모니터 슬라이딩 윈도우 "Sw"(예를 들면, 20분)의 최적화 프레임워크에게 입출력 접근 정보(예를 들면, 워킹 셋 사이즈, 인기도, 등)를 제공한다. 워크로드 통계적 빈 사이즈 "bw"는 비고정 값으로 구현될 수 있다.
도 6을 참조하면, 입출력 히트율을 높이기 위하여 프리패치 사이즈/프리패치 빈 사이즈 "b"(517)에 대해 ACRM은 입출력 요청(516)에 대응하는 데이터의 블록만을 프리패치하는 대신, 연속된 데이터 조각들의 묶음을 프리패치한다. MSR 캠브리지 트레이스에 있어서, 1MB는 프리패치 사이즈/프리패치 빈 사이즈 "b"의 좋은 선택이다. ACRM은 워크로드의 변화에 따라 적응적으로 사이즈 "b"를 조정할 수 있다.
예를 들면, T0시점에서, 8KB의 데이터만이 제 1 입출력 요청(516)에 의해서 요청된다. 하지만, 프리패치 사이즈 "b"(517)가 16KB이기 때문에, 16KB의 데이터가 HDD(130)로부터 SSD(120로 프리패치됨에 따라, 뒤따르는 입출력 요청(516)이 0KB에서 16KB 사이의 어드레스 범위에 위치할 때(즉, 본 발명의 실시 예에서 시작 어드레스/논리 어드레스(513) 0, 1, 2, 3), ACRM은 시간을 소모하는 HDD(130)에서의 룩업 처리 과정으로 진행할 필요가 없으며, 따라서 입출력 히트율을 향상시킬 수 있다.
더불어, ACRM은 다른 공간적 입도들의 크기을를 변경하지 않고서도 워크로드 변화에 따라 프리패치 사이즈 "b"(517)를 동적으로 튜닝할 수 있다. ACRM은 가상 머신(110) 각각에 대해 프리패치 사이즈 "b"(517)와를 캐시 사이즈 "C"를에 연결하기 위해, 그리고 최적화된 공유가상 머신 플래시 리소스 할당의 분배를을 결정하기 위해 유너버셜 접근 방식을 사용할 수 있다. 캐시 할당의 효율을 제공평가하기 위해(예를 들면, SSD(120)를 사용하는여), ACRM은 캐시 히트 기여율과와 대응하는 비용을 비교하기 위한 매트릭을 사용할 수 있다. ACRM에 의해서 사용되는 매트릭은 가상 머신(110)의 워크로드 변화 (가령, 스파이크)와, 서로 다른 캐시 사이즈 "C"에 대응하는 피드백을 반영할 수 있다. 이것은즉, ACRM이 각각의 가상 머신(110)의에 대한 캐시 비용당 캐시 히트 량을 분석할 수 있음다(예를 들면, ACRM이은 캐시 히트 입출력 량을 캐시 공간 비용과 캐시 시간 비용의 곱을으로 나누어 지는 캐시 히트 입출력 량으로써 는 방식으로 "캐시 비용당 캐시 히트 량"을 계산할 수 있음다)을 의미한다.
따라서, 캐시 히트되는 각각의 바이트들에 대해, ACRM은 전체 공간적 비용(프리패치 입출력 비용) 및 시간적 비용(프리패치 입출력 시간 소모) 전체를 구을 평가할 수 있다. 복수의 가상 머신들(110)의 존재 때문에, 각각의 가상 머신(110)의 워크로드 패턴에 따른 저비용의 서로 다른 셋팅으로 높은 히트 량을 검출함으로써, ACRM은 글로벌 솔루션을 결정할 수 있다.
도 7은 본 발명의 실시 예에 따른 업데이트 트리의 순서작업 흐름도를을 보여주고, 도 8은 본 발명의 실시 예에 따른 빈들의 재사용 거리의 예를 보여준다.
비록, 주어진 캐시 사이즈 "C" 조건에서 주어진 워크로드 패턴으로부터에 대한 정확한 입출력 히트 량을 추정하는 것은 어렵지만, ACRM은 최신 에포크(220) 동안 추정된 입출력 히트율과 곱해지는 전체 입출력 량으로서 히트 량을 계산할 수 있다. 입출력 히트 율의 상한(Upper bound)은 입출력 재사용 거리에 근거하여 누적 분포 함수(CDF)를 사용함으로써 추정될 수 있고, ACRM은 최대 재사용 거리 트리와 각각의 가상 머신(110)의 누적 분포 함수(CDF)를 유지할 것이수 있다.
도 8을 참조하면, 각각의 워크로드 모니터 슬라이딩 윈도우 "Sw"에 대해, ACRM은 각 가상 머신들(110)의 최대 재사용 거리 트리(810)를 유지할 것이다. 도 8에 도시된 바와 같이, 최대 재사용 거리 트리의 노드(820)는 binID(811), 시간(812), 그리고 가중치(813)을 포함한다. binID(811)는 입출력 요청(516)의 결과로서 접근되는 통계적 빈(예를 들면, 1MB의 워크로드 통계적 빈 사이즈 "bw")의 ID이다. 시간(812)은 입출력 시간/도착 시간(511)에 대응하고, 가중치(813)는 최대 재사용 거리 트리(810)의 서브트리(830)의 사이즈에 대응한다(즉, 노드 자신을 포함하는 서브트리(830)의 노드들의 전체 수). 본 발명의 실시 예에서, 3 인binID(811)는 0인 시간(812)DMS 과 1인 가중치(813)를 가진 최대 재사용 거리 트리(810)에서의 제 1 노드에 대응하는 binID(811)는 3이고, 시간(812)DMS 0, 그리고 가중치(813)는 1이다 한다.
도 7을 참조하면, S701에서, ACRM은 binID(811)가 샘플링된 워크로드 "w" 이내에 위치하는지 결정판별한다. 만일, binID(811)가 샘플링된 워크로드 "w" 이내에 위치하지 않는 경우, ACRM은 S709에서 거리 리스트(distList)를 돌려준다. 하지만, binID(811)가 샘플링된 워크로드 "w" 이내에 위치하는 경우, ACRM은 S702에서 binID(811)가 최대 재사용 거리 트리(810) 이내에 위치하는지 판단한다. 만일, S702에서, binID(811)가 최대 재사용 거리 트리(810) 이내에 위치하지 않는 것으로 결정판별되면, 절차는 S708로 이동하여, 이 시점에서 ACRM은 binID(811)를 새로운 노드(820)로 삽입하고, 최대 재사용 거리를 무한대로 설정되도록 업데이트할 것이다. 이후, ACRM은 절차를 재시작하기 위해 S707에서 후속하는 binID(811)를 처리로 진행하게 될 것이다. 하지만, S702에서, binID(811)가 최대 재사용 거리 트리(810) 이내에 위치하는 것으로 결정판별되면, ACRM은 S703에서 최대 재사용 거리 트리(810) 내의 노드들 수에 근거하여 거리를 계산할 것이다. 이후, S704에서, ACRM은 거리 리스트(distList)에 지시된나타난 binID(811)에 대응하는 거리보다 계산된 거리가 큰지 판단별한다. 만일, binID(811)에 대응하는 거리보다 계산된 거리가 큰 경우, ACRM은 S705에서 거리 리스트(distList)를 업데이트하고, 절차는 S706으로 이동하며, binID(811)에 대응하는 거리보다 계산된 거리가 크지 않은 경우, ACRM은 S706로을 스킵한다건너뛴다. S706에서, ACRM은 트리를 ("업데이트 트리" 기능을 사용하여) 업데이트하고, 절차를 재시작하기 위해 S707에서 후속하는 binID(811)를로 처리진행하게 될 것이다.
도 8을 참조하면, 새로운 노드(820)를 삽입할 때, ACRM은 binID(811)을 찾기 위해 최대 재사용 거리 트리(810)를 우선적으로 먼저 검색하고, 만일 최대 재사용 거리 트리(810) 내에서 binID(811)가 검색발견되지 않으면(예를 들면, S702), ACRM은 binID(811)을 새로운 노드(820)로서 직접 binID(811)을 삽입하며, 그리고 binID(811)에 대응하는 최대 재사용 거리를 무한대로 업데이트한다(예를 들면, S708). 하지만, 만일 최대 재사용 거리 트리(810) 내에서 binID(811)가 검색발견되면(예를 들면, S702), ACRM은 검색발견된 binID(811)에 대응하는 시간(812)보다 큰 시간(812)에 대응하는 최대 재사용 거리 트리(810) 내의 노드(820)의 수로서 binID(811)에 대응하는 최대 재사용 거리를 우선적으로먼저 업데이트한다(예를 들면, S703에서). 게다가, ACRM은 최대 재사용 거리의 계산 속도를 높이기 위해서 가중치(813)를 사용할 수 있다. 계산이 완료된 후에, ACRM은 이전 노드(820)를 삭제하고, 새로운 노드(820)로서 새로운 입출력 빈을 삽입할 것이다. 따라서, ACRM은 오버헤드를 줄이기 위해 최대 재사용 거리 트리(810)를 간략화하기 위해, 그리고 오버헤드를 줄이기 위해 근사 트리(Approximation tree)를 사용할 수 있다.
S706 및 S707에서, 업데이트 트리 함수로부터 리턴된 거리 리스트 "distList"에 근거하여, ACRM은 최대 재사용 거리의 누적분포함수(CDF) 및 빈들의 백분율을 추가적으로 생성만든한다. ACRM은 이 워크로드 주기에서 달성될 수 있는 히트율의 상한을 체크하기 위해 다른 캐시 사이즈/최대 재사용 거리 "C"를 반복할 수 있다. 따라서, 캐시 사이즈 "C"가 최대 재사용 거리보다 클 때만, 캐시 히트가 가능하다. 따라서, ACRM은 캐시 사이즈 "C"와 LRU(least recently used) 캐시 알고리즘 히트율의 이론적 최선상의 결과의 연결 관계를 생성한만든다. LRU(least recently used) 캐시 알고리즘 히트율의 이론적 최선상의 결과가 상한이 존재하기 때문에, 실제 캐시 히트율의 그것의 같거나 작다.
공간적 비용을 계산하기 위해, ACRM은 우선 주어진 에포크 슬라이딩 윈도우 "Sc" 내의 프리패치 사이즈 "bi"를 갖는 주어진 가상 머신 "VMi"와 대응하는 워크로드 "Wi"의 프리패치 동작의 수를 추정한다. ACMR은 워크로드 "W"와 워크로드 "Wi"의 공간 프리패치 입도 "bi" (예를 들면, P(Wi, bi))의 함수로 프리패치 동작의 회수를 정의하며(예를 들면, P(Wi, bi)), 이것은 워크로드 "Wi"의 프리패치 동작의 수를의 추정하는 함수로 기술지칭될 것이수 있다.
프리패치 동작 수의 추정은 다음과 같다이 수행될 수 있다. 에포크 슬라이딩 윈도우 "Sc" 각각에 대해, ACRM은 각각의 에포크 슬라이딩 윈도우 "Sc"를 캐시 라인 사이즈(520, 예를 들면, 4KB)와 입출력 페이지 "x"의 결과로 나눔으로써 각각의 입출력을 체크한다. 입출력 페이지 "x"는 시작 어드레스/논리 어드레스(513)에 대응한다. 만일, 입출력 페이지 "x"가 검색발견되지 않으면(예를 들면, "pseudoPrefectchBinList"에서 검색발견되면), ACRM에 의한 의사-프리패치 동작이 트리거될 것이며, 의사-프리패치 동작은 x/b째 프리패치 빈(예를 들면, [x/c,x/c+b]의 범위의 페이지를 포함하는 'pseudoPrefectchBinList' 내부로)을 마킹한다. 범위 'x' 에서 'x+b' 범위에 포함되는 다른 새로운 입출력 요청이 캐시 히트로서 고려간주될 것이며, 거듭하여다시 프리패치될 필요는 없다. 하지만, 이 추정은 프리패치를 위하여 제한없는 사이즈의 캐시가 사용된다는 가정에 의해 에러가 존재할 수 있다. 다시 말해서, 실제 프리패치 동작의 수 "P"는 함수 P(Wi, bi)로부터 결정되는 추정치보다 클 것이다.
함수 P(Wi, bi)에 근거하여, ACRM은 HDD(130)로부터 SSD(120)로의 로딩을 위한 전체 데이터 량으로 프리패치 공간 비용을 계산할 수 있다(즉, P(Wi, bi)×bi). 하지만, 이 함수는 이론적인 하한일 뿐이며, 따라서 실제 비용은 더 높을 것이수 있다. 따라서, ACRM은 다른 프리패치 입도 "b"와 워크로드 변화를 모두 고려한다.
시간적 비용을 생성평가하기 위해, ACRM은 프리패치 동작의 수 "P"와에 단일 프리패치 동작의 시간 비용 (즉, 하드 디스크(130)으로부터 사이즈 "b"의 데이터를의 양을 읽고 이를SSD(120)에 기입하는데 소요관련되는 시간 비용과 관련) 의 시간 비용을 곱한다. 이것은즉, ACRM이은 시간 비용을 P(Wi, bi)×T(bi)로 생성평가할 수 있음을 의미한다. 여기서, T(bi)는 미리 측정된 단일 프리패치 동작 비용의 미리 측정된 값이다. 더 큰 프리패치 입도는 상대적으로 큰 T(bi)를 갖고, 와 상대적으로 더 적은 P(Wi, bi)에 대응할 것이다.
레이지 또는 공격 모드에 따라, ACRM의 모드는 시간 및 공간 영역에서 다른 의미를 갖는다. 예를 들면, 레이지 공간 업데이트 모드는 업데이트 프리패치 사이즈 "b"가 작은 것을 의미하고, 반면, 레이지 시간 업데이트 모드는 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"가 큰 것, 덜 빈번한 업데이트에 대응하는 것을 의미한다. 앞서 언급된 수식들에 근거하여, ACRM은 제한된 최적화 문제를 해결하기 위한 공간 할당 및 프리패치 사이즈를 조정한다. ACRM 최적화 프레임워크는 퍼-VMDK 공간 할당 값들의 다른 순서를 탐색하고, 목적 함수로서 "캐시 비용당 캐시 히트 량"을 계산하고, 그리고 검색 공간에서 전역 최대값으로 순서를 되돌려준다. 구체적으로는, ACRM은 후술되는 다음의 최적화 프레임워크를 채택한다.
ACRM은 아래 수학식 1의 글로벌 함수를 최대화하기 위해 검색을 수행한다.
Figure 112017065335329-pat00001
ACRM은 아래 수학식 2를 만족시키기 위하여 검색을 수행한다.
Figure 112017065335329-pat00002
여기서, T(bi)는 입도 'bi'의 하나의 프리패치 동작에 대한 시간 비용에 대응하고, 이것은 HDD(130)로부터 'bi' 사이즈의 데이터를 읽어서 SSD(120)에 기입하는데 소요되는 전체 시간의 크기로서 직접 측정되거나 추정될 수 있다. 여기서, "Cmin"과 "Cmax"는 각각 가상 머신(110)당 캐시 사이즈 "C"의 하한과 상한값에 대응하고, "bmin"과 "bmax"는 각각 공간적 프리패치 입도의 하한과 상한값에 대응한다.
따라서, G(W,C,b)는 앞서 설명된 프리패치 빈 사이즈 "b"에 대응하는 수학식들의 글로벌 버전이다. 이들 수학식을 풀기 위해, ACRM은 시뮬레이션된 어닐링 및 힐 클라이밍과 같은 발견적 알고리즘(heuristics algorithm)을 채택할 수 있다.
ACRM은 또한 각각의 에포크 슬라이딩 윈도우 "Sc"에 대한 빈을 업데이트하는 프로세서를 수행할 수 있다. 각각의 에포크 슬라이딩 윈도우 "Sc" 동안, ACMR은 가상 머신(110) 각각의 빈 접근 인기도에 대한 기록을 유지할 수 있다. 예를 들면, ACRM은 SSD(120) 캐시에 추가될 그 자체로 후보 핫 빈(예를 들면, bi 사이즈를 갖는 프리패치 빈들)의 리스트인 기록(예를 들면, "curAccBins"로 언급지칭되는 기록)을 유지할 수 있다.
일반적으로, 업데이팅 과정 동안 두 가지 경우가 있을 수 있다. 하나의첫 번째 경우는, 다음 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 캐시 사이즈 "C"가 기록(예를 들면, "curAccBins"의 기록)보다 작거나 동일한 경우이다. ACRM은 기록으로부터 빈들의 탑 캐시 사이즈 "Ci"를 선택할 수 있고, 선택된 것들을 SSD(120)에 추가할 수 있다. 만일, '더티 플레그' 마크가 'true'로 마킹된 경우, 존재하는 빈들("oldBinsInSSD"으로 언급지칭될 수 있는)은 HDD(130)에 다시 기입되어고 이로써, SSD(120) 캐시의 버전이 HDD(130)의 버전보다 더 최근신임을 지시가리킬할 수 있다.
두 번째 경우는, 다음 콘텐츠 업데이트 에포크 슬라이딩 윈도우 "Sc"의 캐시 사이즈 "C"가 기록(예를 들면, "curAccBins")의 사이즈보다 큰 경우이다. 이 경우, ACRM은 먼저 모든 빈을 "curAccBins"로부터 모든 빈을 SSD(120)에 로드하고, SSD(120)의 캐시(즉, Ci-len(curAccBins)의 사이즈로)의 잔여 공간에 최종 에포크(220)의 SSD(120) 내의 가상 머신(110)에 존재하는 빈들 "oldBinsInSSD"을의 탑 빈들로 채우기를 시도한다. 만일, ACRM이 SSD(120)에 공간이 남은 것으로 판단하면(즉, Ci-len(curAccBins) - len(oldBinsInSSD) + len(dup(curAccBins, oldBinsInSSD)) > 0 인 경우), ACRM은 SSD(120)를 롱텀 입출력 접근 히스토리 또는 20분의 워크로드 모니터 슬라이딩 윈도우 "Sw"로부터 온 일 수 있는 패딩빈(paddingBins)으로 채운다. 유사하게, ACRM은 희생 데이터의 "더티 플레그"를 체크함으로써 SSD(120)로부터 데이터를 제거할 수 있다.
비록, ACRM이 SSD(120)의 계층을 "유니바디" 캐시 계층(즉, 하나 또는 그 이상의 SSD(120) 의 계층을를 싱글 SSD로, 하나 또는 그 이상의 HDD(130)를의 계층을 싱글 HDD로 다루는 식으로)으로 다룰 수 있다. 즉, ACRM은 각각의 SSD 계층과 HDD 계층에서 멀티플북수의 디스크들을 가질 수 있으며, ACRM은 각각의 계층에서 레이드(RAID) 또는 비-레이드(non-RAID) 모드 모두를 적용채택할 수 있다.
도 9는 본 발명의 실시 예에 따른 ACRM 메인 프레임워크와 ACRM 스토리지 모니터 데몬을 포함하는 ACRM의 블록도이다.
도 9를 참조하면, 본 발명에서 ACRM(900)은 후술하는다음의 동작들을 수행하기 위한 "스토리지 모니터 데몬"(920)으로 불리는 추가적인 컴포넌트를 갖는다: 주기적으로 디스크 정보(예를 들면, 공간적 용량, 쓰루풋처리 용량, 수명 주기, 소모 등급 등)를 추적하고; 미리 결설정된 성능의 하한에 도달한 디스크를 제거 및 교체(예를 들면, 심각하게 소모되거나 결함이 존재하는 디스크); 디스크들의 워크로드를 균등형있게하게 하는 단계; 그리고 쓰기 사이클 또는 P/E 사이클의을 밸런싱하기 위한 SSD-레벨의 웨어 레벨링을 트리거링한다. 따라서, 스토리지 모니터 데몬(920)은 웨어 레벨링 매니저(921), 로드 벨런스 매니저(922), 디스크 제거 및 교체 매니저(923), 그리고 디스크 헬스 상태 추적기(924)를 포함할 수 있다.
웨어 레벨링 매니저(921)의 동작 동안, ACRM(900)은 최소 마이그레이션 비용으로 웨어 레벨링을 수행하기 위하여, 그리고 디스크들의 워크로드의를 균형을있게 하기 위해 제 2 최적화 프레임워크를 사용한다.
도 10은 본 발명의 실시 예에 따른 스토리지 모니터 데몬이 활성화된 ACRM 및 스토리지 모니터 데몬을 갖지 않은 ACRM 모두를 사용한 콘텐츠 업데이트 및 웨어 레벨링 과정의 비교를 보여준다.
도 10을 참조하면, 상위 부분(예를 들면, 도 10(a))은 앞서 언급한 ACRM 최적화 프레임워크에 따른 다음 에포크(220)를 위한 파티션 솔루션의 예를 보여준다. 하지만, 도 1에서 설명된 싱글 SSD(120) 대신에, SSD 계층에 4개의 SSD들(120a, 120b, 120c, 그리고120d)가 있다. 도 10(b)는 스토리지 모니터 데몬을 포함하지 않고, 따라서, 각 디스크들의 프로그램/소거 사이클(P/E Cycle)과 수명을 고려하지 않는 ACRM에 의한 할당 솔루션을 보여준다. 하지만, 도 10(c)는 SSD-레벨 웨어 레벨링을 수행하기 위한해 스토리지 모니터 데몬(예를 들면, 도 9의 스토리지 모니터 데몬)을 사용하는 파티션 솔루션의 예를 보여준다. ACRM은 SSD들(120a~120d) 각각의 프로그램/소거 사이클의 밸런싱을 시도한다. SSD 계층의 SSD(120)들은 동종 또는 이종일 수 있기 때문에, ACRM은 잔여 프로그램/소거 사이클을 밸린싱을 위한 메인 타깃으로 사용할 수 있다. 하나 또는 그 이상의 최근 에포크들(eh 10(b)의 ACRM에 의해서 수행되는 것과 같이) 에 기초하여 다음 에포크의 가상 머신들(110a~110d) 각각의 파티션을 직접적으로 할당하는 대신, ACRM의 스토리지 모니터 데몬(920)은 하나 또는 그 이상의 가상 머신들(110a~110d) 각각을 좀더 세밀한 입도의 서브-파티션으로 분리하고, 소모-완료(worn-out) 등급(P/E 사이클)을 밸런싱하기 위해 SSD 어레이의 SSD들(120a~120d)에 횡단하여걸쳐 서브-파티션들을 할당할 것이다
10(b) 및 10(c) 각각에서, 가상 머신들(110a-110d)이 파티션되고, 대응하는 SSD들(120a~120d)의 해당 영역에 할당된다. 10(b)에서, 가상 머신들(110a-110d)은 직접적으로 파티션된다(즉, 단순히 SSD들(120a-120d)을 시작부터 마지막까지 순서대로 SSD들(120a-120d) 에 놓여진다배열). 10(c)에서, ACRM은 또한 가상 머신들(110a-110d)을 어디로 파티션 할지를 결정하는데, 웨어 레벨을 고려하고, 각각의 가상 머신들에 파티션을 할당하기 위한해 또 다른 최적화 프레임워크를 사용한다. 따라서, 도 10(b)에서, 제 2 가상 머신(110b)에 대응하는 파티션은 제 1 및 제 2 SSD(120a 및 120b)를 차지한다. 하지만, 이것은 최선이 아닌 차선의 최적화일 수 있다(예를 들면, 제 2 가상 머신(110b)이 다수의 쓰기 입출력에 대응하거나, 제 2 SSD(120b)가 상대적으로 많이 소모된 경우될 수 있다). 따라서, 10(c)에서, 제 2 가상 머신(110b)의 작은 부분은 제 2 SSD(120b)에 파티션되는 반면, 제 2 가상 머신(110b)의 대부분은 제 1 SSD(120a)로 파티션됨에 따라, 비트들의을 밸런싱/레벨링이 활성화된 할 수 있게 한다. 따라서, 향상되거나 최적화된 파티셔닝 방식을 선택결정하기 위한 목적 함수의를 사용에 따라함으로써, ACRM은 복수의 파라미터들을 고려할 수 있다(예를 들면, 웨어 레벨링, 파티셔닝, 잔여 수명 주기, 예상/기대되는 수명 주기 밸런스 등).
하지만, ACRM은 또한 서로 다른 SSD(120a-120d, 즉, 다른 쓰기 증폭 함수 및 전체 프로그램/소거 사이클)의 특징들을 고려해야 하할 수 있고, 웨어 레벨링을 위한 몇몇 데이터 셋의들을 마이그레이션 하는 것과 관련된 비용뿐만 아니라, 처리량을 고려해야 하기할 수 있기 때문에 잔여 프로그램/소거 사이클(P/E cycle)을 단순 밸런싱하는 것만으로는 충분하지 않음을 인식해야 한다. ACRM은 이들 파라미터들 사이의 밸런싱의 어드레싱을 다루기 위해 후술하는 최적화 프레임워크를 사용할 수 있다.
ACMR은 수학식 4를 만족시키기 위하여 다음의 글로벌 수학식 3을 간략화할 수 있다.
Figure 112017065335329-pat00003
Figure 112017065335329-pat00004
여기서,
Figure 112017065335329-pat00005
이고,
Figure 112017065335329-pat00006
,
Figure 112017065335329-pat00007
,
Figure 112017065335329-pat00008
Figure 112017065335329-pat00009
이다.
좀더 상세하게는, 목적 함수를 줄이거나 최소화시킴으로 인해서, ACRM은 SSD들(120a~120d) 각각의 추정된 잔여 프로그램/소거 사이클(P/E cycle)의 부하 불균형을 줄이거나 최소화하는 것과, 또한 대응하는 마이그레이션 비용뿐만 아니라 처리량을 줄이거나 최소화하는 것을 목적으로 한다. 상술한 파라미터들(α, β, γ)은 시스템 요구 사항에 근거하여 데이터센터 매니저가 조정을 수행할 수 있는 조정가능한 파라미터들이다. "CV"는 입력 단위들의 차이 정도를 반영하는 변화 계수이다. 여기서, ACRM은, 특정 값 범위에서 반복되는 할당 및 파티셔닝 계획하에서 각 디스크(즉, E(Clrem))의 추정된 잔여 프로그램/소거 사이클을 사용할 수 있다. E(Clrem[i])은 디스크(i)의 추정된 잔여 프로그램/소거 사이클이고,
Figure 112017065335329-pat00010
은 모든 디스크들의 추정된 잔여 프로그램/소거 사이클의 평균값이다. 즉, 상술한 글로벌 수학식 3을 통해서 구현되는 목적 함수의 감소는 더 나은 균형을 달성시킨다. 게다가, 글로벌 수학식 3은 가중치를 제어하기 위해 파라미터들(α, β, γ)을 조정하는 것을 허용할 수 있다. 비록, 상술한 글로벌 수학식 3이 선형적이라 할지라도, 다른 실시 예에서, 글로벌 수학식 3은 좀더 복잡한 형태가 될 수 있다(예를 들면, 로그 수학식).
따라서, 입출력 동작과 관련된 서로 다른 측면들을 모니터링/측정함으로써, ACRM은 어떤 동작이 어떤 형태의 물리적 효과를 야기시키는지 결정할 수 있고, 더 세밀한 해상도의 피드백을 달성할 수 있다.
상술한 바와 같이, ACRM은 예측된 다음 에포크(디스크(i)에 할당된 모든 가상 머신들(110)의) 동안, 디스크(i)의 잔여 프로그램/소거 사이클로부터 추정된 물리적 쓰기 프로그램/소거 사이클을 차감함으로써 E(Clrem[i])을 계산할 수 있다.
더불어, ACRM은 다음 에포크 동안의 디스크의 물리적 쓰기 량은 다음 에포크(W [i]) 동안의 디스크 "i"의 논리적 쓰기의 총량을 디스크 "i"(WAFi)의 WAF 기능을 사용하여 곱함으로써 계산 될 수 있음을 주목하면서 Clnext [i]를 추정할 수 있다. 게다가, WAF 함수는 모든 쓰기 스트림과 디스크의 전체 순차 비율의 구간별 함수 (fi)이다. (예를 들어,
Figure 112017065335329-pat00011
). 이 수학식은 각 가상 머신(VM)의 할당된 파티션을 서로 다른 여러 SSD 하위 파티션으로 분할할 수 있음을 보여준다.
상술한 바에 따르면, 본 발명의 실시 예들의 ACRM은 다양한 가상 머신들의 작업 부하와 연관된 매트릭을 모니터링함으로써 입출력 요청과 관련된 시간적 및 공간적 입도를 동적으로 조정함으로써, 그리고 가상 머신들의 작업 부하 패턴을 고려하여 시간 및 공간 입도를 위한 글로벌 최적 솔루션을 결정함으로써 가상화된 파일 시스템에서 디스크 할당을 향상시킬 수 있다.

Claims (11)

  1. 가상화 파일 시스템의 동작과 연관된 시간적 및 공간적 입도(Granularity)를 조정하는 방법에 있어서:
    상기 가상화 파일 시스템과 연관된 복수의 가상 머신들의 이전 워크로드를 분석하는 단계;
    상기 시간적 및 공간적 입도를 상기 이전 워크로드에 대응하는 데이터 셋의 평균 재접근 시간적 및 공간적 거리와 대응하도록 조정하는 단계;
    상기 이전 워크로드에 기초하여 솔리드-스테이트 드라이브들에 대한 로드 밸런싱, 웨어 레벨링, 디스크 헬스 모니터링, 그리고 디스크 제거/교체를 수행하는 단계;
    상기 이전 워크로드들로부터 예측된 상기 솔리드-스테이트 드라이브들의 웨어 레벨들 각각에 기초하여 상기 가상 머신들을 서브-파티션들로 분리하는 단계; 그리고
    상기 솔리드-스테이트 드라이브들의 웨어 레벨의 균형을 위해, 상기 솔리드-스테이트 드라이브들에 상기 가상 머신들의 서브-파티션들을 할당하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 가상 머신들의 각 가상 머신 디스크에 대해 상기 가상화 파일 시스템의 솔리드-스테이트 드라이브의 파티션 사이즈를 조정하는 것을 더 포함하는 방법.
  3. 제 2 항에 있어서,
    각 가상 머신 디스크의 입출력(IO) 변화를 검출하는 것을 더 포함하되, 상기 파티션 사이즈를 조정하는 단계는 상기 검출된 입출력(IO) 변화에 기반하는 방법.
  4. 제 1 항에 있어서,
    상기 시간적 및 공간적 입도를 조정하는 단계는, 상기 가상화 파일 시스템의 캐시로 사용되는 솔리드-스테이트 드라이브의 콘텐츠를 업데이트하기 위한 워크로드 모니터 슬라이딩 윈도우의 시간 간격을 조정하는 것을 포함하는 방법.
  5. 제 4 항에 있어서,
    상기 복수의 가상 머신들의 이전 워크로드들을 분석하는 것은, 상기 워크로드 모니터 슬라이딩 윈도우의 끝에서 발생하는 방법.
  6. 제 1 항에 있어서,
    상기 시간적 및 공간적 입도를 조정하는 것은, 상기 가상화 파일 시스템의 솔리드-스테이트 드라이브 또는 하드 디스크 드라이브로부터 복구된 데이터의 양에 대응하는 프리패치 빈 사이즈(Prepatch bin size)를 조정하는 것을 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 시간적 및 공간적 입도를 조정하는 것은, 상기 이전 워크로드들에 기초하여 캐시 사이즈 또는 가상 머신들 각각의 에포크(Epoch) 업데이트 주파수를 조정하는 것을 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 조정된 시간적 및 공간적 입도에 근거하여 가장 최근 에포크 내의 데이터를 프리패치함으로써 상기 가상화 파일 시스템의 캐시로 사용되는 솔리드-스테이트 드라이브들을 업데이트하는 것을 더 포함하는 방법.
  9. 삭제
  10. 가상화 파일 시스템에 있어서:
    복수의 가상 머신들;
    하나 또는 그 이상의 하드 디스크 드라이브들;
    상기 하나 또는 그 이상의 하드 디스크 드라이브들의 캐시로서 제공되는 솔리드-스테이트 드라이브들;
    메모리; 그리고
    상기 메모리와 연결된 프로세서를 포함하되, 상기 프로세서는:
    상기 가상화 파일 시스템과 연관된 복수의 가상 머신들의 이전 워크로드들을 분석하고;
    그리고 상기 이전 워크로드들에 대응하는 데이터 셋들의 평균 재접근 시간적 및 공간적 거리와 대응하도록 시간적 및 공간적 입도를 조정하고;
    상기 이전 워크로드들에 기초하여 상기 솔리드-스테이트 드라이브들에 대한 로드 밸런싱, 웨어 레벨링, 디스크 헬스 모니터링, 그리고 디스크 제거/교체를 수행하고;
    상기 이전 워크로드들로부터 예측된 상기 솔리드-스테이트 드라이브들의 웨어 레벨들 각각에 기초하여 상기 복수의 가상 머신들을 서브-파티션들로 분리하고; 그리고
    상기 솔리드-스테이트 드라이브들의 웨어 레벨의 균형을 위해, 상기 솔리드-스테이트 드라이브들에 상기 가상 머신들의 서브-파티션들을 할당하도록 구성된 소프트웨어 컴포넌트를 실행하는 가상화 파일 시스템.
  11. 제 10 항에 있어서,
    상기 소프트웨어 컴포넌트는 상기 가상 머신들의 각 가상 머신 디스크에 대해 상기 복수의 가상 머신들의 가상 머신 디스크 각각의 솔리드-스테이트 드라이브 내의 파티션 사이즈를 조정하는 가상화 파일 시스템.
KR1020170086593A 2016-09-06 2017-07-07 동적으로 입도를 업데이트하는 적응적 캐시 대체 매니저 및 공유 플래시-기반 스토리지 시스템의 파티셔닝 방법 KR102226017B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662384078P 2016-09-06 2016-09-06
US62/384,078 2016-09-06
US15/400,835 2017-01-06
US15/400,835 US10467195B2 (en) 2016-09-06 2017-01-06 Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system

Publications (2)

Publication Number Publication Date
KR20180027327A KR20180027327A (ko) 2018-03-14
KR102226017B1 true KR102226017B1 (ko) 2021-03-10

Family

ID=61280782

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020170084193A KR102198680B1 (ko) 2016-09-06 2017-07-03 확장 가능한 멀티-스테이지 데이터 처리 시스템들에서의 효율적인 데이터 캐싱 관리
KR1020170086593A KR102226017B1 (ko) 2016-09-06 2017-07-07 동적으로 입도를 업데이트하는 적응적 캐시 대체 매니저 및 공유 플래시-기반 스토리지 시스템의 파티셔닝 방법
KR1020170090446A KR102191225B1 (ko) 2016-09-06 2017-07-17 캐쉬 관리 시스템 및 그것의 데이터 관리 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020170084193A KR102198680B1 (ko) 2016-09-06 2017-07-03 확장 가능한 멀티-스테이지 데이터 처리 시스템들에서의 효율적인 데이터 캐싱 관리

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020170090446A KR102191225B1 (ko) 2016-09-06 2017-07-17 캐쉬 관리 시스템 및 그것의 데이터 관리 방법

Country Status (2)

Country Link
US (4) US10467195B2 (ko)
KR (3) KR102198680B1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3549350A4 (en) * 2016-11-29 2021-03-24 Intel Corporation MILLIMETRIC WAVE CHASSIS INTERCONNECTION TECHNOLOGIES
US20180150256A1 (en) 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
US10289315B2 (en) * 2017-03-27 2019-05-14 Western Digital Technologies, Inc. Managing I/O operations of large data objects in a cache memory device by dividing into chunks
US10572383B2 (en) * 2017-04-12 2020-02-25 International Business Machines Corporation Caching a block of data in a multi-tenant cache storage device based on space usage boundary estimates
US10795583B2 (en) 2017-07-19 2020-10-06 Samsung Electronics Co., Ltd. Automatic data placement manager in multi-tier all-flash datacenter
US10496541B2 (en) * 2017-11-29 2019-12-03 Samsung Electronics Co., Ltd. Dynamic cache partition manager in heterogeneous virtualization cloud cache environment
US11210125B2 (en) * 2018-01-19 2021-12-28 Hossein Asadi Cache allocation to a virtual machine
US20190281077A1 (en) * 2018-03-07 2019-09-12 At&T Intellectual Property I, L.P. System and method for automatically learning signatures for operations policies
US20190303476A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Dynamic buffer pools for process non-conforming tasks
US10671436B2 (en) * 2018-05-02 2020-06-02 International Business Machines Corporation Lazy data loading for improving memory cache hit ratio in DAG-based computational system
JP7013326B2 (ja) * 2018-05-29 2022-01-31 株式会社日立製作所 情報処理システム、情報処理装置、および情報処理システムの制御方法
KR20200008759A (ko) * 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 캐시 메모리 및 이를 포함하는 메모리 시스템, 캐시 메모리의 축출 방법
CN109213746A (zh) * 2018-09-28 2019-01-15 北京赛博贝斯数据科技有限责任公司 Pb级历史数据和在线数据的实时计算的可视化建模方法
KR102518436B1 (ko) 2018-10-22 2023-04-05 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
US20200151510A1 (en) * 2018-11-12 2020-05-14 Advanced Micro Devices, Inc. Adaptive batch reuse on deep memories
CN109491616B (zh) 2018-11-14 2022-05-24 三星(中国)半导体有限公司 数据的存储方法和设备
CN109800092A (zh) 2018-12-17 2019-05-24 华为技术有限公司 一种共享数据的处理方法、装置及服务器
US11520703B2 (en) 2019-01-31 2022-12-06 EMC IP Holding Company LLC Adaptive look-ahead configuration for prefetching data in input/output operations
AU2020241262A1 (en) 2019-03-15 2021-11-04 Intel Corporation Sparse optimizations for a matrix accelerator architecture
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
EP4130988A1 (en) * 2019-03-15 2023-02-08 INTEL Corporation Systems and methods for cache optimization
DE112020000850T5 (de) 2019-03-15 2022-01-20 Intel Corporation Cache-Struktur und -Nutzung
US10871902B2 (en) * 2019-04-29 2020-12-22 EMC IP Holding Company LLC Adaptive look-ahead configuration for prefetching data in input/output operations based on request size and frequency
US11010057B2 (en) * 2019-05-29 2021-05-18 Western Digital Technologies, Inc. Storage system and method for storage system calibration
US10997081B2 (en) * 2019-05-29 2021-05-04 Western Digital Technologies, Inc. Host and method for storage system calibration
US11354208B2 (en) 2019-09-11 2022-06-07 International Business Machines Corporation Adjustment of safe data commit scan based on operational verification of non-volatile memory
US11182321B2 (en) 2019-11-01 2021-11-23 EMC IP Holding Company LLC Sequentiality characterization of input/output workloads
US11099899B2 (en) * 2019-11-14 2021-08-24 Sas Institute Inc. Atomic pool manager for a data pool using a memory slot for storing a data object
US11861761B2 (en) 2019-11-15 2024-01-02 Intel Corporation Graphics processing unit processing and caching improvements
US11940923B1 (en) * 2019-12-11 2024-03-26 Amazon Technologies, Inc. Cost based cache eviction
US11474799B2 (en) * 2020-07-31 2022-10-18 Snowflake Inc. Providing code translation related to resilient distributed datasets in database systems
CN114780501A (zh) * 2021-01-22 2022-07-22 伊姆西Ip控股有限责任公司 数据处理方法、电子设备和计算机程序产品
CN112527385B (zh) * 2021-02-18 2021-11-30 成都新希望金融信息有限公司 数据加工方法、装置、工作节点及存储介质
US11671353B2 (en) * 2021-07-30 2023-06-06 International Business Machines Corporation Distributed health monitoring and rerouting in a computer network
CN118119932A (zh) * 2021-11-16 2024-05-31 华为技术有限公司 基于当前分层状态的缓存淘汰
CN114489519B (zh) * 2022-04-18 2022-07-12 创新科技术有限公司 一种io请求的处理方法、装置、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253674A1 (en) 2005-05-06 2006-11-09 Xiv Ltd. Automatic disk healing
US20130179630A1 (en) 2008-03-01 2013-07-11 Kabushiki Kaisha Toshiba Memory system

Family Cites Families (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3030229B2 (ja) 1994-06-20 2000-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データを転送する方法及びデータ記憶システム
US5768594A (en) 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
US6421809B1 (en) 1998-07-24 2002-07-16 Interuniversitaire Micro-Elektronica Centrum (Imec Vzw) Method for determining a storage bandwidth optimized memory organization of an essentially digital device
US6519756B1 (en) 1999-10-05 2003-02-11 Sun Microsystems, Inc. Method and apparatus for building an integrated circuit
US6553394B1 (en) 2000-01-21 2003-04-22 Mitsubishi Electric Research Laboratories, Inc. Continuous memoization
US20020035605A1 (en) 2000-01-26 2002-03-21 Mcdowell Mark Use of presence and location information concerning wireless subscribers for instant messaging and mobile commerce
EP1124187A1 (de) 2000-02-08 2001-08-16 Ulrich Prof. Dr. Güntzer Vorrichtung, Speichermedium und Verfahren zum Ermitteln von Objekten mit grosser Ähnlichkeit zu einem vorgegebenen Objekt
AU2002306495A1 (en) * 2001-02-13 2002-08-28 Candera, Inc. Storage virtualization and storage management to provide higher level storage services
US7412492B1 (en) * 2001-09-12 2008-08-12 Vmware, Inc. Proportional share resource allocation with reduction of unproductive resource consumption
US7076640B2 (en) 2002-02-05 2006-07-11 Sun Microsystems, Inc. Processor that eliminates mis-steering instruction fetch resulting from incorrect resolution of mis-speculated branch instructions
AU2003215105A1 (en) 2002-02-08 2003-09-02 Jpmorgan Chase Bank System and method for allocating computing resources
US20040193952A1 (en) 2003-03-27 2004-09-30 Charumathy Narayanan Consistency unit replication in application-defined systems
US7194587B2 (en) 2003-04-24 2007-03-20 International Business Machines Corp. Localized cache block flush instruction
US7349819B2 (en) 2003-07-08 2008-03-25 Abb Inc. Method for providing robustness to the solution of the cubic equation of state
US20050086384A1 (en) 2003-09-04 2005-04-21 Johannes Ernst System and method for replicating, integrating and synchronizing distributed information
US7395258B2 (en) 2004-07-30 2008-07-01 International Business Machines Corporation System and method for adaptive database caching
US8140751B1 (en) * 2005-06-17 2012-03-20 Florida State University Power-aware redundant array of independent disks (PARAID) and related methods
EP1752874A1 (en) 2005-07-19 2007-02-14 Alcatel Adaptive evolutionary computer software product
CN101170416B (zh) 2006-10-26 2012-01-04 阿里巴巴集团控股有限公司 网络数据存储系统及其数据访问方法
KR101123491B1 (ko) * 2007-05-22 2012-03-23 인터내셔널 비지네스 머신즈 코포레이션 가상화 스토리지 실행 제어기
US8108848B2 (en) 2007-08-15 2012-01-31 Microsoft Corporation Automatic and transparent memoization
KR101465789B1 (ko) 2008-01-24 2014-11-26 삼성전자주식회사 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
CA2714745A1 (en) 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture
US10127059B2 (en) * 2008-05-02 2018-11-13 Skytap Multitenant hosted virtual machine infrastructure
US8001413B2 (en) 2008-05-05 2011-08-16 Microsoft Corporation Managing cluster split-brain in datacenter service site failover
US9037798B2 (en) 2008-12-10 2015-05-19 Csir System and method of operating a computing device to perform memoization including transforming input/output parameters to reduce redundancies and efficiently cache data
US9213721B1 (en) 2009-01-05 2015-12-15 Emc Corporation File server system having tiered storage including solid-state drive primary storage and magnetic disk drive secondary storage
US8190595B2 (en) 2009-03-28 2012-05-29 Microsoft Corporation Flexible query hints in a relational database
US20100281078A1 (en) 2009-04-30 2010-11-04 Microsoft Corporation Distributed data reorganization for parallel execution engines
WO2011035424A1 (en) 2009-09-25 2011-03-31 Farzad Khalvati System, method and computer program for automated window memoization
US8463825B1 (en) 2010-04-27 2013-06-11 Tintri Inc. Hybrid file system for virtual machine storage
EP2612246A4 (en) 2010-08-31 2014-04-09 Nec Corp STORAGE SYSTEM
CN102467452B (zh) 2010-11-16 2014-08-27 北京中电华大电子设计有限责任公司 一种静态存储分配的局部非静态数据的存储空间分配方法
US9805108B2 (en) 2010-12-23 2017-10-31 Mongodb, Inc. Large distributed database clustering systems and methods
JP5478526B2 (ja) 2011-01-31 2014-04-23 日本電信電話株式会社 データ分析及び機械学習処理装置及び方法及びプログラム
US9513814B1 (en) 2011-03-29 2016-12-06 EMC IP Holding Company LLC Balancing I/O load on data storage systems
US8495178B1 (en) 2011-04-01 2013-07-23 Symantec Corporation Dynamic bandwidth discovery and allocation to improve performance for backing up data
US8918362B2 (en) 2011-05-23 2014-12-23 Microsoft Corporation Replication processes in a distributed storage environment
US8677366B2 (en) 2011-05-31 2014-03-18 International Business Machines Corporation Systems and methods for processing hierarchical data in a map-reduce framework
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
KR101257691B1 (ko) 2011-08-12 2013-04-24 아주대학교산학협력단 메모리 컨트롤러 및 이의 데이터 관리방법
US8973018B2 (en) 2011-08-23 2015-03-03 International Business Machines Corporation Configuring and relaying events from a storage controller to a host server
US8874848B2 (en) 2011-09-30 2014-10-28 Net App, Inc. Intelligence for controlling virtual storage appliance storage allocation
US20130124916A1 (en) 2011-11-16 2013-05-16 Microsoft Corporation Layout of mirrored databases across different servers for failover
US8959522B2 (en) 2012-01-30 2015-02-17 International Business Machines Corporation Full exploitation of parallel processors for data processing
US20130232382A1 (en) 2012-03-01 2013-09-05 Microsoft Corporation Method and system for determining the impact of failures in data center networks
US9116913B2 (en) 2012-04-25 2015-08-25 Hitachi, Ltd. File storage system and file cloning method
KR101512716B1 (ko) * 2012-04-30 2015-04-17 주식회사 케이티 가상 스토리지 이미지 경량화 시스템 및 가상 스토리지 이미지 경량화 시스템의 입출력 방법 및 가상 스토리지 이미지 생성 방법
US9002939B2 (en) 2012-06-03 2015-04-07 International Business Machines Corporation Adaptive and dynamic replication management in cloud computing
US8924977B2 (en) 2012-06-18 2014-12-30 International Business Machines Corporation Sequential cooperation between map and reduce phases to improve data locality
KR102090090B1 (ko) * 2012-07-03 2020-03-17 바이올린 메모리 인코포레이티드 분산형 raid 그룹의 동기화
US9411558B2 (en) 2012-10-20 2016-08-09 Luke Hutchison Systems and methods for parallelization of program code, interactive data visualization, and graphically-augmented code editing
US20130074057A1 (en) 2012-11-08 2013-03-21 Concurix Corporation Selecting Functions for Memoization Analysis
US9262416B2 (en) 2012-11-08 2016-02-16 Microsoft Technology Licensing, Llc Purity analysis using white list/black list analysis
US9098491B2 (en) 2012-11-23 2015-08-04 Hong Kong Applied Science and Technology Research Institute Company Limited Method and system for performing data transfer with a flash storage medium
US9817766B1 (en) 2012-12-28 2017-11-14 EMC IP Holding Company LLC Managing relocation of slices in storage systems
US9081826B2 (en) * 2013-01-07 2015-07-14 Facebook, Inc. System and method for distributed database query engines
US9319464B2 (en) 2013-01-22 2016-04-19 International Business Machines Corporation Storage managment in a multi-tiered storage architecture
CN103973470A (zh) 2013-01-31 2014-08-06 国际商业机器公司 用于无共享集群的集群管理方法和设备
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US9189410B2 (en) 2013-05-17 2015-11-17 Vmware, Inc. Hypervisor-based flash cache space management in a multi-VM environment
US9053167B1 (en) 2013-06-19 2015-06-09 Amazon Technologies, Inc. Storage device selection for database partition replicas
US9280300B2 (en) 2013-06-28 2016-03-08 Vmware, Inc. Techniques for dynamically relocating virtual disk file blocks between flash storage and HDD-based storage
US9182927B2 (en) 2013-06-28 2015-11-10 Vmware, Inc. Techniques for implementing hybrid flash/HDD-based virtual disk files
US9703717B2 (en) 2013-07-29 2017-07-11 Hitachi, Ltd. Computer system and control method
US9304997B2 (en) 2013-08-27 2016-04-05 Netapp, Inc. Asynchronously migrating a file system
US20150074350A1 (en) 2013-09-06 2015-03-12 Frank Feng-Chun Chiang Memoization buckets for cached function results
US10341208B2 (en) 2013-09-26 2019-07-02 Taiwan Semiconductor Manufacturing Co., Ltd. File block placement in a distributed network
US9330108B2 (en) 2013-09-30 2016-05-03 International Business Machines Corporation Multi-site heat map management
US20150127646A1 (en) 2013-11-01 2015-05-07 At&T Intellectual Property I, L.P. Big data analytics
US9348707B2 (en) 2013-12-18 2016-05-24 International Business Machines Corporation Dynamically adjusting the number of replicas of a file according to the probability that the file will be accessed within a distributed file system
CN104750558B (zh) * 2013-12-31 2018-07-03 伊姆西公司 在分层配额系统中管理资源分配的方法和装置
US9195401B2 (en) 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
US9354994B2 (en) 2014-02-18 2016-05-31 International Business Machines Corporation Preemptive relocation of failing data
US10459767B2 (en) 2014-03-05 2019-10-29 International Business Machines Corporation Performing data analytics utilizing a user configurable group of reusable modules
CA2855136C (en) 2014-04-07 2019-01-29 Marin Litoiu Systems and methods of precision sharing of big data
US9323462B2 (en) 2014-04-08 2016-04-26 International Business Machines Corporation File system snapshot data management in a multi-tier storage environment
CN103955436B (zh) 2014-04-30 2018-01-16 华为技术有限公司 一种数据处理装置和终端
US9773014B2 (en) 2014-06-03 2017-09-26 Samsung Electronics Co., Ltd. Heterogeneous distributed file system using different types of storage mediums
US9372630B2 (en) 2014-07-09 2016-06-21 International Business Machines Corporation Migration of newly allocated data to a storage tier
US20160011876A1 (en) 2014-07-11 2016-01-14 Cavium, Inc. Managing instruction order in a processor pipeline
WO2016011441A1 (en) 2014-07-18 2016-01-21 Ab Initio Technology Llc Managing parameter sets
US10176097B2 (en) 2014-12-16 2019-01-08 Samsung Electronics Co., Ltd. Adaptable data caching mechanism for in-memory cluster computing
US20160188490A1 (en) 2014-12-26 2016-06-30 Intel Corporation Cost-aware page swap and replacement in a memory
US20160188898A1 (en) * 2014-12-31 2016-06-30 Netapp, Inc. Methods and systems for role based access control in networked storage environment
US9858191B2 (en) * 2014-12-31 2018-01-02 Samsung Electronics Co., Ltd. Electronic system with data management mechanism and method of operation thereof
US10275328B2 (en) 2015-04-02 2019-04-30 Vmware, Inc. Fault tolerance for hybrid cloud deployments
US10048996B1 (en) 2015-09-29 2018-08-14 Amazon Technologies, Inc. Predicting infrastructure failures in a data center for hosted service mitigation actions
US9967227B2 (en) 2015-11-11 2018-05-08 Fastly, Inc. Enhanced content route selection in content delivery networks
US9832277B2 (en) 2015-11-13 2017-11-28 Western Digital Technologies, Inc. Systems and methods for adaptive partitioning in distributed cache memories
US10609129B2 (en) * 2016-02-19 2020-03-31 Huawei Technologies Co., Ltd. Method and system for multi-tenant resource distribution
US10262102B2 (en) 2016-02-24 2019-04-16 Seven Bridges Genomics Inc. Systems and methods for genotyping with graph reference
US10193977B2 (en) * 2016-04-29 2019-01-29 Huawei Technologies Co., Ltd. System, device and process for dynamic tenant structure adjustment in a distributed resource management system
US10572822B2 (en) 2016-07-21 2020-02-25 International Business Machines Corporation Modular memoization, tracking and train-data management of feature extraction
US10009426B2 (en) * 2016-08-12 2018-06-26 Netapp, Inc. Converged infrastructure and associated methods thereof
US9977743B2 (en) 2016-08-31 2018-05-22 Intel Corporation Managing enclave memory pages

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253674A1 (en) 2005-05-06 2006-11-09 Xiv Ltd. Automatic disk healing
US20130179630A1 (en) 2008-03-01 2013-07-11 Kabushiki Kaisha Toshiba Memory system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MENG, Fei, 외 2인."vCacheShare: automated server flash cache space management in a virtualization environment".2014 USENIX ATC.2014.07.19.,(제133면 내지 제144면)
Ron C. CHIANG 외 2인."An adaptive IO prefetching approach for virtualized data centers".IEEE Transactions on Services Computing,2015.08.18.,Vol.10.3,(제328면 내지 제340면)

Also Published As

Publication number Publication date
KR102198680B1 (ko) 2021-01-05
US20180067869A1 (en) 2018-03-08
US20180067857A1 (en) 2018-03-08
US10311025B2 (en) 2019-06-04
US10467195B2 (en) 2019-11-05
KR20180027328A (ko) 2018-03-14
KR20180027326A (ko) 2018-03-14
US20180067961A1 (en) 2018-03-08
KR102191225B1 (ko) 2020-12-15
US20180067861A1 (en) 2018-03-08
US10452612B2 (en) 2019-10-22
US10372677B2 (en) 2019-08-06
KR20180027327A (ko) 2018-03-14

Similar Documents

Publication Publication Date Title
KR102226017B1 (ko) 동적으로 입도를 업데이트하는 적응적 캐시 대체 매니저 및 공유 플래시-기반 스토리지 시스템의 파티셔닝 방법
US10963387B2 (en) Methods of cache preloading on a partition or a context switch
US9672158B2 (en) Asymmetric memory migration in hybrid main memory
Yang et al. GReM: Dynamic SSD resource allocation in virtualized storage systems with heterogeneous IO workloads
US9336141B2 (en) Hash-based spatial sampling for efficient cache utility curve estimation and cache allocation
US9032398B2 (en) Online classification of memory pages based on activity level represented by one or more bits
US9971698B2 (en) Using access-frequency hierarchy for selection of eviction destination
US9256469B2 (en) System and method for improving memory usage in virtual machines
Koller et al. Centaur: Host-side ssd caching for storage performance control
KR102305834B1 (ko) 이종 가상화 클라우드 캐시 환경에서의 동적 캐시분할 관리자
KR20100134502A (ko) 매체 i/o 속도에 기초한 차분 캐싱 메커니즘
TW201631478A (zh) 根據記憶體存取類型的效益並配合積極層級的預取
Min et al. Vmmb: Virtual machine memory balancing for unmodified operating systems
Rajasekaran et al. Multi-cache: Dynamic, efficient partitioning for multi-tier caches in consolidated VM environments
KR101587579B1 (ko) 가상화 시스템에서 메모리 조정방법
KR101072807B1 (ko) 가상 머신 모니터 시스템
US11782624B2 (en) Worflow-based partition allocation
Frasca et al. Virtual I/O caching: Dynamic storage cache management for concurrent workloads
Chiang et al. Memory reclamation and compression using accurate working set size estimation
Lee Cost-Age-Time Data Organized Garbage Collection

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