(19) 대한민국특허청(kr) (12)...

20
(19) 대한민국특허청(KR) (12) 등록특허공보(B1) (45) 공고일자 2011년10월14일 (11) 등록번호 10-1072807 (24) 등록일자 2011년10월06일 (51) Int. Cl. G06F 12/12 (2006.01) G06F 11/30 (2006.01) G06F 12/06 (2006.01) G06F 12/08 (2006.01) (21) 출원번호 10-2010-0095443 (22) 출원일자 2010년09월30일 심사청구일자 2010년09월30일 (56) 선행기술조사문헌 KR1020060117869 A KR1020060120638 A KR1020060130081 A (73) 특허권자 한국과학기술원 대전 유성구 구성동 373-1 (72) 발명자 박규호 대전 유성구 구성동 한국과학기술원 6-3208 황우민 대전 유성구 구성동 한국과학기술원 서측 생활관 6228호 (뒷면에 계속) (74) 대리인 김성호 전체 청구항 수 : 총 12 항 심사관 : 권오성 (54) 가상 머신 모니터 시스템 (57) 요 약 실시예는 가상 머신 모니터 시스템에 관한 것이다. 실시예에 따른 가상 머신 모니터 시스템은, 복수의 게스트 운영체제에 할당된 페이지 프레임 중 버퍼 캐시로 사 용되는 페이지 프레임들을 추출하고, 데이터 접근에 대한 연속성을 기준으로 추출된 페이지 프레임들을 순차 패 턴 및 비순차 패턴으로 분할(partition)하는 패턴 분할부, 순차 패턴 및 비순차 패턴에 속하는 페이지 프레임들 을 LRU 정책에 따라 관리하되, 순차 패턴에 속하는 페이지 프레임들은 연속 페이지 프레임 단위로 관리하고, 비 순차 패턴에 속하는 페이지 프레임은 페이지 프레임 단위로 관리하는 패턴 관리부, 및 복수의 가상 머신 간의 메 모리 재할당을 위하여 순차 패턴에 속하는 연속 페이지 프레임을 우선적으로 선택하고, 선택된 페이지 프레임을 메모리를 필요로 하는 가상 머신으로 할당하는 메모리 선택 처리부를 포함한다. 대 표 도 - 도3 등록특허 10-1072807 -1-

Upload: others

Post on 14-Feb-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

(19) 민 특허청(KR)

(12) 등 특허공보(B1)

(45) 공고 2011 10월14

(11) 등 10-1072807(24) 등 2011 10월06

(51) Int. Cl.

G06F 12/12 (2006.01) G06F 11/30 (2006.01)

G06F 12/06 (2006.01) G06F 12/08 (2006.01)(21) 원 10-2010-0095443

(22) 원 2010 09월30

심사청 2010 09월30

(56) 술 사 헌

KR1020060117869 A

KR1020060120638 A

KR1020060130081 A

(73) 특허

과 술원

동 373-1

(72)

동 과 술원 6-3208

우민

동 과 술원 측 생6228

(뒷 에 계 )

(74) 리

체 청 수 : 12 심사 :

(54) 가상 신 니 시스

(57)

실시 는 가상 신 니 시스 에 것 다.

실시 에 가상 신 니 시스 , 복수 게스트 운 체 에 당 지 캐시 사

는 지 들 고, 근에 연 지 들 순차

비순차 (partition) 는 , 순차 비순차 에 는 지 들

LRU 책에 라 리 , 순차 에 는 지 들 연 지 단 리 고, 비

순차 에 는 지 지 단 리 는 리 , 복수 가상 신 간

리 재 당 여 순차 에 는 연 지 우 택 고, 택 지

리 는 가상 신 당 는 리 택 처리 포 다.

도 - 도3

등록특허 10-1072807

- 1 -

Page 2: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

(72)

경 남시 원 2동 708 지

울 원 월계4동 500-11 8/5

등록특허 10-1072807

- 2 -

Page 3: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

특허청

청 1

단 드웨어 갖는 컴퓨 시스 상에 복수 가상 신에 당 리 시스 에

것 ,

복수 게스트 운 체 에 당 지 캐시 사 는 지 들 고,

근에 연 상 지 들 순차 비순차 (partitio

n) 는 ;

상 순차 상 비순차 에 는 지 들 LRU 책에 라 리 , 상 순차 에

는 지 들 연 지 단 리 고, 상 비순차 에 는 지

지 단 리 는 리 ;

복수 가상 신 간 리 재 당 여 상 순차 에 는 연 지 우

택 고, 상 택 지 리 는 가상 신 당 는 리 택 처리 포

는 가상 신 니 시스 .

청 2

1 에 어 ,

상 는,

게스트 운 체 캐시 리 드에 수(hypercall function) 도 여 게스트 운

체 에 당 지 들에 보 달 고,

상 지 들에 보에 여 복수 게스트 운 체 에 당 지 캐시

사 는 지 들 는, 가상 신 니 시스 .

청 3

1 에 어 ,

상 는,

복수 게스트 운 체 에 동 는 어 리 (application level)에 , 단 에 단

스 근 연 지 , 상 지 들 순차 비순차

는, 가상 신 니 시스 .

청 4

3 에 어 ,

상 는,

각 스 지 블 가리키는 지스 값과, 각 스가 근 지 담고 는

