KR101077782B1 - 가상머신의 메모리 관리 시스템 및 관리 방법 - Google Patents

가상머신의 메모리 관리 시스템 및 관리 방법 Download PDF

Info

Publication number
KR101077782B1
KR101077782B1 KR1020090127253A KR20090127253A KR101077782B1 KR 101077782 B1 KR101077782 B1 KR 101077782B1 KR 1020090127253 A KR1020090127253 A KR 1020090127253A KR 20090127253 A KR20090127253 A KR 20090127253A KR 101077782 B1 KR101077782 B1 KR 101077782B1
Authority
KR
South Korea
Prior art keywords
memory
virtual machine
guest
hard disk
swapping
Prior art date
Application number
KR1020090127253A
Other languages
English (en)
Other versions
KR20110070429A (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 KR1020090127253A priority Critical patent/KR101077782B1/ko
Publication of KR20110070429A publication Critical patent/KR20110070429A/ko
Application granted granted Critical
Publication of KR101077782B1 publication Critical patent/KR101077782B1/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 가상머신의 메모리를 관리하는 시스템 및 방법에 관한 것으로, 게스트 메모리를 이용하는 복수의 가상머신 중 어느 하나에서 게스트 메모리가 부족한 것을 감지하면, 나머지 가상머신 중 어느 하나 이상에 할당된 게스트 메모리 중 일부를 게스트 메모리가 부족한 가상머신에게 할당하는 가상머신의 메모리 관리 시스템을 제공하여, 각 가상머신의 메모리 사용량을 가상머신에서 이루어지는 동작을 토대로 추출하여 메모리가 부족한 가상머신에게 메모리를 추가 할당하는 것이 가능하기 때문에 시시각각 변하는 메모리의 사용량에 즉각적으로 대처할 수 있는 능동적인 관리가 가능하다는 효과가 있다.
가상머신, 메모리, 스왑

Description

가상머신의 메모리 관리 시스템 및 관리 방법{MANAGING SYSTEM OF MEMORY FOR VIRTUAL MACHINE AND MANAGING METHOD OF THE SAME}
본 발명은 가상머신의 메모리를 관리하는 시스템 및 방법에 관한 것이다.
최근의 컴퓨터는 하드웨어의 발전에 따라서 하나의 하드웨어 상에서 여러 개의 운영체제를 설치하는 것이 가능하여, 사용자는 다양한 환경에서 컴퓨터를 활용할 수 있다. 그렇지만, 상기와 같이 하나의 하드웨어 상에 여러 개의 운영체제를 설치하기 위해서 여러 가지 복잡한 설정이나 방법이 요구되는데, 그 중에서 다소 쉽게 접근할 수 있는 방법이 가상화 기술을 이용한 가상머신을 이용하는 것이다.
이런 가상화 기술이란, 운영체제에 대해서 프로세서, 메모리, 네트워크, 디바이스, 그래픽스 기능 등 하드웨어 자원을 가상화로 구현하는 것이다. 대부분의 운영체제는 스스로 컴퓨터의 자원을 독점적으로 점유하는 것을 전제로 작동이 이루어지는데, 상기와 같은 가상화 기술을 이용함으로써, 컴퓨터와 운영체제 사이에 가상적인 인터페이스를 제공함으로써, 한 대의 컴퓨터에서 여러 개의 운영체제를 동 시에 실행시키는 것이 가능해진다.
이와 같이 가상화 기술을 이용함으로써, 복잡한 서버 환경을 하나로 통합하는 것이 가능하여 서버의 관리에 사용되는 비용을 절감하고, 하드웨어의 비용도 절감할 수 있다는 장점이 있다.
이렇게 가상화 기술이 이용될 때에는 복수의 가상머신을 관리할 수 있는 가상머신 매니저가 제공되어, 가상머신 매니저에서는 가상화된 하드웨어 자원을 관리하고, 가상머신을 생성, 삭제, 시작 및 재시작 등의 다양하게 가상머신을 관리할 수 있다.
더욱이, 이러한 가상화 기술에서 모든 가상머신은 하드웨어 자원의 가상화하여 사용할 수 있을 뿐만 아니라, 각 가상머신 간에 고립성(Isolation)이 제공된다. 이는 가상화 기술 중에서도 가장 주목을 받는 특징 중에 하나로 하나의 하드웨어 자원을 가상화 하여 사용 중인 여러 가상머신 중에서 하나의 가상머신에 문제가 발생된 경우, 다른 가상머신에게 전혀 영향을 주지 않아 보다 높은 안정성을 제공할 수 있기 때문이다.
또한, 하나의 가상머신이 외부에서 침입을 받거나 공격을 당하는 경우에도 가상머신은 각각이 완전히 분리되어 있기 때문에 해당 가상머신만 공격을 받을 뿐 동일한 하드웨어의 다른 가상머신에는 전혀 영향이 미치지 않는다.
이는 특히, 메모리의 가상화 및 고립성의 지원에 의해서 이루어지는데, 오류 혹은 외부의 침입에 의해 어떤 시스템이 완전히 망가지거나 점유를 당하더라도 문제가 되는 메모리의 자원은 이미 다른 가상머신의 자원과는 완전히 분리가 되어 있 기 때문에 그 문제가 다른 가상머신으로는 확산이 이루어지지 않기 때문이다.
그렇지만, 가상화 기술의 이러한 고립성은 반대로 가상머신 매니저가 가상머신들의 메모리 사용량을 포함한 다른 자원의 사용량을 서로 열람하는 것이 불가능하도록 하기 때문에 시스템에 의해 메모리 조절이 어렵다. 그렇다고, 가상머신 매니저의 구조를 변경하여 가상화 자원을 일부라도 가상머신과 가상머신 매니저 간에 서로 공유를 하도록 하게 되면, 고립성의 지원이 더 이상 불가능하여 문제가 발생된 가상머신에 의해 다른 가상머신들까지도 영향을 받는다는 문제가 발생된다.
기존의 가상화 기술에서 가상머신 매니저에서의 관리 기능은 사용자에 의해서 수동으로 설치된 가상머신을 관리하도록 구현되어 있는데, 이는 수많은 서버가 동시에 관리되는 대규모 서버 환경에서는 지속적으로 사용자의 관리가 이어져야 하기 때문에 불필요하게 자원을 낭비하고 있다는 문제가 있다.
일예를 들어, 하나의 하드웨어에서 도메인 서버, 웹서버 및 데이터베이스 서버가 가상머신으로 동시에 동작되는 경우에, 웹서버에 많은 사용자의 접근이 이루어지면, 이로 인하여 웹서버 가상머신에 많은 메모리가 사용된다. 그렇지만, 기존에는 최초에 가상머신을 생성할 때, 지정된 메모리의 양을 변경할 수가 없으므로 웹서버 가상머신의 메모리의 용량을 증가시키고자 할 때에는 웹서버 가상머신을 삭제하고 다시 생성하여야 한다.
이때, 도메인 서버나 데이터베이스 서버의 가상머신에는 충분한 메모리가 남아있는 경우에도, 이를 웹서버 가상머신에 활용할 수가 없다.
그리하여 이를 개선하기 위해서 도메인 서버 가상머신이나 데이터베이스 서 버 가상머신에 여유로운 메모리를 수동으로 웹서버 가상머신의 메모리로 이동시키는 기술이 제시되고는 있으나, 이 역시도 사용자가 직접 수동으로 작업을 진행하여야 하기 때문에 시시각각 변하는 메모리의 사용량에 즉각적으로 대처하는 것이 어렵다는 문제가 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 가상머신이 이용되는 환경에서 시시각각 변하는 메모리의 사용량에 즉각적으로 대처할 수 있는 가상머신의 메모리 관리 시스템 및 관리 방법을 제공하는데 그 목적이 있다.
이러한 목적을 달성하기 위하여 본 발명의 일 태양으로 가상머신의 메모리 관리 시스템은 컴퓨터 시스템의 실제 메모리(Physical Memory)로부터 소정의 부분을 할당받아 게스트 메모리(Guest Memory)로 이용하는 복수의 가상머신(Virtual Machine); 및 상기 복수의 가상머신을 관리하는 가상머신 매니저(Virtual Machine Manager); 를 포함하고, 상기 가상머신 매니저는 상기 복수의 가상머신 중 어느 하나인 제1가상머신의 게스트 메모리가 부족한 것을 감지하면, 나머지 가상머신 중 어느 하나 이상에 할당된 게스트 메모리 중 일부를 상기 제1가상머신에 할당하는 것을 특징으로 한다.
이때, 상기 복수의 가상머신은 상기 컴퓨터 시스템의 실제 하드디스크(Physical Hard Disk)로부터 소정의 부분을 할당받아 게스트 하드디스크(Guest Hard Disk)로 이용하고, 상기 가상머신 매니저는 상기 제1가상머신에서 가상 메모리의 이용 정도에 대한 정보를 감지하여 상기 제1가상머신에서 게스트 메모리가 부족한 것으로 감지하는 것을 특징으로-상기 가상 메모리는 실제 메모리의 용량보다 크게 메모리의 용량을 사용하기 위해 실제 하드디스크로부터 하드디스크의 용량을 일부를 실제 메모리로 활용할 때, 상기 하드디스크 용량의 일부를 가상 메모리라고 함-한다.
그리고 상기 제1가상머신에서 가상 메모리의 이용 정도에 대한 정보는 상기 제1가상머신의 스왑인(Swap In) 또는 스왑아웃(Swap Out)의 액세스(Access) 횟수인 것을 특징으로 한다.
이때, 상기 가상머신 매니저는 상기 제1가상머신의 스왑인 또는 스왑아웃의 액세스 횟수가 임계값보다 큰 경우에 상기 제1가상머신의 가상 메모리가 부족한 것으로 감지하는 것을 특징으로 한다.
그리고 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있는 경우, 상기 가상머신 매니저는 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩(Reading) 또는 라이팅(Wrighting)을 위한 액세스가 이루어지면, 스왑인 또는 아웃을 위한 액세스가 이루어진 것으로 인식하는 것을 특징으로 한다.
또한, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있지 않은 경우, 상기 가상머신에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션을 설정하고, 상기 가상머신 매니저는 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩 또는 라이팅을 위한 액세스가 이루어지면, 스왑인 또는 아웃을 위한 액세스가 이루어진 것으로 인식하는 것을 특징으로 한다.
한편, 이러한 목적을 달성하기 위하여 본 발명의 일 태양으로 가상머신의 메모리 관리 방법은 복수의 가상머신의 게스트 메모리(Guest Memory)가 부족한지 판단하는 A단계-상기 게스트 메모리는 컴퓨터 시스템의 실제 메모리(Physical Memory)로부터 소정의 부분을 할당 받아 상기 가상머신의 메모리로 이용하는 메모리임-; 및 상기 복수의 가상머신 중 어느 하나인 제1가상머신의 게스트 메모리가 부족한 것으로 판단되면, 나머지 가상머신 중 어느 하나 이상에 할당된 게스트 메모리 중 적어도 일부를 상기 제1가상머신에 할당하는 B단계; 를 포함하는 것을 특징으로 한다.
이때, 상기 A단계는, 상기 제1가상머신에서 가상 메모리의 이용 정도에 대한 정보를 감지하는 A1단계-상기 가상 메모리는 게스트 메모리의 용량보다 크게 메모리의 용량을 사용하기 위해 게스트 하드디스크(Guest Hard Disk)로부터 하드디스크의 용량을 일부를 게스트 메모리로 활용할 때, 상기 하드디스크 용량의 일부를 가상 메모리라고 하고, 상기 게스트 하드디스크는 상기 컴퓨터 시스템의 실제 하드디스크로부터 소정의 부분을 할당받은 것임-; 및 상기 A1단계에서 상기 가상 메모리의 이용 정도에 대한 정보에 따라 상기 제1가상머신의 게스트 메모리가 부족한지 판단하는 A2단계; 를 포함하는 것을 특징으로 한다.
그리고 상기 A1단계에서 상기 가상 메모리의 이용 정도에 대한 정보는 상기 제1가상머신의 스왑인(Swap In) 또는 스왑아웃(Swap Out)의 액세스(Access) 횟수인 것을 특징으로 한다.
또한, 상기 A2단계는 상기 제1가상머신의 스왑인 또는 스왑아웃의 액세스 횟수가 임계값보다 큰 경우에 상기 제1가상머신의 게스트 메모리가 부족한 것으로 판단하는 것을 특징으로 한다.
그리고 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있는지 판단하는 A0단계; 를 더 포함하고, 상기 A1단계는 상기 A0단계에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있다고 판단되면, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩(Reading) 또는 라이팅(Wrighting)을 위한 액세스가 이루어질 때, 상기 액세스의 횟수를 감지하는 것을 특징으로 한다.
이때, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있는지 판단하는 A0a단계; 및 상기 A0a단계에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있지 않다고 판단되면, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션을 설정하는 A0b단계; 를 더 포함하고, 상기 A1단계는 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩 또는 라이팅을 위한 액세스가 이루어질 때, 상기 액세스의 횟수를 감지하는 것을 특징으로 한다.
또한, 상기 A1단계에서 상기 제1가상머신의 스왑인 또는 스왑아웃의 액세스 횟수를 산정하는 것은 특정 시간동안에 대하여 누적 산정하는 것을 특징으로 한다.
그리고 상기 B단계는 상기 나머지 가상머신 중 어느 하나의 스왑인 또는 스왑아웃의 횟수와 임계값의 차이가 가장 큰 가상머신인 것을 특징으로 한다.
또 한편, 이러한 목적을 달성하기 위하여 본 발명의 일 태양으로 가상머신의 메모리 관리 방법은 가상머신의 게스트 하드디스크(Guest Hard Disk)에 게스트 메모리(Guest Memory)로 할당할 수 있는 스왑인(Swap In) 또는 스왑아웃(Swap Out)을 위한 파티션이 구분되어 있는지 판단하는 A단계-상기 게스트 메모리는 컴퓨터 시스템의 실제 메모리(Physical Memory)로부터 소정의 부분을 할당 받아 상기 가상머신의 메모리로 이용하는 메모리이고, 상기 게스트 하드디스크는 컴퓨터 시스템의 실제 하드디스크(Guest Hard Disk)로부터 소정의 부분을 할당받은 것임-; 상기 A단계에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있는 것으로 판단되면, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩(Reading) 또는 라이팅(Wrighting)을 위한 액세스(Access)가 이루어질 때, 상기 액세스 횟수를 측정하는 C1단계; 및 상기 액세스 횟수가 임계값보다 클 때, 상기 가상머신의 게스트 메모리가 부족한 것으로 판단하는 D단계; 를 포함하는 것을 특징으로 한다.
이때, 상기 A단계에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있지 않은 것으로 판단되면, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션을 설정하는 B단계; 및 상기 B단계에서 설정된 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩 또는 라이팅을 위한 액세스가 이루어질 때, 상기 액세스 횟수를 측정하는 C2단계; 를 더 포함하는 것을 특징으로 한다.
또 다른 한편, 이러한 목적을 달성하기 위하여 본 발명의 일 태양으로 상기의 방법 중 어느 하나의 항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체이다.
이상에서 설명한 바와 같이 본 발명에 의하면, 각 가상머신의 메모리 사용량을 가상머신에서 이루어지는 동작을 토대로 추출하여 메모리가 부족한 가상머신에게 메모리를 추가 할당하는 것이 가능하기 때문에 시시각각 변하는 메모리의 사용량에 즉각적으로 대처할 수 있는 능동적인 관리가 가능하다는 효과가 있다.
더욱이 메모리 부족에 의해 발생되는 중앙처리장치의 불필요한 연산과정을 줄임으로써, 보다 자원을 절약하고, 가상머신의 성능을 높일 수 있다는 효과가 있다.
본 발명의 바람직한 실시예에 대하여 첨부된 도면을 참조하여 더 구체적으로 설명하되, 이미 주지되어진 기술적 부분에 대해서는 설명의 간결함을 위해 생략하거나 압축하기로 한다.
<시스템에 대한 설명>
본 발명의 일실시예로, 가상머신(110)의 메모리 관리 시스템(100)은 복수의 가상머신(110) 및 가상머신 매니저(120)를 포함하여 구성되되, 도1 내지 도3을 참조하여 설명한다.
가상머신(110)은 도1에 도시된 바와 같이, 실제 컴퓨터 시스템(200) 상에 가상머신 매니저(120)가 설치되고, 가상머신 매니저(120) 상에 설치되는데, 가상머신(110)은 여러 개가 설치되는 것이 가능하다.
그리고 도2에 도시된 바와 같이, 가상머신(110)은 실제 컴퓨터 시스템(200)의 실제 메모리(Physical Memory, 210)로부터 소정의 부분을 할당받아 게스트 메모리(Guest Memory, 112)로 이용되고, 실제 컴퓨터 시스템(200)의 실제 하드디스크(Physical Hard Disk, 220)로부터 소정의 부분을 할당받아 게스트 하드디스크(Guest Hard Disk, 114)로 이용한다. 이렇게 함으로써, 각 가상머신(110)에서는 게스트 메모리(112)나 게스트 하드디스크(114)를 마치 물리적인 메모리나 하드디스크와 같이 사용하는 것이 가능해진다.
이때, 가상머신(110)에서 게스트 메모리(112)가 부족해지는 현상이 발생되면, 이를 자체적으로 해결하기 위하여 가상 메모리(114)를 활용한다. 가상 메모리는 실제 물리적으로 사용이 가능한 메모리의 크기보다 큰 데이터를 로딩하기 위해 실제 물리적으로 사용이 가능한 메모리보다 큰 메모리를 가상으로 사용하기 위해 마련된다.
여기서, 가상 메모리는 데이터의 일부는 메모리로 가져와 사용하고, 나머지는 하드디스크에서 관리가 이루어진다. 이때, 메모리와 하드디스크에 저장되는 원 본 데이터는 페이지(Page)라는 단위로 관리가 이루어지고, 페이지는 일반적으로 4KB의 용량을 가진다.
일예로, 운영체제에서 동작되는 어플리케이션이 메모리에 접근하려고할 때, 해당 데이터가 메모리에 없는 경우, 하드디스크로부터 메모리로 해당 페이지를 읽어와 사용을 하는데, 메모리에 공간이 없는 경우에는 페이지 교체 알고리즘에 의해 가장 늦게 사용된 페이지가 하드디스크로 다시 돌아가게 된다. 여기서, 하드디스크에 있던 페이지를 메모리로 불러오는 것을 스왑인(Swap In)이라고 하고, 메모리에 있던 페이지를 하드디스크로 옮기는 것을 스왑아웃(Swap Out)이라고 한다.
이때, 가상머신(110)에서 게스트 메모리(112)의 부족현상이 발생하는 경우에, 다수의 페이지가 게스트 메모리(112)에서 게스트 하드디스크(114)로, 다시 게스트 하드디스크(114)에서 게스트 메모리(112)로 옮겨지는 스왑인/스왑아웃 현상이 빈번하게 일어나게 되고, 이러한 스왑인/스왑아웃 현상으로 인해 가상머신(110)의 CPU가 불필요하게 많이 사용되어, 가상머신(110)의 성능이 저하될 수 있다.
가상머신 매니저(120)는 상기에서 설명한 가상머신(110)을 관리하고, 메모리 부족정보 추출모듈(121), 가상디스크 관리모듈(122), 메모리할당 정책모듈(123) 및 동적메모리 관리모듈(124)을 포함하여, 구성된다.
메모리 부족정보 추출모듈(121)은 가상머신(110)의 게스트 하드디스크(114) 접근에 대한 명령을 수신하여 가상머신(110)의 게스트 메모리(112) 부족현상을 감지하고, 이를 메모리할당 정책모듈(123)에 알리는 역할을 수행하고, 가상머신(110)의 게스트 하드디스크(114)의 접근 명령을 가상디스크 관리모듈(122)에 전달하는 역할을 수행한다.
또한, 메모리 부족정보 추출모듈(121)에서는 가상머신(110)의 게스트 메모리(112) 부족현상을 탐지하기 위해서 가상 메모리의 특성을 활용하는데, 가상 메모리(114)를 사용하는 운영체제에서 메모리의 부족현상이 일어나는 경우에는 상기에서 설명한 바와 같이, 스왑인/스왑아웃 현상이 과도하게 발생한다. 그렇기 때문에 메모리 부족정보 추출모듈(121)에서는 이러한 점을 이용한다.
이때, 스왑인/스왑아웃과 일반적으로 게스트 하드디스크(114)에 자료를 저장하거나 읽어오는 현상과는 구분을 하여야 하는데, 스왑인/스왑아웃의 경우에도 일반적으로 게스트 하드디스크(114)에 저장하거 읽어오는 것이므로, 단순히 하드디스크에 액세스하였다는 이유만으로 스왑인/스왑아웃임을 판단할 수는 없다.
그러므로 메모리 부족정보 추출모듈(121)에서는 스왑인/스왑아웃과 일반 게스트 하드디스크(114)로의 접근의 구분을 운영체제에 따라서 결정을 한다. 유닉스(Unix) 계열의 운영체제(유닉스, 리눅스, FreeBSD 등)의 경우에는 게스트 하드디스크(114)에 스왑인/스왑아웃을 위한 별도의 파티션을 구비되기 때문에, 이 경우에는 게스트 하드디스크(114)로의 액세스가 어떤 파티션으로 액세스하였는지를 이용하여 스왑인/스왑아웃이 이루어졌는지를 판단한다.
그리고 윈도우 계열의 운영체제에서는 별도의 스왑인/스왑아웃을 위한 파티션이 존재하지 않고, 특정 스왑파일이 이용되도록 설정되어 있다. 그러므로 이러한 경우에는 가상머신(110)의 기본 설정을 함에 있어서, 스왑인/스왑아웃을 위한 별도의 파티션을 사용하도록 변경함으로써, 유닉스 계열의 운영체제와 동일한 방법으로 스왑인/스왑아웃을 위해 게스트 하드디스크(114)에 액세스하는 지를 판단하는 것이 가능하다.
가상디스크 관리모듈(122)은 컴퓨터의 디스크를 관리한다.
메모리할당 정책모듈(123)은 메모리 부족정보 추출모듈(121)로부터 가상머신(110)의 게스트 메모리(112) 부족현상에 대한 신호를 수신하여 어떤 가상머신(110)들에서 게스트 메모리(112)가 적게 사용되고 있는지를 확인하고, 스왑인/스왑아웃의 횟수와 임계값의 차가 가징 큰 가상머신(110)을 타깃으로 설정한다. 즉, 타깃으로 설정된 가상머신(110)으로부터 게스트 메모리(112)를 회수하여, 회수된 게스트 메모리(112)를 게스트 메모리(112)가 부족한 가상머신(110)에게 할당한다.
동적메모리 관리모듈(124)은 기존과 마찬가지로 가상머신(110)에 메모리를 동적으로 할당하는 기능을 수행한다.
<방법에 대한 설명>
본 발명의 가상머신(110)의 메모리 관리 방법에 대해서 도4에 도시된 흐르도를 이용하여 설명하고, 도1 내지 도3을 참조하여 설명하되, 편의상 번호를 붙여 설명한다.
1. 게스트 하드디스크 액세스 확인<S401>
메모리 부족정보 추출모듈(121)에서는 가상머신(110)에서 게스트 하드디스크(114)로 액세스가 있는 경우, 어느 가상머신(110)에서 액세스가 있는지를 확인하는데, 메모리 부족정보 추출모듈(121)은 가상머신(110)에서 게스트 하드디스 크(114)로 액세스가 일어날 때마다 수행된다.
2. 스왑디스크 액세스 판단<S402>
가상머신(110)에서 게스트 하드디스크(114)로의 액세스가 있을 때, 해당 게스트 하드디스크(114)의 스왑디스크로 액세스가 일어나는지를 확인하는 단계로, 본 단계에서 게스트 하드디스크(114)에 스왑인/스왑아웃을 위한 파티션이 있는지 판단하는 단계이다.
본 단계에서 게스트 하드디스크(114)에 스왑인/스왑아웃을 위한 스왑디스크가 있는지를 판단하여 스왑인/스왑아웃을 위한 스왑디스크가 있는 경우에는 단계 S405로 이어지고, 스왑인/스왑아웃을 위한 스왑디스크가 없는 경우에는 단계 S413으로 이어진다.
3. 리딩/라이팅 판단<S405>
단계 S403에서 가상머신(110)의 게스트 하드디스크(114)에 스왑인/스왑아웃을 위한 스왑디스크가 있는 경우, 스왑인/스왑아웃을 위한 스왑디스크로의 액세스가 리딩(Reading)을 위한 액세스인지 라이팅(Wrighting)을 위한 액세스인지를 판단한다.
4. 스왑인 횟수 산정<S406a>
단계 S405에서 판단된 스왑인/스왑아웃을 위한 스왑디스크로의 액세스가 리딩이라고 판단이 되면, 스왑인(Swap-In)을 위한 액세스이므로 스왑인 횟수를 산정한다.
5. 스왑아웃 횟수 산정<S406b>
단계 S405에서 판단된 스왑인/스왑아웃을 위한 스왑디스크로의 액세스가 라이팅이라고 판단이 되면, 스왑아웃(Swap-Out)을 위한 액세스이므로 스왑아웃 횟수를 산정한다.
6. 게스트 하드디스크 파티션정보 로드<S413>
단계 S403에서 가상머신(110)의 게스트 하드디스크(114)에 스왑인/스왑아웃을 위한 스왑디스크가 없는 것으로 판단이 되면, 가상머신(110)의 기본설정에서 스왑인/스왑아웃을 위한 별도의 파티션이 설정되어 있는 것으로 판단하여, 게스트 하드디스크(114)의 파티션정보를 로드한다.
7. 스왑파티션 액세스 판단<S414>
단계 S413에서 게스트 하드디스크(114)의 파티션 정보를 로드하여, 스왑파티션이 있는 지를 판단하고, 스왑파티션으로 액세스가 일어나지를 판단하고, 스왑파티션으로의 액세스가 있는 경우에는 단계 S415로 이어지고, 스왑파티션으로의 액세스가 없는 경우에는 단계 S417로 이어진다.
8. 리딩/라이팅 판단<S415>
단계 S414에서 가상머신(110)의 스왑파티션으로 액세스가 있다고 판단이 되면, 본 단계에서는 단계 S405에서와 마찬가지로, 스왑파티션으로의 액세스가 리딩을 위한 액세스인지, 라이팅을 위한 액세스인지를 판단한다.
9. 스왑인 횟수 산정<S416a>
단계 S415에서 판단된 스왑인/스왑아웃을 위한 스왑파티션으로의 액세스가 리딩이라고 판단이 되면, 스왑인을 위한 액세스이므로 스왑인 횟수를 산정한다.
10. 스왑아웃 횟수 산정<S416b>
단계 S415에서 판단된 스왑인/스왑아웃을 위한 스왑파티션으로의 액세스가 라이팅이라고 판단이 되면, 스왑아웃을 위한 액세스이므로 스왑아웃 횟수를 산정한다.
11. 스왑인/스왑아웃 횟수 합산<S417>
단계 S406a와 단계 S407b 및 단계 S416a와 단계 S416b에서 각각 산정된 스왑인 및 스왑아웃의 횟수를 합산하는 단계로, 단계 S406a 및 단계 S407b의 합산을 하고, 단계 S416a 및 단계 S416b의 합산을 각각 하는 단계이다.
12. 임계값 비교판단<S418>
단계 S417에서 합산된 스왑인/스왑아웃의 횟수를 임계값과 비교하는 단계로, 합산된 스왑인/스왑아웃의 횟수가 임계값보다 큰 경우는 스왑인/스왑아웃이 그 만큼 많이 일어나는 것이므로, 가상머신(110)의 게스트 메모리(112)가 부족하다는 것으로 판단한다. 이와 반대로, 합산된 스왑인/스왑아웃의 횟수가 임계값보다 작은 경우에는 가상머신(110)의 게스트 메모리(112)가 부족하지 않다고 판단하여, 단계 S401로 되돌아가 흐름이 반복된다.
13. 메모리할당 조절모듈 알림<S419>
단계 S418에서 합산된 스왑인/스왑아웃의 횟수가 임계값보다 큰 것으로 판단 이 되면, 메모리할당 조절모듈에 가상머신(110)의 게스트 메모리(112)가 부족하다는 정보를 알림으로써, 해당 가상머신(110)의 메모리를 추가로 할당하도록 한다.
14. 가상디스크 관리모듈 알림<S420>
단계 S418에서 합산된 스왑인/스왑아웃의 횟수가 임계값보다 큰 것으로 판단이 되면, 가상디스크 관리모듈(122)이 가사머신의 게스트 메모리(112)가 부족하다는 정보를 알린다.
위에서 설명한 바와 같이 본 발명에 대한 구체적인 설명은 첨부된 도면을 참조한 실시예에 의해서 이루어졌지만, 상술한 실시예는 본 발명의 바람직한 예를 들어 설명하였을 뿐이기 때문에, 본 발명이 상기의 실시예에만 국한되는 것으로 이해되어져서는 아니 되며, 본 발명의 권리범위는 후술하는 청구범위 및 그 등가개념으로 이해되어져야 할 것이다.
도1은 본 발명의 가상머신의 메모리 관리 시스템을 도시한 도면이다.
도2는 본 발명의 가상머신에 게스트 메모리 및 게스트 하드디스크가 할당되는 상황 및 가상메모리의 사용을 도식화한 도면이다.
도3은 본 발명의 가상머신의 메모리 관리 시스템을 도시한 블록도이다.
도4는 본 발명의 가상머신의 메모리 관리 방법을 도시한 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 메모리 관리 시스템
110: 가상머신
112: 게스트 메모리 114; 게스트 하드디스크
116: 가상 메모리
120: 가상머신 매니저
121: 메모리 부족정보 추출모듈
122: 가상디스크 관리모듈
123: 메모리할당 정책모듈
124: 동적메모리 관리모듈
200: 컴퓨터 시스템
210: 실제 메모리 220: 실제 하드디스크

Claims (17)

  1. 삭제
  2. 컴퓨터 시스템의 실제 메모리(Physical Memory)로부터 소정의 부분을 할당받아 게스트 메모리(Guest Memory)로 이용하는 복수의 가상머신(Virtual Machine); 및
    상기 복수의 가상머신을 관리하는 가상머신 매니저(Virtual Machine Manager); 를 포함하고,
    상기 가상머신 매니저는 상기 복수의 가상머신 중 어느 하나인 제1가상머신의 게스트 메모리가 부족한 것을 감지하면, 나머지 가상머신 중 어느 하나 이상에 할당된 게스트 메모리 중 일부를 상기 제1가상머신에 할당하고,
    상기 복수의 가상머신은 상기 컴퓨터 시스템의 실제 하드디스크(Physical Hard Disk)로부터 소정의 부분을 할당받아 게스트 하드디스크(Guest Hard Disk)로 이용하고,
    상기 가상머신 매니저는 상기 제1가상머신에서 가상 메모리의 이용 정도에 대한 정보를 감지하여 상기 제1가상머신에서 게스트 메모리가 부족한 것으로 감지하는 것을 특징으로 하는-상기 가상 메모리는 실제 메모리의 용량보다 크게 메모리의 용량을 사용하기 위해 실제 하드디스크로부터 하드디스크의 용량을 일부를 실제 메모리로 활용할 때, 상기 하드디스크 용량의 일부를 가상 메모리라고 함-
    가상머신의 메모리 관리 시스템.
  3. 제2항에 있어서,
    상기 제1가상머신에서 가상 메모리의 이용 정도에 대한 정보는 상기 제1가상머신의 스왑인(Swap In) 또는 스왑아웃(Swap Out)의 액세스(Access) 횟수인 것을 특징으로 하는
    가상머신의 메모리 관리 시스템.
  4. 제3항에 있어서,
    상기 가상머신 매니저는 상기 제1가상머신의 스왑인 또는 스왑아웃의 액세스 횟수가 임계값보다 큰 경우에 상기 제1가상머신의 가상 메모리가 부족한 것으로 감지하는 것을 특징으로 하는
    가상머신의 메모리 관리 시스템.
  5. 제3항에 있어서,
    상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있는 경우,
    상기 가상머신 매니저는 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩(Reading) 또는 라이팅(Wrighting)을 위한 액세스가 이루어지 면, 스왑인 또는 아웃을 위한 액세스가 이루어진 것으로 인식하는 것을 특징으로 하는
    가상머신의 메모리 관리 시스템.
  6. 제3항에 있어서,
    상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있지 않은 경우,
    상기 가상머신에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션을 설정하고,
    상기 가상머신 매니저는 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩 또는 라이팅을 위한 액세스가 이루어지면, 스왑인 또는 아웃을 위한 액세스가 이루어진 것으로 인식하는 것을 특징으로 하는
    가상머신의 메모리 관리 시스템.
  7. 삭제
  8. 복수의 가상머신의 게스트 메모리(Guest Memory)가 부족한지 판단하는 A단계-상기 게스트 메모리는 컴퓨터 시스템의 실제 메모리(Physical Memory)로부터 소정의 부분을 할당 받아 상기 가상머신의 메모리로 이용하는 메모리임-; 및
    상기 복수의 가상머신 중 어느 하나인 제1가상머신의 게스트 메모리가 부족한 것으로 판단되면, 나머지 가상머신 중 어느 하나 이상에 할당된 게스트 메모리 중 적어도 일부를 상기 제1가상머신에 할당하는 B단계; 를 포함하고,
    상기 A단계는,
    상기 제1가상머신에서 가상 메모리의 이용 정도에 대한 정보를 감지하는 A1단계-상기 가상 메모리는 게스트 메모리의 용량보다 크게 메모리의 용량을 사용하기 위해 게스트 하드디스크(Guest Hard Disk)로부터 하드디스크의 용량을 일부를 게스트 메모리로 활용할 때, 상기 하드디스크 용량의 일부를 가상 메모리라고 하고, 상기 게스트 하드디스크는 상기 컴퓨터 시스템의 실제 하드디스크로부터 소정의 부분을 할당받은 것임-; 및
    상기 A1단계에서 상기 가상 메모리의 이용 정도에 대한 정보에 따라 상기 제1가상머신의 게스트 메모리가 부족한지 판단하는 A2단계; 를 포함하는 것을 특징으로 하는
    가상머신의 메모리 관리 방법.
  9. 제8항에 있어서,
    상기 A1단계에서 상기 가상 메모리의 이용 정도에 대한 정보는 상기 제1가상머신의 스왑인(Swap In) 또는 스왑아웃(Swap Out)의 액세스(Access) 횟수인 것을 특징으로 하는
    가상머신의 메모리 관리 방법.
  10. 제9항에 있어서,
    상기 A2단계는 상기 제1가상머신의 스왑인 또는 스왑아웃의 액세스 횟수가 임계값보다 큰 경우에 상기 제1가상머신의 게스트 메모리가 부족한 것으로 판단하는 것을 특징으로 하는
    가상머신의 메모리 관리 방법.
  11. 제8항에 있어서,
    상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있는지 판단하는 A0단계; 를 더 포함하고,
    상기 A1단계는 상기 A0단계에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있다고 판단되면, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩(Reading) 또는 라이팅(Wrighting)을 위한 액세스가 이루어질 때, 상기 액세스의 횟수를 감지하는 것을 특징으로 하는
    가상머신의 메모리 관리 방법.
  12. 제8항에 있어서,
    상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있는지 판단하는 A0a단계; 및
    상기 A0a단계에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있지 않다고 판단되면, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션을 설정하는 A0b단계; 를 더 포함하고,
    상기 A1단계는 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩 또는 라이팅을 위한 액세스가 이루어질 때, 상기 액세스의 횟수를 감지하는 것을 특징으로 하는
    가상머신의 메모리 관리 방법.
  13. 제9항에 있어서,
    상기 A1단계에서 상기 제1가상머신의 스왑인 또는 스왑아웃의 액세스 횟수를 산정하는 것은 특정 시간동안에 대하여 누적 산정하는 것을 특징으로 하는
    가상머신의 메모리 관리 방법.
  14. 제8항에 있어서,
    상기 B단계는 상기 나머지 가상머신 중 어느 하나의 스왑인 또는 스왑아웃의 횟수와 임계값의 차이가 가장 큰 가상머신인 것을 특징으로 하는
    가상머신의 메모리 관리 방법.
  15. 가상머신의 게스트 하드디스크(Guest Hard Disk)에 게스트 메모리(Guest Memory)로 할당할 수 있는 스왑인(Swap In) 또는 스왑아웃(Swap Out)을 위한 파티션이 구분되어 있는지 판단하는 A단계-상기 게스트 메모리는 컴퓨터 시스템의 실제 메모리(Physical Memory)로부터 소정의 부분을 할당 받아 상기 가상머신의 메모리로 이용하는 메모리이고, 상기 게스트 하드디스크는 컴퓨터 시스템의 실제 하드디스크(Guest Hard Disk)로부터 소정의 부분을 할당받은 것임-;
    상기 A단계에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있는 것으로 판단되면, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩(Reading) 또는 라이팅(Wrighting)을 위한 액세스(Access)가 이루어질 때, 상기 액세스 횟수를 측정하는 C1단계; 및
    상기 액세스 횟수가 임계값보다 클 때, 상기 가상머신의 게스트 메모리가 부족한 것으로 판단하는 D단계; 를 포함하는 것을 특징으로 하는
    가상머신의 메모리 관리 방법.
  16. 제15항에 있어서,
    상기 A단계에서 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션이 구분되어 있지 않은 것으로 판단되면, 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션을 설정하는 B단계; 및
    상기 B단계에서 설정된 상기 게스트 하드디스크에 스왑인 또는 스왑아웃을 위한 파티션에 리딩 또는 라이팅을 위한 액세스가 이루어질 때, 상기 액세스 횟수 를 측정하는 C2단계; 를 더 포함하는 것을 특징으로 하는
    가상머신의 메모리 관리 방법.
  17. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.
    제8항 내지 제16항 중 어느 하나의 항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020090127253A 2009-12-18 2009-12-18 가상머신의 메모리 관리 시스템 및 관리 방법 KR101077782B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090127253A KR101077782B1 (ko) 2009-12-18 2009-12-18 가상머신의 메모리 관리 시스템 및 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090127253A KR101077782B1 (ko) 2009-12-18 2009-12-18 가상머신의 메모리 관리 시스템 및 관리 방법

Publications (2)

Publication Number Publication Date
KR20110070429A KR20110070429A (ko) 2011-06-24
KR101077782B1 true KR101077782B1 (ko) 2011-10-28

Family

ID=44401946

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090127253A KR101077782B1 (ko) 2009-12-18 2009-12-18 가상머신의 메모리 관리 시스템 및 관리 방법

Country Status (1)

Country Link
KR (1) KR101077782B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101442091B1 (ko) * 2012-12-31 2014-09-25 고려대학교 산학협력단 가상화 시스템에서의 메모리 관리 방법
KR101995433B1 (ko) * 2017-09-13 2019-09-24 엘지전자 주식회사 디지털 디바이스 및 그 제어 방법
KR102591315B1 (ko) 2021-03-22 2023-10-20 한국전자통신연구원 클러스터 시스템의 메모리 통합 관리 방법 및 장치
CN113885787B (zh) * 2021-06-08 2022-12-13 荣耀终端有限公司 一种存储器管理方法及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235123A1 (en) * 2004-04-19 2005-10-20 Zimmer Vincent J Method to manage memory in a platform with virtual machines
WO2009000856A1 (en) * 2007-06-27 2008-12-31 International Business Machines Corporation System, method and program to manage memory of a virtual machine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235123A1 (en) * 2004-04-19 2005-10-20 Zimmer Vincent J Method to manage memory in a platform with virtual machines
WO2009000856A1 (en) * 2007-06-27 2008-12-31 International Business Machines Corporation System, method and program to manage memory of a virtual machine

Also Published As

Publication number Publication date
KR20110070429A (ko) 2011-06-24

Similar Documents

Publication Publication Date Title
EP3884392B1 (en) Faster access of virtual machine memory backed by a host computing device&#39;s virtual memory
US11106579B2 (en) System and method to manage and share managed runtime memory for java virtual machine
US9547600B2 (en) Method and system for restoring consumed memory after memory consolidation
US9015203B2 (en) Balloon object feedback for Java Virtual Machines
US9361218B2 (en) Method of allocating referenced memory pages from a free list
US20150234669A1 (en) Memory resource sharing among multiple compute nodes
US9529611B2 (en) Cooperative memory resource management via application-level balloon
US9262333B2 (en) Asymmetric memory migration in hybrid main memory
CN100451995C (zh) 保留虚拟机的高速缓存的系统和方法
KR102047558B1 (ko) 가상 디스크 저장 기술
US10534720B2 (en) Application aware memory resource management
KR101137172B1 (ko) 가상 머신의 메모리를 관리하기 위한 시스템, 방법 및 프로그램
US9811465B2 (en) Computer system and cache control method
EP2418578A1 (en) A computer system, resource management server of a computer system, and resource management method of a computer system
KR20140011956A (ko) 복수의 가상 머신으로서 동작하는 복수의 시스템에 의해 공유되는 스토리지 캐싱에서의 향상된 유연성을 위한 방법 및 구조
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
CN104572656A (zh) 一种磁盘镜像空间回收的方法及装置
WO2021047425A1 (zh) 一种持久性内存的虚拟化方法及系统
US20220058044A1 (en) Computer system and management method
KR101077782B1 (ko) 가상머신의 메모리 관리 시스템 및 관리 방법
JP2014199596A (ja) データ配置プログラム、データ配置方法、及び情報処理装置
CN107832097B (zh) 数据加载方法及装置
KR20190116641A (ko) 가상화 시스템을 위한 저장 장치 및 그 동작 방법
JP2014157476A (ja) 計測装置及び計測方法
KR20240058663A (ko) 메모리 관리 시스템, 메모리 관리 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

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: 20141201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151021

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161025

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180528

Year of fee payment: 7

R401 Registration of restoration
LAPS Lapse due to unpaid annual fee