본문 바로가기

Programming/General

balloon driver

balloon driver : Hypervisor 의 메모리 관리 기법중 하나


       https://theithollow.com/2012/12/26/vmware-ballooning-explained/

이 기법은 host 가 낮은 physical memory 상에서 동작할때만 유효한 기능이다. 만약 host 가 60 GB 의 physical memory 를 가지고 있고, VM 이 30GB만 alloc 한다면 이 기법은 생각할 필요가 없다.

VM 에 할당한 메모리들은 active 하게 사용되지 않는다. VMware ballooning 은 기본적으로 host 에게 메모리를 돌려달라는 요구로 구성되어 있다.

host 는 기본적으로 guest OS 들이 하는일을 모르고, guest OS 는 자신이 virtual 하다는 것을 모른다.

host 가 guest OS 로 부터 메모리를 돌려받기 위해서, balloon driver 를 사용할 필요가 있다.


       

https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/perf-vsphere-memory_management.pdf

Hypervisor 는 GuestOS의 어떤 메모리가 free list 에 있는지 모르므로, 메모리가 부족한 상황에서도 이를 host physical page로 reclaim 하지 못한다.

이때, balloon driver 가 free list 에 있는 별표 메모리 page 를 allocate 한 이후 pin 하고, 이를 hypervisor 에 알린다.

Hypervisor 는 이 메모리를 host physical memory 로 안전하게 reclaim 할 수 있다. 만약 이 pages 들이 VM 을위해 재 할당됨, Hypervisor 는 그것을 일반 VM memory 로 취급하고 VM을 위해 새로운 host physical page 를 할당 할 것이다.

후에 ballon driver 는 pin 을 deallocate 한다.



       https://searchservervirtualization.techtarget.com/definition/memory-ballooning

       https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Virtualization/3.2/html/Technical_Reference_Guide/Balloon_Driver.html

       https://www.youtube.com/watch?v=mxproh2qaU8





https://etda.libraries.psu.edu/files/final_submissions/7497

balloon driver 를 통해서 memory attack 이 성공함.

balloon driver 에 대한 security 취약성 stale data(previous data)에 접근이 가능함

'Programming > General' 카테고리의 다른 글

trace32 - set conditional breakpoint using arm register value  (0) 2019.01.30
Git 유용한 명령어들  (0) 2019.01.30
makefile(.mk) flag and blank issue  (0) 2018.01.03
개발하기 좋은 Font  (0) 2017.02.15
filesystem 용어  (0) 2016.11.29