KR20150087990A - 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법 - Google Patents

완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법 Download PDF

Info

Publication number
KR20150087990A
KR20150087990A KR1020140008259A KR20140008259A KR20150087990A KR 20150087990 A KR20150087990 A KR 20150087990A KR 1020140008259 A KR1020140008259 A KR 1020140008259A KR 20140008259 A KR20140008259 A KR 20140008259A KR 20150087990 A KR20150087990 A KR 20150087990A
Authority
KR
South Korea
Prior art keywords
virtual machine
disk image
image file
template
data
Prior art date
Application number
KR1020140008259A
Other languages
English (en)
Other versions
KR102237566B1 (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 한국전자통신연구원
Priority to KR1020140008259A priority Critical patent/KR102237566B1/ko
Publication of KR20150087990A publication Critical patent/KR20150087990A/ko
Application granted granted Critical
Publication of KR102237566B1 publication Critical patent/KR102237566B1/ko

Links

Images

Classifications

    • 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
    • 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

Abstract

본 발명은 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법에 관한 것으로서, 본 발명에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템은 템플릿으로부터의 완전 복제를 통해 생성된 가상 머신일 경우 상기 가상 머신에 의해 변경된 데이터 블록들을 추적하여, 상기 가상 머신의 디스크 이미지 파일에 대한 데이터 읽기가 요청될 경우 변경되지 않은 블록에 대한 데이터 읽기 요청이면, 캐시에 미리 적재된 템플릿 디스크 이미지 파일에서 처리하도록 함으로써 캐시의 공간 효율성 및 입출력 응답성능을 향상시킬 수 있는 것을 특징으로 한다.

Description

완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법{System and Method for Caching Disk Image File of Full-Cloned Virtual Machine}
본 발명은 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법에 관한 것으로서, 보다 구체적으로는 가상 데스크 탑 환경에서 템플릿으로부터 완전 복제된 가상 머신의 이미지 파일에 대해 캐싱하는 시스템 및 방법에 관한 것이다.
일반적으로 가상 데스크 탑 환경에서는 가상 머신의 디스크 이미지 파일을 가상 머신이 운용되는 가상 머신 호스트 서버의 로컬 스토리지가 아닌 네트워크를 통해 연결된 스토리지에 저장하고, 가상 머신 운용에 따른 디스크 입출력 요청이 발생하면 네트워크를 통해 스토리지에 저장된 가상 머신의 디스크 이미지 파일에서 해당 블록에 대한 입출력 요청을 처리한다.
이때, 네트워크를 통한 데이터 전송에 따른 입출력 응답 성능 저하를 방지하기 위해 가상 머신 호스트 서버에 메모리 또는 고속의 솔리드 스테이트 디스크를 캐시로 사용하여 빈번히 접근되는 블록을 캐시에 적재하고 해당 데이터 블록에 대한 읽기 요청을 캐시에서 처리한다.
미국 선행특허 US8087017 B1, "Trace-assisted prefetching of virtual machines in a distributed system"은 가상 머신 이미지에 대한 입출력 요청이 발생하면 요청에 해당하는 블록 정보를 추적하여 저장하고, 이를 기반으로 빈번히 요청되는 볼록 및 확률기반으로 특정 블록과 연속되어 접근되는 블록 정보를 관리한다.
이를 기반으로 특정 입출력 패턴이 발생할 경우 접근이 예상되는 블록들을 캐시에 미리 적재하여 연속된 다음의 데이터 읽기 요청들을 네트워크를 통해 연결된 스토리지가 아닌 가상 머신 호스트 서버의 로컬 스토리지 캐시에서 처리함으로써 전반적인 입출력 응답 성능을 향상시킨다.
가상 데스크 탑 환경에서 가상 머신 생성시 가상 머신의 운영 체제 설치에 따른 배포시 배포 시간을 줄이기 위해 window xp 또는 window 7과 같이 대다수의 사용자에 의해 사용되는 운용체제 및 응용 프로그램을 설치한 템플릿을 생성하고 이를 복제하여 가상 머신을 생성하는 방식을 사용한다.
이러한 이유로 대부분의 가상 머신의 디스크 이미지 파일은 생성 초기에 템플릿과 동일하다.
물론 사용자들이 가상 머신을 사용함에 따라 사용자에 의해 생성된 데이터 및 새롭게 설치되는 응용 프로그램의 데이터들이 누적되어 템플릿과 사용자의 가상 머신 디스크 이미지 파일은 시간이 지남에 따라 달라지지만 이전에 설치된 운영체제 및 응용 프로그램들은 로그 및 사용자 경험 데이터를 제외하고 동일하다.
이로 인해 캐시가 가상 머신의 디스크 이미지 파일의 동일한 데이터 블록들을 적재하게 되어 캐시에 대한 공간 사용 효율이 저하되고, 캐시의 공간 부족으로 인해 LRU와 같은 알고리즘에 의해 캐시에서 교체된 데이터 블록들에 접근하고자할 경우 네트워크를 통한 스토리지로 해야하기 때문에 입출력 응답 성능 또한 떨어진다는 문제점이 있다.
본 발명은 상기와 같은 문제점을 감안하여 창출한 것으로서, 템플릿으로부터의 완전 복제를 통해 생성된 가상 머신일 경우 상기 가상 머신에 의해 변경된 데이터 블록들을 추적하여, 상기 가상 머신의 디스크 이미지 파일에 대한 데이터 읽기가 요청될 경우 변경되지 않은 블록에 대한 데이터 읽기 요청이면, 캐시에 미리 적재된 템플릿 디스크 이미지 파일에서 처리하도록 함으로써 캐시의 공간 효율성 및 입출력 응답성능을 향상시킬 수 있는 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법을 제공하는 데 그 목적이 있다.
전술한 목적을 달성하기 위하여, 본 발명의 일면에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템은 가상 머신이 실행되는 가상 머신 호스트 서버; 및 상기 가상 머신 호스트 서버와 네트워크로 연결되며, 디스크 이미지 파일을 포함하는 템플릿으로부터 상기 가상 머신의 완전 복제를 위해 가상 머신 데이터를 생성하고, 상기 탬플릿의 디스크 이미지 파일을 복제하여 상기 가상 머신 데이터에 가상 머신 디스크 이미지 파일을 생성하는 분산 파일 시스템을 포함하고, 상기 가상 머신 호스트 서버는 상기 가상 머신의 운영에 따라 상기 템플릿의 디스크 이미지 파일을 캐쉬에 적재하고, 데이터 읽기 요청이 발생하면 데이터 읽기 요청에 대응되는 데이터 블록의 변경 유무를 판별하여, 요청된 데이터 읽기에 대응되는 데이터 블록이 변경되지 않은 데이터 블록이면 상기 캐시에 적재된 상기 템플릿의 디스크 이미지 파일에서 데이터를 읽어 반환하며, 요청된 데이터 읽기에 대응되는 데이터 블록이 변경된 데이터 블록이면 상기 가상 머신 디스크 이미지 파일에서 데이터를 읽어 반환하는 것을 특징으로 한다.
본 발명에 따르면, 가상 머신 환경에서 완전 복제된 가상 머신의 디스크 이미지 파일에 대한 데이터 읽기 응답 성능을 향상시킬 수 있고, 캐시의 공간 활용 효율 또한 증가시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템을 설명하기 위한 도면.
도 2는 본 발명의 일 실시예에 따른 템플릿으로부터 완전 복제된 가상 머신을 생성하는 방법을 설명하기 위한 흐름도.
도 3은 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법을 설명하기 위한 흐름도.
도 4는 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법을 설명하기 위한 흐름도.
도 5는 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법을 설명하기 위한 흐름도.
도 6은 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 읽기 요청 처리 방법을 설명하기 위한 흐름도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 용이하게 이해할 수 있도록 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 도 1을 참조하여 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템을 설명한다. 도 1은 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 본 발명의 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템은 가상 머신 호스트 서버(100) 및 분산 파일 시스템(200)을 포함한다.
가상 머신 호스트 서버(100)는 가상 머신(110), 캐시 관리부(120), 캐시 장치부(130) 및 선반입 관리부(140)를 포함하며, 가상 머신(110)이 실행될 수 있는 환경을 제공한다.
가상 머신(110)은 운영체제(111)가 설치될 수 있고, 운영 환경에 따라 다수의 사용자에 의해 공통으로 사용되는 응용 프로그램이 설치될 수도 있다.
즉, 가상 머신(110)은 게스트 운영 체제가 설치되어 운영된다.
캐시 관리부(120)는 분산 파일 시스템(200)에 저장된 가상 머신(110)의 디스크 이미지 파일(214)에 대한 개방/폐쇄/입출력 요청을 처리하고, 가상 머신(110)의 템플릿 공유 블록 맵 파일(215)을 관리한다.
예컨대, 캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214)에 대한 개방 요청을 전달받으면, 가상 머신(110)의 메타데이터 정보를 분산 파일 시스템(200)에서 읽어와, 읽어온 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 완전 복제된 가상 머신인지 여부를 판별하고, 판별결과, 가상 머신(110)이 완전 복제된 가상 머신인 경우, 분산 파일 시스템(200)에 가상 머신(110)의 템플릿 공유 블록 맵 파일(215)이 존재하는지 여부를 판별하며, 판별결과, 가상 머신(110)의 템플릿 공유 블록 맵 파일(215)이 존재하면, 분산 파일 시스템(200)에서 가상 머신(110)의 템플릿 공유 블록 맵 파일(215)을 읽어와 자신의 로컬 메모리에 템플릿 공유 블록 맵(121)을 구성한다.
또한, 캐시 관리부(120)는 읽어온 가상 머신(110)의 메타데이터 정보를 토대로 템플릿(211)의 디스크 이미지 식별자를 획득하고, 획득된 템플릿(211)의 디스크 이미지 식별자에 대응되는 템플릿(211)의 디스크 이미지 파일(212)이 캐시(131)에 적재되어있는지 여부를 판별하며, 판별결과, 캐시(131)에 템플릿(211)의 디스크 이미지 파일(212)이 적재되어 있지 않은 경우, 템플릿(211)의 디스크 이미지 파일(212)을 캐시(131)에 선반입하도록 선반입 관리부(140)에 요청한다.
선반입 관리부(140)는 템플릿(211)의 디스크 이미지 파일(212)을 캐시 장치부(130)에 전달하여 캐시 장치부(130)가 템플릿(211)의 디스크 이미지 파일(212)을 캐시(131)에 템플릿 디스크 이미지 파일(132)로 생성하여 적재하도록 한다.
캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214) 개방을 분산 파일 시스템(200)을 통해 처리한다.
또한, 캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214)에 대한 폐쇄 요청을 전달받으면, 읽어온 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 완전 복제된 가상 머신(110)인지 여부를 판별하고, 판별결과, 가상 머신(110)이 완전 복제된 가상 머신(110)일 경우, 자신의 로컬 메모리에 가상 머신(110)의 템플릿 공유 블록 맵(121)이 존재하는지 여부를 판별하며, 판별결과, 자신의 로컬 메모리에 가상 머신(110)의 템플릿 공유 블록 맵(121)이 존재할 경우, 템플릿 공유 블록 맵(121)이 분산 파일 시스템(200)에 템플릿 공유 블록 맵 파일(215)로 저장되도록 하고, 가상 머신 데이터(213)에 저장된 가상 머신(110)의 디스크 이미지 파일(214) 폐쇄를 분산 파일 시스템(200)을 통해 처리한다.
캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214)에 대한 데이터 쓰기 요청을 전달받으면, 읽어온 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 완전 복제된 가상 머신(110)인지 여부를 판별하고, 판별결과, 가상 머신(110)이 완전 복제된 가상 머신(110)인 경우, 자신의 로컬 메모리에 가상 머신(110)의 템플릿 공유 블록 맵(121)이 존재하는지 여부를 판별하며, 판별결과, 자신의 로컬 메모리에 가상 머신(110)의 템플릿 공유 블록 맵(121)이 존재하면, 데이터 쓰기 요청에 대응되는 데이터 블록이 변경된 것을 가상 머신(110)의 템플릿 공유 블록 맵(121)에 설정하고, 분산 파일 시스템(200)을 통해 데이터 쓰기 요청을 처리한다.
캐시 장치부(130)는 하드 디스크 또는 고속의 솔리드 스테이트 드라이브와 같은 저장장치일 수 있고, 캐시(131)에 템플릿 디스크 이미지 파일(132)을 캐싱한다.
선반입 관리부(140)는 템플릿(211)의 디스크 이미지 파일(212)을 캐시 장치부(130)에 선반입한다.
예컨대, 선반입 관리부(140)는 요청된 파일 또는 데이터 블록을 분산 파일 시스템(200)에서 읽어와 캐시 장치부(130)에 백그라운드로 적재한다
전술한 바를 좀 더 구체적으로 설명하면, 본 발명의 가상 머신 디스크 이미지 파일 캐시 시스템은 크게 가상 머신 호스트 서버(100) 및 분산 파일 시스템(200)으로 구성된다.
가상 머신 호스트 서버(100)는 가상 머신(110), 캐시 관리자(120), 캐시 장치부(130) 및 선반입 관리부(140)로 구성되고, 분산 파일 시스템(200)은 하나 이상의 볼륨(210)으로 구성된다.
가상 머신 호스트 서버(100)에서는 사용자의 가상 머신(110)이 실행되며, 가상 머신(110)에는 운영체제(111)가 설치되고, 운영 환경에 따라 다수의 사용자가 공통으로 사용할 수 있는 응용 프로그램이 설치될 수도 있다.
템플릿(211)으로부터 완전 복제를 통해 가상 머신(110)을 생성하게 되면, 가상 머신 데이터(213)가 분산 파일 시스템(200)의 볼륨(210)에 생성되어 저장되고, 템플릿(211)의 디스크 이미지 파일(212)이 복제되어 가상 머신 데이터(213)에 디스크 이미지 파일(214)로 생성된다.
이때, 복제에 의해 디스크 이미지 파일(214)에 대한 데이터 쓰기가 발생한 블록은 캐시 관리부(120)에 의해 추적되어 템플릿 공유 블록 맵(121)에 템플릿과 동일한 블록으로 설정되고, 가상 머신(110)에 대한 복제가 완료되면, 템플릿 공유 블록 맵(121)은 템플릿 공유 블록 맵 파일(215)로 가상 머신 데이터(213)에 저장된다.
복제된 가상 머신(110)이 기동(activation)되면, 가상 머신 데이터(213)에 저장된 디스크 이미지 파일(214) 개방이 캐시 관리부(120)에 요청된다.
이때, 캐시 관리부(120)는 가상 머신 데이터(213)에 저장된 템플릿 공유 블록 맵 파일(215)을 읽어와 자신의 로컬 메모리에 템플릿 공유 블록 맵(121)을 생성하고, 선반입 관리부(140)는 템플릿(211)의 디스크 이미지 파일(212)을 캐시 장치부(130)에 전달하여 캐시 장치부(130)가 템플릿(211)의 디스크 이미지 파일(212)을 캐시(131)에 적재하여 템플릿 디스크 이미지 파일(132)을 생성하도록 한다.
이후 가상 머신의 운영에 따라 데이터 읽기 요청이 발생하면, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)에서 데이터 읽기 요청에 대응되는 데이터 블록의 변경 유무를 판별하고, 판별결과, 변경되지 않은 데이터 블록은 캐시(131)에 적재된 템플릿 디스크 이미지 파일(132)에서 읽어 반환하며, 판별결과, 변경된 데이터 블록은 분산 파일 시스템(200)의 가상 머신 데이터(213)에 저장된 디스크 이미지 파일(214)에서 읽어 반환한다.
데이터 쓰기 요청이 발생하면, 캐시 관리부(120)는 데이터 쓰기 요청에 대응되는 데이터 블록을 템플릿 공유 블록 맵(121)에 변경된 것으로 설정하고, 데이터 쓰기 요청에 대응되는 데이터 블록을 가상 머신 데이터(213)의 디스크 이미지 파일(214)에 저장한다.
가상 머신(110)이 종료되면, 캐시 관리부(120)로 디스크 이미지 파일(214) 폐쇄 요청이 전달되며, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)이 분산 파일 시스템(200)에 템플릿 공유 블록 맵 파일(215)로 저장되도록 한 후 가상 머신 데이터(213)에 저장된 디스크 이미지 파일(214)이 폐쇄되도록 한다.
한편, 캐시(131)에 적재된 템플릿 디스크 이미지 파일(132)은 캐시(131)의 공간이 부족할 경우 LRU, LFU 등과 같은 페이지 교체 알고리즘에 의해 특정 데이터 블록만 삭제될 수도 있고, 캐시(131)에 대한 관리 정책에 따라 템플릿(211)으로부터 복제된 가상 머신(110)들이 모두 종료되면, 캐시(131)에서 삭제되거나, 캐시 관리부(120) 종료 시 삭제될 수도 있으며, 다른 정책에 따라 캐시 관리부(120)가 종료될지라도 후에 선반입 비용을 절감하기 위해 삭제되지않고 캐시 관리부(120) 재기동시 재활용되도록 할 수도 있다.
전술한 바와 같이, 본 발명에 따르면, 가상 머신 환경에서 완전 복제된 가상 머신의 디스크 이미지 파일에 대한 데이터 읽기 응답 성능을 향상시킬 수 있고, 캐시의 공간 활용 효율 또한 증가시킬 수 있다.
이상, 도 1을 참조하여 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템을 설명하였고, 이하에서는 도 2 내지 도 6을 참조하여 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 방법을 설명한다. 도 2는 본 발명의 일 실시예에 따른 템플릿으로부터 완전 복제된 가상 머신을 생성하는 방법을 설명하기 위한 흐름도이고, 도 3은 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법을 설명하기 위한 흐름도이며, 도 4는 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법을 설명하기 위한 흐름도이고, 도 5는 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법을 설명하기 위한 흐름도이며, 도 6은 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 읽기 요청 처리 방법을 설명하기 위한 흐름도이다.
도 2에 도시된 바와 같이, 본 발명의 템플릿으로부터 완전 복제된 가상 머신을 생성하는 방법은 먼저 템플릿(211)으로부터 가상 머신(110) 완전 복제 요청을 전달받으면(S201), 분산 파일 시스템(200)의 볼륨(210)에 가상 머신(110)의 디스크 이미지 파일(214)을 생성한다(S202).
예컨대, 템플릿(211)으로부터 완전 복제를 통해 가상 머신(110)을 생성할 경우, 가상 머신 데이터(213)를 볼륨(210)에 생성하여 저장하고, 템플릿(211)의 디스크 이미지 파일(212)을 복제하여 가상 머신 데이터(213)에 디스크 이미지 파일(214)로 생성한다.
캐시 관리부(120)는 자신의 로컬 메모리에 템플릿 공유 블록 맵(121)을 생성한다(S203).
템플릿(211)의 디스크 이미지 파일(212)의 데이터를 읽어 가상 머신(110)의 디스크 이미지 파일(214)에 기록한다(S204).
이때, 캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214)에 대한 데이터 쓰기 요청에 대응되는 블록을 템플릿(211)과 동일한 것으로 템플릿 공유 블록 맵(121)에 설정한다(S205).
복제가 완료되면, 가상 머신(110)의 메타데이터 정보에 가상 머신(110)을 완전 복제된 가상 머신으로 설정하고(S206), 템플릿(211)의 디스크 이미지 파일 식별자를 설정한다(S207).
캐시 관리부(120)는 생성된 템플릿 공유 블록 맵(121)을 볼륨(210)의 가상 머신 데이터(213)에 템플릿 공유 블록 맵 파일(215)로 저장한다(S208).
이상, 도 2를 참조하여 본 발명의 템플릿으로부터 완전 복제된 가상 머신을 생성하는 방법을 설명하였고, 이하에서는 도 3을 참조하여 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법을 설명한다.
도 3에 도시된 바와 같이, 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법은 가상 머신(110)의 디스크 이미지 파일(214) 개방 요청을 전달받으면(S301), 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 템플릿(211)으로부터의 완전 복제된 가상 머신인지 여부를 판별한다(S302).
판별결과, 가상 머신(110)이 완전 복제된 가상 머신일 경우, 분산 파일 시스템(200)에 템플릿 공유 블록 맵 파일(215)이 존재하는지 여부를 검사하고(S303), 검사결과, 분산 파일 시스템(200)에 템플릿 공유 블록 맵 파일(215)이 존재하면, 캐시 관리부(120)는 템플릿 공유 블록 맵 파일(215)을 읽어와 자신의 로컬 메모리에 적재하여 템플릿 공유 블록 맵(121)을 생성한다(S304).
가상 머신(110)의 메타데이터 정보를 토대로 템플릿(211)의 디스크 이미지 파일 식별자를 획득하고, 획득된 템플릿(211)의 디스크 이미지 파일 식별자에 대응되는 디스크 이미지 파일(212)이 캐시(131)에 적재되어 있는지 여부를 검사한다(S305).
검사결과, 획득된 템플릿(211)의 디스크 이미지 파일 식별자에 대응되는 디스크 이미지 파일(212)이 캐시(131)에 적재되어 있지 않은 경우, 템플릿(211)의 디스크 이미지 파일(212)이 캐시(131)에 적재되어 템플릿 디스크 이미지 파일(132)로 생성될 수 있도록 선반입 관리부(140)가 백그라운드로 템플릿(211)의 디스크 이미지 파일(212)을 읽어올 것을 요청하며(S306), 가상 머신(110)의 디스크 이미지 파일(214)이 개방되도록 한다(S307).
이때 선반입 관리부(140)가 백그라운드로 실행되어, 즉 쓰레드 또는 백그라운드 프로세스로 동작하여 선반입을 비동기적으로 처리하도록 함으로써 파일 개방 처리가 지연되지 않도록 할 수 있다.
이상, 도 3을 참조하여 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법을 설명하였고, 이하에서는 도 4를 참조하여 본 발명의 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법을 설명한다.
도 4에 도시된 바와 같이, 본 발명의 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법은 먼저 가상 머신(110)의 디스크 이미지 파일(214) 폐쇄 요청을 전달받으면(S401), 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 템플릿(211)으로부터 완전 복제된 가상 머신인지 여부를 판별한다(S402).
판별결과, 가상 머신(110)이 완전 복제된 가상 머신인 경우, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재하는지 여부를 검사하고(S403), 검사결과, 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재할 경우, 템플릿 공유 블록 맵(121)이 볼륨(210)의 가상 머신 데이터(213)에 템플릿 공유 블록 맵 파일(215)로 저장되도록 하며(S404), 디스크 이미지 파일(214)이 폐쇄되도록 한다(S405).
이상, 도 4를 참조하여 본 발명의 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법을 설명하였고, 이하에서는 도 5를 참조하여 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법을 설명한다.
도 5에 도시된 바와 같이, 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법은 먼저 가상 머신(110)의 디스크 이미지 파일(214)에 대한, 디스크 이미지 파일(214)의 파일 식별자 번호, 데이터가 쓰일 파일 오프셋, 쓰일 데이터의 크기, 쓰일 데이터 등이 포함된 데이터 쓰기 요청이 전달되면(S501), 가상 머신(110)의 메타데이터 정보를 토대로 가산 머신(110)이 템플릿(211)으로부터 완전 복제된 가상 머신인지 여부를 판별한다(S502).
판별결과, 가상 머신(110)이 완전 복제된 가상 머신인 경우, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재하는지 여부를 검사하고(S503), 검사결과, 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재할 경우, 쓰기 요청에 대응되는 데이터 블록이 변경된 것으로 템플릿 공유 블록 맵(121)에 설정하며(S504), 분산파일 시스템(200)에 저장된 가상 머신(110)의 디스크 이미지 파일(214)에 대한 쓰기 요청을 전달하여 데이터를 기록한다(S505).
이상, 도 5를 참조하여 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법을 설명하였고, 이하에서는 도 6을 참조하여 본 발명의 가상 머신의 디스크 이미지 파일에 대한 읽기 요청 처리 방법을 설명한다.
도 6에 도시된 바와 같이, 본 발명의 가상 머신의 디스크 이미지 파일에 대한 읽기 요청 처리 방법은 먼저 가상 머신(110)의 디스크 이미지 파일(214)에 대한, 디스크 이미지 파일(214)의 파일 식별자 번호, 읽을 데이터의 파일 오프셋, 읽을 데이터 크기, 읽을 데이터를 저장할 버퍼 등이 포함된 데이터 읽기 요청이 전달되면(S601), 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 템플릿(211)으로부터 완전 복제된 가상 머신인지 여부를 판별한다(S602).
판별결과, 템플릿(211)으로부터 완전 복제된 가상 머신일 경우, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재하는지 여부를 검사하고(S603), 검사결과, 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재할 경우, 템플릿 공유 블록 맵(121)에서 읽기 요청에 대응되는 데이터 블록이 변경되었는지 여부를 검사한다(S604).
검사결과, 읽기 요청에 대응되는 데이터 블록이 변경되지 않은 경우, 가상 머신(110)의 메타데이터 정보에 저장된 템플릿(211)의 디스크 이미지 파일 식별자를 획득하고, 캐시(131)에 적재된 템플릿 디스크 이미지 파일(132) 중 획득된 식별자에 대응되는 파일에서 읽기 요청에 대응되는 데이터 블록이 캐시(131)에 적재되어있는지 여부를 검사한다(S605).
검사결과, 캐시(131)에 읽기 요청에 대응되는 데이터 블록이 존재할 경우, 캐시(131)에 존재하는 데이터 블록을 읽어 반환하고(S607), 그러나, 단계(S602) 판별결과, 가상 머신(110)이 완전 복제된 가상 머신이 아니거나, 단계(S603) 검사결과, 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재하지 않거나, 단계(S605) 검사결과, 읽기 요청에 대응되는 데이터 블록과 동일한 템플릿 디스크 이미지 파일(132)의 데이터 블록이 캐시(131)에 존재하지 않을 경우, 분산 파일 시스템(200)에 저장된 가상 머신(110)의 디스크 이미지 파일(214)에서 읽기 요청에 대응되는 데이터 블록을 읽어 반환한다(S606).
이상 바람직한 실시예와 첨부도면을 참조하여 본 발명의 구성에 관해 구체적으로 설명하였으나, 이는 예시에 불과한 것으로 본 발명의 기술적 사상을 벗어나지 않는 범주내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
100 : 가상 머신 호스트 서버 110 : 가상 머신
120 : 캐시 관리부 130 : 캐시 장치부
140 : 선반입 관리자부 200 : 분산 파일 시스템
210 : 볼륨

