KR20150089688A - 가상 머신 이미지 파일의 캐시 관리 장치 및 방법 - Google Patents

가상 머신 이미지 파일의 캐시 관리 장치 및 방법 Download PDF

Info

Publication number
KR20150089688A
KR20150089688A KR1020140010600A KR20140010600A KR20150089688A KR 20150089688 A KR20150089688 A KR 20150089688A KR 1020140010600 A KR1020140010600 A KR 1020140010600A KR 20140010600 A KR20140010600 A KR 20140010600A KR 20150089688 A KR20150089688 A KR 20150089688A
Authority
KR
South Korea
Prior art keywords
cache
file
block
layer
cache block
Prior art date
Application number
KR1020140010600A
Other languages
English (en)
Inventor
석성우
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020140010600A priority Critical patent/KR20150089688A/ko
Priority to US14/606,616 priority patent/US20150212847A1/en
Publication of KR20150089688A publication Critical patent/KR20150089688A/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/10Address translation
    • 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/0871Allocation or management of cache space
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 복수의 가상 머신을 실행하는 서버 메모리 내의 캐시를 관리하는 장치 및 방법에 관한 것이다.
본 발명의 일면에 따른 가상 머신 이미지 파일의 캐시 관리 장치는 캐시 메모리를 캐시 블록으로 분할하고, 분할된 캐시 블록을 포함하는 복수의 캐시 계층을 구성하는 캐시 계층 구성부 및 캐시 메모리가 수신하는 읽기 요청 신호에 따라 읽기 요청 간 시간 간격 정보 및 참조 파일 개수를 바탕으로 캐시 계층을 관리하고, 읽기 요청 신호 해당 캐시 블록의 데이터를 전송하는 읽기 요청 처리부를 포함하는 것을 특징으로 한다.

Description

