Libvirt是一個(gè)軟件集合,便于使用者管理虛擬機(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”,意味著使用virsh、virt-manager、virt-install等工具管理虛擬機(jī),這些工具都是圍繞著libvirt開發(fā)的。人們不再直接使用基于XEN的xm、或是qemu【注1】/qemu-kvm【注2】等二進(jìn)制工具。
libvirt的主要功能包括:
virsh --connect qemu+ssh://root@example.com/system
Libvirt支持的Hypervisor列表: http://libvirt.org/drivers.html
Libvirt基于GNU Lesser General Public License協(xié)議。
注1:QEMU是一種處理器模擬器,依賴于動(dòng)態(tài)二進(jìn)制翻譯機(jī)制,在易于移植至新的主機(jī)CPU架構(gòu)的同時(shí),還要獲得合理的速度響應(yīng)。除提供CPU模擬之外,它還提供了一系列設(shè)備模型,允許它運(yùn)行多種未經(jīng)修改的客戶操作系統(tǒng);因此QEMU可以被看做一個(gè)宿主虛擬機(jī)監(jiān)控軟件。它還提供了加速模式,以支持(供kernel code的)二進(jìn)制翻譯和原生執(zhí)行(供user code)的混合方式,這與VMware Workstation和Microsoft VirtualPC相同。
QEMU 也可以用作純用戶級處理的CPU模擬,在這種運(yùn)作模式下,它類似于Valgrind。
QEMU有一個(gè)特有的可移植性功能,虛擬機(jī)可以運(yùn)行在任何PC之上,即使用戶只有有限的權(quán)限,而且沒有管理員訪問權(quán)限也沒有關(guān)系,這讓“USB優(yōu)盤上的PC”這一概念變得可行。也有類似的應(yīng)用,比如MojoPac,但是它們需要管理員權(quán)限才能運(yùn)行。
注2:KVM,Kernel-based Virtual machine。KVM是一種Linux下的kernel虛擬化基礎(chǔ)結(jié)構(gòu),它自身無法進(jìn)行任何模擬。需要用戶空間的程序使用/dev/kvm接口來設(shè)置客戶虛擬機(jī)的地址空間,像其輸入I/O,并將其視頻顯示映射至主機(jī)。QEMU自0.10.0之后可以使用KVM。