[[PageOutline]]
{{{
#!html
libvirt
}}}
----
= 【libvirt 介紹】 =
 * libvirt 支援各種 VMM 程序(Xen, KVM, VirtualBox, Qemu, OpenVZ, UML, LXC...),以提供統一的虛擬化上層管理介面
 * libvirt 有兩種運作模式:
   1. '''local''': 直接使用 libvirt API [[BR]] [[Image(http://www.ibm.com/developerworks/cn/linux/l-libvirt/figure1.gif)]]
   2. '''Remote''': 必須額外啟動 libvirtd 來 remote communication [[BR]] [[Image(http://www.ibm.com/developerworks/linux/library/l-libvirt/figure2.gif)]]
 * [http://libvirt.org/html/libvirt-libvirt.html libvirt API 主要可分為五種類型:]
   1. VMM 連接 API
   2. Domain 管理 API
   3. 網路管理 API
   4. Storage volume API
   5. Storage pool API
 * [http://libvirt.org/bindings.html libvirt API 支援的語言]
   * python
   * C/C++
   * Ruby
   * JAVA
   * perl
   * variety of scripting languages, and even a unified functional language (Objective caml)
 * 使用 libvirt 開發的應用
   * virt-install
   * virt-clone
   * virt-manager
   * virt-viewer
   * oVirt
----
= 【libvirt 測試】 =
== [安裝] ==
 * [http://libvirt.org/deployment.html 從 source 安裝]
{{{
$ wget http://libvirt.org/sources/libvirt-0.8.4.tar.gz ; tar zxvf libvirt-0.8.4.tar.gz ; cd libvirt-0.8.4
$ ./configure --with-xen --prefix=/usr
$ make
$ make install
}}}
   * configure 遇到缺少某套件時
{{{
$ sudo aptitude install libxml2-dev libgnutls-dev libdevmapper-dev libxen-dev
}}}
 * 從套件檔安裝
{{{
$ aptitude search libvirt
p   libvirt-bin                                        - the programs for the libvirt library                        
p   libvirt-dev                                        - development files for the libvirt library                   
p   libvirt-doc                                        - documentation for the libvirt library                       
p   libvirt-ocaml                                      - OCaml bindings for libvirt                                  
p   libvirt-ocaml-dev                                  - OCaml bindings for libvirt                                  
p   libvirt0                                           - library for interfacing with different virtualization system
p   libvirt0-dbg                                       - library for interfacing with different virtualization system
p   python-libvirt                                     - libvirt Python bindings                                     
v   python2.5-libvirt                                  -                      
}}}
== [操作] ==
 * 使用 virsh (虛擬 shell,基於 shell 的互動方式操作)
{{{
# virsh create xen-vm01.xml
(設定檔為 xml 格式)
# virsh list
# virsh suspend 1
# virsh resume 1
}}}
== [使用 API] ==
----
= 【References】 =
 * [http://libvirt.org/ libvirt 官網]
 * [http://www.ibm.com/developerworks/cn/linux/l-libvirt/ Libvirt 虛擬化庫解析]
 * [http://l10n.ubuntu.tla.ro/ubuntu-8.10/html/serverguide/zh_CN/libvirt.html Ubuntu 關於 libvirt 的介紹]
 * [http://wiki.debian.org/libvirt Debian 關於 libvirt 的介紹]
 * 安裝&配置
   * [http://bderzhavets.wordpress.com/2010/05/18/set-up-libvirt-0-7-7xen-4-0-on-top-fedora-13-rc2/ Set up Libvirt 0.7.7&Xen 4.0 Dom0 (2.6.32.13 pvops) on top of Fedora 13 RC2]
   * [http://blog.penumbra.be/2010/02/xen-libvirt-debian-lenny/ Install Xen and libvirt on Debian Lenny]
   * [http://edin.no-ip.com/content/libvirt-kvm-debian-mini-howto libvirt + KVM on Debian mini-HOWTO]
 * Xen
   * [http://blog.csdn.net/guxn25/archive/2008/05/25/2479745.aspx 基于libvirt API监测xen初探]
 * KVM
   * [http://heprc.phys.uvic.ca/sites/heprc.phys.uvic.ca/files/reports/vliet-wtr.pdf Creating and Controlling KVM Guests using libvirt]