Claims (1)

  1. 가상 머신이 실행되는 가상 머신 호스트 서버; 및
    상기 가상 머신 호스트 서버와 네트워크로 연결되며, 디스크 이미지 파일을 포함하는 템플릿으로부터 상기 가상 머신의 완전 복제를 위해 가상 머신 데이터를 생성하고, 상기 템플릿의 디스크 이미지 파일을 복제하여 상기 가상 머신 데이터에 가상 머신 디스크 이미지 파일을 생성하는 분산 파일 시스템을 포함하고,
    상기 가상 머신 호스트 서버는
    상기 가상 머신의 운영에 따라 상기 템플릿의 디스크 이미지 파일을 캐쉬에 적재하고, 데이터 읽기 요청이 발생하면 데이터 읽기 요청에 대응되는 데이터 블록의 변경 유무를 판별하여, 요청된 데이터 읽기에 대응되는 데이터 블록이 변경되지 않은 데이터 블록이면 상기 캐시에 적재된 상기 템플릿의 디스크 이미지 파일에서 데이터를 읽어 반환하며, 요청된 데이터 읽기에 대응되는 데이터 블록이 변경된 데이터 블록이면 상기 가상 머신 디스크 이미지 파일에서 데이터를 읽어 반환하는 것
    인 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
KR1020140008259A 2014-01-23 2014-01-23 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법 KR102237566B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140008259A KR102237566B1 (ko) 2014-01-23 2014-01-23 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140008259A KR102237566B1 (ko) 2014-01-23 2014-01-23 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20150087990A true KR20150087990A (ko) 2015-07-31
KR102237566B1 KR102237566B1 (ko) 2021-04-07

