日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

libvirt简介

發(fā)布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 libvirt简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

提到KVM的管理工具,首先不得不介紹的就是大名鼎鼎的libvirt,因為libvirt是目前使用最為廣泛的對KVM虛擬機進行管理的工具和應用程序接口(API),而且一些常用的虛擬機管理工具(如virsh、virt-install、virt-manager等)和云計算框架平臺(如OpenStack、OpenNebula、Eucalyptus等)都在底層使用libvirt的應用程序接口。

libvirt是為了更方便地管理平臺虛擬化技術(shù)而設計的開放源代碼的應用程序接口、守護進程和管理工具,它不僅提供了對虛擬化客戶機的管理,也提供了對虛擬化網(wǎng)絡和存儲的管理。盡管libvirt項目最初是為Xen設計的一套API,但是目前對KVM等其他Hypervisor的支持也非常的好。libvirt支持多種虛擬化方案,既支持包括KVM、QEMU、Xen、VMware、VirtualBox等在內(nèi)的平臺虛擬化方案,又支持OpenVZ、LXC等Linux容器虛擬化系統(tǒng),還支持用戶態(tài)Linux(UML)的虛擬化。libvirt是一個免費的開源的軟件,使用的許可證是LGPL[1](GNU寬松的通用公共許可證),使用libvirt庫進行鏈接的軟件程序不需要一定選擇開源和遵守GPL許可證。和KVM、Xen等開源項目類似,libvirt也有自己的開發(fā)者社區(qū),而且隨著虛擬化、云計算等成為近年來的技術(shù)熱點,libvirt項目的社區(qū)也比較活躍。目前,libvirt的開發(fā)主要由Redhat公司作為強大的支持,由于Redhat公司在虛擬化方面逐漸偏向于支持KVM(而不是Xen),故libvirt對QEMU/KVM的支持是非常成熟和穩(wěn)定的。當然,IBM、Novell等公司以及眾多的個人開發(fā)者,對libvirt項目的代碼貢獻量也是非大的。

libvirt本身提供了一套較為穩(wěn)定的C語言應用程序接口,目前,在其他一些流行的編程語言中也提供了對libvirt的綁定,在Python、Perl、Java、Ruby、PHP、OCaml等高級編程語言中已經(jīng)有l(wèi)ibvirt的程序庫可以直接使用。libvirt還提供了為基于AMQP(高級消息隊列協(xié)議)的消息系統(tǒng)(如Apache Qpid)提供QMF代理,這可以讓云計算管理系統(tǒng)中宿主機與客戶機、客戶機與客戶機之間的消息通信變得更易于實現(xiàn)。libvirt還為安全的遠程管理虛擬客戶機提供了加密和認證等安全措施。正是由于libvirt擁有這些強大的功能和較為穩(wěn)定的應用程序接口,而且它的許可證(license)也比較寬松,libvirt的應用程序接口已被廣泛地用在基于虛擬化和云計算的解決方案中,主要作為連接底層Hypervisor和上層應用程序的一個中間適配層。

libvirt對多種不同的Hypervisor的支持是通過一種基于驅(qū)動程序的架構(gòu)來實現(xiàn)的。libvirt對不同的Hypervisor提供了不同的驅(qū)動:對Xen有Xen的驅(qū)動,對QEMU/KVM有QEMU驅(qū)動,對VMware有VMware驅(qū)動。在libvirt源代碼中,可以很容易找到qemu_driver.c、xen_driver.c、xenapi_driver.c、vmware_driver.c、vbox_driver.c這樣的驅(qū)動程序源代碼文件。

libvirt作為中間適配層,讓底層Hypervisor對上層用戶空間的管理工具是可以做到完全透明的,因為libvirt屏蔽了底層各種Hypervisor的細節(jié),為上層管理工具提供了一個統(tǒng)一的、較穩(wěn)定的接口(API)。通過libvirt,一些用戶空間管理工具可以管理各種不同的Hypervisor和上面運行的客戶機,它們之間基本的交互框架如圖1-1所示。

圖1-1 虛擬機管理工具通過libvirt管理各種類型的虛擬機

在libvirt中涉及到幾個重要的概念,解釋如下:

1. 節(jié)點(Node):一個物理機器,上面可能運行著多個虛擬客戶機。Hypervisor和Domain都運行在Node之上。

