(19) 대한민국특허청(kr) (12)...
TRANSCRIPT
(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 -
(72)
우
경 남시 원 2동 708 지
웅
울 원 월계4동 500-11 8/5
등록특허 10-1072807
- 2 -
특허청
청 1
단 드웨어 갖는 컴퓨 시스 상에 복수 가상 신에 당 리 시스 에
것 ,
복수 게스트 운 체 에 당 지 캐시 사 는 지 들 고,
근에 연 상 지 들 순차 비순차 (partitio
n) 는 ;
상 순차 상 비순차 에 는 지 들 LRU 책에 라 리 , 상 순차 에
는 지 들 연 지 단 리 고, 상 비순차 에 는 지
지 단 리 는 리 ;
복수 가상 신 간 리 재 당 여 상 순차 에 는 연 지 우
택 고, 상 택 지 리 는 가상 신 당 는 리 택 처리 포
는 가상 신 니 시스 .
청 2
1 에 어 ,
상 는,
게스트 운 체 캐시 리 드에 수(hypercall function) 도 여 게스트 운
체 에 당 지 들에 보 달 고,
상 지 들에 보에 여 복수 게스트 운 체 에 당 지 캐시
사 는 지 들 는, 가상 신 니 시스 .
청 3
1 에 어 ,
상 는,
복수 게스트 운 체 에 동 는 어 리 (application level)에 , 단 에 단
스 근 연 지 , 상 지 들 순차 비순차
는, 가상 신 니 시스 .
청 4
3 에 어 ,
상 는,
각 스 지 블 가리키는 지스 값과, 각 스가 근 지 담고 는
가 스크 블 여 캐시에 지 들에 각 스 근
순 고,
상 지 들에 각 스 근 순 에 여 개수 상 지 들 연
근 경우 당 지 들 순차 는, 가상 신 니 시스 .
등록특허 10-1072807
- 3 -
청 5
4 에 어 ,
상 는,
순차 , 원 는 가 캐시에 재 지 경우에 근 고 는 상 어
들 I/O 리퀘스트 니 링 여 상 지 보 당 지 에
에 보 는, 가상 신 니 시스 .
청 6
1 에 어 ,
상 는,
복수 게스트 운 체 에 동 는 (file level)에 , 단 에 단 스
근 연 지 , 상 지 들 순차 비순차 는, 가상
신 니 시스 .
청 7
6 에 어 ,
상 는,
사 에 근 시스 (file read/write system call) 생 경우 상 시스 에 포
수 얻고,
상 시스 실 에 각각 스에 근 지 들 주 포 는 지
근 보 얻고,
각 게스트 운 체 내 근 보 상 지 근 보 결 시 , 각 특 치
블 가 각 게스트 운 체 내 지 어느 치에 어 는지에 상 보
얻고,
상 상 보 여 태스크에 근 에 연 는, 가상 신 니 시스 .
청 8
7 에 어 ,
상 는,
상 근 시스 에 생 수 에 보 , 가 리 지
주 보 연결 여, 각 태스크 에 사 태스크 , , 근 시
치, 근 료 치, 근 간, 리 지 주 는 블 엔트리 고,
태스크가 특 에 근 경우, 상 블 엔트리 여 상 리 지 근 연
는, 가상 신 니 시스 .
청 9
1 에 어 ,
상 리 는,
등록특허 10-1072807
- 4 -
상 순차 상 비순차 에 는 지 들 재 치가 루어지는 경우, 상 재 치
지 공간에 후 재 치 수 ,
상 재 치 지 게스트 운 체 근 생 경우, 새 운 빈 지 당 고
상 공간에 상 빈 지 복사 후 지 블 매 수 여
리 복원 는, 가상 신 니 시스 .
청 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 -
크 에 시간 단 는 것 니라 량 측 에 통 원 공 다. 라
순간에 리 당 는 것 시스 체 측 에 능에 역 게 다.
가상 경 어 는 (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 -
과 결 수단
실시 에 가상 신 니 시스 , 단 드웨어 갖는 컴퓨 시스 상에 복수 가상 신에 [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 -
수 얻고,
시스 실 에 각각 스에 근 지 들 주 포 는 지 [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 -
과
실시 에 블 근 에 거 여 리 재 당 가능 가상 신 니 시스 공[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 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 -
어들어 캐시에 리에 복사 다. 근 는 리는 당 스 리지 캐싱
(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 -
(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 -
징 차 다.
각 에 는 지 들 재 치(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 -
순차 에 재사 지 택 다 과 같 루어질 수 다.[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 -
공 다(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 -
도
도 1
도 2
도 3
등록특허 10-1072807
- 16 -
도 4
도 5
등록특허 10-1072807
- 17 -
도 6
도 7
등록특허 10-1072807
- 18 -
도 8
도 9
도 10
등록특허 10-1072807
- 19 -
도 11
등록특허 10-1072807
- 20 -