가 스크 블 여 캐시에 지 들에 각 스 근

순 고,

상 지 들에 각 스 근 순 에 여 개수 상 지 들 연

근 경우 당 지 들 순차 는, 가상 신 니 시스 .

등록특허 10-1072807

- 3 -

Page 4: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

청 5

4 에 어 ,

상 는,

순차 , 원 는 가 캐시에 재 지 경우에 근 고 는 상 어

들 I/O 리퀘스트 니 링 여 상 지 보 당 지 에

에 보 는, 가상 신 니 시스 .

청 6

1 에 어 ,

상 는,

복수 게스트 운 체 에 동 는 (file level)에 , 단 에 단 스

근 연 지 , 상 지 들 순차 비순차 는, 가상

신 니 시스 .

청 7

6 에 어 ,

상 는,

사 에 근 시스 (file read/write system call) 생 경우 상 시스 에 포

수 얻고,

상 시스 실 에 각각 스에 근 지 들 주 포 는 지

근 보 얻고,

각 게스트 운 체 내 근 보 상 지 근 보 결 시 , 각 특 치

블 가 각 게스트 운 체 내 지 어느 치에 어 는지에 상 보

얻고,

상 상 보 여 태스크에 근 에 연 는, 가상 신 니 시스 .

청 8

7 에 어 ,

상 는,

상 근 시스 에 생 수 에 보 , 가 리 지

주 보 연결 여, 각 태스크 에 사 태스크 , , 근 시

치, 근 료 치, 근 간, 리 지 주 는 블 엔트리 고,

태스크가 특 에 근 경우, 상 블 엔트리 여 상 리 지 근 연

는, 가상 신 니 시스 .

청 9

1 에 어 ,

상 리 는,

등록특허 10-1072807

- 4 -

Page 5: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

상 순차 상 비순차 에 는 지 들 재 치가 루어지는 경우, 상 재 치

지 공간에 후 재 치 수 ,

상 재 치 지 게스트 운 체 근 생 경우, 새 운 빈 지 당 고

상 공간에 상 빈 지 복사 후 지 블 매 수 여

리 복원 는, 가상 신 니 시스 .

청 10

1 에 어 ,

상 리 는,

연 지 에 지 근 경우, 당 연 지 MRU 치 동시키고,

상 리 택 처리 는,

상 MRU 치에 는 연 지 가 근에 근 지 개수만큼 지

택 는, 가상 신 니 시스 .

청 11

1 에 어 ,

상 리 는,

연 지 에 지 근 경우, 당 연 지 MRU 치 동시키고,

상 리 택 처리 는,

상 MRU 치에 는 연 지 가 근에 근 지 개수만큼 지

택 , 개수 마진(margin) 고 상 마진에 포 지 가 근에 근 지

LRU 택 는, 가상 신 니 시스 .

청 12

1 에 어 ,

상 리 택 처리 는,

연 지 없는 경우, 상 비순차 에 는 지 에 LRU 치에 는 지

택 는, 가상 신 니 시스 .

실시 는 가상 신 니 시스 에 것 다.[0001]

경 술

가상 (virtualization)는 드웨어 리 스(hardware resource) 티 싱(multiplexing) 나[0002]

리 컴퓨 상에 다수 OS(operating system) 실 시킬 수 도 다. CPU I/O 치는 시간 단

나누어 당 시간만큼 사 는 식 여러 게스트 OS 공 수 다.

그러나, 리 같 리 스는 당 원 상 같 식 공 에는 헤드(overhead)가 매우[0003]

등록특허 10-1072807

- 5 -

Page 6: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

크 에 시간 단 는 것 니라 량 측 에 통 원 공 다. 라

순간에 리 당 는 것 시스 체 측 에 능에 역 게 다.

가상 경 어 는 (hypervisor) 또는 가상 신 니 (virtual machine monitor, VMM)는[0004]

드웨어 리 스 티 싱 여 각 게스트 OS에게 신 컴퓨 리 스 독 것과 같 루

(illusion) 공 다. 라 게스트 OS 동 시, QoS(Quality of Service) 보 당 게스트

OS에게 원 SLA(Service Level Agreement) 수 는 도 내에 원 시간 공 가능 게

다.

그러나, 리 리 경우, 량 리 각 게스트 OS에게 에, 체 리 량[0005]

각 게스트 OS들 리 어 는 경우에는, 나 게스트 OS에 량만큼 리

리 공 수 없는 경우가 생 게 다. 게스트 OS들 나가 께 실 지 못 여 원 생

에, (hypervisor)는 든 게스트 OS들에게 량 리 사 고 는 루

(illusion) 공 리 커 (overcommit) 다. , (hypervisor)는 각 게스트 OS

에게 당 리 사 근 능 보 도 는 내에 리 원 VM들끼리

시간 공 도 여, 각 게스트 OS가 감내 수 는 능 티(penalty) 내에 리 리 스 사

극 다.

(hypervisor)는 리 커 (memory overcommit) 수 여, 맨드 징(demand[0006]

paging) 통 , 사 리 택 리클래 (reclaim) 후, 지 (page frame) 재 당

다. 당 책(static allocation policy)에 는 경우, 단 VM에게는 고 리 지

당 에, 리 사 어지므 , 동 재 당 통 여, 당 VM 사 는 리

