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 를 사용할 필요가 있다.
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://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 |