가상 머신 이미지 파일의 캐시 관리 장치 및 방법{APPARATUS AND METHOD FOR MANAGING CACHE OF VIRTUAL MACHINE IMAGE FILE}
본 발명은 복수의 가상 머신을 실행하는 서버 메모리 내의 캐시를 관리하는 장치 및 방법에 관한 것이다.
다수의 가상 머신을 단일 서버에서 실행하는 가상화 기술에 있어서, 각 가상 머신의 운영체제를 포함하는 데이터들은 가상 머신에 할당된 디스크 이미지 파일 또는 가상 머신 이미지 파일에 저장되고, 가상 머신이 부팅되는 경우, 해당 가상 머신 이미지 파일을 열어서 운영체제의 시동에 필요한 데이터들을 읽거나 쓰게 된다.
일반적으로 가상화 기술을 제공하는 서버에서 실행되는 가상 머신들은 동일한 운영체제의 가상 머신 이미지 파일을 복제하여 복수 개의 가상 머신으로 제공하는 경우가 대부분이다.
가상 머신 이미지 파일에 대한 입출력은 주로 가상 머신의 부팅 시와 응용프로그램의 실행 시에 집중되어 발생하며, 이는 PC에서 부팅 시와 응용프로그램 실행 시에 디스크 입출력이 집중되어 발생되는 것과 동일한 현상이다.
도 1은 종래 기술에 따른 VDI(Virtual Desktop Infrastructure) 서비스를 제공하는 클라우드 컴퓨팅 시스템의 구조를 나타내는 예시도로서, 도 1에 도시된 바와 같이 클라우드 컴퓨팅 서비스 중 VDI(Virtual Desktop Infrastructure) 서비스는 가상화된 데스크탑 환경을 제공하는 가상 머신들을 서버에서 실행하고, 사용자에게 화면과 인터페이스를 제공하는 서비스이다.
VDI 서비스 환경에서는 VDI 서비스를 사용하는 직원들의 출근 시간 직후와 같은 특정 시간 대에 다수의 가상 머신 부팅이 집중적으로 발생하면서, 가상 머신 이미지 파일의 입출력 부하가 폭증하는 현상이 발생한다.
이러한 현상에 따라 전체 가상 머신의 가상 머신 이미지 파일의 입출력 성능이 급격히 저하되는데, 이를 Boot storm 또는 Bootstorm 현상이라고 한다.
Boot storm 현상을 해결하기 위하여 제안된 종래 기술의 일례로서, 사용자가 가상 머신을 사용하기 전에 미리 순차적으로 가상 머신을 부팅하는 기술이 제안되었다.
이러한 종래 기술은 동시 부팅 시의 디스크 이미지 입출력 병목 현상을 방지하고, 사용자가 로그인 시에 곧바로 본인의 데스크탑을 사용할 수 있으나, 사용자가 어떠한 가상 머신을 사용할 것인지에 대하여는 미리 알 수 없기 때문에 불필요한 가상 머신을 실행하게 됨에 따라 서버 자원이 낭비되는 문제점이 있으며, 사용자의 가상 머신 사용에 규칙성이 없는 경우에는 이러한 종래 기술을 적용하기 어려운 문제점이 있다.
도 1에 도시된 바와 같이 일반적인 VDI 서비스 제공 클라우드 컴퓨팅 시스템은 네트워크로 연결된 공유 스토리지(30)에 사용자 가상 머신 이미지 파일(30a, 30z)들을 저장하고, 네트워크를 통해 가상 머신 이미지 파일의 데이터에 접근하는 구조이다.
이러한 구조는 가상 머신(10a, 10n, 20x, 20z)과 서버(10, 20) 간 배치의 유연성을 높임으로써, 서버 자원 활용의 효율성을 높이고, 오류 내구성 및 유지 보수성 측면에서 장점이 있다.
그러나 이러한 구조는 가상 머신의 이미지 파일에 대한 모든 입출력이 네트워크를 통하여 이루어져야 하므로, boot storm 발생 시 서버(10, 20)와 공유 스토리지(30) 간의 연결 네트워크에서 병목 현상이 발생하는 문제점이 있다.
서버 내에 존재하는 로컬 저장소(메모리, 로컬 디스크)에 가상 머신 이미지 파일의 전부 또는 일부를 저장함으로써 네트워크를 통한 가상 머신의 입출력 부하량을 줄이고, 병목 현상을 개선할 수 있다.
선행 특허 문헌(대한민국 공개특허공보 특1999-0082741, 분산 데이터 프로세싱 시스템 내에서 하이버네이션을 위한 방법 및 장치)은 네트워크로 연결된 분산 데이터 처리 시스템에서 원격서버에 저장되어 있는 데이터를 사용하여, 네트워크로 연결된 각 컴퓨터(NC, Network computer)가 부팅하는 환경에서 NC의 로컬 디스크에 부팅에 필요한 정보를 저장(하이버네이션, hibernation)함으로써 NC의 부팅 성능을 개선하는 기술을 개시하고 있다.
선행 특허 문헌 대한민국 공개특허공보 특1999-0082741은 가상 머신을 위한 것은 아니나, 네트워크로 연결된 공유 스토리지를 활용하는 VDI 서비스 클라우드 시스템에서도 가상 머신의 부팅 성능을 개선하기 위한 기술로서 적용될 수 있다.
이와 같은 서버의 로컬디스크를 활용한 부팅이미지의 저장 기술은 가상 머신의 부팅 성능을 개선하고 네트워크의 병목 현상을 완화할 수 있으나, 로컬디스크 자원을 상당 부분 사용하여야 하고, 가상 머신의 서버간 이동성을 저하시키는 문제점이 있다.
또 다른 선행 특허 문헌(미국 공개특허공보 US20110265083 A1, File system independent content aware cache)은 가상 머신을 위한 서버의 캐시 관리 기술로서 content aware 필터를 이용하여 캐시 내 데이터의 내용이 동일한 데이터를 중복 제거함으로써 캐시의 사용을 최적화하는 기술을 제시하고 있으나, 캐시 교체 알고리즘에 대하여는 개시하고 있지 않다.
본 발명의 목적은 가상 머신 이미지 파일의 데이터 중 가상 머신의 부팅 시 주로 사용되는 데이터를 서버의 메모리로 저장하고, 캐시 메모리를 관리함으로써 부팅 성능을 개선하는 가상 머신 이미지 파일의 캐시 관리 장치 및 방법을 제공하는 데 목적이 있다.
본 발명의 일면에 따른 가상 머신 이미지 파일의 캐시 관리 장치는 캐시 메모리를 캐시 블록으로 분할하고, 분할된 캐시 블록을 포함하는 복수의 캐시 계층을 구성하는 캐시 계층 구성부 및 캐시 메모리가 수신하는 읽기 요청 신호에 따라 읽기 요청 간 시간 간격 정보 및 참조 파일 개수를 바탕으로 캐시 계층을 관리하고, 읽기 요청 신호에 따라 해당 캐시 블록의 데이터를 전송하는 읽기 요청 처리부를 포함하는 것을 특징으로 한다.
본 발명의 다른 면에 따른 가상 머신 이미지 파일의 캐시 관리 방법은 캐시 메모리를 캐시 블록으로 분할하고, 분할된 캐시 블록에 대하여 캐시 계층 구조를 구성하는 단계, 캐시 메모리가 수신하는 읽기 요청 신호에 따라 파일 및 오프셋 정보와 일치하는 캐시 블록의 존재 여부를 검색하는 단계, 파일 및 오프셋 정보와 일치하는 캐시 블록의 존재 여부 검색 결과에 따라 읽기 요청 간 시간 간격 정보 및 참조 파일 개수를 바탕으로 캐시 계층 구조를 관리하는 단계 및 읽기 요청에 대하여 캐시 메모리 데이터를 전달하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따른 가상 머신 이미지 파일의 캐시 관리 장치 및 방법은 다수의 가상 머신을 실행하는 서버가 네트워크를 통해 가상 머신 이미지 파일을 공유하는 상황에서, 가상 머신이 동시에 부팅하거나 동시에 특정 응용프로그램을 실행하는 과정에서 발생하는 Boot storm 현상의 발생을 방지하고, 가상 머신 이미지 파일에 대한 입출력 성능을 개선하는 효과가 있다.
데이터의 중복을 제거하고 가상 머신 이미지 파일 간에 공통으로 사용되는 데이터의 우선 순위를 높여서 캐시 계층을 관리함으로써 적은 캐시 메모리를 사용하더라도 입출력 부하로 인하여 발생하는 네트워크의 병목 현상을 효과적으로 개선한다.
아울러, 읽기 요청 간 시간 간격이 짧은 데이터일수록 우선적으로 캐시 메모리에 저장함으로써, 입출력 요구가 집중적으로 발생하는 상황에서 캐시 적중률을 증가시키는 효과가 있다.
본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 종래 기술에 따른 VDI(Virtual Desktop Infrastructure) 서비스를 제공하는 클라우드 컴퓨팅 구조를 나타내는 예시도.
도 2는 본 발명에 따른 가상 머신 이미지 파일의 캐시 관리 장치를 나타내는 블록도.
도 3 내지 도 5는 본 발명에 따른 캐시 메모리의 배치를 나타내는 개념도.
도 6은 본 발명에 따른 중복 제거 캐시 관리를 나타내는 개념도.
도 7은 본 발명의 일 실시예에 따른 캐시 계층 구조 관리를 나타내는 개념도.
도 8은 본 발명에 따른 캐시 메모리 초기화 과정을 나타내는 순서도.
도 9 내지 도 12는 본 발명에 따른 읽기 요청 처리 과정을 나타내는 순서도.
도 13은 본 발명에 따른 쓰기 요청 처리 과정을 나타내는 순서도.
이하에서는 도면을 참조하면서, 본 발명의 바람직한 실시예들을 구체적으로 설명한다.
도 2는 본 발명의 일면에 따른 가상 머신 이미지 파일의 캐시 관리 장치를 나타내는 블록도이다.
도 2에 도시된 바와 같이, 가상 머신 이미지 파일의 캐시 관리 장치는 캐시 메모리를 캐시 블록으로 분할하고, 분할된 캐시 블록을 포함하는 복수의 캐시 계층을 구성하는 캐시 계층 구성부(100) 및 캐시 메모리가 수신하는 읽기 요청 신호에 따라 읽기 요청 간 시간 간격 정보 및 참조 파일 개수를 바탕으로 캐시 계층을 관리하고, 읽기 요청 신호 해당 캐시 블록의 데이터를 전송하는 읽기 요청 처리부(300)를 포함한다.
캐시 계층 구성부(100)는 가상화 기술이 적용된 서버의 로컬 메모리(RAM, SSD, 하드디스크 등)의 일부를 캐시 메모리로 사용하고, 캐시 메모리는 가상 머신 이미지 파일의 데이터 중 부팅 시와 응용 프로그램 실행 시 입출력되는 데이터를 저장한다.
캐시 계층 구성부(100)는 캐시 메모리를 분할하여 캐시 블록을 형성하고, 이러한 캐시 블록을 링크드리스트 형태로 관리한다.
본 발명의 일면에 따른 가상 머신 이미지 파일의 캐시 관리 장치가 사용하는 캐시 메모리는 Boot storm의 방지에 그 목적을 두고 있는 바, 캐시 메모리는 읽기 전용이며, 읽기 요청 간 시간 간격이 짧은 데이터에 우선순위를 할당하는 특징이 있다.
가상 머신의 부팅 시에는 쓰기 요청보다 읽기 요청이 많으므로, 읽기 요청의 입출력 부하를 줄이고 부팅 성능을 개선하는 것이 중요하므로, 읽기 요청에 대하여만 처리하는 것이 데이터 일관성 문제를 고려할 필요가 없고 간단한 구조로 구현할 수 있으며, 부하가 적으므로 높은 성능을 달성할 수 있다.
가상 머신의 부팅 시 또는 응용 프로그램의 실행 시 읽기 요청은 매우 짧은 시간 간격으로 집중적으로 발생하게 되는데, 이러한 상황이 여러 가상 머신에서 동시에 발생하게 되면 입출력 네트워크 상에 병목이 생겨서 성능 저하 현상이 발생한다.
이러한 현상의 발생을 방지하기 위하여 본 발명은 읽기 요청 간 시간 간격이 짧은 데이터일수록 우선적으로 캐시 메모리에 저장함으로써, 입출력 요구가 집중적으로 발생하는 상황에서 캐시 적중률을 증가시키는 효과가 있다.
도 3 내지 도 5는 본 발명에 따른 캐시 메모리의 배치를 나타내는 개념도이다.
캐시 계층 구성부는 서버의 하이퍼바이저 내에 존재하거나, 서버 내 특정 가상 머신 내에 존재하거나, 서버의 운영체제 및 하이퍼바이저 사이에 존재하는 캐시 메모리를 캐시 블록으로 분할한다.
도 3은 실제 하드웨어(13) 위에 가상화를 제공하는 하이퍼바이저(11)가 존재하고, 하이퍼바이저(11) 위에 가상 머신(10a, 10b, 10n)이 생성되며, 하이퍼 바이저(11)가 실제 하드웨어를 통한 입출력을 처리하는 타입을 도시한다.
도 4는 Xen 방식에 따른 가상화 기술을 도시하는 도면으로서, 하이퍼바이저(11)가 아닌 가상 머신 중에서 특정 가상 머신(17, 도메인 0 가상 머신)이 장치관리와 입출력을 처리하고, 특정 가상 머신(17)에 캐시메모리(11a)가 위치한다.
도 5는 서버 하드웨어 위에 일반적인 운영체제(12)가 존재하고, 그 위에 하이퍼바이저(11)가 존재하고, 하이퍼바이저(11) 위에 가상 머신(10a, 10b, 10n)이 생성되며, 캐시 메모리(11a)는 서버 운영체제(12)와 하이퍼바이저(11) 사이에 위치한다.
도 7은 본 발명의 일 실시예에 따른 캐시 계층 구조 관리를 나타내는 개념도로서, 캐시 계층 구성부는 복수의 캐시 계층을 구성함에 있어서 캐시 메모리를 일정한 크기(예: 4kb)로 나누어서 관리하고, 나뉘어진 단위를 캐시 블록이라고 한다.
이러한 캐시 블록들은 링크드리스트 형태로 관리되고, 캐시 블록들은 캐시 계층 1, 캐시 계층 2, 캐시 계층 3, 유휴 계층 등 4개의 캐시 계층 중 하나의 계층에 속한다.
도 7에 도시한 캐시 계층은 본 발명에 대하여 당업자의 이해를 돕기 위하여 캐시 계층을 총 4개로 도시한 것으로서, 캐시 계층은 설정에 따라 그 개수가 조절될 수 있으며, 본 발명이 도 7에 도시한 캐시 계층의 구조에 한정되는 것은 아니다.
캐시 계층 1의 마지막 캐시 블록은 캐시 계층 2의 첫 번째 캐시 블록과 연결되고, 캐시 계층 2의 마지막 캐시 블록은 캐시 계층 3의 첫 번째 캐시 블록과 연결되고, 캐시 계층 3의 마지막 캐시 블록은 유휴 계층의 첫 번째 캐시 블록과 연결된다.
캐시 계층 1은 읽기 요청 간 시간 간격이 짧고 다수의 파일들에 의하여 참조되는 데이터가 저장되는 계층이고, 캐시 계층2는 읽기 요청 간 시간 간격은 짧으나 적은 수의 파일에 의하여 참조되는 데이터가 저장되는 계층이며, 캐시 계층 3은 읽기 요청 간 시간 간격이 긴 데이터가 저장되는 계층이다.
캐시 계층 관리부(100)는 캐시 블록에 대한 읽기 요청이 발생하는 경우 해당 캐시 블록의 데이터에 대한 읽기 요청 간 시간 간격과 참조 파일 수를 바탕으로 캐시 계층을 선택하고, 해당 캐시 블록을 해당 캐시 계층의 맨 앞에 삽입한다.
또한, 하나의 캐시 블록에 대한 읽기 요청이 오랜 기간 없으면 해당 캐시 블록은 점점 후순위로 밀려나서 기존의 캐시 계층 3의 마지막 블록의 뒤까지 이동할 수 있다.
새로운 캐시 블록이 필요한 경우 캐시 계층 관리부(100)는 유휴 계층의 캐시 블록을 할당하고, 유휴 계층의 캐시 블록이 없는 경우 캐시 계층 3의 가장 마지막 캐시 블록에 대한 할당을 해제하여 유휴 블록으로 전환하여 사용한다.
따라서, 캐시 계층 1의 데이터는 캐시 계층 2의 데이터보다 캐시 내에서 잔존할 확률이 높아지게 되고, 캐시 계층 2의 데이터는 캐시 계층 3의 데이터보다 캐시 내에서 잔존할 확률이 높아지므로, 읽기 요청 간 시간 간격이 짧고, 많은 파일들에 의하여 공유되는 데이터들의 캐시 내 잔존 확률이 높아지게 됨으로써, Boot storm 등 입출력 부하 폭증 시 요청되는 데이터에 대한 캐시 적중률을 높일 수 있다.
캐시 계층 관리부(100)는 이러한 캐시 계층의 관리를 위하여 가상 머신 이미지 파일 관리 정보, 캐시 관리 정보, 캐시 블록 관리 정보(캐시 블록 메타데이터)를 관리한다.
캐시 계층 관리부(100)는 파일 경로, 최근 읽기 요청 시각, 최근 읽기 데이터가 저장된 캐시 블록의 메타데이터 주소를 가상 머신 이미지 파일 관리 정보로서 관리한다.
캐시 계층 관리부(100)는 캐시 계층 1 및 2의 정보(첫 블록 및 마지막 블록의 메타데이터 주소, 최대 허용 블록 개수, 여유 블록 개수), 캐시 계층 3 및 유휴 계층의 정보(첫 블록 및 마지막 블록의 메타데이터 주소, 현재 블록 개수), 읽기 요청 간 시간 간격 경계값, 연결 파일 수 경계값, 캐시 블록 크기, 캐시 블록 개수를 캐시 관리 정보로서 관리한다.
캐시 계층 관리부(100)는 캐시 블록이 참조하는 파일 및 파일 내 위치 정보의 배열을 관리하고, 파일 경로, 파일 내 오프셋 값, 상태 플래그, 캐시 블록이 참조하는 파일 개수, 캐시 블록 주소, 캐시 블록 데이터 해시(hash) 결과값, 읽기 요청 간 평균 시간 간격, 읽기 요청 횟수, 링크드리스트에서 앞 캐시 블록의 메타데이터 주소를 캐시 블록 관리정보로서 관리한다.
읽기 요청 처리부(300)는 읽기 요청 신호에 따라 파일 및 오프셋 정보가 일치하는 캐시 블록이 존재하는지 검사하고, 파일 및 오프셋 정보가 일치하는 해당 캐시 블록이 존재하는 경우, 해당 캐시 블록의 읽기 요청 간 평균 시간 간격 정보를 갱신한다.
이 때, 읽기 요청 처리부(300)는 해당 캐시 블록의 갱신된 읽기 요청 간 평균 시간 간격이 기설정된 경계값보다 큰 경우, 해당 캐시 블록을 읽기 요청 간 시간 간격이 긴 데이터를 저장하는 캐시 계층(캐시 계층 3)의 선두 블록 앞에 삽입한다.
반면, 해당 캐시 블록의 갱신된 읽기 요청 간 평균 시간 간격이 기설정된 시간 경계값보다 작은 경우, 읽기 요청 처리부(300)는 해당 캐시 블록이 참조하는 파일 개수와 기설정된 파일 개수 경계값을 비교하고, 해당 캐시 블록이 참조하는 파일 개수가 기설정된 파일 개수 경계값보다 큰 경우 해당 캐시 블록을 읽기 요청 간 시간 간격이 짧고, 다수의 파일들에 의해 참조되는 데이터를 저장하는 최상위 캐시 계층(캐시 계층 1)에 저장하되, 최상위 캐시 계층(캐시 계층 1)에 여유 블록이 존재하지 않는 경우 캐시 계층(캐시 계층 2)을 재구성하여 해당 캐시 블록을 최상위 캐시 계층(캐시 계층 1)의 선두 블록 앞에 삽입한다.
읽기 요청 처리부(300)는 해당 캐시 블록이 참조하는 파일수가 기설정된 파일 개수 경계값보다 작은 경우, 해당 캐시 블록을 읽기 요청 간 시간 간격이 짧고, 소수의 파일들에 의해 참조되는 데이터를 저장하는 상위 캐시 계층(캐시 계층 2)에 저장하되, 상위 캐시 계층(캐시 계층 2)에 여유 블록이 존재하지 않는 경우 캐시 계층을 재구성하여 해당 캐시 블록을 상위 캐시 계층(캐시 계층 2)의 선두 블록 앞에 삽입한다.
읽기 요청 처리부(300)는 파일 및 오프셋 정보가 일치하는 해당 캐시 블록이 존재하지 않는 경우, 캐시 계층 중 유휴 계층 내에 캐시 블록이 존재하는지 검사하고, 유휴 계층 내에 캐시 블록이 존재하는 경우 유휴 계층 내의 캐시 블록 중 말단의 캐시 블록을 인출하고, 유휴 계층 내에 캐시 블록이 존재하지 않는 경우 캐시 계층 중 최하위 캐시 계층(캐시 계층 3)의 말단 캐시 블록을 인출하여, 유휴 계층 또는 최하위 캐시 계층(캐시 계층 3)으로부터 인출한 캐시 블록에 파일 및 오프셋 정보를 기록한다.
이 때, 읽기 요청 처리부(300)는 해당 파일의 데이터를 파일 및 오프셋 정보를 기록한 캐시 블록으로 읽어 들이고, 읽어 들인 데이터의 해시값을 계산하여 캐시 블록 관리 정보에 저장하고, 계산 및 저장한 해시값과 동일한 해시값을 가진 캐시 블록이 존재하는지 검사하고, 계산 및 저장한 해시값과 동일한 해시값을 가진 캐시 블록이 존재하는 경우 동일한 해시값을 가진 캐시 블록에 파일 및 오프셋 정보를 추가하고, 파일 및 오프셋 정보를 기록한 캐시 블록을 할당 해제하여 유휴 계층에 삽입한다.
도 6은 전술한 중복 제거 캐시 관리를 나타내는 개념도로서, 본 발명에 따르면 상이한 가상 머신 이미지 파일에서 읽어온 데이터라고 하더라도 데이터의 내용이 동일한 경우 하나의 캐시 블록을 사용하도록 하여 중복을 제거한다.
본 발명에 따른 가상 머신 이미지 파일의 캐시 관리 장치는 하이퍼바이저의 실행에 따라 실행되어, 캐시 관리 정보, 캐시 블록 관리 정보를 초기화하는 캐시 메모리 초기화부(200)를 더 포함한다.
본 발명에 따른 가상 머신 이미지 파일의 캐시 관리 장치는 캐시 메모리가 수신하는 쓰기 요청 신호에 따라 파일 및 오프셋 정보가 일치하는 캐시 블록을 검색하고, 파일 및 오프셋 정보가 일치하는 캐시 블록이 존재하는 경우 캐시 블록에서 해당 파일 및 오프셋 정보를 제거하고, 캐시 블록이 참조하는 파일을 제거하고, 캐시 블록을 할당 해제하여 유휴 계층에 삽입하고, 파일에 대한 쓰기 작업을 실행하는 쓰기 요청 처리부(400)를 더 포함한다.
본 발명의 다른 면에 따른 가상 머신 이미지 파일의 캐시 관리 방법은 캐시 메모리를 캐시 블록으로 분할하고, 분할된 캐시 블록에 대하여 캐시 계층 구조를 구성하는 단계와, 캐시 메모리가 수신하는 읽기 요청 신호에 따라 파일 및 오프셋 정보와 일치하는 캐시 블록의 존재 여부를 검색하는 단계와, 파일 및 오프셋 정보와 일치하는 캐시 블록의 존재 여부 검색 결과에 따라 읽기 요청 간 시간 간격 정보 및 참조 파일 개수를 바탕으로 캐시 계층 구조를 관리하는 단계 및 읽기 요청에 대하여 캐시 메모리 데이터를 전달하는 단계를 포함한다.
도 9 내지 도 12는 본 발명에 따른 읽기 요청 처리 과정을 나타내는 순서도이다.
도 9 내지 도 12에 도시된 바와 같이, 파일 및 오프셋 정보와 일치하는 캐시 블록이 존재하는지 검사하고(S11), 해당 캐시 블록이 존재하는지 검사하여(S12), 파일 및 오프셋 정보와 일치하는 캐시 블록이 존재하는 경우, 파일 및 오프셋 정보와 일치하는 해당 캐시 블록의 읽기 요청 간 평균 시간 간격 정보를 갱신하고(S40), 갱신한 해당 캐시 블록의 읽기 요청 간 평균 시간 간격과 기설정된 경계값을 비교한다(S41).
갱신한 해당 캐시 블록의 읽기 요청 간 평균 시간 간격이 기설정된 경계값보다 큰 경우, 해당 캐시 블록을 캐시 계층 구조 중 유휴 계층을 제외한 최하위 캐시 계층 구조(캐시 계층 3)에 삽입한다(S55).
반면, 갱신한 해당 캐시 블록의 읽기 요청 간 평균 시간 간격이 기설정된 경계값보다 작은 경우, 해당 캐시 블록이 참조하는 파일 개수를 검사하고(S42), 해당 캐시 블록이 참조하는 파일 개수와 기설정된 파일 개수 경계값을 비교하고(S43), 해당 캐시 블록이 참조하는 파일 개수 및 기설정된 파일 개수 경계값의 비교 결과에 따라 해당 캐시 블록을 캐시 계층 중 최상위 계층(캐시 계층 1) 또는 최상위 계층의 하위 계층(캐시 계층 2)의 선두 캐시 블록 앞에 삽입한다.
이 때, 해당 캐시 블록이 참조하는 파일 개수가 기설정된 파일 개수 경계값보다 큰 경우, 최상위 캐시 계층(캐시 계층 1)의 여유 블록 개수를 검사하고(S48), 여유 블록 개수가 존재하는 경우 해당 캐시 블록을 최상위 캐시 계층의 첫 번째 블록앞으로 삽입한다(S54). 반면, 최상위 캐시 계층(캐시 계층 1)의 여유 블록이 없는 경우에는, 최상위 캐시 계층(캐시 계층 1)의 하위 계층(캐시 계층 2)의 말단 캐시 블록을 그보다 하위 계층(캐시 계층 3)의 첫 번째 블록 앞으로 삽입(S52)하고, 최상위 캐시 계층(캐시 계층 1)의 말단 캐시 블록을 상위 캐시 계층(캐시 계층 2)의 첫 번째 블록 앞으로 삽입하며(S53), 해당 캐시 블록을 최상위 캐시 계층(캐시 계층 1)의 첫 번째 블록 앞으로 삽입한다(S54).
해당 캐시 블록이 참조하는 파일 개수가 기설정된 파일 개수 경계값보다 작은 경우, 상위 캐시 계층(캐시 계층 2)의 여유 블록 개수를 검사하고(S44), 여유 블록 개수가 존재하는 경우 해당 캐시 블록을 상위 캐시 계층(캐시 계층 2)의 첫 번째 블록앞으로 삽입한다(S47). 상위 캐시 계층(캐시 계층 2)의 여유 블록이 없는 경우에는, 상위 캐시 계층(캐시 계층 2)의 말단 캐시 블록을 그보다 하위 계층(캐시 계층 3)의 첫 번째 블록 앞으로 삽입하고(S46), 해당 캐시 블록을 상위 캐시 계층(캐시 계층 2)의 첫 번째 블록 앞으로 삽입한다(S47).
파일 및 오프셋 정보와 일치하는 캐시 블록이 존재하지 않는 경우, 캐시 계층 중 유휴 계층 내에 캐시 블록이 존재하는지 검사하고(S21), 유휴 계층 내에 캐시 블록이 존재하는 경우 유휴 계층 내의 캐시 블록 중 말단 캐시 블록을 인출하고(S24), 유휴 계층 내에 캐시 블록이 존재하지 않는 경우 캐시 계층 중 최하위 캐시 계층(캐시 계층 3)의 말단 캐시 블록을 인출하여(S23), 인출한 캐시 블록에 파일 및 오프셋 정보를 기록한다(S25).
이 때, 파일 및 오프셋 정보의 파일 데이터를 캐시 블록으로 읽어 들이고(S26), 읽어 들인 파일 데이터의 해시값을 계산 및 저장하고(S27), 계산 및 저장한 해시값과 동일한 해시값을 가진 캐시 블록을 검색하여(S28), 계산 및 저장한 해시값과 동일한 해시값을 가진 캐시 블록이 존재하는 경우 파일 및 오프셋 정보를 기록한 캐시 블록의 파일 및 오프셋 정보를 동일한 해시값을 가진 캐시 블록에 추가하고(S31), 파일 및 오프셋 정보를 기록한 캐시 블록에 대한 할당을 해제하고, 할당이 해제된 캐시 블록을 유휴 계층에 삽입하여 중복 캐시를 삭제한다(S30).
본 발명에 따른 가상 머신 이미지 파일의 캐시 관리 방법은 하이퍼바이저의 실행에 따라 실행되고, 캐시 관리 정보 및 캐시 블록 관리정보를 초기화하는 캐시 메모리 초기화 단계를 더 포함한다.
도 8은 본 발명에 따른 캐시 메모리 초기화 과정을 나타내는 순서도로서, 캐시 관리 정보 초기화 단계(S1)와, 캐시 블록 관리 정보 메모리 할당 및 초기화 단계(S2)와, 캐시 블록 할당 단계(S3)와, 할당된 주소를 캐시 블록 관리 정보에 기록하는 단계(S4)와, 유휴 계층의 마지막 캐시 블록 메타데이터의 주소를 검사하는 단계(S5)와, 유휴 계층의 마지막 블록의 메타데이터 주소가 NULL이 아닌 경우 해당 메타데이터의 주소를 현재 캐시 블록 관리 정보의 앞 캐시 블록 메타데이터에 기록하는 단계(S7)와, 유휴 계층의 마지막 블록의 메타데이터 주소가 NULL인 경우 유휴 계층의 마지막 블록 메타데이터 주소에 현재 캐시 블록 메타데이터 주소를 기록하는 단계(S8) 및 캐시 블록의 개수만큼 할당 완료되었는지 검사하는 단계(S9)를 포함하여 구성된다.
캐시 관리 정보 초기화 단계(S1)는 캐시 계층의 첫 블록 및 마지막 블록의 메타데이터 주소를 NULL로 하고, 최상위 캐시 계층 및 상위 캐시 계층의 최대 허용 블록 개수를 기설정된 최대값으로 설정하고, 여유 블록 개수도 최대 허용 블록 개수와 동일하게 설정하고, 하위 캐시 계층과 유휴 계층의 현재 블록 개수를 0으로 설정하고, 읽기 요청 간 시간 간격 경계값과 연결 파일 개수 경계값을 설정하고, 캐시 블록 크기 및 캐시 블록 개수를 기설정값으로 설정한다.
캐시 블록 관리 정보 메모리 할당 및 초기화 단계(S2)는 캐시 블록 개수만큼 캐시 블록 관리 정보를 할당하고, 캐시 블록이 참조하는 파일 및 파일 내 위치 정보를 NULL로 초기화하고, 캐시 블록이 참조하는 파일 개수를 0으로 초기화하고, 캐시 블록 주소를 NULL로 초기화하고, 캐시 블록 데이터 해시(hash) 결과값을 0으로 초기화하고, 읽기 요청 간 평균 시간 간격을 기설정된 최대값으로 초기화하고, 읽기 요청 회수를 0으로 초기화하고, 캐시 블록 메타데이터 주소를 NULL로 초기화한다.
캐시 블록 할당 단계(S3)는 단일 캐시 블록 크기만큼 메모리를 할당하고, 할당된 주소를 캐시 블록 관리 정보에 기록하는 단계는 캐시 블록 관리 정보의 캐시 블록 주소에 할당된 메모리의 주소를 기록한다.
본 발명에 따른 가상 머신 이미지 파일의 캐시 관리 방법은 쓰기 요청 신호를 수신하는 경우 상기 수신한 쓰기 요청 신호에 따라 파일 및 오프셋 정보가 일치하는 캐시 블록을 검색하고, 파일에 대한 쓰기 작업을 실행하는 단계를 더 포함한다.
도 13은 본 발명에 따른 쓰기 요청 처리 과정을 나타내는 순서도로서, 해당 파일과 오프셋 정보와 일치하는 캐시 블록을 검색하고(S60), 일치하는 캐시 블록이 존재하는 경우 캐시 블록에서 해당 파일 및 오프셋 정보를 제거하고, 참조하는 파일 개수를 1만큼 감소시키고(S62), 참조하는 파일이 모두 제거되었는지 확인하고(S63), 참조하는 파일이 모두 제거된 경우 해당 캐시 블록을 할당 해제하여 유휴 계층의 첫 번째 블록 앞으로 삽입하며(S65), 파일에 대한 쓰기 작업을 실행한다(S66).
이제까지 본 발명의 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10, 20: VDI 서버 10a, 10n, 20x. 20z: 가상 머신
11: 하이퍼바이저 12: 운영체제
13: 서버 하드웨어 30: 공유 스토리지
30a, 30z : 가상 머신 이미지
100: 캐시 계층 구성부 200: 캐시 메모리 초기화부
300: 읽기 요청 처리부 400: 쓰기 요청 처리부

