KR102064549B1 - 가상 머신 호스트 서버 장치 및 그 동작 방법 - Google Patents

가상 머신 호스트 서버 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102064549B1
KR102064549B1 KR1020150084491A KR20150084491A KR102064549B1 KR 102064549 B1 KR102064549 B1 KR 102064549B1 KR 1020150084491 A KR1020150084491 A KR 1020150084491A KR 20150084491 A KR20150084491 A KR 20150084491A KR 102064549 B1 KR102064549 B1 KR 102064549B1
Authority
KR
South Korea
Prior art keywords
boot
virtual machine
workload
cache
block
Prior art date
Application number
KR1020150084491A
Other languages
English (en)
Other versions
KR20160067713A (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 US14/848,841 priority Critical patent/US9804965B2/en
Publication of KR20160067713A publication Critical patent/KR20160067713A/ko
Application granted granted Critical
Publication of KR102064549B1 publication Critical patent/KR102064549B1/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
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 계층 구조를 갖는 네트워크 관리 장치 및 그 동작 방법에 관한 것으로, 본 발명의 일 실시예에 따른 계층 구조를 갖는 통합 관리 시스템에 있어서 네트워크 관리 장치의 동작 방법은, 상위 계층 장치로부터 데이터 및 장치 리스트를 수신하는 단계; 상기 장치 리스트를 N 개(N은 자연수)로 분할하여, 각각의 분할된 장치 리스트에서 하나의 장치들을 선택하여 N 개의 하위 계층 장치로 설정하는 단계; 및 상기 N 개의 하위 계층 장치로 상기 데이터 및 상기 하위 계층 장치가 속하는 분할된 장치 리스트를 전송하는 단계를 포함하는 것을 특징으로 한다.

Description

가상 머신 호스트 서버 장치 및 그 동작 방법{VIRTUAL MACHINE HOST SERVER APPARATUS AND METHOD FOR OPERATING THE SAME}
본 발명은 가상 머신 호스트 서버 장치에 관한 것으로, 보다 상세하게 가상 머신이 운용되는 가상 머신 호스트 서버와 가상 머신 데이터를 저장하는 스토리지 시스템이 네트워크를 통해 연결된 환경에서 가상 머신의 부팅 성능을 가속화하기 위한 가상 머신 호스트 서버 장치에 관한 것이다.
종래 기술에 따르면, 가상 머신 환경에서 가상 머신의 디스크 이미지 데이터를 가상 머신이 운용되는 가상 머신 호스트 서버의 로컬 스토리지가 아닌 네트워크를 통해 연결된 스토리지 시스템에 저장하고, 스토리지 시스템을 이용하여 디스크 이미지 데이터에 대한 입출력을 처리하였다. 따라서, 가상 머신의 운용에 따른 디스크 입출력 성능은 네트워크 성능 및 스토리지 시스템의 입출력 성능에 수렴하게 된다. 그러나, 가상 머신의 부팅시 발생하는 입출력 워크로드에 따르면, 부팅 시작 후 디스크 이미지 데이터를 저장한 파일에 대한 대부분의 요청이 512 바이트의 섹터단위의 읽기 요청이었으며, 특히, 랜덤 읽기가 대부분을 차지하여 네트워크 지연 시간 및 스토리지 시스템에서의 디스크 랜덤 읽기로 인하여 부팅 성능이 저하된다.
따라서, 템플릿에서 완전 복제된 가상 머신을 판별하고, 템플릿을 캐시에 적재하여, 복제된 가상 머신의 디스크 이미지 파일에서 변경된 블록들을 추적하고, 변경되지 않은 데이터 블록들에 대한 읽기 요청은 캐시에 적재된 템플릿의 디스크 이미지 파일에서 읽어서 처리함으로써 가상 머신 운용 중 발생하는 디스크 입출력 성능을 향상시키는 시도가 있었다. 그러나 이러한 종래 기술은 완전 복제된 가상 머신에 제한적으로 적용가능하며, 부팅 시 접근되는 블록을 고려하지 않고 템플릿 디스크 이미지 파일 전체를 캐시에 적재하기 때문에 부팅 시 접근되는 데이터가 요청되는 시점에 캐시에 존재하지 않을 확률이 매우 높다. 또한 캐시 미스가 발생하였을 경우 부트 워크로드의 대부분을 차지하는 512 바이트 섹터 단위의 랜덤 읽기로 인하여 부팅 성능이 저하된다는 문제점이 있다.
가상 머신이 운용되는 가상 머신 호스트 서버와 가상 머신 데이터를 저장하는 스토리지 시스템이 네트워크를 통해 연결된 환경에서 가상 머신의 부팅 성능을 가속화하기 위한 가상 머신 호스트 서버 장치를 제공하는데 그 목적이 있다.
본 발명의 일 실시예에 따른 가상 머신 호스트 서버는, 게스트 운영 체제가 설치되어 운영되는 가상 머신, 스토리지 시스템에 저장된 상기 가상 머신의 디스크 이미지 파일에 대한 개방 요청, 폐쇄 요청 또는 입출력 요청 중 적어도 하나 이상의 요청을 처리하고, 부트 워크로드 맵 및 부트 세그먼트를 관리하는 캐시 관리자, 상기 부트 세그먼트를 캐싱하는 캐시 장치 및 상기 캐시 장치에 상기 부트 세그먼트를 선반입하는 선반입 관리자를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 대규모의 가상 머신을 운용하는 환경에서 가상 머신의 부팅 시 초기 랜덤으로 접근되는 데이터 블록들을 미리 판별하여 캐시에 적재함으로써 가상 머신의 부팅 성능을 향상 시키고 랜덤 읽기에 따른 스토리지 시스템의 부하를 경감시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 가상 머신 환경을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 부트 워크로드 맵과 부트 세그먼트의 구조를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 캐시 관리자가 가상 머신의 디스크 이미지 파일에 대한 개방 요청을 처리하는 방법을 나타내는 순서도이다.
도 4는 본 발명의 일 실시예에 따른 선반입 관리자가 부트 세그먼트를 선반입하여 캐시로 적재하는 방법을 나타내는 순서도이다.
도 5는 본 발명의 일 실시예에 따른 캐시 관리자가 가상 머신의 디스크 이미지 파일에 대한 읽기 요청을 처리하는 방법을 나타내는 순서도이다.
도 6은 본 발명의 일 실시예에 따른 캐시 관리자가 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청을 처리하는 방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 이 때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 장치를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 일 실시예에 따른 가상 머신 환경을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 가상 머신 환경은, 크게 가상 머신 호스트 서버(101)와 스토리지 시스템(110)으로 구성된다.
가상 머신 호스트 서버(101)는 가상 머신(102), 캐시 관리자(104), 선반입 관리자(109), 캐시 장치(106)를 포함할 수 있다. 또한, 스토리지 시스템(110)은 하나 이상의 볼륨(111)을 포함할 수 있다.
가상 머신 호스트 서버(101)에서는 사용자의 가상 머신(102)이 실행되며, 가상 머신(102)에는 운영체제(103)가 설치되어 있다. 가상 머신 호스트 서버(101)에 가상 머신(102)이 설치되면, 그에 대응하여 스토리지 시스템(110)의 볼륨(111)에 해당 가상 머신(102)에 대한 데이터인 가상 머신 데이터(112)가 생성되어 저장된다. 본 발명의 일 실시예에 따르면, 가상 머신 데이터(112)는 디스크 이미지 파일(113), 부트 워크로드 맵(114) 및 부트 세그먼트(115)를 포함할 수 있다.
가상 머신(102)을 기동하면, 가상 머신(102)에 설치된 운영제체(103)가 부팅을 시작하게 되고, 필요한 데이터를 스토리지 시스템(110)의 디스크 이미지 파일(113)에서 읽게 된다. 이때, 본 발명에 따른 캐시 관리자(104)는 새로운 부트 워크로드 맵(105)을 생성하여 부팅 시 접근되는 데이터 블록들을 추적한다. 또한, 캐시 관리자(104)는 부팅이 완료되고 가상 머신(102)이 종료하면 부트 워크로드 맵(105)을 이용하여 접근된 데이터들을 순차화하여 새로운 부트 세그먼트(108)을 생성한 후 스토리지 시스템(110)의 볼륨(111)에 부트 워크로드 맵(114)과 부트 세그먼트 파일(115)로 저장한다.
그 후, 가상 머신(102)이 다시 부팅하게 되면 캐시 관리자(104)는 스토리지 시스템(110)에 저장된 부트 워크로드 맵 파일(114)을 로드하여 선반입 관리자(109)에게 전달하여 선반입을 지시한다. 선반입 관리자(109)는 이를 이용하여 스토리지 시스템(110)으로부터 부트 세그먼트 파일(115)을 선반입하여 메모리에 적재하고 이를 캐시 장치(106)의 캐시(107)에 적재한다. 캐시 관리자(104)는 가상 머신(102)이 부팅시 요청하는 데이터 블록들이 캐시(107)에 존재하는지 검사하고, 존재할 경우 이를 캐시(107)에서 읽어 반환하며, 그렇지 않을 경우에는 스토리지 시스템(110)에 저장된 디스크 이미지 파일(113)에서 읽어 반환한다.
도 2는 본 발명의 일 실시예에 따른 부트 워크로드 맵과 부트 세그먼트의 구조를 나타내는 도면이다.
도 2에서는 부트 워크로드 맵을 설정하는 블록 크기가 4KB 로 가정하여 설명한다. 다만, 이는 하나의 예시에 불구하며, 부트 워크로드 맵을 설정하는 블록 크기는 다양하게 정해질 수 있다.
부트 워크로드 맵(201)은 디스크 이미지 파일(113)에서 부팅 시 접근 되는 블록 비트 맵을 의미한다. 부트 워크로드 맵에 1로 설정된 1, 3, 4, 8번째 비트는 디스크 이미지 파일(113)에서 부팅 시 접근된 블록들을 의미한다. 즉, 디스크 이미지 파일(113)을 4KB 단위의 블록으로 분할하였을 경우 디스크 이미지 파일(113)내에서 각각 2, 4, 5, 9번째 4KB 데이터 블록이 접근되었음을 의미한다. 부트 세그먼트(202)는 부트 워크로드 맵(201)에 1로 설정된 블록들을 순차화하여 저장한 파일을 나타낸다.
본 발명의 일 실시예에 따른 선반입 관리자(109)는 부트 워크로드 맵(201)을 이용하여, 부트 세그먼트(202)에 저장된 데이터들에 대한 디스크 이미지 파일(113) 내에서의 실제 오프셋과 크기를 계산하여 캐시 관리자(104)를 통해 캐시에 저장한다. 또한 캐시 관리자(104)는 부트 워크로드 맵(201)을 이용하여 접근된 블록들을 순차화하여 새로운 부트 세그먼트(202)를 생성할 수 있다.
도 3은 본 발명의 일 실시예에 따른 캐시 관리자가 가상 머신의 디스크 이미지 파일에 대한 개방 요청을 처리하는 방법을 나타내는 순서도이다.
도 3을 참조하면, 먼저, 301 단계에서 캐시 관리자(104)는 가상 머신(102)의 디스크 이미지 파일(113)에 대한 개방 요청을 수신한다. 그 후, 캐시 관리자(104)는 302 단계에서 스토리지 시스템(110)에서 부트 워크로드 맵(114) 로드를 시도한다. 캐시 관리자(104)가 302 단계에서 스토리지 시스템(110)에서 부트 워크로드 맵(114) 로드에 성공하는 경우, 캐시 관리자(104)는 306 단계로 진행하여, 선반입 관리자(109)에게 로딩된 부트 워크로드 맵(105)을 전달하고 부트 세그먼트(115) 선반입을 지시한다. 그 후, 캐시 관리자(104)는 303 단계로 진행하여 디스크 이미지 파일(113)을 개방하고 파일 식별자를 반환한다. 캐시 관리자(104)가 302 단계에서 스토리지 시스템(110)에서 부트 워크로드 맵(114) 로드에 실패하는 경우, 바로 303 단계로 진행하여 디스크 이미지 파일(113)을 개방하고 파일 식별자를 반환한다.
304 단계에서 캐시 관리자(104)는 새로운 부트 워크로드 맵(105)을 생성하고, 305 단계로 진행하여 개방 요청에 대한 처리를 완료한다. 새로이 생성되는 부트 워크로드 맵(105)은 가상 머신(102)을 부팅할 때마다, 보다 정확한 부트 워크로드 분석을 수행하기 위한 것으로, 정책에 따라 부트 워크로드 맵(105)의 생성을 다르게 적용할 수 있다. 예를 들어, 한 번 생성된 부트 워크로드 맵을 계속 이용하거나, 정해진 주기마다 또는 가상 머신(102)의 운영체제(103)에 대한 업데이트나 응용 프로그램 설치로 인해 부트 워크로드의 변화가 예상될 때마다 생성할 수도 있다.
도 4는 본 발명의 일 실시예에 따른 선반입 관리자가 부트 세그먼트를 선반입하여 캐시로 적재하는 방법을 나타내는 순서도이다.
도 4를 참조하면, 먼저, 401 단계에서 선반입 관리자(109)는 캐시 관리자(104)로부터 선반입 요청을 수신한다. 그 후, 402 단계에서 선반입 관리자(109)는 스토리지 시스템(110)에서 부트 세그먼트(115)를 개방을 시도한다. 402 단계에서 선반입 관리자(109)가 부트 세그먼트(115)가 존재하지 않는 등의 원인으로 부트 세그먼트(115)를 개방에 실패할 경우, 407 단계로 진행하여 선반입을 종료한다.
402 단계에서 선반입 관리자(109)가 부트 세그먼트(115) 개방에 성공하는 경우, 선반입 관리자(109)는 403 단계로 진행하여 캐시 관리자(105)로부터 전달받은 부트 워크로드 맵(105)에서 선반입 대상 블록을 검사한다. 본 발명의 일 실시예에 따르면, 캐시 관리자(105)는 부트 워크로드 맵(105)의 비트 값들을 비교하여 비트값이 1인 비트 또는 비트열들을 검사하고, 비트값이 1인 비트들만의 순서정보를 이용하여 부트 세그먼트 내에서의 데이터 블록 위치를 계산하며, 연속된 비트의 개수를 이용하여 블록 크기를 계산할 수 있다. 또한 비트의 인덱스 값을 이용하여 디스크 이미지 파일(113)내에서의 실제 오프셋을 계산할 수도 있다.
404 단계에서는 선반입 관리자(109)는 더 이상의 선반입 대상 블록이 존재하는지 여부를 판단한다. 선반입 관리자(109)가 404 단계에서 더 이상의 선반입 대상 블록이 존재하지 않는다고 판단하는 경우, 선반입 관리자(109)는 408 단계로 진행하여 부트 세그먼트(115)를 폐쇄하고, 407 단계로 진행하여 선반입을 종료한다.
선반입 관리자(109)가 404 단계에서 선반입 대상 블록이 존재한다고 판단하는 경우, 선반입 관리자(109)는 405 단계로 진행하여 선반입 버퍼에 데이터가 존재하는지 검사한다. 405 단계로 선반입 버퍼에 데이터가 존재하지 않는 경우, 선반입 관리자(109)는 409 단계로 진행하여 스토리지 시스템(110)의 부트 세그먼트(115)로부터 버퍼 크기만큼의 데이터를 읽어서 버퍼에 적재한다. 그 후, 선반입 관리자(109)는 406 단계로 진행하여 버퍼에서 해당되는 데이터를 읽어, 계산된 디스크 이미지 파일 내에서의 실제 오프셋 및 크기 정보를 이용하여 캐시 관리자(104)를 통해 캐시(107)에 저장한다.
405 단계로 선반입 버퍼에 데이터가 존재하는 경우, 선반입 관리자(109)는 바로 406 단계로 진행하여 버퍼에서 해당되는 데이터를 읽어, 계산된 디스크 이미지 파일 내에서의 실제 오프셋 및 크기 정보를 이용하여 캐시 관리자(104)를 통해 캐시(107)에 저장한다.
나아가 선반입 관리자(109)는 선반입이 종료될 때까지 부트 워크로드 맵에서의 선반입 대상 블록 검사를 반복하여 수행한다.
도 5는 본 발명의 일 실시예에 따른 캐시 관리자가 가상 머신의 디스크 이미지 파일에 대한 읽기 요청을 처리하는 방법을 나타내는 순서도이다.
도 5를 참조하면, 먼저, 501 단계에서 캐시 관리자(104)는 디스크 이미지 파일(113)에 대한 읽기 요청을 수신하여 502 단계에서 읽기 요청에 해당하는 데이터 블록이 캐시(107)에 존재하는지 여부를 검사한다. 데이터 블록이 캐시(107)에 존재하는 경우, 캐시 관리자(104)는 504 단계로 진행하여 캐시(107)에서 데이터 블록을 읽어서 반환하고, 그렇지 않은 경우에는 503 단계로 진행하여 디스크 이미지 파일(113)에서 데이터 블록을 읽어 반환한다.
다음으로, 캐시 관리자(104)는 505 단계에서 부트 워크로드가 완료되었는지 검사한다. 부트 워크로드가 완료되었는지 여부는 먼저 디스크 이미지 파일 개방 후 읽기 요청으로 처리한 데이터의 누적된 크기가 정해진 크기에 도달하였는지를 검사하여 판단할 수 있다. 예를 들어, 마이크로소프트사의 운영체제 중 하나인 Window 7 의 경우, 부팅 시 약 450~500 MB의 데이터를 읽기 때문에 이를 이용할 수 있다. 또한, 부팅 초기에 약 68,000개의 512바이트의 섹터 단위 랜덤 읽기가 발생한다는 점을 고려하여 누적된 크기인 약 33MB 만을 정해진 크기로 설정할 수도 있고, 68,000 개의 누적된 읽기 요청 개수를 완료 시점으로 이용할 수도 있다. 나아가, 512 바이트보다 큰 읽기 요청을 전달 받을 때를 부팅 완료 시점으로 설정할 수도 있다.
505 단계에서 부트 워크로드가 완료되지 않은 경우, 캐시 관리자(104)는 506 단계로 진행하여 부트 워크로드 맵(105)에서 읽기 요청에 해당하는 블록의 비트값을 1로 설정하고, 507 단계로 진행하여 읽기 요청 처리를 완료한다. 505 단계에서 부트 워크로드가 완료된 경우에는 바로 507 단계로 진행하여 읽기 요청 처리를 완료한다.
도 6은 본 발명의 일 실시예에 따른 캐시 관리자가 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청을 처리하는 방법을 나타내는 순서도이다.
도 6을 참조하면, 먼저, 캐시 관리자(104)는 601 단계에서 디스크 이미지 파일(113)에 대한 폐쇄 요청을 수신하고, 602 단계로 진행하여 요청된 디스크 이미지 파일(113)을 폐쇄하고 결과를 반환한다. 그 후, 캐시 관리자(104)는 603 단계에서 백그라운드로 새로이 생성된 부트 워크로드 맵(105)을 이용하여 새로운 부트 세그먼트(108)를 생성하고, 604 단계로 진행하여 부트 워크로드 맵(105)과 생성된 부트 세그먼트(108)를 스토리지 시스템(110)에 저장하며, 605 단계에서 폐쇄 요청 처리를 종료한다. 이때, 새로운 부트 세그먼트 생성(108) 및 스토리지 시스템(110)으로의 저장 시점은 읽기 요청 처리 후의 부트 워크로드 완료 시점 판단(505) 후에 실행될 수도 있다.
이러한 본 발명에 따르면, 대규모의 가상 머신을 운용하는 환경에서 가상 머신의 부팅 시 초기 랜덤으로 접근되는 데이터 블록들을 미리 판별하여 캐시에 적재함으로써 가상 머신의 부팅 성능을 향상 시키고 랜덤 읽기에 따른 스토리지 시스템의 부하를 경감시킬 수 있다.
본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
101: 가상 머신 호스트 서버
102: 가상 머신
104: 캐시 관리자
106: 캐시 장치
109: 선반입 관리자
110: 스토리지 시스템
111: 볼륨

Claims (9)

  1. 게스트 운영 체제가 설치되어 운영되는 가상 머신;
    스토리지 시스템에 저장된 상기 가상 머신의 디스크 이미지 파일에 대한 개방 요청, 폐쇄 요청 또는 입출력 요청 중 적어도 하나 이상의 요청을 처리하고, 부트 워크로드 맵 및 부트 세그먼트를 관리하는 캐시 관리자;
    상기 부트 세그먼트를 캐싱하는 캐시 장치; 및
    상기 캐시 장치에 상기 부트 세그먼트를 선반입하는 선반입 관리자를 포함하되,
    상기 선반입 관리자는:
    상기 캐시 관리자로부터 상기 부트 워크로드 맵을 선반입하도록 지시 받은 경우, 상기 스토리지 시스템의 상기 부트 세그먼트를 개방하고, 상기 캐시 관리자로부터 전달 받은 상기 부트 워크로드 맵에서 선반입 대상 블록을 검사하며, 상기 선반입 대상 블록이 더 이상 존재하지 않는지 여부를 판단하여 상기 선반입 대상 블록이 더 이상 존재하지 않는다고 판단하는 경우, 선반입을 종료하고, 그리고
    상기 선반입 대상 블록이 더 이상 존재하지 않는지 여부를 판단하여 상기 선반입 대상 블록이 더 존재한다고 판단하는 경우, 선반입 버퍼에 저장 공간을 확인하고, 상기 선반입 버퍼에 상기 저장 공간이 있는 경우, 상기 스토리지 시스템으로부터 상기 부트 세그먼트를 일정 크기의 연속 읽기로 가져와 상기 선반입 버퍼에 데이터를 적재하며, 상기 부트 워크로드 맵에서 부팅 시 접근된 블록으로 설정된 비트의 순서 및 비트열 개수를 이용하여 상기 부트 세그먼트 내에서 해당 블록의 위치를 계산하고, 상기 부트 워크로드 맵을 이용하여 상기 가상 머신의 디스크 이미지 파일 내에서 해당 블록의 실제 오프셋을 계산하며, 상기 선반입 버퍼에서 대상 블록을 읽어서 상기 캐시 관리자를 통해 캐시에 적재하고, 상기 부트 세그먼트를 폐쇄하는 가상 머신 호스트 서버.
  2. 제1항에 있어서,
    상기 캐시 관리자는,
    상기 가상 머신의 디스크 이미지 파일에 대한 개방 요청을 수신하는 경우, 상기 가상 머신의 부트 워크로드 맵을 로딩하고, 상기 선반입 관리자에게 상기 가상 머신의 부트 워크로드 맵을 선반입하도록 지시하며, 상기 디스크 이미지 파일을 개방하고, 새로운 부트 워크로드 맵을 생성하는 것을 특징으로 하는 가상 머신 호스트 서버.
  3. 제1항에 있어서,
    상기 캐시 관리자는,
    상기 가상 머신의 디스크 이미지 파일에 대한 읽기 요청을 수신하는 경우, 읽기 요청된 데이터 블록이 상기 캐시 장치에 존재하는지 검사하고, 상기 읽기 요청된 데이터 블록이 상기 캐시 장치에 존재하는 경우, 상기 읽기 요청된 데이터 블록을 캐시 장치나 스토리지 시스템을 이용하여 처리하며, 부트 워크로드의 완료 시점을 판별하고, 부트 워크로드 맵에 읽기 요청된 블록을 설정하는 것을 특징으로 하는 가상 머신 호스트 서버.
  4. 제1항에 있어서,
    상기 캐시 관리자는,
    상기 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청을 수신하는 경우, 상기 가상 머신의 디스크 이미지 파일을 폐쇄하고, 부트 워크로드 맵을 이용하여 새로운 부트 세그먼트를 생성하며, 상기 새로운 부트 세그먼트 및 상기 부트 워크로드 맵을 상기 스토리지 시스템에 저장하는 것을 특징으로 하는 가상 머신 호스트 서버.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 부트 워크로드 맵은,
    부팅 시 접근된 블록과 접근되지 않은 블록을 구별하고 표시하여 저장하는 블록 비트맵 파일인 것을 특징으로 하는 가상 머신 호스트 서버.
  8. 제1항에 있어서,
    상기 부트 세그먼트는,
    부팅 시 랜덤으로 접근된 데이터를 순차화하여 저장한 파일인 것을 특징으로 하는 가상 머신 호스트 서버.
  9. 제1항에 있어서,
    상기 스토리지 시스템은 가상 머신 호스트 서버에 포함된 가상 머신의 데이터를 저장하고,
    상기 데이터는,
    상기 가상 머신의 디스크 이미지 파일, 상기 가상 머신의 부트 워크로드 맵 및 상기 가상 머신의 부트 세그먼트 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 가상 머신 호스트 서버.
KR1020150084491A 2014-12-03 2015-06-15 가상 머신 호스트 서버 장치 및 그 동작 방법 KR102064549B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/848,841 US9804965B2 (en) 2014-12-03 2015-09-09 Virtual machine host server apparatus and method for operating the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140172395 2014-12-03
KR1020140172395 2014-12-03

Publications (2)

Publication Number Publication Date
KR20160067713A KR20160067713A (ko) 2016-06-14
KR102064549B1 true KR102064549B1 (ko) 2020-01-10

Family

ID=56191907

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150084491A KR102064549B1 (ko) 2014-12-03 2015-06-15 가상 머신 호스트 서버 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102064549B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008112423A (ja) 2006-10-31 2008-05-15 Toshiba Corp キャッシュサーバ、ネットワークブート方法、及びプログラム
US20100070678A1 (en) * 2008-09-12 2010-03-18 Vmware, Inc. Saving and Restoring State Information for Virtualized Computer Systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008112423A (ja) 2006-10-31 2008-05-15 Toshiba Corp キャッシュサーバ、ネットワークブート方法、及びプログラム
US20100070678A1 (en) * 2008-09-12 2010-03-18 Vmware, Inc. Saving and Restoring State Information for Virtualized Computer Systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Chunqiang Tang. FVD: a High-Performance Virtual Machine Image Format for Cloud. 2011년. 1부.*

Also Published As

Publication number Publication date
KR20160067713A (ko) 2016-06-14

Similar Documents

Publication Publication Date Title
US11200337B2 (en) System and method for user data isolation
US9804965B2 (en) Virtual machine host server apparatus and method for operating the same
US9164676B2 (en) Storing multi-stream non-linear access patterns in a flash based file-system
US10402091B1 (en) Managing data in log-structured storage systems
US9645924B2 (en) Garbage collection scaling
US9547591B1 (en) System and method for cache management
US9507732B1 (en) System and method for cache management
US9836397B2 (en) Direct memory access of dynamically allocated memory
US9891833B2 (en) Eliminating garbage collection in nand flash devices
TW201439763A (zh) 用於管理一快取儲存以達成跨系統重開之改善快取斜增之系統,方法及電腦可讀媒體
US9665496B2 (en) Non-volatile memory write mechanism
KR102655347B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US9591096B2 (en) Computer system, cache control method, and server
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US20140244901A1 (en) Metadata management for a flash drive
US20150089178A1 (en) Management Of A Memory
US20140304487A1 (en) Information processing apparatus, memory control device, and data transfer control method
US10817624B2 (en) Memory system and storage device capable of permanently deleting data stored in a non-volatile memory
US20160342542A1 (en) Delay destage of data based on sync command
US9201799B2 (en) Method for disk defrag handling in solid state drive caching environment
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
KR102064549B1 (ko) 가상 머신 호스트 서버 장치 및 그 동작 방법
US10430287B2 (en) Computer
US7234039B1 (en) Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer
US9542318B2 (en) Temporary cache memory eviction

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