2. Hypervisor:也稱虛擬機監(jiān)控器(VMM),如KVM、Xen、VMware、Hyper-V等,是虛擬化中的一個底層軟件層,它可以虛擬化一個節(jié)點讓其運行多個虛擬客戶機(不同客戶機可能有不同的配置和操作系統(tǒng))。

3. 域(Domain):是在Hypervisor上運行的一個客戶機操作系統(tǒng)實例。域也被稱為實例(instance,如亞馬遜的AWS云計算服務中客戶機就被稱為實例)、客戶機操作系統(tǒng)(guest OS)、虛擬機(virtual machine),它們都是指同一個概念。

關(guān)于節(jié)點、Hypervisor和域的關(guān)系,可以簡單地用圖1-2來表示。

圖1-2 節(jié)點、Hypervisor和域 三者之間的關(guān)系

在了解了節(jié)點、Hypervisor和域的概念之后,用一句話概括libvirt的目標,就是:為了安全高效的管理節(jié)點上的各個域,而提供一個公共的穩(wěn)定的軟件層。當然,這里的管理,既包括本地的管理,也包含遠程的管理。具體地講,libvirt的管理功能主要包含如下五個部分:

(1)域的管理:包括對節(jié)點上的域的各個生命周期的管理,如:啟動、停止、暫停、保存、恢復和動態(tài)遷移。也包括對多種設備類型的熱插拔操作,包括:磁盤、網(wǎng)卡、內(nèi)存和CPU,當然不同的Hypervisor上對這些熱插拔的支持程度有所不同。

(2)遠程節(jié)點的管理:只要物理節(jié)點上運行了libvirtd這個守護進程,遠程的管理程序就可以連接到該節(jié)點進程管理操作,經(jīng)過認證和授權(quán)之后,所有的libvirt功能都可以被訪問和使用。libvirt支持多種網(wǎng)絡遠程傳輸類型,如SSH、TCP套接字、Unix domain socket、支持TLS的加密傳輸?shù)取<僭O使用最簡單的SSH,則不需要額外配置工作,比如:example.com節(jié)點上運行了libvirtd,而且允許SSH訪問,在遠程的某臺管理機器上就可以用如下的命令行來連接到example.com上,從而管理其上的域。

virsh -c qemu+ssh://root@example.com/system

(3)存儲的管理:任何運行了libvirtd守護進程的主機,都可以通過libvirt來管理不同類型的存儲,如:創(chuàng)建不同格式的客戶機鏡像(qcow2、raw、qde、vmdk等)、掛載NFS共享存儲系統(tǒng)、查看現(xiàn)有的LVM卷組、創(chuàng)建新的LVM卷組和邏輯卷、對磁盤設備分區(qū)、掛載iSCSI共享存儲,等等。當然libvirt中,對存儲的管理也是支持遠程管理的。

(4)網(wǎng)絡的管理:任何運行了libvirtd守護進程的主機,都可以通過libvirt來管理物理的和邏輯的網(wǎng)絡接口。包括:列出現(xiàn)有的網(wǎng)絡接口卡,配置網(wǎng)絡接口,創(chuàng)建虛擬網(wǎng)絡接口,網(wǎng)絡接口的橋接,VLAN管理,NAT網(wǎng)絡設置,為客戶機分配虛擬網(wǎng)絡接口,等等。

(5)提供一個穩(wěn)定、可靠、高效的應用程序接口(API)以便可以完成前面的4個管理功能。

libvirt主要由三個部分組成,它們分別是:應用程序編程接口(API)庫、一個守護進程(libvirtd)和一個默認命令行管理工具(virsh)。應用程序接口(API)是為了其他虛擬機管理工具(如virsh、virt-manager等)提供虛擬機管理的程序庫支持。libvirtd守護進程負責執(zhí)行對節(jié)點上的域的管理工作,在用各種工具對虛擬機進行管理之時,這個守護進程一定要處于運行狀態(tài)中,而且這個守護進程可以分為兩種:一種是root權(quán)限的libvirtd,其權(quán)限較大,可以做所有支持的管理工作;一種是普通用戶權(quán)限的libvirtd,只能做比較受限的管理工作。virsh是libvirt項目中默認的對虛擬機管理的一個命令行工具,將在2.2節(jié)中詳細介紹該工具。

總結(jié)

以上是生活随笔為你收集整理的libvirt简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。