KR101403416B1 - 가상 머신 저장 공간 관리를 위한 방법 및 시스템, 및 물리적 호스트 - Google Patents

가상 머신 저장 공간 관리를 위한 방법 및 시스템, 및 물리적 호스트 Download PDF

Info

Publication number
KR101403416B1
KR101403416B1 KR1020127012967A KR20127012967A KR101403416B1 KR 101403416 B1 KR101403416 B1 KR 101403416B1 KR 1020127012967 A KR1020127012967 A KR 1020127012967A KR 20127012967 A KR20127012967 A KR 20127012967A KR 101403416 B1 KR101403416 B1 KR 101403416B1
Authority
KR
South Korea
Prior art keywords
virtual storage
virtual
module
free
block
Prior art date
Application number
KR1020127012967A
Other languages
English (en)
Other versions
KR20120086322A (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 KR20120086322A publication Critical patent/KR20120086322A/ko
Application granted granted Critical
Publication of KR101403416B1 publication Critical patent/KR101403416B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • 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

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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

가상 머신(VM) 저장 공간을 관리하기 위한 방법이 제공된다. 방법에서, VM에 설치되어 있는 저장 벌룬 에이전트(Storage Ballon Agent: SBA) 모듈은 가상 저장 자유 블록 정보를 직접 획득하도록 채택되고 그 획득된 가상 저장 자유 블록 정보를 가상 머신 모니터(Virtual Machine Monitor: VMM) 계층에 설치된 저장 벌룬 대몬(Storage Balloon Daemon: SBD) 모듈에 전달하며; SBD 모듈은 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하고, 그 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가로 표시한다. 대응하는 시스템 및 물리적 호스트가 본 발명에 추가로 제공된다. 본 발명의 실시예의 방법을 통해, 가상 저장 공간의 사용 상태를 실시간으로 획득할 수 있고, 저장 시스템의 기록 및 판독 동작을 다수 회 수행하지 않을 수 있다.

Description

가상 머신 저장 공간 관리를 위한 방법 및 시스템, 및 물리적 호스트{METHOD SYSTEM FOR MANAGING VIRTUAL MACHINE STORAGE SPACE AND PHYSICAL HOST}
본 발명은 컴퓨터 가상화 기술에 관한 것이며, 특히 가상 머신(VM) 저장 공간 및 물리적 호스트를 관리하기 위한 방법 및 시스템에 관한 것이다.
삭제
컴퓨터 가상화 기술은 상위 운영체제와 컴퓨터의 어플리케이션으로부터 하위 하드웨어 장치를 분리하기 위한 디커플링 방법이다. 컴퓨터 가상화 기술은 가상 머신 모니터(Virtual Machine Monitor: VMM) 계층을 도입하여 하위 하드웨어 리소스를 직접적으로 관리하고 아울러 상위 운영체제 및 어플리케이션이 사용할 하위 하드웨어와 관계없는 VM을 생성한다. 상응하는 VM 아키텍처가 도 1에 도시되어 있다. 현재 대중적인 클라우드 컴퓨터 플랫폼을 위한 중요한 하위 지원 기술 중 하나로서, 가상화 기술은 물리적 장치의 리소스 사용 효율성을 크게 높일 수 있다. 종래의 물리적 머신과 비교해서, VM은 더 나은 격리 및 캡슐화 특성을 가진다. 전체적인 VM의 정보는 가상 디스크 이미지(Virtual Disk Image: VDI)에 세이브될 수 있으므로, VM 상에서의 스냅 사진 촬영(snapshot taking), 백업(backing up), 복제(cloning) 및 배포(distribution)와 같은 동작을 편리하게 수행할 수 있다.
가상 디스크(VDisk)는 VM이 사용할 VMM에 의해 제공되는 가상 저장 장치이다. VDisk에 대응하는 물리적 저장 공간은, 네트워크 부착 스토리지(Network Attached Storgae: NAS) 파일 서버, 스토리지 영역 네트워크(Storage Area Network: SAN), 스토리지 클러스터, 또는 스토리지 클라우드와 같이, 호스트의 로컬 저장 시스템 또는 데이터 센터의 네트워크 저장 시스템일 수 있다. VDisk는 파일 또는 블록 장치(예를 들어 디스크 파티션 또는 논리적 볼륨)의 형태로 호스트에 존재할 수 있다.
VM 저장 공간은 일반적으로 다음과 같은 두 가지 방식으로 할당된다: 사전할당 및 동적 할당. 사전할당에서는, 크기가 지정되어 있는 저장 공간이 각각의 VM에 한 번에 할당된다. VM 데이터가 작을 때는, 사전할당은 공간이 크게 낭비된다. 가상 저장 공간의 동적 할당은 저장 리소스의 낭비를 어느 정도 줄일 수 있다. 시작 시에, 가상 저장 공간은 실제의 작은 저장 공간을 점유한다. 사용자의 사용에 있어서, VM 저장 공간에 파일들이 더 많이 생성될수록, 저장 공간을 더 많이 점유한다.
동적 할당을 통한 저장 공간을 관리하기 위한 기존의 방법이 요건에 따른 할당을 수행할 수 있어도, VM에서 파일 삭제 동작이 수행될 때, 호스트가 그 동작을 인지할 수 없으면, 호스트는 VM에 의해 이미 해제된(released) 자유 공간을 해제할 수 없다. 예를 들어, 20 GB 가상 저장 장치를 가지는 VM은 가장 바쁜 작업 동안 모든 저장 공간을 일시적 파일로서 기본적으로 사용한다. 작업이 한가할 때, 일시적 파일을 삭제하여, 15 GB 자유 공간이 시스템에 존재하지만, 호스트가 점유하는 15 GB 자유 공간의 저장 리소스는 해제되지 않는다.
종래기술에서, 가상 컴퓨터 소프트웨어 VM 웨어 워크스테이션은 VM 웨어 수축 가상 디스크 기능을 제공하는데, VM 웨어 가상 머신 디스크 포맷(VM Ware Virtual Machine Disk Format: VMDK) 동적 VDisk에서 자유 데이터 블록(이하, 블록이라 함)을 해제할 수 있다. 주요 단계는 다음과 같다.
VM에서 디스크 조각 모으기(disk defragmentation)를 수행한다(선택).
VM 내의 VM 툴을 통해 VDisk 내의 자유 블록을 제로에 설정한다.
호스트 내의 지원 툴은 VDisk에 대응하는 파일 또는 블록 장치를 스캔하여 "제로" 블록을 식별하고, 동적 이미지 포맷 특성을 사용하여 이미지 수축을 수행함으로써 자유 데이터 블록의 해제를 완료한다.
본 발명의 실행 동안, 발명자들은 전술한 방법에서, VM 툴이 VDisk 내의 자유 블록을 제로에 설정하는 프로세스에서, 모든 자유 블록에 대해 기록 동작이 수행되어야 하고, 호스트가 "제로" 블록을 식별할 때는, 모든 데이터 블록에 대해 판독 동작이 수행되어야 한다는 것을 알고 있다. 즉, 기존의 방법에서는, 높은 동작 오버헤드가 존재하고, 너무 많은 디스크 기록 및 판독 동작으로 인해 디스크 대역폭을 대량으로 낭비하고 시간이 너무 오래 걸린다. 또한, 기존의 방법에서는 호스트가 "제로" 블록을 식별함으로써 VDisk 내의 각각의 데이터 블록의 공간 점유를 직접적으로 판정하므로, VM의 디스크의 전체적인 자유 데이터 블록 정보를 실시간으로 획득할 수 없다. 또한, 기존 방법의 어플리케이션은 제한되며, 이러한 방법은 동적 할당 이미지 포맷에만 적용 가능하다. 사전할당 미러 포맷에 있어서는, 자유 블록이 해제될 수 없다.
본 발명의 실시예는 저장 공간을 효과적으로 관리하고 저장 시스템의 활용 비율을 높이기 위해, VM 저장 공간을 관리하기 위한 방법 및 물리적 호스트를 제공한다.
물리적 호스트에 적용 가능한 가상 머신(Virtual Machine: VM) 저장 공간을 관리하기 위한 방법이 제공되며, 상기 물리적 호스트는 하드웨어 계층, 상기 하드웨어 계층에서 운용되는 가상 머신 모니터(Virtual Machine Monitor: VMM) 계층, 및 상기 VMM 계층에서 운용되는 VM을 포함하며, 상기 VM에 저장 벌룬 에이전트(Storage Ballon Agent: SBA) 모듈이 설치되고, 상기 VMM 계층에 저장 벌룬 대몬(Storage Balloon Daemon: SBD) 모듈이 설치되며,
상기 SBA 모듈이, 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기에 따라, 점유된 가상 저장 블록의 일부를 획득하고, 상기 가상 저장 블록에 대응하는 가상 저장 자유 블록 정보를 상기 SBD 모듈에 전달하는 단계; 및
상기 SBD 모듈이, 상기 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하고, 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가(unavailable)로 표시하는 단계
를 포함한다.
가상 머신(Virtual Machine: VM)에 설치된 저장 벌룬 에이전트(Storage Ballon Agent: SBA) 모듈 및 가상 머신 모니터(Virtual Machine Monitor: VMM) 계층에 설치된 저장 벌룬 대몬(Storage Balloon Daemon: SBD) 모듈을 포함하는, 가상 머신(Virtual Machine: VM) 저장 공간을 관리하기 위한 시스템이 제공되며,
상기 SBA 모듈은, 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기에 따라, 점유된 가상 저장 블록 중 일부를 획득하고, 상기 가상 저장 블록에 대응하는 가상 저장 자유 블록 정보를 상기 SBD 모듈에 전달하도록 구성되어 있으며,
상기 SBD 모듈은, 상기 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하고, 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가(unavailable)로 표시하도록 구성되어 있다.
하드웨어 계층, 상기 하드웨어 계층에서 운용되는 가상 머신 모니터(Virtual Machine Monitor: VMM) 계층, 및 상기 VMM 계층에서 운용되는 적어도 하나의 가상 머신(Virtual Machine: VM)을 포함하며, 상기 VM에 저장 벌룬 에이전트(Storage Ballon Agent: SBA) 모듈이 설치되고, 상기 VMM 계층에 저장 벌룬 대몬(Storage Balloon Daemon: SBD) 모듈이 설치되는, 물리적 호스트가 제공되며,
상기 SBA 모듈은, 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기에 따라, 점유된 가상 저장 블록 중 일부를 획득하고, 상기 가상 저장 블록에 대응하는 가상 저장 자유 블록 정보를 상기 SBD 모듈에 전달하도록 구성되어 있으며,
상기 SBD 모듈은, 상기 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하고, 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가(unavailable)로 표시하도록 구성되어 있다.
본 발명의 실시예는 다음과 같은 솔루션을 채택한다: VM에 SBA 모듈이 설치되고, VMM 계층에 SBD 모듈이 설치된다. SBA 모듈은 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 점유에 따라 가상 저장 자유 블록 정보를 획득하고, 상기 가상 저장 자유 블록 정보를 SBD 모듈에 전달하며; SBD 모듈은 상기 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간을 해제한다. 이러한 기술적 솔루션을 통해, 한 관점에서 보면, 가상 저장 자유 블록 정보를 실시간으로 획득할 수 있으므로, 실시간 특성이 우수하며; 다른 관점에서 보면, 저장 시스템의 판독 및 기록 동작을 다수 회 수행하지 않으므로 시스템 오버헤드가 낮아진다. 또한, 이 방법에서는, 파일 시스템의 인터페이스를 사용하여 가상 저장 자유 블록 정보를 획득하므로, 파일 시스템의 실행에 대한 상세한 사항을 알지 않아도 되며, 범용성(universality)이 뛰어나다. 이 방법은 동적 할당 이미지 포맷 및 사전할당 미러 포맷 모두에 적용 가능하다.
도 1은 VM 아키텍처의 개략도이다.
도 2는 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 방법에 대한 개략적인 흐름도이다.
도 2a는 도 2에 도시된 방법에서 단계 100의 특정한 단계들에 대한 개략적인 흐름도이다.
도 2b는 도 2에 도시된 방법에서 단계 200의 특정한 단계들에 대한 개략적인 흐름도이다.
도 3은 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 시스템의 논리 구조를 나타내는 도면이다.
도 4는 본 발명의 실시예에 따라 물리적 호스트의 논리 구조를 나타내는 개략도이다.
도 5a는 본 발명의 실시예에 따른 VM 어플리케이션 시나리오에서 VM 저장 공간을 관리하기 위한 방법에 대한 개략적인 흐름도이다.
도 5b는 본 발명의 실시예에 따른 VM 어플리케이션 시나리오에서 VM 저장 공간을 관리하기 위한 방법에 대한 개략적인 흐름도이다.
본 발명의 실시예는 물리적 호스트에 적용되는, VM 저장 공간을 관리하기 위한 방법을 제공한다. 물리적 호스트는 하드웨어 계층, 상기 하드웨어 계층에서 운용되는 VMM 계층, 및 VMM 계층에서 운용되는 VM을 포함하며, VM에 SBA 모듈이 설치되고, VMM 계층에 SBD 모듈이 설치된다. 이 방법에서, VM에 설치된 SBA 모듈은 가상 저장 자유 블록 정보를 직접 획득하고, 상기 획득된 가상 저장 자유 블록 정보를, VMM 계층에 있으면서 SBA 모듈과 협동하는 SBD 모듈에 전달하며, SBD 모듈은 VM 저장 포맷으로 상기 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간을 표시하고 해제한다. 본 발명의 실시예는 VM 저장 공간 및 물리적 호스트를 관리하기 위한 대응하는 시스템을 추가로 제공한다. 상세한 설명을 후술한다.
도 2는 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 방법을 도시하고 있다. 이 방법은 물리적 호스트에 적용 가능하다. 물리적 호스트는 하드웨어 계층, 상기 하드웨어 계층에서 운용되는 VMM 계층, 및 VMM 계층에서 운용되는 VM을 포함하며, VM에는 SBA 모듈이 설치되고, VMM 계층에는 SBD 모듈이 설치된다. 방법은 이하의 단계를 포함할 수 있다.
100: SBA 모듈은 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기에 따라, 점유된 가상 저장 블록 중 일부를 획득하고, 가상 저장 블록에 대응하는 가상 저장 자유 블록 정보를 SBD 모듈에 전달한다.
이 단계에서, VM에 설치된 SBA 모듈은 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 점유에 따라 가상 저장 자유 블록 정보를 직접 획득하므로, 제로를 설정하는 기록 동작을 자유 블록마다 수행할 필요가 없다.
또한, 실행 방식에서, SBA 모듈은 가상 저장 블록에 대응하는 가상 저장 자유 블록 정보를, 메모리를 공유함으로써 VMM 계층에 설치된 SBD 모듈에 전달하므로, 기록 동작을 자유 블록마다 수행할 필요가 없다.
미리 정해진 파일은 임의의 타입의 미리 정해진 파일일 수 있으며, 특정한 가상 저장 자유 공간을 점유하는 기능을 한다. 예를 들어, VM 윈도우 운영체제의 드라이브 C에 있어서, 미리 정해진 파일은 C:/balloon.sys일 수 있다. 본 발명의 실시예는 미리 정해진 파일로서 기존의 파일을 사용할 수도 있고, 미리 정해진 파일로서 새로운 파일을 생성할 수도 있다.
200: SBD 모듈은 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하고, 그 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가(unavailable)로 표시한다.
이 단계에서, SBD 모듈은 자유 블록을 해제하는 동작을 수행한다. 실행 방식에서, 사전에 정해진 정책에 따라, SBD 모듈은 자유(free)로 표시된 가상 저장 블록 중 일부 또는 전부에 대응하는 물리적 저장 공간을 해제하고, 그 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가로 표시한다.
물리적 호스트의 저장 시스템이 디스크일 때, 미리 정해진 파일은 VDisk 공간을 점유하고, 그 해제되고 표시된 물리적 저장 공간은 구체적으로 물리적 디스크 공간임을 이해해야 한다.
도 2a를 참조하면, 바람직한 솔루션에서, 단계 100은 구체적으로 이하의 단계를 포함한다.
110: VM에 설치된 SBA 모듈은 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 획득된 한계값 범위(limit value range)와 비교한다.
미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 획득된 한계값 범위와 비교함으로써 그 획득된 상이한 결과에 대해, 상이한 동작이 수행된다는 것을 이해해야 한다. 한계값 범위는 사전설정된 고정값일 수도 있고, 다른 획득된 파라미터에 따라 지정된 알고리즘을 통해 획득될 수도 있다. 실행 방식에서, 단계 110은 구체적으로 이하의 단계를 포함한다.
111: SBA 모듈은 파일 시스템을 작동시켜 가상 저장 자유 공간의 크기 및 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 획득하고, SBD 모듈로부터 하한 비율 및 상한 비율을 획득하며, 상기 미리 정해진 파일은 하한 비율과 상한 비율 간의 가상 저장 자유 공간을 점유하도록 허용되어 있다.
VM은 파일 시스템의 인터페이스를 통해 가상 저장 자유 공간 정보를 획득한다. 이 단계는 특정한 주기에 따라 반복적으로 수행된다. 예를 들어, 이 단계는 1 내지 5초의 간격으로 수행될 수 있다.
하한 비율 및 상한 비율은 SBD 모듈에 사전설정되어 있으며, 상기 미리 정해진 파일은 하한 비율과 상한 비율 간의 가상 저장 자유 공간을 점유하도록 허용되어 있다. 상한 비율은 바람직하게는 80%이고, 하한 비율은 바람직하게는 60% 내지 70%이다.
112: SBA 모듈은 하한 비율과 가상 저장 자유 공간의 크기와의 적(product) 및 상한 비율과 가상 저장 자유 공간의 크기와의 적을, 사전설정된 한계값 범위의 하한값 및 상한값으로 각각 취한다.
가상 저장 자유 공간의 크기를 X라 하면, 하한 비율은 L1%이고, 상한 비율은 L2%이고, 한계값 범위의 하한값은 X*L1%이며, 한계값 범위의 상한값은 X*L2%이다.
113: VM은 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 한계값 범위의 하한값 및 상한값과 각각 비교한다.
미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 S라고 하면, S 와 X*L1%, 그리고 S와 X*L2%를 각각 비교한다.
120: 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기 한계값 범위의 하한보다 작으면, SBA 모듈은 파일 시스템을 작동시켜 상기 미리 정해진 파일을 확장시키고 그 확장된 미리 정해진 파일에 가상 저장 블록을 할당한다.
미리 정해진 파일이 하한값보다 작으면, 가상 저장 자유 공간은 너무 큰 것으로 표시된다는 것을 이해해야 한다. 이 경우, 자유 공간의 일부를 해제할 필요가 있다. 자유 공간의 일부를 해제할 목적으로, 미리 정해진 파일을 먼저 확장하여 미리 정해진 파일이 점유하고 있는 자유 공간을 증가시키고, 이에 따라 미리 정해진 파일의 확장된 부분이 점유하고 있는 자유 공간을 해제한다. 실행 방식에서, 단계 120은 구체적으로 이하의 단계를 포함할 수 있다.
121: SBA 모듈은 파일 시스템의 사전할당된 (fallocate) 인터페이스를 작동시키고, 한계값 범위의 중간값을, 확장된 미리 정해진 파일의 크기로서 받아들인다. 중간값은 상한값과 하한값의 합의 절반에 해당한다.
하한값이 X*L1%이고 상한값이 X*L2%일 때, 중간값은 X*(L1%+L2%)/2이다.
122; SBA 모듈의 VM 파일 시스템은 확장된 미리 정해진 파일에 가상 저장 블록을 할당한다.
예를 들어, 크기가 X*(L1%+L2%)/2인 미리 정해진 파일에 가상 저장 블록 [b1, b2, ..., bn]이 할당될 수 있다.
123: SBA 모듈은 파일 시스템의 록 인터페이스(lock interface)를 작동시켜, 확장된 미리 정해진 파일에 할당된 가상 저장 블록을 록킹하여, 저장 장치 조각 모으기 툴에 의해 변형되지 않도록 한다.
130: SBA 모듈은 파일 시스템을 작동시켜 미리 정해진 파일의 확장된 부분이 점유하고 있는 가상 저장 블록을 획득한다.
미리 정해진 파일의 확장된 부분, 즉 [S, X*(L1%+L2%)/2]에 있어서, VM은 파일 시스템의 "file offset -> data block" 맵핑(bmap) 인터페이스를 작동시켜 그 점유된 가상 저장 블록 [bs, ..., bn]을 획득한다.
140: SBA 모듈은 가상 저장 블록을 나타내는 제1 가상 저장 자유 블록 정보를, 메모리를 공유함으로써 SBD 모듈에 전달한다.
제1 가상 저장 자유 블록 정보는 SBD 모듈에 전달되고, 제1 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간은 교정(reclamation) 및 해제를 위한 후보이다. 제1 가상 저장 자유 블록 정보는 메모리를 공유함으로써 전달되는데, 이것은 간단하고 신뢰성이 있다.
도 2b를 참조하면, 실행 방식에서, 단계 200은 구체적으로 이하의 단계를 포함한다.
210: VMM 계층에 설치된 SBD 모듈은 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능한지를 판정하고, 제1 가상 저장 자유 블록 정보에 대응하는 가상 블록이 이용가능하면, 가상 저장 블록은 자유로 표시된다.
SBD 모듈은 메모리를 공유함으로써 제1 가상 저장 자유 블록 정보를 획득하고, 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능한지를 판정하며, 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능하면, 가상 저장 블록이 자유로 표시되고; 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능하지 않다면, 가상 저장 블록이 이용불가로 표시되며; 프로세스를 수행되지 않는다. 프로세스가 완료된 후, SBD 모듈은 SBA에 답신한다.
220: SBD 모듈은 자유로 표시된 가상 저장 블록 중 일부 또는 전부에 대응하는 물리적 저장 공간을 해제하고, 그 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가로 표시한다.
이 단계에서, SBD 모듈은 자유 블록을 해제하는 동작을 수행한다. 사전설정된 정책에 따라, SBD 모듈은 자유로 표시된 가상 저장 블록 중 일부 또는 전부에 대응하는 물리적 저장 공간을 해제할 수 있고, 그 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가로 표시한다.
실제의 실행에서, 설명을 간단하게 하기 위해, 간단한 정책이 수행될 수 있는데, 즉, 자유로 표시된 가상 저장 블록에 있어서, 가상 저장 블록에 대응하는 물리적 저장 공간은 완전하게 해제되고, 그 해제된 물리적 저장 공간에 대응하는 가상 저장 블록은 이용불가로 표시된다.
가상 저장 관리 레벨을 올릴 목적으로, 바람직한 정책이 또한 실행될 수 있는데, 즉 VM에 저장 공간을 할당 및/또는 해제하는 동작의 빈도(frequency)가 임계값(여기서, 임계값은 사전설정될 수도 있고 동적 계산을 통해 획득될 수도 있다)보다 크거나 같을 때, SBD 모듈은 그 해제된 자유 블록의 비율을 감소시키고, VM에 저장 공간을 할당 및/또는 해제하는 동작의 빈도가 임계값보다 낮을 때, SBD 모듈은 그 해제된 자유 블록의 비율을 증가시킨다. 구체적으로, SBD 모듈은 VM에 저장 공간을 할당 또는 해제하는 동작의 빈도가 사전설정된 임계값보다 크거나 같은지를 판정하고, VM에 저장 공간을 할당 또는 해제하는 동작의 빈도가 사전설정된 임계값보다 크거나 같지 않으면, SBD 모듈은 자유로 표시된 가상 저장 블록에 대응하는 물리적 저장 공간을 사전설정된 비율(preset proportion)로 해제시키는데, 예를 들어, 물리적 저장 공간을 미리설정된 비율 80%로 해제시키며; VM에 저장 공간을 할당 또는 해제하는 동작의 빈도가 사전설정된 임계값보다 크거나 같으면, SBD 모듈은 사전설정된 레이트(preset rate)로 사전설정된 비율을 감소시키고, 자유로 표시된 가상 저장 블록에 대응하는 물리적 저장 공간을 그 감소된 비율로 해제시킨다. 예를 들어, 사전설정된 80%가 초당 1%의 레이트로 감소되고, 물리적 저장 공간은 그 감소된 비율, 예를 들어, 75% 또는 70%로 해제된다. 대체로 자유 블록은 단시간 내에 다시 사용되기 때문에, 빈번한 해제 및 재할당에 의해 야기된 오버헤드를 감소시키기 위해, 그 해제된 자유 블록의 비율을 감소시킨다. 명확하게, VM에 저장 공간을 할당 및 해제하는 동작의 빈도가 낮을 때, 그 해제된 자유 블록의 비율이 적절하게 증가되어야 한다. 자유 블록에 대응하는 저장 공간이 파일이면, 자유 데이터 블록을 해제하는 기능은 호스트 파일 시스템의 내부 인터페이스(free_blocks(start_block, count))의 익스포팅(exporting)에 따라 다르다. 가상 저장 블록에 대응하는 저장 공간이 블록 장치이면, 자유 블록이 해제될 때 자유 블록을 해제하도록 하위 계층 데이터 블록 저장 시스템에 명령을 내린다.
도 2a를 참조하면, 본 발명의 실시예에 따른 방법에서, 단계 110 후에, 즉 SBA는 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 그 획득된 한계값 범위와 비교한 후에, 방법은 이하의 단계를 더 포함할 수 있다.
150: 미리 정해진 파일이 점유하고 있는 가상 저장 공간이 한계값 범위의 상한값보다 크면, 시스템 파일을 작동시켜, 축소될 미리 정해진 파일의 일부가 점유하고 있는 가상 저장 블록을 획득한다.
미리 정해진 파일이 상한값보다 크면, 가상 저장 자유 공간이 너무 작은 것으로 표시한다. 이 경우, 미리 정해진 파일이 점유하고 있는 자유 공간의 일부를 VM 파일 시스템에 반송(return)할 필요가 있다. 자유 공간의 일부를 반송할 목적으로, 미리 정해진 파일은 자신이 점유하고 있는 자유 공간을 감소시키도록 수축되어야 하며, 그에 따라 그 수축된 부분이 점유하고 있는 자유 공간을 해제시킨다.
SBA 모듈은 수축될 미리 정해진 파일의 크기로서 목표값을 획득한다. 목표값보다 큰 부분은 수축될 부분이며 연결되고 제거될 것이다. 실행 방식에서, 한계값 범위의 중간값은 미리 정해진 파일의 수축을 위한 타겟 사이즈로서 취해진다. 미리 정해진 파일의 원래 크기가 S이고 중간값이 X*(L1%+L2%)/2일 때, 수축될 미리 정해진 파일의 부분은 간격 [X*(L1%+L2%)/2, S]이다. 이 간격에 있어서, VM은 시스템 파일의 file offset -> data block" 맵핑(bmap) 인터페이스를 작동시켜 대응하는 가상 저장 블록을 획득한다.
160; SBA 모듈은, 수축될 부분이 점유하고 있는 가상 저장 블록을 나타내는 제2 가상 저장 자유 블록 정보를 SBD에 전달하여, 수축될 부분이 점유하고 있는 가상 저장 블록을 자유 상태로 표시하지 않도록 SBD에 명령한다.
수축될 부분이 점유하고 있는 가상 저장 블록이 자유 상태로 표시되면, 수축될 부분이 점유하고 있는 가상 저장 블록은 SBD 모듈에 의해 해제되고 VM 파일 시스템으로 반송될 수 없으며, 이에 따라 수축될 부분이 점유하고 있는 가상 저장 블록이 자유 상태로 표시되어 있지 않다는 것을 확실히 하도록 SDB 모듈에 제때 통지해야 한다. 실행 방식에서, 제2 가상 저장 자유 블록 정보는 메모리를 공유함으로써 전달되고, 이것은 간단하고 신뢰성이 있다.
SBD 모듈이 SBA 모듈에 의해 전달된 제2 가상 저장 자유 블록 정보를 수신한 후, 단계 230이 수행된다.
230: SDB 모듈은 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유인지를 판정하고, 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유이면, 가상 저장 블록은 이용가능으로 표시된다.
SBD 모듈은 메모리를 공유함으로써 제2 가상 저장 자유 블록 정보를 획득하고, 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유인지를 판정하고, 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유이면, 가상 저장 블록은 이용가능으로 표시되며; 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용불가이면, 프로세스는 수행되지 않는다. VM에서의 데이터 블록 할당은 단지 가상 계층에서 수행될 뿐이며, 물리적 저장 공간에서의 실제의 데이터 블록 할당은 기록 동작 동안 수행된다는 점에 유의해야 한다. 프로세스가 완료된 후, SBD 모듈은 SBA에 답신한다.
170: SBA는 파일 시스템을 가동시켜 미리 정해진 파일을 수축시킨다.
SBA 모듈은 파일 시스템의 추출 인터페이스(truncate interface)를 작동시켜 사전설정된 한계값 범위의 중간값을, 수축될 미리 정해진 파일의 크기로서 받아들인다. 중간값은 상한값과 하한값의 합의 절반에 해당한다.
수축될 미리 정해진 파일의 부분(즉, 추출될 부분)이 점유하고 있고 이용가능으로 표시되어 있는 가상 저장 블록(즉, 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록)은 VM 파일 시스템에 반송된다.
바람직한 방법의 솔루션에서는, 미리 정해진 파일이 점유하고 있는 가상 저장 공간이 한계값 범위의 하한값보다 작은 상황 및 미리 정해진 파일이 점유하고 있는 가상 저장 공간이 한계값 범위의 상한값보다 큰 상황이 각각 처리된다.
미리 정해진 파일의 크기가 한계값 범위의 하한값과 상한값 사이일 때는, 가상 저장 자유 공간의 크기가 적절하므로, 프로세스는 수행되지 않는다.
본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 방법은 특정한 주기에 따라 주기적으로 수행된다. 단계 110 후에, 즉, VM에 설치된 SBA 모듈이 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 그 획득된 한계값 범위와 비교한 후에, 비교 결과에 따라 서로 다른 동작이 각각 수행된다. 서로 다른 동작이 수행된 후, 미리 정해진 파일의 크기 및 그 획득된 한계값 범위가 변하는지의 여부에 관계없이, 절차는 다른 사이클링 주기를 위해 복귀한다. 요컨대, 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 방법에서, 가상 저장 자유 데이터 블록 정보가 VM 내의 SBA 모듈을 통해 실시간으로 획득되며, VM 저장 공간의 사용 상태(use condition)가 호스트에 능동적으로 알려지며, 해제될 자유 블록의 정보는 VMM 계층(즉, 호스트)에 설치된 SBD 모듈에 전달되며, 호스트는 SBD 모듈을 통해 가상 저장 자유 블록을 해제 및 재할당한다. 호스트는 VM 저장 공간의 사용 상태를 실시간으로 획득할 수 있고, 따라서 실시간 특성은 우수한 것임을 알 수 있다.
또한, 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 방법에서는, 저장 시스템의 기록 및 판독 동작을 다수 회 수행하지 않으므로 시스템 오버헤드가 낮아지고; 파일 시스템의 인터페이스를 사용하여 가상 저장 자유 블록 정보를 획득하므로, 파일 시스템의 실행에 대한 상세한 사항을 알지 않아도 되며, 범용성이 뛰어나다.
또한, 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 방법은 동적 할당 이미지 포맷 및 사전할당 미러 포맷 모두에 적용 가능하다.
본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 방법에서, VM 저장 공간의 사용 상태는 실시간으로 확인되므로(즉, VM 저장 시스템 내의 유효 데이터 블록 및 자유 데이터 블록이 확인되므로), 가상 저장 자유 블록에 대응하는 물리적 저장 공간이 해제될 수 있으며, 이에 따라 저장 공간을 효과적으로 관리할 수 있으므로, 하위 계층 저장 시스템의 활용 비율을 증가시킨다. 또한, 유효 데이터 블록을 확인할 수 있으므로, 온라인 저장 이송, VM 복제, 및 이미지 백업과 같은 입력/출력(I/O)-집중 동작의 효율성이 효과적으로 증대된다. 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 솔루션은 저장 시스템의 자동으로 얇게 제공된 공간(thin-provisioned space)의 관리를 위해 사용될 수 있다는 것을 알 수 있다.
도 3에 도시된 바와 같이, 본 발명의 실시예는 VM 저장 공간을 관리하기 위한 시스템을 제공하며, 상기 시스템은 VM에 설치된 SBA 및 VMM에 설치된 SBD 모듈을 포함한다. 시스템은 물리적 호스트에서 운용한다.
이하, VM 저장 공간을 관리하기 위한 시스템이 운용하는 물리적 호스트의 논리 구조를 먼저 설명한다. 도 4에 도시된 바와 같이, 물리적 호스트는 하드웨어 계층, 호스트, 및 VM을 포함한다.
하드웨어 계층은 가상 환경이 운용되는 전반적인 하드웨어 플랫폼이며, 프로세서(예를 들어, 중앙처리장치(CPU)), 메모리, 저장 시스템(예를 들어, 디스크 또는 하드디스크), 네트워크 인터페이스 카드(NIC), I/O 장치 등을 포함할 수 있다.
호스트, 즉 관리 계층으로서의 VMM 계층은 하드웨어 리소스의 관리 및 할당을 완료하고, 가상 하드웨어 플랫폼을 VM에 제공하며, VM들을 스케줄링하고 격리시킨다. 일부의 VMM의 실행 동안, 특권을 가진 VM의 협력이 필요한데, 이 특권을 가진 VM 및 VMM이 결합되어 호스트를 형성한다. 가상 하드웨어 플랫폼은 가상 CPU(VCPU), 가상 메모리, VDisk, 및 NIC와 같이, 다양한 하드웨어 리소스를 VM에 제공한다. VDisk는 호스트 내의 파일 또는 논리 블록 장치에 대응한다. VDisk의 연속적인 블록들이 호스트 내에 불연속적으로 저장될 수 있으며, 조직 및 관리의 편리를 위해, VM 디스크 이미지가 대체로 이미지 포맷으로 설명되며, 메타데이터 영역(metadata area)을 사용하여 VDisk 데이터 블록과 호스트 내의 데이터 블록 간의 맵핑 관계를 저장한다.
VM은 호스트에 의해 준비된 가상 플랫폼에서 운용된다. 대부분의 시간에서, VM의 실행은 호스트에 의해 영향받지 않는다.
이하, SBA 모듈 및 SBD 모듈에 대해 설명한다. SBA 모듈은 VM에 설치되어 있고, SBD 모듈은 VMM 계층에 설치되어 있다.
SBA 모듈(401)은 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기에 따라, 점유된 가상 저장 블록의 일부를 획득하고, 가상 저장 블록에 대응하는 가상 저장 자유 블록 정보를 SBD 모듈에 전달한다.
SBD 모듈(402)은 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간의 일부 또는 전부를 해제하고, 그 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가로 표시하도록 구성되어 있다.
실행 방식에서, SBA 모듈(401)은 구체적으로,
미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 획득된 한계값 범위와 비교하도록 구성되어 있는 비교 유닛;
미리 정해진 파일이 점유하고 있는 가상 저장 공간이 상기 한계값 범위의 하위값보다 작으면, 파일 시스템을 동작시켜 상기 미리 정해진 파일을 확장시키고 확장된 미리 정해진 파일에 데이터 블록을 할당하도록 구성되어 있는 확장 유닛;
파일 시스템을 동작시켜, 상기 미리 정해진 파일의 확장된 부분이 점유하고 있는 가상 저장 블록을 획득하도록 구성되어 있는 획득 유닛; 및
가상 저장 블록을 나타내는 제1 가상 저장 자유 블록 정보를 SBD 모듈에 전달하도록 구성되어 있는 전달 유닛
을 포함할 수 있다.
실행 방식에서, SBD 모듈(402)은 구체적으로,
제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능한지를 판정하고, 상기 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능하면, 상기 가상 저장 블록을 자유로 표시하도록 구성되어 있는 판정 유닛; 및
자유로 표시된 가상 저장 블록 중 일부 또는 전부에 대응하는 물리적 저장 공간을 해제하고 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 정책에 따라 이용불가로 표시하도록 구성되어 있는 해제 및 표시 유닛
을 포함할 수 있다.
요컨대, 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 시스템에서, 가상 저장 자유 데이터 블록 정보가 VM 내의 SBA 모듈을 통해 실시간으로 획득되며, VM 저장 공간의 사용 상태가 호스트에 능동적으로 알려지며, 해제될 자유 블록의 정보는 VMM 계층(즉, 호스트)에 설치된 SBD 모듈에 전달되며, 호스트는 SBD 모듈을 통해 가상 저장 자유 블록을 해제 및 재할당한다. 호스트는 VM 저장 공간의 사용 상태를 실시간으로 획득할 수 있고, 따라서 실시간 특성은 우수한 것임을 알 수 있다.
또한, 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 시스템에서는, 저장 시스템의 기록 및 판독 동작을 다수 회 수행하지 않으므로 시스템 오버헤드가 낮아지고; 파일 시스템의 인터페이스를 사용하여 가상 저장 자유 블록 정보를 획득하므로, 파일 시스템의 실행에 대한 상세한 사항을 알지 않아도 되며, 범용성이 뛰어나다.
또한, 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 시스템은 동적 할당 이미지 포맷 및 사전할당 미러 포맷 모두에 적용 가능하다.
본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 시스템에서, VM 저장 공간의 사용 상태는 실시간으로 확인되므로(즉, VM 저장 시스템 내의 유효 데이터 블록 및 자유 데이터 블록이 확인되므로), 가상 저장 자유 블록에 대응하는 물리적 저장 공간이 해제될 수 있으며, 이에 따라 저장 공간을 효과적으로 관리할 수 있으므로, 하위 계층 저장 시스템의 활용 비율을 증가시킨다. 또한, 유효 데이터 블록을 확인할 수 있으므로, 온라인 저장 이송, VM 복제, 및 이미지 백업과 같은 입력/출력(I/O)-집중 동작의 효율성이 효과적으로 증대된다. 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 솔루션은 저장 시스템의 자동으로 얇게 제공된 공간의 관리를 위해 사용될 수 있다는 것을 알 수 있다.
도 4에 도시된 바와 같이, 본 발명의 실시예는 물리적 호스트를 추가로 제공하며, 상기 물리적 호스트는 하드웨어 계층, 하드웨어 계층에서 운용되는 VMM 계층, 및 VMM 계층에서 운용되는 적어도 하나의 VM을 포함하며, VM에는 SBA 모듈이 설치되고, VMM 계층에는 SBD 모듈이 설치된다.
SBA 모듈은 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기에 따라, 획득된 가상 저장 블록의 일부를 획득하고, 가상 저장 블록의 일부에 대응하는 가상 저장 자유 블록 정보를 SBD 모듈에 전달하도록 구성되어 있다.
SBD 모듈은 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하고, 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가로 표시하도록 구성되어 있다.
실행 방식에서, SBA 모듈은 구체적으로: 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 획득된 한계값 범위와 비교하고; 미리 정해진 파일이 점유하고 있는 가상 저장 공간이 상기 한계값 범위의 하한값보다 작으면, 파일 시스템을 작동시켜 상기 미리 정해진 파일을 확장시키고 상기 확장된 미리 정해진 파일에 가상 저장 블록을 할당하며; 파일 시스템을 작동시켜 상기 미리 정해진 파일의 확장된 부분이 점유하고 있는 가상 저장 블록을 획득하며; 가상 저장 블록을 나타내는 제1 가상 저장 자유 블록 정보를 SBD 모듈에 전달하도록 구성되어 있다.
SBD 모듈은 구체적으로: 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능한지를 판정하고, 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능하면, 가상 저장 블록을 자유로 표시하며; 정책에 따라, 자유로 표시된 가상 저장 블록 중 일부 또는 전부에 대응하는 물리적 저장 공간을 해제하고 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가로 표시하도록 구성되어 있다.
실행 방식에서, SBA 모듈은 또한, 미리 정해진 파일이 차지하고 있는 가상 저장 공간이 한계값 범위의 상한값보다 크면, 파일 시스템을 작동시켜 수축될 미리 정해진 파일의 일부가 점유하고 있는 가상 저장 블록을 획득하며; 가상 저장 블록을 나타내는 제2 가상 저장 자유 블록 정보를 SBD 모듈에 전달하며; 파일 시스템을 작동시켜 미리 정해진 파일을 수축시키도록 구성되어 있다.
SBD 모듈은 또한, 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유인지를 판정하고, 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유이면, 가상 저장 블록을 이용가능으로 표시하도록 구성되어 있다.
요컨대, 본 발명의 실시예에 따른 물리적 호스트에서, 가상 저장 자유 데이터 블록 정보가 VM 내의 SBA 모듈을 통해 실시간으로 획득되며, VM 저장 공간의 사용 상태가 호스트에 능동적으로 알려지며, 해제될 자유 블록의 정보는 VMM 계층(즉, 호스트)에 설치된 SBD 모듈에 전달되며, 호스트는 SBD 모듈을 통해 가상 저장 자유 블록을 해제 및 재할당한다. 호스트는 VM 저장 공간의 사용 상태를 실시간으로 획득할 수 있고, 따라서 실시간 특성은 우수한 것임을 알 수 있다.
또한, 본 발명의 실시예에 따른 물리적 호스트에서는, 저장 시스템의 기록 및 판독 동작을 다수 회 수행하지 않으므로 시스템 오버헤드가 낮아지고; 파일 시스템의 인터페이스를 사용하여 가상 저장 자유 블록 정보를 획득하므로, 파일 시스템의 실행에 대한 상세한 사항을 알지 않아도 되며, 범용성이 뛰어나다.
또한, 본 발명의 실시예에 따른 물리적 호스트는 동적 할당 이미지 포맷 및 사전할당 미러 포맷 모두에 적용 가능하다.
본 발명의 실시예에 따른 물리적 호스트에서, VM 저장 공간의 사용 상태는 실시간으로 확인되므로(즉, VM 저장 시스템 내의 유효 데이터 블록 및 자유 데이터 블록이 확인되므로), 가상 저장 자유 블록에 대응하는 물리적 저장 공간이 해제될 수 있으며, 이에 따라 저장 공간을 효과적으로 관리할 수 있으므로, 하위 계층 저장 시스템의 활용 비율을 증가시킨다. 또한, 유효 데이터 블록을 확인할 수 있으므로, 온라인 저장 이송, VM 복제, 및 이미지 백업과 같은 입력/출력(I/O)-집중 동작의 효율성이 효과적으로 증대된다. 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 솔루션은 저장 시스템의 자동으로 얇게 제공된 공간의 관리를 위해 사용될 수 있다는 것을 알 수 있다.
쉽게 이해할 수 있도록 하기 위해, 전술한 실시예에 설명된 VM 저장 공간을 관리하기 위한 방법을 특정한 어플리케이션 시나리오에서 상세히 설명한다. 편의상, SBA 모듈에 의해 실행되는 단계에 대해서는 SBD 모듈에 의해 수행되는 단계와는 별도로 설명한다. 본 실시예에서는, 하위 계층 저장 시스템을 디스크로 하고 설명을 위한 예로 든다. 따라서, 물리적 저장 공간은 물리적 디스크 공간이고, 가상 저장 공간은 VDisk 공간이다.
도 5a에 도시된 바와 같이, SBA 모듈에 의해 수행되는 단계에 대해 먼저 후술한다.
201: 미리 정해진 파일(F, 윈도우의 드라이브 C에 있어서, 미리 정해진 파일은 C:/balloon.sys일 수 있다)이 존재하지 않으면, 미리 정해진 파일을 생성한다.
202: 미리 정해진 파일 F의 파일 크기 S를 획득한다.
203: 파일 시스템의 인터페이스를 통해, 자유 공간의 크기 X를 포함하는 VDisk 자유 공간 정보를 획득한다.
204: 하한 비율(L1%) 및 상한 비율(L2%)의 구성을 획득하며, 도 4에 도시된 바와 같이, F는 SBD 모듈로부터 VDisk 자유 공간을 점유하도록 허용된다.
205: 미리 정해진 파일의 크기 S를 사전설정된 한계값 범위를 비교하여, S<X*L1%이면, 미리 정해진 파일 F가 점유하고 있는 자유 공간은 너무 작은 것으로 표시하고, 미리 정해진 파일을 확장한다.
2011: 파일 시스템의 사전할당된 (fallocate) 인터페이스를 작동시켜 X*(L1%+L2%)/2를 미리 정해진 파일 F의 크기로 받아들이며, 파일 시스템은 데이터 블록 [b1, b2, ..., bn]을 파일에 할당한다.
2022: 파일 시스템의 록 인터페이스를 작동시켜 미리 정해진 파일 F에 대응하는 VDisk 데이터 블록이 디스크 조각 모으기 툴에 의해 변형되지 않게 한다.
2023: 미리 정해진 파일의 확장된 부분, 즉 [S, X*(L1%+L2%)/2]에 있어서, VM은 파일 시스템의 "file offset -> data block" 맵핑(bmap) 인터페이스를 작동시켜 대응하는 VDisk 블록 그룹을 획득한다.
2024: VDisk 블록 그룹에 대응하는 제1 VDisk 자유 블록 정보를 메모리를 공유함으로써 SBD 모듈에 전달하고, VDisk 블록 그룹은 교정(reclamation) 및 해제를 위한 후보로서 사용되며, 도 4에 도시된 바와 같이, 제1 VDisk 자유 블록 정보는 예를 들어, [2, 3, 14, 15, 16, 17, 18, 19, 20, ..., 24]이며, 동시에, 확장 메시지를 SBD 모듈에 전달하여 대응하는 동작을 수행하도록 SBD에 명령한다.
206: S>X*L2%이면, 미리 정해진 파일 F가 점유하고 있는 자유 공간이 너무 크다는 것을 나타내므로, 미리 정해진 파일을 수축시킨다.
2061: 시스템은 수축된 F의 크기로서 X*(L1%+L2%)/2를 취하고, 간격 [X*(L1%+L2%)/2, S]에 있어서, 파일 시스템의 "file offset -> data block" 맵핑(bmap) 인터페이스를 작동시켜 대응하는 VDisk 블록 그룹을 획득한다.
2062: VDisk 블록 그룹에 대응하는 제2 VDisk 자유 블록 정보를 메모리를 공유함으로써 SBD 모듈에 전달하고, 동시에, 수축 메시지를 SBD 모듈에 전달하여 대응하는 동작을 수행하도록 SBD 모듈에 명령하고 VDisk 블록 그룹이 SBD에 의해 자유 상태로 표시되지 않도록 한다.
2063: 파일 시스템의 추출 인터페이스를 작동시켜 수축된 F의 크기로서 X*(L1%+L2%)/2를 받아들이고 VDisk 블록 그룹을 VM 파일 시스템에 반송한다.
X*L1%<=S<=L2%이면, 미리 정해진 파일 F가 점유하고 있는 자유 공간이 적절하다는 것을 나타내므로, 미리 정해진 파일을 확장 또는 수축시킬 필요가 없다.
208: 적절한 시간 동안 대기하고, 단계 202로 복귀한다.
미리 정해진 파일 F의 크기가 파일 시스템에 의해 제한될 때는, 복수의 미리 정해진 파일 F가 생성되어야 한다.
도 5b에 도시된 바와 같이, SBD 모듈에 의해 수행되는 단계에 대해 후술한다.
301: 사용자 인터페이스를 제공하여 하한 비율 및 상한 비율을 구성하고 SBA 모듈은 미리 정해진 파일이 VDisk 자유 공간을 점유할 수 있도록 한다. 상한 비율 및 하한 비율은 고정으로 설정될 수 있다. 예를 들어, 온라인 저장 이송 동안, VDisk 자유 공간의 복사를 더 감소시키는 목적을 달성하기 위해 비율을 적절하게 증가시킨다. 일반적으로, 하한 비율은 약 60%로 설정될 수 있고, 상한 비율은 80% 내지 90%로 설정될 수 있다.
302: SBA 모듈에 의해 송신되어 수신된 확장 메시지를 처리한다. 이 단계에서, SBD 모듈은 메모리를 공유함으로써, 해제될 VDisk 블록에 대응하는 VDisk 자유 블록 정보를 획득하고, 대응하는 VDisk 블록을 표시한다. 이 단계는 구체적으로 이하의 단계를 포함한다.
3031: 제1 VDisk 자유 블록 정보에 대응하는 VDisk 블록이 이용가능한지를 판정하고, 제1 VDisk 자유 블록 정보에 대응하는 VDisk 블록이 이용가능하면, VDisk 블록을 자유로 표시하며; 제1 VDisk 자유 블록 정보에 대응하는 VDisk 블록이 이용가능하지 않으면, 프로세스를 수행하지 않는다.
3032: 판정 및 표시가 완료된 후, SBA 모듈에 답신한다.
3033: 자유 블록 중 일부 또는 전부에 대응하는 디스크 공간을 해제하고 대응하는 블록을 정책에 따라 이용불가로 표시한다.
단순한 정책은: 자유로 표시된 모든 블록을 해제하고 그 블록을 이용불가로 표시하는 것이다.
바람직한 정책은 다음과 같다. VM에 디스크 공간을 할당 및 해제하는 동작의 빈도가 특정한 임계값보다 크거나 같으면, 자유 데이터 블록은 단시간 내에 다시 사용되기 때문에, 빈번한 해제 및 재할당에 의해 야기된 오버헤드를 감소시키기 위해, SBD 모듈은 그 해제된 자유 데이터 블록의 비율을 감소시키며, VM에 디스크 공간을 할당 및 해제하는 동작의 빈도가 낮을 때, SBD 모듈은 해제된 자유 데이터 블록의 비율을 증가시킨다.
데이터 블록이 파일의 형태로 되어 있을 때, 자유 블록을 해제하는 기능은 호스트 파일 시스템의 내부 인터페이스(free_blocks(start_block, count))의 익스포팅(exporting)에 따라 다르며, 데이터 블록이 블록 인터페이스의 형태로 되어 있을 때는, 자유 블록을 해제하도록 하위 블록 저장 시스템에 명령한다는 것에 유의해야 한다.
303: SBA 모듈에 의해 송신되어 수신된 수축 메시지를 처리한다. 이 단계에서, SBD 모듈은 메모리를 공유함으로써, 회수될 VDisk 블록에 대응하는 제2 VDisk 자유 블록 정보를 획득하고 대응하는 VDisk 블록을 표시한다. 이 단계는 구체적으로 이하의 단계를 포함한다.
3031: VDisk 포맷에서의 대응하는 VDisk 블록이 자유인지를 판정하고, VDisk 포맷에서의 대응하는 VDisk 블록이 자유이면, 대응하는 VDisk 블록을 이용가능으로 표시한다.
3032: VDisk 포맷에서의 대응하는 VDisk 블록이 이용불가인지를 판정하고, VDisk 포맷에서의 대응하는 VDisk 블록이 이용불가이면, 프로세스를 수행하지 않는다. 실제의 데이터 블록 할당은 기록 동작 동안 수행된다는 것을 이해해야 한다.
3033: SBA 모듈에 답신한다.
요컨대, 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 솔루션에서, 가상 저장 자유 데이터 블록 정보가 VM 내의 SBA 모듈을 통해 실시간으로 획득되며, VM 저장 공간의 사용 상태가 호스트에 능동적으로 알려지며, 해제될 자유 블록의 정보는 VMM 계층(즉, 호스트)에 설치된 SBD 모듈에 전달되며, 호스트는 SBD 모듈을 통해 가상 저장 자유 블록을 해제 및 재할당한다. 호스트는 VM 저장 공간의 사용 상태를 실시간으로 획득할 수 있고, 따라서 실시간 특성은 우수한 것임을 알 수 있다.
또한, 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 솔루션에서는, 저장 시스템의 기록 및 판독 동작을 다수 회 수행하지 않으므로 시스템 오버헤드가 낮아지고; 파일 시스템의 인터페이스를 사용하여 가상 저장 자유 블록 정보를 획득하므로, 파일 시스템의 실행에 대한 상세한 사항을 알지 않아도 되며, 범용성이 뛰어나다.
또한, 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 솔루션은 동적 할당 이미지 포맷 및 사전할당 미러 포맷 모두에 적용 가능하다.
본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 솔루션에서, VM 저장 공간의 사용 상태는 실시간으로 확인되므로(즉, VM 저장 시스템 내의 유효 데이터 블록 및 자유 데이터 블록이 확인되므로), 가상 저장 자유 블록에 대응하는 물리적 저장 공간이 해제될 수 있으며, 이에 따라 저장 공간을 효과적으로 관리할 수 있으므로, 하위 계층 저장 시스템의 활용 비율을 증가시킨다. 또한, 유효 데이터 블록을 확인할 수 있으므로, 온라인 저장 이송, VM 복제, 및 이미지 백업과 같은 입력/출력(I/O)-집중 동작의 효율성이 효과적으로 증대된다. 본 발명의 실시예에 따라 VM 저장 공간을 관리하기 위한 솔루션은 저장 시스템의 자동으로 얇게 제공된 공간의 관리를 위해 사용될 수 있다는 것을 알 수 있다.
당업자는 본 발명의 실시예에 따른 방법의 단계 중 일부 또는 전부는 관련 하드웨어 명령을 내리는 프로그램에 의해 실현될 수 있다는 것을 이해해야 한다. 프로그램은 컴퓨터가 판독 가능한 저장 매체에 저장될 수 있다. 저장 매체로는, 리드-온리 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기디스크, 또는 광디스크를 들 수 있다.
본 발명의 실시예에 따라 VM 저장 공간 및 컴퓨터 단말기를 관리하기 위한 방법 및 시스템에 대해 상세히 설명하였다. 본 발명의 원리 및 실현은 여기서 특정한 예를 통해 설명하였다. 본 발명의 실시예에 관한 상세한 설명은 단지 본 발명의 방법 및 핵심 개념을 이해를 돕기 위해 제공된 것에 지나지 않는다. 당업자는 본 발명의 개념에 따라 특정한 실현 및 어플리케이션 범주와 관련해서 본 발명에 대한 변형 및 수정을 수행할 수 있다. 그러므로 명세서는 본 발명을 제한하려는 것으로 파악되어서는 안 된다.

Claims (15)

  1. 물리적 호스트에 적용 가능한 가상 머신(Virtual Machine: VM) 저장 공간을 관리하기 위한 방법에 있어서,
    상기 물리적 호스트는 하드웨어 계층, 상기 하드웨어 계층에서 운용되는 가상 머신 모니터(Virtual Machine Monitor: VMM) 계층, 및 상기 VMM 계층에서 운용되는 VM을 포함하며, 상기 VM에 저장 벌룬 에이전트(Storage Balloon Agent: SBA) 모듈이 설치되고, 상기 VMM 계층에 저장 벌룬 대몬(Storage Balloon Daemon: SBD) 모듈이 설치되며,
    상기 SBA 모듈이, 특정 가상 저장 자유 공간을 점유하기 위해 이용되는 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기와 상기 미리 정해진 파일이 점유하도록 허용된 가상 저장 자유 공간을 나타내는 한계값 범위(limit value range)를 비교함으로써 취득된 결과에 따라, 상기 미리 정해진 파일의 확장된 일부가 점유하는 가상 저장 블록 또는 상기 미리 정해진 파일의 수축된 일부가 점유하는 가상 저장 블록을 획득(100)하고, 상기 가상 저장 블록을 나타내는 가상 저장 자유 블록 정보를 상기 SBD 모듈에 전달하는 단계; 및
    상기 SBD 모듈이, 상기 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하여, 상기 해제된 물리적 저장 공간이 재할당될 수 있도록 하고, VM 저장 포맷으로 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가(unavailable)로 표시하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 SBA 모듈이, 특정 가상 저장 자유 공간을 점유하기 위해 이용되는 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기와 상기 미리 정해진 파일이 점유하도록 허용된 가상 저장 자유 공간을 나타내는 한계값 범위(limit value range)를 비교함으로써 취득된 결과에 따라, 상기 미리 정해진 파일의 확장된 일부가 점유하는 가상 저장 블록 또는 상기 미리 정해진 파일의 수축된 일부가 점유하는 가상 저장 블록을 획득하고, 상기 가상 저장 블록을 나타내는 가상 저장 자유 블록 정보를 상기 SBD 모듈에 전달하는 단계는,
    상기 SBA 모듈이, 상기 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를, 하한값과 상한값을 포함하는 상기 한계값 범위와 비교하는 단계(110);
    상기 미리 정해진 파일이 점유하고 있는 가상 저장 공간이 상기 한계값 범위의 상기 하한값보다 작으면, 파일 시스템을 작동시켜 상기 미리 정해진 파일을 확장시키는 단계 및 가상 저장 자유 공간으로부터, 상기 확장된 미리 정해진 파일에 가상 저장 블록을 할당하는 단계(120);
    상기 파일 시스템을 작동시켜 상기 미리 정해진 파일의 상기 확장된 부분이 점유하고 있는 가상 저장 블록을 획득하는 단계(130); 및
    상기 가상 저장 블록을 나타내는 제1 가상 저장 자유 블록 정보를 상기 SBD 모듈에 전달하는 단계(140)
    를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 SBD 모듈이, 상기 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하여, 상기 해제된 물리적 저장 공간이 재할당될 수 있도록 하고, VM 저장 포맷으로 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가로 표시하는 단계는,
    상기 SBD 모듈이, 상기 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능한지를 판정하고, 상기 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능하면, 상기 가상 저장 블록을 자유(free)로 표시하는 단계(210); 및
    상기 자유로 표시된 가상 저장 블록 중 일부 또는 전부에 대응하는 물리적 저장 공간을 정책에 따라 해제하는 단계 및 정책에 따라, 상기 VM 저장 포맷으로 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 공간을 이용불가(unabailable)로 표시하는 단계(220)
    를 포함하는, 방법.
  4. 제2항에 있어서,
    상기 SBA 모듈이, 상기 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 상기 한계값 범위와 비교하는 단계 후에,
    상기 미리 정해진 파일이 점유하고 있는 가상 저장 공간이 상기 한계값 범위의 상기 상한값보다 크면, 상기 파일 시스템을 작동시켜, 상기 미리 정해진 파일의 상기 수축된 일부가 점유하고 있는 가상 저장 블록을 획득하는 단계(150);
    상기 가상 저장 블록을 나타내는 제2 가상 저장 자유 블록 정보를 상기 SBD 모듈에 전달하는 단계(160)
    를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 가상 저장 블록을 나타내는 제2 가상 저장 자유 블록 정보를 상기 SBD 모듈에 전달하는 단계 후에,
    상기 SBD 모듈이, 상기 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유인지를 판정하고, 상기 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유이면, 상기 가상 저장 블록을 이용가능으로 표시하는 단계; 및
    상기 SBA 모듈이, 상기 파일 시스템을 작동시켜 상기 미리 정해진 파일을 수축시키는 단계
    를 더 포함하는 방법.
  6. 제2항에 있어서,
    상기 SBA 모듈이, 상기 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 상기 한계값 범위와 비교하는 단계는,
    상기 SBA 모듈이, 상기 파일 시스템을 작동시켜 가상 저장 자유 공간의 크기 및 상기 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 획득하고, 상기 SBD 모듈로부터 상기 SBD 모듈 내에 미리 설정된 하한 비율 및 상한 비율을 획득하는 단계로서, 상기 미리 정해진 파일은 상기 하한 비율과 상기 상한 비율 간의 가상 저장 자유 공간을 점유하도록 허용되어 있는, 상기 획득하는 단계;
    상기 하한 비율과 상기 가상 저장 자유 공간의 크기와의 적(product)을 상기 한계값의 상기 하한값으로 취하고, 상기 상한 비율과 상기 가상 저장 자유 공간의 크기와의 적을 상기 한계값 범위의 상한값으로 취하는 단계; 및
    상기 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 한계값 범위의 하한값 및 상한값과 각각 비교하여, 상기 미리 정해진 파일이 점유하는 상기 가상 저장 공간의 상기 크기가 상기 하한값보다 작은지의 여부 또는 상기 상한값보다 큰지의 여부를 판정하도록 하는 단계
    를 포함하는, 방법.
  7. 제2항 또는 제3항에 있어서,
    상기 파일 시스템을 작동시켜 상기 미리 정해진 파일을 확장시키는 단계는,
    상기 SBA 모듈이, 파일 시스템의 사전할당된 (fallocate) 인터페이스를 작동시키고, 상기 한계값 범위의 중간값을, 확장된 상기 미리 정해진 파일의 크기로서 받아들이는 단계
    를 포함하며,
    상기 중간값은 상기 한계값 범위의 상한값과 하한값의 합의 절반에 해당하는, 방법.
  8. 제5항에 있어서,
    상기 파일 시스템을 작동시켜 상기 미리 정해진 파일을 수축시키는 단계는,
    상기 SBA 모듈이, 상기 파일 시스템의 추출 인터페이스(truncate interface)를 작동시켜 상기 한계값 범위의 중간값을, 수축될 미리 정해진 파일의 크기로서 받아들이는 단계; 및
    이용가능으로 표시되어 있고 상기 미리 정해진 파일의 추출될 부분에 대응하는 가상 저장 블록을 파일 시스템에 반송하는 단계
    를 포함하며,
    상기 중간값은 상기 한계값 범위의 상한값과 하한값의 합의 절반에 해당하는, 방법.
  9. 제2항 또는 제3항에 있어서,
    상기 확장된 미리 정해진 파일에 가상 저장 블록을 할당하는 단계는,
    상기 SBA 모듈이, 상기 파일 시스템의 록 인터페이스(lock interface)를 작동시켜, 상기 확장된 미리 정해진 파일에 할당된 가상 저장 블록을 록킹하는 단계
    를 포함하는, 방법.
  10. 제3항에 있어서,
    상기 자유로 표시된 가상 저장 블록 중 일부 또는 전부에 대응하는 물리적 저장 공간을 정책에 따라 해제하는 단계는,
    상기 VM에 저장 공간을 할당 또는 해제하는 동작의 빈도(frequency)가 사전설정된 임계값보다 큰지를 판정하고, 상기 VM에 저장 공간을 할당 또는 해제하는 동작의 빈도가 사전설정된 임계값보다 크지 않으면, 자유로 표시된 가상 저장 블록에 대응하는 물리적 저장 공간을, 사전설정된 비율(preset proportion)로 해제시키며; 상기 VM에 저장 공간을 할당 또는 해제하는 동작의 빈도가 사전설정된 임계값보다 크면, 상기 사전설정된 비율을 사전설정된 레이트(preset rate)로 감소시키고, 자유로 표시된 가상 저장 블록에 대응하는 물리적 저장 공간을, 상기 감소된 비율로 해제시키는 단계
    를 포함하는, 방법.
  11. 제1항에 있어서,
    상기 가상 저장 블록에 대응하는 가상 저장 자유 블록 정보를 상기 SBD 모듈에 전달하는 단계는,
    상기 SBA 모듈이, 상기 가상 저장 블록에 대응하는 가상 저장 자유 블록 정보를 메모리를 공유함으로써 상기 SBD 모듈에 전달하는 단계
    를 포함하는, 방법.
  12. 가상 머신(Virtual Machine: VM)에 설치된 저장 벌룬 에이전트(Storage Ballon Agent: SBA) 모듈 및 가상 머신 모니터(Virtual Machine Monitor: VMM) 계층에 설치된 저장 벌룬 대몬(Storage Balloon Daemon: SBD) 모듈을 포함하는, 가상 머신(Virtual Machine: VM) 저장 공간을 관리하기 위한 시스템에 있어서,
    상기 SBA 모듈은, 특정 가상 저장 자유 공간을 점유하기 위해 이용되는 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기와 상기 미리 정해진 파일이 점유하도록 허용된 가상 저장 자유 공간을 나타내는 한계값 범위(limit value range)를 비교함으로써 취득된 결과에 따라, 상기 미리 정해진 파일의 확장된 일부가 점유하는 가상 저장 블록 또는 상기 미리 정해진 파일의 수축된 일부가 점유하는 가상 저장 블록을 획득하고, 상기 가상 저장 블록을 나타내는 가상 저장 자유 블록 정보를 상기 SBD 모듈(402)에 전달하도록 구성되어 있으며,
    상기 SBD 모듈은, 상기 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하여, 상기 해제된 물리적 저장 공간이 재할당될 수 있도록 하고, VM 저장 포맷으로 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가(unavailable)로 표시하도록 구성되어 있는, 시스템.
  13. 하드웨어 계층, 상기 하드웨어 계층에서 운용되는 가상 머신 모니터(Virtual Machine Monitor: VMM) 계층, 및 상기 VMM 계층에서 운용되는 적어도 하나의 가상 머신(Virtual Machine: VM)을 포함하며, 상기 VM에 저장 벌룬 에이전트(Storage Ballon Agent: SBA) 모듈(401)이 설치되고, 상기 VMM 계층에 저장 벌룬 대몬(Storage Balloon Daemon: SBD) 모듈(402)이 설치되는, 물리적 호스트에 있어서,
    상기 SBA 모듈(401)은, 특정 가상 저장 자유 공간을 점유하기 위해 이용되는 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기와 상기 미리 정해진 파일이 점유하도록 허용된 가상 저장 자유 공간을 나타내는 한계값 범위(limit value range)를 비교함으로써 취득된 결과에 따라, 상기 미리 정해진 파일의 확장된 일부가 점유하는 가상 저장 블록 또는 상기 미리 정해진 파일의 수축된 일부가 점유하는 가상 저장 블록을 획득하고, 상기 가상 저장 블록을 나타내는 가상 저장 자유 블록 정보를 상기 SBD 모듈(402)에 전달하도록 구성되어 있으며,
    상기 SBD 모듈(402)은, 상기 가상 저장 자유 블록 정보에 대응하는 물리적 저장 공간 중 일부 또는 전부를 해제하여, 상기 해제된 물리적 저장 공간이 재할당될 수 있도록 하고, VM 저장 포맷으로 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가(unavailable)로 표시하도록 구성되어 있는, 물리적 호스트.
  14. 제13항에 있어서,
    상기 SBA 모듈(401)은 구체적으로: 상기 미리 정해진 파일이 점유하고 있는 가상 저장 공간의 크기를 상기 한계값 범위와 비교하고; 미리 정해진 파일이 점유하고 있는 가상 저장 공간이 상기 한계값 범위의 하한값보다 작으면, 파일 시스템을 작동시켜 상기 미리 정해진 파일을 확장시키고 상기 확장된 미리 정해진 파일에 가상 저장 블록을 할당하며; 파일 시스템을 작동시켜 상기 미리 정해진 파일의 확장된 부분이 점유하고 있는 가상 저장 블록을 획득하며; 상기 가상 저장 블록을 나타내는 제1 가상 저장 자유 블록 정보를 상기 SBD 모듈(402)에 전달하도록 구성되어 있으며,
    상기 SBD 모듈(402)은 구체적으로: 상기 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능한지를 판정하고, 상기 제1 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 이용가능하면, 상기 가상 저장 블록을 자유로 표시하며; 정책에 따라, 자유로 표시된 가상 저장 블록 중 일부 또는 전부에 대응하는 물리적 저장 공간을 해제하고 상기 해제된 물리적 저장 공간에 대응하는 가상 저장 블록을 이용불가로 표시하도록 구성되어 있는, 물리적 호스트.
  15. 제14항에 있어서,
    상기 SBA 모듈(401)은 또한, 상기 미리 정해진 파일이 차지하고 있는 가상 저장 공간이 상기 한계값 범위의 상한값보다 크면, 상기 파일 시스템을 작동시켜 상기 미리 정해진 파일의 수축된 일부가 점유하고 있는 가상 저장 블록을 획득하며; 상기 가상 저장 블록을 나타내는 제2 가상 저장 자유 블록 정보를 상기 SBD 모듈(402)에 전달하며; 상기 파일 시스템을 작동시켜 상기 미리 정해진 파일을 수축시키도록 구성되어 있으며,
    상기 SBD 모듈(402)은 또한, 상기 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유인지를 판정하고, 상기 제2 가상 저장 자유 블록 정보에 대응하는 가상 저장 블록이 자유이면, 상기 가상 저장 블록을 이용가능으로 표시하도록 구성되어 있는, 물리적 호스트.
KR1020127012967A 2010-11-03 2011-05-13 가상 머신 저장 공간 관리를 위한 방법 및 시스템, 및 물리적 호스트 KR101403416B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201010530638.8 2010-11-03
CN 201010530638 CN101986285B (zh) 2010-11-03 2010-11-03 虚拟机存储空间管理方法、系统及物理主机
PCT/CN2011/074025 WO2012058917A1 (zh) 2010-11-03 2011-05-13 虚拟机存储空间管理方法、系统及物理主机

Publications (2)

Publication Number Publication Date
KR20120086322A KR20120086322A (ko) 2012-08-02
KR101403416B1 true KR101403416B1 (ko) 2014-06-03

Family

ID=43710634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127012967A KR101403416B1 (ko) 2010-11-03 2011-05-13 가상 머신 저장 공간 관리를 위한 방법 및 시스템, 및 물리적 호스트

Country Status (5)

Country Link
EP (1) EP2479677A4 (ko)
JP (1) JP5510556B2 (ko)
KR (1) KR101403416B1 (ko)
CN (1) CN101986285B (ko)
WO (1) WO2012058917A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8850156B2 (en) 2010-11-03 2014-09-30 Huawei Technologies Co., Ltd. Method and system for managing virtual machine storage space and physical host
CN101986285B (zh) * 2010-11-03 2012-09-19 华为技术有限公司 虚拟机存储空间管理方法、系统及物理主机
CN102012834B (zh) * 2010-12-20 2013-02-27 复旦大学 基于用户空闲进程的提高虚拟机性能与可伸缩性的方法
US8873398B2 (en) * 2011-05-23 2014-10-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing EPC in a cloud computer with openflow data plane
CN102222014B (zh) * 2011-06-16 2013-05-22 华中科技大学 基于内存热插拔的虚拟机动态内存管理方法
CN102404253B (zh) * 2011-06-28 2014-08-06 西安交通大学 支持linux 的硬件抽象层的虚拟网卡设计方法
CN103226518B (zh) * 2012-01-31 2016-06-22 国际商业机器公司 一种在存储管理系统中进行卷扩展的方法和装置
CN102779074B (zh) * 2012-06-18 2015-04-08 中国人民解放军国防科学技术大学 基于内存空洞机制的虚拟机内存资源分配方法
US9069669B2 (en) 2012-10-11 2015-06-30 Industrial Technology Research Institute Method and computer system for memory management on virtual machine
CN102968380B (zh) * 2012-11-02 2016-12-07 深圳市同洲电子股份有限公司 内存文件系统中内存分区的管理方法和装置
US9053002B2 (en) * 2013-11-12 2015-06-09 International Business Machines Corporation Thick and thin data volume management
CN103713941B (zh) * 2013-12-20 2018-05-04 汉柏科技有限公司 基于qcow2格式的虚拟机镜像克隆方法及系统
CN103744622B (zh) * 2014-01-10 2017-10-13 浪潮电子信息产业股份有限公司 一种实现存储系统自动精简配置异步全额分配的方法
CN104156173A (zh) * 2014-07-29 2014-11-19 浪潮(北京)电子信息产业有限公司 一种实现磁盘碎片整理的方法及装置
US20160299712A1 (en) * 2015-04-07 2016-10-13 Microsoft Technology Licensing, Llc Virtual Machines Backed by Host Virtual Memory
CN105138284B (zh) * 2015-08-11 2018-10-23 上海交通大学 虚拟机磁盘镜像同步操作优化的系统及方法
CN105550111A (zh) * 2015-12-16 2016-05-04 浪潮(北京)电子信息产业有限公司 虚拟环境下操作系统io性能基准的测试调优方法及系统
CN107783722B (zh) * 2016-08-25 2020-08-21 星辰天合(北京)数据科技有限公司 数据传输方法和数据转发装置
CN106502762A (zh) * 2016-10-20 2017-03-15 浪潮电子信息产业股份有限公司 一种基于虚拟化技术的内存自动优化方法
CN109697016B (zh) * 2017-10-20 2022-02-15 伊姆西Ip控股有限责任公司 用于改进容器的存储性能的方法和装置
CN107800806B (zh) * 2017-11-15 2019-08-06 中国联合网络通信集团有限公司 云环境下存储资源回收方法、共享存储系统和云服务系统
CN110389905B (zh) * 2018-04-20 2023-12-19 伊姆西Ip控股有限责任公司 资源释放方法、资源分配方法、设备和计算机程序产品
CN109324893B (zh) * 2018-08-07 2021-08-31 华为技术有限公司 分配内存的方法和装置
CN109857343B (zh) * 2019-01-30 2023-02-07 新华三云计算技术有限公司 磁盘空间释放方法及装置
CN112148228A (zh) * 2020-09-29 2020-12-29 上海摩勤智能技术有限公司 存储空间的释放方法、终端及存储介质
CN112286630A (zh) * 2020-10-22 2021-01-29 烽火通信科技股份有限公司 一种虚拟机内存热迁移的优化方法与装置
CN116074003B (zh) * 2023-03-06 2023-06-20 中安云科科技发展(山东)有限公司 一种密码机动态多线程负载均衡方法、系统及密码机

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293543A (ja) * 2005-04-07 2006-10-26 Nec Corp ストレージシステム及び物理記憶領域の動的回収方法
JP2008234268A (ja) * 2007-03-20 2008-10-02 Nec Corp 情報処理装置及び情報処理方法並びにプログラム
US7433951B1 (en) * 2000-09-22 2008-10-07 Vmware, Inc. System and method for controlling resource revocation in a multi-guest computer system
US20080270674A1 (en) 2007-04-26 2008-10-30 Vmware, Inc. Adjusting Available Persistent Storage During Execution in a Virtual Computer System

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155713A (ja) * 1998-11-24 2000-06-06 Sony Corp キャッシュサイズ制御装置
JP2005011208A (ja) * 2003-06-20 2005-01-13 Hitachi Ltd ボリュームサイズ変更装置および変更方法
US8156492B2 (en) * 2007-09-07 2012-04-10 Oracle International Corporation System and method to improve memory usage in virtual machines running as hypervisor guests
JP5146174B2 (ja) * 2008-07-28 2013-02-20 富士通株式会社 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法
CN101477495B (zh) * 2008-10-28 2011-03-16 北京航空航天大学 分布式内存虚拟化技术的实现方法
CN101751335B (zh) * 2008-11-28 2012-01-18 国际商业机器公司 调度虚拟机的垃圾收集的方法、装置和集群系统
CN101587524B (zh) * 2009-06-23 2015-02-11 宏碁电脑(上海)有限公司 一种基于虚拟系统的数据存储设备加密方法
CN101986285B (zh) * 2010-11-03 2012-09-19 华为技术有限公司 虚拟机存储空间管理方法、系统及物理主机

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7433951B1 (en) * 2000-09-22 2008-10-07 Vmware, Inc. System and method for controlling resource revocation in a multi-guest computer system
JP2006293543A (ja) * 2005-04-07 2006-10-26 Nec Corp ストレージシステム及び物理記憶領域の動的回収方法
JP2008234268A (ja) * 2007-03-20 2008-10-02 Nec Corp 情報処理装置及び情報処理方法並びにプログラム
US20080270674A1 (en) 2007-04-26 2008-10-30 Vmware, Inc. Adjusting Available Persistent Storage During Execution in a Virtual Computer System

Also Published As

Publication number Publication date
JP5510556B2 (ja) 2014-06-04
CN101986285B (zh) 2012-09-19
EP2479677A4 (en) 2012-08-08
EP2479677A1 (en) 2012-07-25
CN101986285A (zh) 2011-03-16
JP2013513174A (ja) 2013-04-18
WO2012058917A1 (zh) 2012-05-10
KR20120086322A (ko) 2012-08-02

Similar Documents

Publication Publication Date Title
KR101403416B1 (ko) 가상 머신 저장 공간 관리를 위한 방법 및 시스템, 및 물리적 호스트
US8850156B2 (en) Method and system for managing virtual machine storage space and physical host
WO2018099299A1 (zh) 一种图数据处理的方法、装置及系统
US8176294B2 (en) Reducing storage expansion of a virtual machine operating system
US20150160884A1 (en) Elastic temporary filesystem
CN106201659B (zh) 一种虚拟机热迁移的方法及宿主机
US20110167421A1 (en) Dynamic Scaling of Management Infrastructure in Virtual Environments
JP2008217302A (ja) 仮想マシンシステム、管理サーバ、仮想マシン移行方法及びプログラム
US10956202B1 (en) Methods and systems for tracking a virtual memory of a virtual machine
CN106777394B (zh) 一种集群文件系统
WO2021018267A1 (zh) 虚拟机热迁移方法和通信设备
CN112000277B (zh) 精简置备文件拷贝方法、装置、设备及可读存储介质
US20150006818A1 (en) Data access method and computer-readable storage medium storing computer program
WO2019000949A1 (zh) 分布式存储系统中元数据存储方法、系统及存储介质
US20170315928A1 (en) Coarse-grained cache replacement scheme for a cloud-backed deduplication storage system
JP2009230596A (ja) サーバ装置のユーザデータ保護方法、サーバ装置及びコンピュータプログラム
CN110018883A (zh) 一种虚拟机删除方法、装置、设备及存储介质
CN104317734A (zh) 一种适用于slab的内存分配方法及装置
CN107656796B (zh) 一种虚拟机冷迁移方法、系统及设备
US20140298326A1 (en) Asynchronous unmap of thinly provisioned storage for virtual machines
US9971785B1 (en) System and methods for performing distributed data replication in a networked virtualization environment
US9329788B2 (en) Computer system and method for allocating and recovering virtual volumes
CN110019475B (zh) 数据持久化处理方法、装置及系统
JP5492731B2 (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
US10824435B2 (en) Region to host affinity for block allocation in clustered file system volume

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
FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180517

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 6