libvirt是一個什么工具?Libvirt是由Redhat開發的一套開源的軟件工具,目標是提供一個通用和穩定的軟件庫來高效、安全地管理一個結點上的虛擬機,并支持遠程操作。
Libvirt可便于使用者管理虛擬機和其他虛擬化功能,如存儲和網絡接口管理等。這些軟件包括一個API庫、一個daemon(Libvirtd)和一個命令行工具(Virsh)。Libvirt的主要目標是:提供一種單一的方式管理多種不同的虛擬化提供方式和Hypervisor。比如,命令行“virsh list -- all”可以列出所有任何支持的、基于Hypervisor的虛擬機,這就避免學習、使用不同Hypervisor的特定工具。
Libvirt提供了統一、穩定、開放的源代碼的應用程序接口(API)、守護進程(Libvirtd)和一個默認命令行管理工具(Virsh),提供了對虛擬化客戶機和它的虛擬化設備、網絡和存儲的管理。它還提供了一套較為穩定的C語言應用程序接口。目前,在其他一些流行的編程語言中也提供了對Libvirt的綁定,在Python、Perl、Java、Ruby、PHP、OCaml等高級編程語言中已經有Libvirt的程序庫可以直接使用。
Libvirt作為中間適配層,屏蔽了不同虛擬化的實現,提供統一管理接口。用戶只關心高層的功能,而VMM的實現細節,對于最終用戶是透明的。Libvirt就作為VMM和高層功能之間的橋梁,接收用戶請求,然后調用VMM提供的接口,來完成最終的工作。另外,Libvirt對不同的Hypervisor提供了不同的驅動,包括對Xen的驅動,對QEMU/KVM,VMware驅動等。在Libvirt源代碼中,可以很容易找到qemu_driver.c、xen_driver.c、xenapi_driver.c、VMware_driver.c、vbox_driver.c這樣的驅動程序源代碼文件。