Claims (20)

  1. 캐시 메모리를 캐시 블록으로 분할하고, 상기 분할된 캐시 블록을 포함하는 복수의 캐시 계층을 구성하는 캐시 계층 구성부; 및
    상기 캐시 메모리가 수신하는 읽기 요청 신호에 따라 읽기 요청 간 시간 간격 정보 및 참조 파일 개수를 바탕으로 상기 캐시 계층을 관리하고, 상기 읽기 요청 신호 해당 캐시 블록의 데이터를 전송하는 읽기 요청 처리부
    를 포함하는 가상 머신 이미지 파일의 캐시 관리 장치.
  2. 제1항에 있어서, 상기 캐시 계층 구성부는
    가상 머신을 포함하는 서버의 로컬 메모리의 일부를 캐시 메모리로 사용하고, 상기 캐시 블록을 링크드리스트 형태로 관리하는 것
    인 가상 머신 이미지 파일의 캐시 관리 장치.
  3. 제2항에 있어서, 상기 캐시 계층 구성부는
    상기 서버의 하이퍼바이저 내에 존재하거나, 상기 서버 내 특정 가상 머신 내에 존재하거나, 상기 서버의 운영체제 및 하이퍼바이저 사이에 존재하는 캐시 메모리를 상기 캐시 블록으로 분할하는 것
    인 가상 머신 이미지 파일의 캐시 관리 장치.
  4. 제2항에 있어서, 상기 읽기 요청 처리부는
    상기 읽기 요청 신호에 따라 파일 및 오프셋 정보가 일치하는 캐시 블록이 존재하는지 검사하고, 상기 파일 및 오프셋 정보가 일치하는 해당 캐시 블록이 존재하는 경우, 상기 해당 캐시 블록의 읽기 요청 간 평균 시간 간격 정보를 갱신하는 것
    인 가상 머신 이미지 파일의 캐시 관리 장치.
  5. 제4항에 있어서, 상기 읽기 요청 처리부는
    상기 해당 캐시 블록의 갱신된 읽기 요청 간 평균 시간 간격이 기설정된 경계값보다 큰 경우, 상기 해당 캐시 블록을 읽기 요청 간 시간 간격이 긴 데이터를 저장하는 캐시 계층의 선두 블록 앞에 삽입하는 것
    인 가상 머신 이미지 파일의 캐시 관리 장치.
  6. 제4항에 있어서, 상기 읽기 요청 처리부는
    상기 해당 캐시 블록의 갱신된 읽기 요청 간 평균 시간 간격이 기설정된 시간 경계값보다 작은 경우, 상기 해당 캐시 블록이 참조하는 파일수와 기설정된 파일 개수 경계값을 비교하고, 상기 해당 캐시 블록이 참조하는 파일수가 기설정된 파일 개수 경계값보다 큰 경우 상기 해당 캐시 블록을 읽기 요청 간 시간 간격이 짧고, 다수의 파일들에 의해 참조되는 데이터를 저장하는 최상위 캐시 계층에 저장하되, 상기 최상위 캐시 계층에 여유 블록이 존재하지 않는 경우 상기 캐시 계층을 재구성하여 상기 해당 캐시 블록을 상기 최상위 캐시 계층의 선두 블록 앞에 삽입하는 것
    인 가상 머신 이미지 파일의 캐시 관리 장치.
  7. 제6항에 있어서, 상기 읽기 요청 처리부는
    상기 해당 캐시 블록이 참조하는 파일수가 상기 기설정된 파일 개수 경계값보다 작은 경우 상기 해당 캐시 블록을 읽기 요청 간 시간 간격이 짧고, 소수의 파일들에 의해 참조되는 데이터를 저장하는 상위 캐시 계층에 저장하되, 상기 상위 캐시 계층에 여유 블록이 존재하지 않는 경우 상기 캐시 계층을 재구성하여 상기 해당 캐시 블록을 상위 캐시 계층의 선두 블록 앞에 삽입하는 것
    인 가상 머신 이미지 파일의 캐시 관리 장치.
  8. 제4항에 있어서, 상기 읽기 요청 처리부는
    상기 파일 및 오프셋 정보가 일치하는 해당 캐시 블록이 존재하지 않는 경우, 상기 캐시 계층 중 유휴 계층 내에 캐시 블록이 존재하는지 검사하고, 상기 유휴 계층 내에 캐시 블록이 존재하는 경우 상기 유휴 계층 내의 캐시 블록 중 말단의 캐시 블록을 인출하고, 상기 유휴 계층 내에 캐시 블록이 존재하지 않는 경우 상기 캐시 계층 중 최하위 캐시 계층의 말단 캐시 블록을 인출하여, 상기 유휴 계층 또는 상기 최하위 캐시 계층으로부터 인출한 캐시 블록에 상기 파일 및 오프셋 정보를 기록하는 것
    인 가상 머신 이미지 파일의 캐시 관리 장치.
  9. 제8항에 있어서, 상기 읽기 요청 처리부는
    해당 파일의 데이터를 상기 파일 및 오프셋 정보를 상기 캐시 블록으로 읽어 들이고, 읽어 들인 데이터의 해시값을 계산하여 캐시 블록 관리 정보에 기록하고, 상기 계산한 해시값과 동일한 해시값을 가진 캐시 블록이 존재하는지 검사하고, 상기 계산한 해시값과 동일한 해시값을 가진 캐시 블록이 존재하는 경우 상기 동일한 해시값을 가진 캐시 블록에 상기 파일 및 오프셋 정보를 추가하고, 상기 파일 및 오프셋 정보를 기록한 캐시 블록을 할당 해제하여 상기 유휴 계층에 삽입하는 것
    인 가상 머신 이미지 파일의 캐시 관리 장치.
  10. 제3항에 있어서,
    상기 하이퍼바이저의 실행에 따라 실행되어, 캐시 관리 정보, 캐시 블록 관리 정보를 초기화하는 캐시 메모리 초기화부
    를 더 포함하는 가상 머신 이미지 파일의 캐시 관리 장치.
  11. 제1항에 있어서,
    상기 캐시 메모리가 수신하는 쓰기 요청 신호에 따라 파일 및 오프셋 정보가 일치하는 캐시 블록을 검색하고, 상기 파일 및 오프셋 정보가 일치하는 캐시 블록이 존재하는 경우 상기 캐시 블록에서 해당 파일 및 오프셋 정보를 제거하고, 상기 캐시 블록이 참조하는 파일을 제거하고, 상기 캐시 블록을 할당 해제하여 유휴 계층에 삽입하고, 파일에 대한 쓰기 작업을 실행하는 쓰기 요청 처리부
    를 더 포함하는 가상 머신 이미지 파일의 캐시 관리 장치.
  12. 캐시 메모리를 캐시 블록으로 분할하고, 상기 분할된 캐시 블록에 대하여 캐시 계층 구조를 구성하는 단계;
    상기 캐시 메모리가 수신하는 읽기 요청 신호에 따라 파일 및 오프셋 정보와 일치하는 캐시 블록의 존재 여부를 검색하는 단계;
    상기 파일 및 오프셋 정보와 일치하는 캐시 블록의 존재 여부 검색 결과에 따라 읽기 요청 간 시간 간격 정보 및 참조 파일 개수를 바탕으로 상기 캐시 계층 구조를 관리하는 단계; 및
    상기 읽기 요청에 대하여 캐시 메모리 데이터를 전달하는 단계
    를 포함하는 가상 머신 이미지 파일의 캐시 관리 방법.
  13. 제12항에 있어서, 상기 캐시 계층 구조를 관리하는 단계는
    상기 파일 및 오프셋 정보와 일치하는 캐시 블록이 존재하는 경우, 상기 파일 및 오프셋 정보와 일치하는 해당 캐시 블록의 읽기 요청 간 평균 시간 간격 정보를 갱신하고, 상기 갱신한 해당 캐시 블록의 읽기 요청 간 평균 시간 간격과 기설정된 경계값을 비교하고, 상기 갱신한 해당 캐시 블록의 읽기 요청 간 평균 시간 간격이 기설정된 경계값보다 큰 경우, 상기 해당 캐시 블록을 상기 캐시 계층 구조 중 유휴 계층을 제외한 최하위 캐시 계층 구조에 삽입하는 것
    인 가상 머신 이미지 파일의 캐시 관리 방법.
  14. 제13항에 있어서, 상기 캐시 계층 구조를 관리하는 단계는
    상기 갱신한 해당 캐시 블록의 읽기 요청 간 평균 시간 간격이 기설정된 경계값보다 작은 경우, 상기 해당 캐시 블록이 참조하는 파일 개수와 기설정된 파일 개수 경계값을 비교하고, 상기 해당 캐시 블록이 참조하는 파일 개수 및 상기 기설정된 파일 개수 경계값의 비교 결과에 따라 상기 해당 캐시 블록을 상기 캐시 계층 중 최상위 계층 또는 상기 최상위 계층의 하위 계층의 선두 캐시 블록 앞에 삽입하는 것
    인 가상 머신 이미지 파일의 캐시 관리 방법.
  15. 제12항에 있어서, 상기 캐시 계층 구조를 관리하는 단계는
    상기 파일 및 오프셋 정보와 일치하는 캐시 블록이 존재하지 않는 경우, 상기 캐시 계층 중 유휴 계층 내에 캐시 블록이 존재하는지 검사하고, 상기 유휴 계층 내에 캐시 블록이 존재하는 경우 상기 유휴 계층 내의 캐시 블록 중 말단 캐시 블록을 인출하고, 상기 유휴 계층 내에 캐시 블록이 존재하지 않는 경우 상기 캐시 계층 중 최하위 캐시 계층의 말단 캐시 블록을 인출하여, 상기 인출한 캐시 블록에 상기 파일 및 오프셋 정보를 기록하는 것
    인 가상 머신 이미지 파일의 캐시 관리 방법.
  16. 제15항에 있어서, 상기 캐시 계층 구조를 관리하는 단계는
    상기 파일 및 오프셋 정보의 파일 데이터를 상기 캐시 블록으로 읽어 들이고, 상기 읽어 들인 파일 데이터의 해시값을 계산하고, 상기 계산한 해시값과 동일한 해시값을 가진 캐시 블록이 존재하는 경우 상기 파일 및 오프셋 정보를 기록한 캐시 블록의 파일 및 오프셋 정보를 상기 동일한 해시값을 가진 캐시 블록에 추가하는 것
    인 가상 머신 이미지 파일의 캐시 관리 방법.
  17. 제16항에 있어서, 상기 캐시 계층 구조를 관리하는 단계는
    상기 파일 및 오프셋 정보를 기록한 캐시 블록에 대한 할당을 해제하고, 상기 할당이 해제된 캐시 블록을 상기 유휴 계층에 삽입하여 중복 캐시를 삭제하는 것
    인 가상 머신 이미지 파일의 캐시 관리 방법.
  18. 제12항에 있어서,
    하이퍼바이저의 실행에 따라 실행되고, 캐시 관리 정보 및 캐시 블록 관리정보를 초기화하는 캐시 메모리 초기화 단계
    를 더 포함하는 가상 머신 이미지 파일의 캐시 관리 방법.
  19. 제12항에 있어서,
    쓰기 요청 신호를 수신하는 경우 상기 수신한 쓰기 요청 신호에 따라 파일 및 오프셋 정보가 일치하는 캐시 블록을 검색하고, 파일에 대한 쓰기 작업을 실행하는 단계
    를 더 포함하는 가상 머신 이미지 파일의 캐시 관리 방법.
  20. 제19항에 있어서, 상기 캐시 블록을 검색하고, 파일에 대한 쓰기 작업을 실행하는 단계는
    상기 파일 및 오프셋 정보가 일치하는 캐시 블록이 존재하는 경우, 상기 캐시 블록에서 해당 파일 및 오프셋 정보를 제거하고, 상기 캐시 블록이 참조하는 파일을 제거하고, 상기 캐시 블록의 할당을 해제하는 것
    인 가상 머신 이미지 파일의 캐시 관리 방법.