Family

ID=53877142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140008259A KR102237566B1 (ko) 2014-01-23 2014-01-23 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102237566B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804965B2 (en) 2014-12-03 2017-10-31 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same
CN112985762A (zh) * 2021-02-22 2021-06-18 华南理工大学 一种船模六自由度运动测量的适航装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002519752A (ja) * 1998-06-25 2002-07-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリ空間の動的割当て方法
KR20110099206A (ko) * 2007-03-20 2011-09-07 이상규 가상머신 템플릿 이미지의 구동방법
KR20110103699A (ko) * 2010-03-15 2011-09-21 한국전자통신연구원 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 및 그 제어 방법
JP2013542486A (ja) * 2010-09-10 2013-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想マシンのオンデマンド型イメージ・ストリーミング

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002519752A (ja) * 1998-06-25 2002-07-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリ空間の動的割当て方法
KR20110099206A (ko) * 2007-03-20 2011-09-07 이상규 가상머신 템플릿 이미지의 구동방법
KR20110103699A (ko) * 2010-03-15 2011-09-21 한국전자통신연구원 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 및 그 제어 방법
JP2013542486A (ja) * 2010-09-10 2013-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想マシンのオンデマンド型イメージ・ストリーミング

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804965B2 (en) 2014-12-03 2017-10-31 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same
CN112985762A (zh) * 2021-02-22 2021-06-18 华南理工大学 一种船模六自由度运动测量的适航装置