가 리클래 여 다시 공 리 재사 숨 다.

보편 사 는 동 재 당 근(dynamic reallocation approach) , (static partitioning)보[0007]

다 수 통 (server consolidation) 가능 게 다. 그러나, 동 재 당 근 재 당

도 ‘semantic gap’에 블 징 워킹 샘 링(working set sampling) 계에

가지고 다. 루닝(ballooning)만 경우 나 상 생 VM(victim virtual machine)에게

리 시 리클래 다. 그러므 , victim VM 스 러(scheduler)에

실 어 , 시간(time quantum) 에 각 게스트 OS 리클래 차가 료 어 룬 드

라 (balloon driver) 리 당 루어 가 리 가 가 다. 라

동 재 당 근 경우, 리 재 당 료 지 시간 상당 뿐만 니라 당 CPU

시간(CPU time quantum) 리 에 비 는 재 게 다.

맨드 징(demand paging) 사 경우, 게스트 OS에 내 보 수 없는 가 어느[0008]

지 리클래 는지에 결 내 다. 그러므 러 경우 는 어 지

가 가치 없는 것 지 결 내리 가 쉽지 다.

에 , 나 상 생 VM 택 워킹 트 샘 링(working set sampling) 식[0009]

사 도 다. 그러나, 순차 근(long sequential access) 워킹 트 크 과 평가 도

여 리 크 워킹 트 크 연 계 시킬 수 다. 뿐만 니라, VM에게 당 체

리 크 , (heap) 역 캐시(buffer cache) 감 지 워킹 트 사 당

상태에 변 만 수 다는 에 어 지 가 가치 없는 것 지 결 는 것과 큰 연

계가 없다.

결 는 과

실시 는 블 근 에 거 여 리 재 당 가능 가상 신 니 시스 공 에 [0010]

다.

실시 는 리 재 당 시 리 택 가상 신 별 계산 지 가상 신 니[0011]

시스 공 에 다.

등록특허 10-1072807

- 6 -

Page 7: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

과 결 수단

실시 에 가상 신 니 시스 , 단 드웨어 갖는 컴퓨 시스 상에 복수 가상 신에 [0012]

당 리 시스 에 것 , 복수 게스트 운 체 에 당 지

캐시 사 는 지 들 고, 근에 연 지 들

순차 비순차 (partition) 는 , 순차 비순차 에 는

지 들 LRU 책에 라 리 , 순차 에 는 지 들 연 지 단

리 고, 비순차 에 는 지 지 단 리 는 리 , 복수 가상

신 간 리 재 당 여 순차 에 는 연 지 우 택 고, 택

지 리 는 가상 신 당 는 리 택 처리 포 다.

는,[0013]

게스트 운 체 캐시 리 드에 수(hypercall function) 도 여 게스트 운[0014]

체 에 당 지 들에 보 달 고,

지 들에 보에 여 복수 게스트 운 체 에 당 지 캐시 사[0015]

는 지 들 는 것 람직 다.

는,[0016]

복수 게스트 운 체 에 동 는 어 리 (application level)에 , 단 에 단 [0017]

스 근 연 지 , 지 들 순차 비순차

는 것 람직 다.

는,[0018]

각 스 지 블 가리키는 지스 값과, 각 스가 근 지 담고 는 [0019]

가 스크 블 여 캐시에 지 들에 각 스 근

순 고,

지 들에 각 스 근 순 에 여 개수 상 지 들 연[0020]

근 경우 당 지 들 순차 는 것 람직 다.

는,[0021]

순차 , 원 는 가 캐시에 재 지 경우에 근 고 는 상 어[0022]

들 I/O 리퀘스트 니 링 여 상 지 보 당 지 에

에 보 는 것 람직 다.

는,[0023]

복수 게스트 운 체 에 동 는 (file level)에 , 단 에 단 스 [0024]

근 연 지 , 지 들 순차 비순차 는 것 람직

다.

는,[0025]

사 에 근 시스 (file read/write system call) 생 경우 시스 에 포 [0026]

등록특허 10-1072807

- 7 -

Page 8: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

수 얻고,

시스 실 에 각각 스에 근 지 들 주 포 는 지 [0027]

근 보 얻고,

각 게스트 운 체 내 근 보 지 근 보 결 시 , 각 시 보가 각[0028]

게스트 운 체 내 지 들 어느 지 에 어 는지에 상 보 얻고,

상 보 여 태스크에 근 에 순차 는 것 람직 다.[0029]

는,[0030]

근 시스 에 생 수 에 보 , 리 지 주 가리키는 수[0031]

에 보 연결 여, 각 태스크 에 사 태스크 , ,

근 시 치, 근 료 치, 근 간, 리 지 주 는 블 엔트리

고,

태스크가 특 에 근 경우, 블 엔트리 여 리 지 근 연 [0032]

는 것 람직 다.

리 는,[0033]

순차 비순차 에 는 지 들 재 치가 루어지는 경우, 재 치 지 [0034]

공간에 후 재 치 수 ,

재 치 지 게스트 운 체 근 생 경우, 새 운 빈 지 당 고 [0035]

공간에 빈 지 복사 후 지 블 매 수 여

리 복원 는 것 람직 다.

리 는,[0036]

연 지 에 지 근 경우, 당 연 지 MRU 치 동시키고,[0037]

리 택 처리 는,[0038]

MRU 치에 는 연 지 가 근에 근 지 개수만큼 지 [0039]

택 는 것 람직 다.

리 는,[0040]

연 지 에 지 근 경우, 당 연 지 MRU 치 동시키고,[0041]

리 택 처리 는,[0042]

MRU 치에 는 연 지 가 근에 근 지 개수만큼 지 [0043]

택 , 개수 마진(margin) 고 마진에 포 지 가 근에 근 지

LRU 택 는 것 람직 다.

리 택 처리 는,[0044]

연 지 없는 경우, 비순차 에 는 지 에 LRU 치에 는 지 [0045]

택 는 것 람직 다.

등록특허 10-1072807

- 8 -

Page 9: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

실시 에 블 근 에 거 여 리 재 당 가능 가상 신 니 시스 공[0046]

수 다.

실시 에 리 재 당 시 리 택 가상 신 별 계산 지 가상 [0047]

신 니 시스 공 수 다.

도 간단

도 1 실시 에 가상 시스 나타낸 도 .[0048]

도 2는 실시 에 가상 신 니 시스 나타낸 도 .

도 3 실시 에 나타낸 도 .

도 4는 실시 에 리 나타낸 도 .

도 5 내지 도 8 실시 에 리 재 당 과 나타낸 도 .

도 9는 실시 에 순차 내에 생 지 택 는 나타낸 도 .

도 10 스 수 에 순차 나타낸 도 .

도 11 태스크 탐지 나타낸 도 .

실시 체 내

실시 에 상 에 실시 술 특징에 여 개략 다. 실시 술 특징[0049]

보다 공개 헌 여 도 다.

실시 술 래 헌 에는 1) “USENIX ATC 2007: Virtual Machine Memory Access[0050]

Tracing with Hypervisor Exclusive Cache” 2) ACM VEE 2009: Dynamic memory balancing for virtual

machines”가 다.

첫 째 1) 헌 경우, 리 커 (memory overcommit) 개 상 가상 신(Virtual Machine,[0051]

VM) 나 드웨어 신에 께 동 , 각각 가상 신 실 당 는 리 리 지

(physical memory page frame) 각각 가상 신에게 당 는 캐시 사 (cache size) 변경

는 술에 여 개시 어 다. 여 , 당 리 리 지 (physical memory

page frame) , 각 가상 신 캐시 겨 타 캐시

(exclusive cache) 리 고, 타 캐시에 들에 근(access) 각 가상

신 타 캐시에 실 곡 (miss ratio curve, MRC) 얻어낸다.

MRC 여 재보다 리 크 가 어들 경우, 각 가상 신 실 (miss rate) 변 고,[0052]

여 든 가상 신 실 (miss rate) 평균(geometric mean) 가 는 각 가상 신

리 크 결 다.

각 가상 신 새 운 리 당량 지 , 생 가상 신(victim VM) 타 캐시에 지 만[0053]

큼 지 수 가상 신(beneficiary VM) 당 여, 룬 드라 (balloon driver) 통

가상 신 내 에 사 도 다. , 에 지 타 캐시는 헤드 수 에 라

든 내 거 고 빈 지 원래 가상 신 돌리거나 그 에

지 다.

실시 술 특징 첫 째는, 1) 헌 술과 달리, 가 별도 캐시 역 리 지 [0054]

가상 신 별 MRC 지 고 도 블 근 (block access pattern)에 거 여

리 재 당(memory reallocation) 가능 것 다.

째 2) 헌 경우, 상술 시스 경과 동 경에 , 에 사 는 리들 [0055]

보 여 리 재 당 수 는 것 특징 다. 각 가상 신 리 에 지

등록특허 10-1072807

- 9 -

Page 10: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

폴트(page fault)가 어나도 특 보 (privilege protection 여 당 지 근

가 수 도 , LRU(least recently used) 리스트 끝 에 LRU 스 그램 얻고, 게

스트 OS 내 에 사 (swap size) 니 링(monitoring) 스 실 시 (swap) 는

리 니 링 다. LRU 스 그램 는 경우는, 리가 어들 경우 캐시 미스 카운트

(cache miss count)값 고 (swap) 는 리 크 여 늘 는 리

다.

동시에 수 는 든 가상 신에 리 늘리거나 체 지 미스 카운트[0056]

(page miss count) 는 것 고, 것 수 는 각 가상 신 리 당량 결

여 각 가상 신 리 여 지 니 늘여 지 , 각각 경우 량 결 다.

실시 술 특징 째는, 상술 2) 헌 술과 달리, 든 가상 신들 캐시(buffer[0057]

cache)만 상 당 리들 사 는 순 가지고 LRU 책 통 리 , 리

택 가상 신 별 계산 지 는 것 술 특징 다. 또 , 든 가상 신들

순차 근 지(sequentially accessed page)들 여 들 다 지들보다 생시키는 것

다.

실시 에 여 첨 도 참 여 상 게 다. 단, 첨 도 실시 내[0058]

보다 쉽게 개시 여 는 것 뿐, 본 가 첨 도 는 것 님

술 통상 지식 가진 라 게 수 것 다.

도 1 실시 에 가상 시스 나타낸 도 다. 도 2는 실시 에 가상 신 니 시스[0059]

(100) 나타낸 도 다.