KR1020140010600A 2014-01-28 2014-01-28 가상 머신 이미지 파일의 캐시 관리 장치 및 방법 KR20150089688A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140010600A KR20150089688A (ko) 2014-01-28 2014-01-28 가상 머신 이미지 파일의 캐시 관리 장치 및 방법
US14/606,616 US20150212847A1 (en) 2014-01-28 2015-01-27 Apparatus and method for managing cache of virtual machine image file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140010600A KR20150089688A (ko) 2014-01-28 2014-01-28 가상 머신 이미지 파일의 캐시 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20150089688A true KR20150089688A (ko) 2015-08-05

Family

ID=53679136

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140010600A KR20150089688A (ko) 2014-01-28 2014-01-28 가상 머신 이미지 파일의 캐시 관리 장치 및 방법

Country Status (2)

Country Link
US (1) US20150212847A1 (ko)
KR (1) KR20150089688A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170105858A (ko) * 2016-03-10 2017-09-20 에스케이텔레콤 주식회사 부트워킹셋을 이용한 가상머신 프로비저닝 가속장치와 가상머신 관리장치 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469085B (zh) * 2016-08-31 2019-11-08 北京航空航天大学 虚拟机在线迁移方法、装置及系统
CN108076078A (zh) * 2016-11-09 2018-05-25 北京金山云网络技术有限公司 一种云主机创建方法、装置及云服务系统
US11736348B2 (en) * 2021-06-28 2023-08-22 Dell Products L.P. System and method for network services based functionality provisioning in a VDI environment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889288B2 (en) * 2002-12-02 2005-05-03 Emc Corporation Reducing data copy operations for writing data from a network to storage of a cached data storage system by organizing cache blocks as linked lists of data fragments
US8312471B2 (en) * 2010-04-26 2012-11-13 Vmware, Inc. File system independent content aware cache
US9361237B2 (en) * 2012-10-18 2016-06-07 Vmware, Inc. System and method for exclusive read caching in a virtualized computing environment
WO2014201696A1 (zh) * 2013-06-21 2014-12-24 华为技术有限公司 一种文件读取方法、存储设备及读取系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170105858A (ko) * 2016-03-10 2017-09-20 에스케이텔레콤 주식회사 부트워킹셋을 이용한 가상머신 프로비저닝 가속장치와 가상머신 관리장치 및 방법

