(작성중)Libvirt/KVM/Qemu에 관하여
1. Libvirt: http://libvirt.org/
Anatomy of the libvirt virtualization library (IBM, 2010)
Libvirt는 하이퍼바이저 불가지론적인 API(hypervisor-agnostic API의 직역. 이 API로는 하이퍼바이저 밖의 일을 알 수 없기 때문에 이런 표현을 쓴 것 같음)를 제공하여 host에서 실행중인 guest OS들을 안전하게 관리할 수 있도록 한다. Libvirt 자체가 추상화의 개념하에서 만들어졌으며 하이퍼바이저가 제공하는 일반적인 기능들에 대한 공통의 API를 제공한다. Libvirt는 애초에 Xen을 관리하기 위한 API로 만들어졌으나 여러 하이퍼바이저를 지원하도록 확장되어왔으며, Redhat에서 개발했다.
기본 구조
Libvirt는 관리 프로그램에서 사용될 API들의 세트로 존재한다(아래 그림 참조). Libvirt는 API 요청을 수행하기 위해 하이퍼바이저에 특정된 메카니즘을 통해 다른 가용한 하이퍼바이저들과 통신 한다.
그림1
위 그림에서 node는 물리적인 host를 의미하고, domain은 guest OS를 의미한다. Libvirt와 여기에서 실행되는 응용프로그램들이 host의 linux OS에서 작동하고 있음을 주목하라.
제어 방식
Libvirt를 제어하는 방식에는 두 가지가 있는데, 같은 node에 있는 관리프로그램으로 제어하는 방식이 있고 remote communication을 이용하여 다른 node를 제어하는 방식이 있다. 후자의 경우 libvirtd 라는 특수한 daemon을 원격 node에서 사용한다.