실시 에 가상 신 니 시스 (100) , (110), 리 (120) 리 택 처리[0060]

(130) 포 다.

실시 에 가상 신 니 시스 (100) 는 경 , 단 드웨어(30) 상에 복수 가상 신[0061]

동 는 가상 시스 다. 각 가상 신 시에 당 리 실 리 리 량

보다 크고 보 주 가상 신 니 시스 (100) 가상 신에 리 청에 맨드(on-

demand) 각 가상 신 리 당량 다.

도 3 실시 에 (110) 나타낸 도 다.[0062]

(110)는 복수 게스트 운 체 (10, 11)에 당 지 캐시(buffer cache) 사[0063]

는 지 (page frame)들 고, 근에 연 지

들 순차 (sequential pattern) 비순차 (unclassified pattern) 수 다.

(110)가 가상 신 사 는 리들 에 캐시 사 는 지 들만 는[0064]

에는 가지 다.

첫 째 게스트 운 체 (10, 11)에 (hypercall function) 통 여 지 캐시(page[0065]

cache) 지 삽 , 삭 재사 가상 신 니 시스 (100) 직 주는 식

다.

보다 체 , 상 식 게스트 운 체 캐시 리 드에 캐시 지 가,[0066]

삭 , 재사 는 에 각각 생 었 가상 신 니 시스 (100)에게 주는

수 도 드 삽 여 게스트 운 체 수 , 시 트 생 당 지

보 달 는다. , 당 게스트 운 체 는 지 블(page table) 주 가상 주

(virtual address) 께 달 여 리 주 (physical address) 얻어 낼 수 도 다.

(110)는 지 들에 보에 여 각 게스트 운 체 에 당 지 캐시

사 는 지 다.

째 는, “ASPLOS 2006: Geiger: monitoring the buffer cache in a virtual machine[0067]

environment” 통 공개 지 수 다.

식 , 각 가상 신에 스크 (disk read)가 생 , 스 리지(storage)[0068]

등록특허 10-1072807

- 10 -

Page 11: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

어들어 캐시에 리에 복사 다. 근 는 리는 당 스 리지 캐싱

(caching) 게 는 캐시에 리 므 , 가상 신 니 시스 (100) 리 주

내어 리 게 다. 리 고 는 지 새 운 가 들어 게 (eviction) 재사

식 거나, 스크 /쓰 없 사 지 재사 는 경우에도 (eviction)

식 다.

(110)에 순차 비순차 리 여 리 는 다 과 같다.[0069]

, 실시 에 순차 만 근(access) 는 연 블 (block)( 지 ) 미 는[0070]

것 다. 순차 별 지 들 비순차 (unclassified pattern) 다.

순차 탐지는 각 가상 신에 동 는 어 리 (application) 또는 (file) 에 연[0071]

다.

, (110)는 어 리 에 순차 근 탐지 각 가상 신에 실 는 [0072]

스(process) 식별 다. 가상 신에 실 는 스 각 스 지 블 가리

키는 지스 값(Intel Architecture 경우 CR3 지스 값) 변 , 통 여 재 어

스가 리 런스(memory reference) 수 고 는지 수 다. 여 리 런스란

스가 근 내 리 쓰 또는 리 수 는 것 미 다.

(110)는 스 별 CR3 지스 값과 당 스가 근 지 담[0073]

고 는 스크 지 여 수집 고, 보에 여 각 스가 캐

시에 지 들 근 는 순 , 당 스가 근 는 스크 블 근 순

수 다. 러 근 순 에 여 개수 상 지 들 연 근 경

우 당 지 들 순차 다.

또 , (110)는 캐시에 라 는 지 근, 그리고 근 고 는 지 [0074]

원 는 담고 지 경우에 생 는 I/O 리퀘스트(request) 가상 신 니 시스 (100) 통

여 니 링 여 블 연 체크 다.

I/O 리퀘스트 니 링에 여 다 과 같다.[0075]

