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