Skip to main content
QUICK REVIEW

[논문 리뷰] A Generic Checkpoint-Restart Mechanism for Virtual Machines

Rohan Garg, Komal Sodha|arXiv (Cornell University)|2012. 12. 08.
Cloud Computing and Resource Management참고 문헌 9인용 수 8
한 줄 요약

이 논문은 DMTCP를 플러그인 기반 외부 체크포인팅 프레임워크로 사용하여 가상 머신을 위한 일반적인 체크포인트-재시작 메커니즘을 제안한다. 이 메커니즘은 포크 기반 체크포인팅과 mmap 기반 재시작을 통해 0.2초 이내로 빠르고 일관된 스냅샷을 가능하게 하며, 최소한의 코드 오버헤드(가상 머신 기반 KVM/QEMU에 200줄, Lguest에 40줄)를 유발한다. VM이나 DMTCP를 수정하지 않아도 되어 사용자 공간 QEMU, KVM/QEMU, Lguest 간의 호환성이 입증되었다.

ABSTRACT

It is common today to deploy complex software inside a virtual machine (VM). Snapshots provide rapid deployment, migration between hosts, dependability (fault tolerance), and security (insulating a guest VM from the host). Yet, for each virtual machine, the code for snapshots is laboriously developed on a per-VM basis. This work demonstrates a generic checkpoint-restart mechanism for virtual machines. The mechanism is based on a plugin on top of an unmodified user-space checkpoint-restart package, DMTCP. Checkpoint-restart is demonstrated for three virtual machines: Lguest, user-space QEMU, and KVM/QEMU. The plugins for Lguest and KVM/QEMU require just 200 lines of code. The Lguest kernel driver API is augmented by 40 lines of code. DMTCP checkpoints user-space QEMU without any new code. KVM/QEMU, user-space QEMU, and DMTCP need no modification. The design benefits from other DMTCP features and plugins. Experiments demonstrate checkpoint and restart in 0.2 seconds using forked checkpointing, mmap-based fast-restart, and incremental Btrfs-based snapshots.

연구 동기 및 목표

  • VM 전용 수작업 체크포인팅 솔루션의 필요성을 제거하여 일반적이고 재사용 가능한 메커니즘을 제공하기 위해.
  • 외부 사용자 공간 체크포인팅 패키지(DMTCP)를 사용하여 가상 머신의 빠르고 일관된 스냅샷을 제공하기 위해.
  • 파라바이오스라이즈드(Lguest), 포괄 가상화(KVM/QEMU), 사용자 공간(QEMU) 등 다양한 가상화 유형에 대해 최소한의 코드 변경으로 지원하기 위해.
  • DMTCP의 기존 기능을 통해 포크 기반 체크포인팅과 증분 스냅샷과 같은 고급 체크포인팅 기능을 유추하기 위해.
  • 새로운 가상 머신에 체크포인팅을 추가하는 데 드는 개발 노력의 감소를 위해, 커널 드라이버 API 가용성에 따라 5~10인일로 추정한다.

제안 방법

  • 체크포인팅 엔진으로 사용자 공간에서 동작하고 투명한 체크포인팅-재시작 패키지인 DMTCP를 핵심으로 사용한다.
  • VM 전용 커널 드라이버(예: KVM, Lguest)와의 상태 전달을 위해 DMTCP 플러그인을 활용한다.
  • 체크포인트 이미지의 증분 빠른 스냅샷을 가능하게 하기 위해 복사-시작-쓰기(Copy-on-Write) 파일시스템인 Btrfs를 사용한다.
  • 포크 기반 체크포인팅을 적용: 자식 프로세스가 체크포인팅을 수행하는 동안 부모 프로세스는 계속 실행된다.
  • 체크포인트된 메모리 이미지에서 효율적으로 VM 상태를 복원하기 위해 mmap 기반의 빠른 재시작을 사용한다.
  • 사용자 공간 QEMU의 경우 커널 드라이버 통신이 없기 때문에 DMTCP가 플러그인 없이 직접 체크포인팅한다.

실험 결과

연구 질문

  • RQ1VM이나 체크포인팅 프레임워크를 수정하지 않고도 일반적인 체크포인트-재시작 메커니즘을 가상 머신에 구축할 수 있는가?
  • RQ2외부 체크포인팅 패키지로 새로운 가상 머신에 체크포인팅을 추가하기 위해 필요한 최소한의 코드 오버헤드는 얼마인가?
  • RQ3이 메커니즘이 다양한 가상화 유형에서 얼마나 효율적으로 빠르고 일관된 스냅샷을 구현할 수 있는가?
  • RQ4포크 기반 체크포인팅과 증분 스냅샷과 같은 고급 기능이 기반 체크포인팅 시스템의 기능을 투명하게 유추할 수 있는가?
  • RQ5실제 워크로드를 실행할 때 이 메커니즘의 성능 오버헤드는 얼마나 되는가?

주요 결과

  • 포크 기반 체크포인팅과 mmap 기반의 빠른 재시작을 통해 Btrfs에서 체크포인트 및 재시작 시간이 0.2초에 도달한다.
  • nbench2 벤치마크를 실행할 때 메커니즘의 런타임 오버헤드는 측정할 수 없을 정도로 작아 거의 영향이 없는 것으로 나타났다.
  • 사용자 공간 QEMU는 커널 드라이버 구성 요소가 없기 때문에 DMTCP가 플러그인 없이 직접 체크포인팅된다.
  • KVM/QEMU와 Lguest는 각각 200줄과 40줄의 코드로 플러그인과 커널 드라이버 확장 기능을 제공하여 효율적인 상태 전달이 가능하다.
  • 완전한 커널 드라이버 API 가용성이 있는 경우 새로운 VM에 체크포인팅을 추가하는 데 드는 개발 노력은 약 5인일로 추정되며, 그렇지 않은 경우 10인일로 추정된다.
  • 이 방법은 이질적이고 분산된 체크포인팅을 지원하여 클러스터 내 VM과 바이너리 프로세스의 일관된 스냅샷을 가능하게 한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.