들어, 지 어느 게스트 운 체 (#1) 캐시에 어 다고 가 다.[0076]

그러나, 실 당 지 다 게스트 운 체 (#2)에 당 어 사 는 경우가 생 수 다.

러 경우, 당 게스트 운 체 (#1)는 신에게 당 어 다고 생각 는 지 근 것

지만, 실 당 지 에 는 다 게스트 운 체 (#2)에 것 다. 라 당

지 에는 당 게스트 운 체 (#1) 통 가 닌 다 게스트 운 체 (#2)에

가 재 , 당 게스트 운 체 (#1) 통 는 가상 신 니 시스 (100)에

체(swap) 다. 에 라, 체 (swap in/out)시 생 는 I/O 리퀘스트도 께 니 링 여

지 에 에 보 , 당 지 연 도 다.

다 , (110)가 에 순차 는 다 과 같다. 도 10 스 [0077]

수 에 순차 나타낸 도 다. 도 11 태스크 탐지

나타낸 도 다.

, 각 스 수 에 순차 는 어느 어느 치 근 는지에 [0078]

보 지 과 연결 트 상 계(event correlation) 수 다. , 사

에 시스 (read system call) 생 경우, (110)는 시스 에 포

수 얻어낼 수 다.

후에 리 근 생 당 리 주 얻어 낼 수 다. , (110)는 [0079]

시스 끝남 탐지 시스 수 에 각 스에 근 리 지

주 포 는 지 근 보 얻어 낼 수 다.

러 식 각 게스트 운 체 내 근 보 상 지 근 보 결 시 , 각[0080]

특 치 블 가 각 게스트 운 체 내 지 들 어느 지 어느

치에 어 는지에 상 보 얻 수 다.

등록특허 10-1072807

- 11 -

Page 12: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

(110)는 상 상 보 여 태스크 탐지 수 수 다. 어[0081]

느 (offset)에 당 는 보가 어느 리 지 어느 치에 어 는지 수 므

, 각 태스크가 실 어느 어느 치 근 고, 실 지 주

연 시킬 수 므 , 도 11에 도시 블과 같 보 수 다. 통 여 각 태스크 당

태스크가 근 각 에 연 탐지 수 다.

러 연 , 에 각 스 또는 스 드(thread) 등 태스크가 각각 근 는 들 내[0082]

컨 스트(context) 스크립 (file descriptor) 가지고 고, 가지도

내 상 치 비 여 단 얻어 낼 수 다.

또 , 는(110)는 근 시스 에 생 수 에 지시 는 근 상 [0083]

내 치 , 상 가 실 스크에 진 후에 치 게 는 리 지

주 연결 수 다. 여 (110)는 도 11에 도시 같 , 블 엔트리

수 다. 블 엔트리는 각 태스크 에 사 태스크 , 태스크 내 ,

근 시 치, 근 료 치, 근 간, 리 지 주 수 다. 근

시 치는 시 미 수 다. 근 료 치는 료 미 수 다.

근 간 내에 순차 근 미 수 다. 리 지 주

는 시 치 료 치 지 내 담고 는 실 지 주

미 수 다. 러 각 태스크 에 여 사 수 트가 나 블 엔트리

다. 블 엔트리 보는 엔트리 태스크 갖는 태스크가 근 에 라 ,

근 단 , 태스크가 특 순차 , 루 태 비

순차 근 다는 것 게 다. 러 식 통 수 에 근 리

지 간 근 변 수 다.

근 시스 에 생 수 에 보는 게스트 운 체 보 므 가상 신 니[0084]

시스 (hypervisor)에 는 수 없는 보 다. 그러나, 상술 같 식 , 가상 신

니 시스 에 게스트 운 체 내 각 들에 근 시 순차 또는 비순차 에

보 수 므 , 그램 측 에 보다 수 다.

실시 에 가상 신 니 시스 (100) 순차 에 지 들에 여 계 니 링[0085]

수 지만, 상 에 순차 런스 1 에 근 지 는 것 므 ,

는 헤드(overhead)는 낮다. 만 순차 루 나 타 다 근 순차

닌 것 별 경우에는 당 보 리스트에 삭 고 지 들에 보 비순차

티 (unclassified partition) 다. 또 , 순차 에 지 다 캐시 리들 비

순차 티 에 리 도 다.

도 4는 실시 에 리 (120) 나타낸 도 다.[0086]

리 (120)는 (110) 통 순차 비순차 에 는 지 들 각[0087]

각 LRU 책(Least Recently Used strategy)에 라 리 다. , 순차 여러 개 시퀀스(sequence)

, 연 지 루고, 나 연 지 나 엘리 트(element) 보고 연 지

단 리 다. 들어, 지 들 근 경우 당 연 지 체가

LRU 책에 라 MRU(Most Recently Used) 치 동 게 다.

또 , 리 (120)는 비순차 에 는 지 지 단 리 다.[0088]

LRU 책 가 래 에 근 었 연 지 에 지 들 재사 상 가 [0089]

사 리 다. , 캐시가 지 재사 지 택 ,

가 래 에 근 었 연 지 상 우 택 도 는 것 다. 또 , 리 헤

드 여, LRU 책 클 고리 (clock algorithm)과 같 다 고리 체 수 ,

실 가상 신 니 시스 에 각 연 지 나 체 시퀀스에 든 지

에 보만 담 리 도 수 다.

가상 신 니 시스 (100) 커 (overcommit) 리 재 당(reallocation) , 본[0090]

징(demand paging) 사 다. 실시 에 가상 신 니 시스 (100) 재 당 상

캐시에 리 만 여 개 고 에 는 리 리 지에

등록특허 10-1072807

- 12 -

Page 13: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

징 차 다.

각 에 는 지 들 재 치(relocation) , 재 치 지 에 어 [0091]

는 공간(permanent storage) 어 보 다. 후, 재 치 지 당

고 게스트 운 체 근 생 , 새 운 빈 지 당 고, 공간에

빈 지 복사 후, 지 블 매 수 여 리 복원

게스트 운 체 근에 답 게 다. 게스트 운 체 는 신 당 지 근 는

는 동 에는 게스트 운 체 가 당 지 가지고 다고 고 게 다. , 당 지

재 당 라도 게스트 운 체 에 는 러 사실 식 지 못 다.

재 치 지 가리키고 는 지 블 엔트리(entry) 리 주 [0092]

(invalidate) , 가상 신 니 시스 (100)만 근 갖도 지 블 엔트리에 근

변경 여 당 지 블 엔트리 근 가상 신 니 시스 (100) 도 다.

라 , 재 치 지 주 담고 지 블 엔트리에는 가상 주 에 는[0093]

리 주 값 어 다가 어 리 등에 당 지 블 엔트리가 근

리 (120)가 복원 도 당 치에 새 게 당 지 리 주 여 매

변경 다.

징 상 캐시에 리 지 들 에, 캐시에 [0094]

리에 어 가 클린 지(clean page) 경우, 원 는 스크에 미 어 는 것

어들 것 므 , 체(swapping) 과 통 지 고, 당 지가 원래 담고

치 보만 남 고 리 재사 게 다. 티 지(dirty page) 경우에

어 도, 가 어 치가 결 어 에 체 역 니라 치에

러시(flush) 보 고 사 었 리 재 다. 라 체 과 수 지

징 수 게 다.

실시 에 가상 신 니 시스 (100) , 리 재 당 게스트 운 체 에 리 리[0095]

클 (reclaim) 수 후에 리 보 는 것 니라, 게스트 운 체 개 없 게스트 운 체

여 리 직 가지고 다고 식 도 고 리 택 처리 (130)에 재사 지들

택 여 만큼 리클 (reclaim) 다. , 게스트 운 체 개 없 므 , 게스트 운 체 는

당 리 신 캐시 사 는 것 식 고 지만, 후에 당 게스트 운 체 가 당

지 근 지 는다 가상 신 니 시스 (100)에 리 재사 다고 라도 게스트 운

체 에는 런 없다. 차후에 당 지가 근 강 지 재(page fault)가 생 도

여 가상 신 니 시스 (100) 새 리에 당 캐시에 들어 다시 어드 복

고, 지 재 처리 과 끝난 후에 게스트 운 체 실 계 다. 또 , 다시 근 지

게스트 운 체 리클 책에 (eviction) 는 것 탐지 경우에도, 상술 과

동 게 통 리 보 여 게스트 운 체 가 식 지 못 도 다.

게스트 운 체 에 사 고 에도 고 재사 캐시에 어 에 보는[0096]

체 공간(swap storage)과 같 료 공간 역에 마 여 리 고, 강 지 재가

생 었 공간 역 참 여 복 다.

리 택 처리 (130)는 복수 가상 신 간 리 재 당 여 상 순차 에 는 연 [0097]

지 우 택 고, 상 택 지 리 는 가상 신

당 다.

, 순차 과 비순차 에 재 당 지 택 다 과 같다.[0098]

순차 근 블 들 다시 근 지 는 것 므 , 것 재사 라도 것[0099]

사 고 게스트 운 체 에게는 강 지 재가 생 지 므 런 주지 게 다.

라 , 순차 에 지 들 리클 고, 그 후에 비순차 에 지

들 택 다.

도 9는 실시 에 순차 내에 생 지 택 는 나타낸[0100]

도 다.

등록특허 10-1072807

- 13 -

Page 14: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

순차 에 재사 지 택 다 과 같 루어질 수 다.[0101]

각각 연 지 들 순차 에 LRU 책에 리 , 재사 지 MRU [0102]

치에 는 연 지 (901) 재사 연 지 택 다.

택 연 지 내에 재사 지 택 동 연 지 비슷 순간에[0103]

근 는 다 근(905) 여, 당 연 지 에 가 근에 근 었 블 (906) 치

MRU 치(903) 량 마진(904)에 포 블 들 가 근에 근 순 역순

개수만큼 택 다.

, 단 순차 복수 태스크에 순차 근 는 경우, 리 변경 [0104]

리클 상 지 당 순차 내 MRU 치에 택 게 , 다 태스크에

순차 근 루어지 당 리 복원 루어 다. 는 시스 능 시키는 원

므 지 , MRU 치에 개수 마진(margin) 고, 그 마진에 포 블 들

지 들 LRU 치 리클 상 지 택 나가는 것 다.

재사 연 지 에 지들 리클 경우, 다 MRU 치에 재 는 연 지[0105]

재사 연 지 택 고, 지 득 다. 연 지 에

지 없는 경우, 비순차 에 재사 지 택 수 다. , 재사 지

택 LRU 책에 여 결 수 다.

각 가상 신 는 리 다 과 같 결 수 다. [0106]

각 게스트 운 체 에 사 는 체 공간(swap storage) 가지고 결 수 다. 고스트 [0107]

(ghost buffer) 여 I/O 운드 (bound job)에 같 스크 캐시에 리

내도 여 는 병 수 다. , 각 가상 신 캐시에 미 니

링 루어지고 나, 게스트 운 체 내 에 캐시 (buffer cache eviction) 는 들

내 닌 치 에 치 등 타 보만 담 고스트 LRU 책 리 고, 당

고스트 에 당 보들 고스트 운 체 가 다시 근 는 수 탐지 여 재 근 경우, 근

보 고스트 리스트에 리스트 헤드 치 여 당 치 별 LRU 스 그램

생 여 리 다.

가상 신 니 시스 (100) LRU 스 그램 보 통 여 어느 가상 신 캐시가 얼마만큼 [0108]

리 지 는지 수 다. 고스트 는 스크 캐시 (eviction) 는 타

보만 담고 므 , 재 근 고스트 당 타 거 다.

LRU 스 그램 당 타 가 치(리스트 헤드 캐시에 가 운 쪽 )[0109]

거리에 당 는 엔트리 카운트 가시킴 얻 수 다.

도 5, 도 7, 도 8 실시 에 리 재 당 과 나타낸 도 다. 도 6 [0110]

리 재 당 과 나타낸 도 다.

첨 도 참 여 가상 신 간 리 재 당 과 다 과 같다.[0111]

우 , 도 6 참 여 리 재 당 과 다. , 리 얻 생[0112]

가상 신(victim VM)들 게스트 운 체 리클 책 실 어 리(free memory) 얻고

(601), 것 룬 드라 (balloon driver)가 당 게 (602), 룬 드라 는 리 보

리 택 처리 (130) 다(603).

가상 신 니 시스 리 보 리 얻게 수 가상 신(beneficiary V[0113]

M) 룬 드라 달 여(606) 당 룬 드라 가 게스트 운 체 가 재

지 사 도 다(605).

라 도 5에 도시 타 라 (507)에 같 생 가상 신 에 스 링[0114]

어(505) 실 후에 리 보 수 다(504).

그러나, 실시 에 , 변 징 여 리클 업 게스트 운 체 가 닌 가상 신[0115]

니 시스 (100)에 수 고(501), 보 리 루 (ballooning) 통 수 가상 신

등록특허 10-1072807

- 14 -

Page 15: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

공 다(503). 본 실시 에 는 리 스 루 (reverse-ordered ballooning) 라 지칭 다.

보다 체 , 수 가상 신 스 링 (503) 에 가상 신 니 시스 (100) 실 (501)[0116]

만 , 가상 신 니 시스 (100) 만큼 리 보 고(707) 수 가상 신

룬 드라 당 (706) 수 가상 신 스 링 는 시 룬 드라 (705)에 사

수 도 다.

에 생 가상 신 스 링과 재 당 과 직 계는 없다. 수 가상 신 재 리가[0117]

상 에 I/O 빈 게 생시키고, 블 (block) 는 경 므 , 다 가상 신들에 비

빈도 스 링 어 리 공 지 시간에 생 가상 신 수 가상 신 스 링에

지연 수 다.

리 재 당 과 료 , 게스트 운 체 리 리 보 실 리 리 당 간 [0118]

치는, 징 식과 동 게 리클 리 근 생 만 처리 거나, 게스트 운 체

리클 책 통 결 시간에 리클 수 거나, 스 시 드(threshold) 상 치 량

가 는 경우, 또는 단 시간당 리클 지 근 스 시 드 어가는 경우에 당

게스트 운 체 에 운 는 룬 드라 여 룬 드라 가 리 당 (701) 도 여, 강

리클 책 실 고, 빈 리 얻어내고(702), 룬 드라 통 가상 신

니 시스 (100) 여(703), 가상 신 니 시스 (100) 여 리 보 당 게스

트 운 체 강 지 재에 리 에 (704) 도 다.

, 도 8에 도시 같 , 룬 드라 에 시 수거(801 내지 804) 빈 리 가상 신[0119]

니 시스 (100)에 강 리클 리 체(805 내지 806) 도 여 게스트 운 체 가 고

는 리 과 가상 신 니 시스 (100)에 리 는 리 차 도 것 다.

보 리 공 는 수 가상 신 캐시 미스(buffer cache miss)에 I/O 생 수 카운[0120]

트 여, 값 시킬 수 는 값 찾거나, 사 시간에 비 캐시 미스 수가 값 상

빠 게 가 는지 니 링 여 결 , 는 캐시 미스 생 는 I/O 리퀘스트 카운트

가 헤드 없 얻 수 다. 값 찾는 것 랜 시간 상

찾 수 는 것 니므 , 미리 지 개수만큼 주는 식 통 근사 도 고, 주어진 리

가상 신 동 는 시 에 당 리 리 량 지 도 다.

실시 에 , 리 리 량보다 많 리 다수 가상 신에게 당 여 동 는 시스[0121]

에 어 , 리 다 가상 신 동시킬 시간 지연 시 수 도

, 체 시스 능 각 가상 신에 체결 어 는 SLA(service level agreement) 수

도 극 시킬 수 므 , 시스 원 도 고, 보다 수 드웨어 여 보다 많

수 가상 신 실 시킬 수 다.

상에 보는 같 , 본 는 술 당업 는 본 그 술 사상 나 수 특징[0122]

변경 지 고 다 체 태 실시 수 다는 것 수 것 다.

그러므 , 상에 술 실시 는 든 에 시 것 것 닌 것 만 [0123]

고, 본 는 상 상 보다는 후술 는 특허청 에 여 나타내어지 , 특허청

미 그리고 그 등가개 도 는 든 변경 또는 변 태가 본 에 포 는

것 어 다.

등록특허 10-1072807

- 15 -

Page 16: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

도 1

도 2

도 3

등록특허 10-1072807

- 16 -

Page 17: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

도 4

도 5

등록특허 10-1072807

- 17 -

Page 18: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

도 6

도 7

등록특허 10-1072807

- 18 -

Page 19: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

도 8

도 9

도 10

등록특허 10-1072807

- 19 -

Page 20: (19) 대한민국특허청(KR) (12) 등록특허공보(B1)core.kaist.ac.kr/~woongbak/patent/P27.pdf · 리 크기, 힙(heap) 영역 및 버퍼 캐시(buffer cache)의 작용을 감안하지

도 11

등록특허 10-1072807

- 20 -