Also Published As

Publication number Publication date
US20150212847A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
JP6510112B2 (ja) データストリーム取り込み及び永続性ポリシ
JP7053682B2 (ja) データベーステナントマイグレーションのシステム及び方法
US11562091B2 (en) Low latency access to physical storage locations by implementing multiple levels of metadata
US11740818B2 (en) Dynamic data compression
US11467967B2 (en) Managing a distributed cache in a cloud-based distributed computing environment
US8122212B2 (en) Method and apparatus for logical volume management for virtual machine environment
US11693789B2 (en) System and method for mapping objects to regions
US11157325B2 (en) System and method for seamless integration of automated orchestrator
US10303499B2 (en) Application aware graph driver
US10698829B2 (en) Direct host-to-host transfer for local cache in virtualized systems wherein hosting history stores previous hosts that serve as currently-designated host for said data object prior to migration of said data object, and said hosting history is checked during said migration
US20170220592A1 (en) Modular data operations system
US20170091232A1 (en) Elastic, ephemeral in-line deduplication service
US9846655B1 (en) Managing processing tasks in storage systems
WO2015200528A1 (en) Systems and methods for storage service automation
US10606494B2 (en) System and method for managing volumes of data in a block storage system as a function of a short condition register and a long condition register
US10467115B1 (en) Data consistency management in large computing clusters
US11340829B1 (en) Techniques for log space management involving storing a plurality of page descriptor (PDESC) page block (PB) pairs in the log
US8943291B2 (en) Reorganization of software images based on predicted use thereof
US11016676B2 (en) Spot coalescing of distributed data concurrent with storage I/O operations
KR20150089688A (ko) 가상 머신 이미지 파일의 캐시 관리 장치 및 방법
US20230132493A1 (en) Importing workload data into a sharded virtual disk
US11748039B2 (en) Vblock metadata management
US20220358096A1 (en) Management of consistent indexes without transactions
KR101740962B1 (ko) 가상환경의 스토리지 성능 향상을 위한 클라우드 스토리지 시스템 및 그 관리 방법
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid