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