LightVM

My VM is lighter than your container

Container

그래, 컨테이너는 Efficient 해!

  • Fast Instantiation (ms)

  • Small Footprint (MB)

  • High Density (1000s)

하지만, VM 보다는 덜 고립적이잖니? Container 는 single kernel 를 공유하잖니.

그래서, 이 논문은 LightVM 을 제안한다!! VM 이지만,

  • Faster Booting ! - 도커씌보다 two orders of magnitude 정도 빠르곳!

  • 수천개의 LightVM 들이 함께 수행될 수 있지!

이 LightVM 은 Xen 기반으로 설계되어있어!

그럼 다시! 컨테이너에는 Security 이슈가 항상 있잖아! 다시 되짚어보자구!

Security Issue in Container

  1. System Call API : Container 의 시스템콜이 400개가 넘어! (여러개의 매개변수가 있고, 함수들이 겹치지) 이거는 가장 간단한 X86 ABI VM 보다 보안을 확보하는 것이 어려울듯하다.

  2. Performance Isolation : Container 는 자원을 독점할 수 있어.

그래서 본 연구자들은 Container냐, Security냐 갈등하면서, 생각한거야, "과연 효율적인 Container 를 위해서는 수많은 System Call 이 필요한데, 안전하면서도 현재 Container 보다 더 민첩한 가상화 기술을 만들 수 있을까? 그래서 우리가 집중하고자 하는 목표를 설정했지! 빠밤!

Requirements for Lightweight Virtualization

  1. Fast Instantiation : 일단 기존 VM 은 초기화되는데 몇 초가 걸렸잖아 (Container 가 몇 milliseconds에 비해서) 빠른 초기화 시간을 목표로 하자공 ~

  2. High Instance Density : 수천개의 Container 들이 한 Host 에서 실행될 수 있는 것에 반해서 Linux VM 은 적게는 MB ~ GB 까지 메모리 사용량 (memory footprint) 가 있어서 문제였잖아. memory footprint 를 줄여보자 그러면 많은 VM 도 돌릴 수 있을 뿐만 아니라, instantiation 시간도 감소시킬 꺼야.

  3. Can be paused and unpaused : 컨테이너도 Freeze 기능이 있는 것처럼 중단/재시작 기능을 구현하자 그러면, CPU 를 효율적으로 사용하고, Density 도 높일 수 있을꺼야,

그래서 LightVM의 Approach는 !!! Image Size 와 Footprint 를 줄이는 거야! Disk 로부터 읽는 이미지 사이즈가 적으면 더 빨리 부팅되겠지? VM 이 Application 을 실행하는데 필요한 것만 포함시키도록 하자궁~!

Reduce image size and footprint (Large size slows down everything!)

  • Unikernel : 우리가 계속 사이즈를 줄이자고 했잖아?! Unikernel 은 Minimal OS 로 단 하나의 어플리케이션만 실행시키지 (ex. 3MB RAM, 40KM image)

    • Minimal OS linked with target application

  • Build System (Tinyx) : App 을 돌리기 위한 tiny Linux

    • build Linux VC that includes the minmal Linux distribution, app, dependencies (lib)

Tinyx

Build image automatically that uses Linux API

  • minimalistic to run a single application

  • It is a middle point between

    • special unikernel VM : Best speed but app needs to be ported to the unikernel (ClickOS) : so cumbersome and need expertise

    • General purpose OS VM : Support many apps but performance overhead

Tinyx Inputs

  • nginx 와 같은 어플리케이션을 빌드하기 위한 이미지

  • image 가 실행될 Xen 과 같은 platform

3가지 VM 을 비교해본 결과,

주요 오버헤드는

  • XenStore

  • Device Creation

LightVM Architecture

Last updated