Also Published As

Publication number Publication date
KR102237566B1 (ko) 2021-04-07

Similar Documents

Publication Publication Date Title
US11487787B2 (en) System and method for near-synchronous replication for object store
US20200026438A1 (en) System and method of management of multi-tier storage systems
US9996542B2 (en) Cache management in a computerized system
US20180121351A1 (en) Storage system, storage management apparatus, storage device, hybrid storage apparatus, and storage management method
US7895394B2 (en) Storage system
US9772949B2 (en) Apparatus, system and method for providing a persistent level-two cache
US11175850B2 (en) Selective erasure of data in a SSD
US9201794B2 (en) Dynamic hierarchical memory cache awareness within a storage system
AU2013403132B2 (en) Data storage method, data storage apparatus, and storage device
US8966188B1 (en) RAM utilization in a virtual environment
US9778860B2 (en) Re-TRIM of free space within VHDX
KR102449585B1 (ko) 버저닝 저장 장치 및 방법
WO2019061352A1 (zh) 数据加载方法及装置
US8935481B2 (en) Apparatus system and method for providing raw data in a level-two cache
KR20220143578A (ko) 데이터 접속 방법, 데이터 접속 제어 장치 및 데이터 접속 시스템
US11321002B2 (en) Converting a virtual volume between volume types
US9588855B2 (en) Management and utilization of fault domains in distributed cache systems
KR20150087990A (ko) 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법
KR101153688B1 (ko) 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템
KR102403063B1 (ko) 모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법
US8281096B1 (en) Systems and methods for creating snapshots
US20190012261A1 (en) Storage apparatus managing system and storage apparatus managing method
WO2016060700A1 (en) File system journaling
US10168916B2 (en) System, method and a non-transitory computer readable medium for reduction of consumption of storage system resources
CN117131090A (zh) 一种数据缓存方法和相关装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant