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