標籤:查詢 virt 位元組 注意 除了 停用 調用 規則 alt
本文摘自:http://blog.sina.com.cn/s/blog_da4487c40102v31i.html
libvirt對象libvirt的對象向外展現了虛擬化環境的所有資源。libvirt API編程操縱的第一個對象總是virConnectPtr,它提供了到一個Hypervisor的串連。任何一個libvirt應用程式,都是從調用 virConnectOpen函數開始的,該函數的參數包含一個Hypervisor的URI,函數執行成功表示已串連到指定的Hypervisor,並返回一個代表該串連的virConnectPtr對象,通過這個對象,應用程式就可以管理它上面的域以及其它虛擬化資源。libvirt主要通過5個對象展現它的所有功能,對象之間的結構:
除了virConnectPtr對象外,virDomainPtr對象代表Hypervisor上的一個域;virNetworkPtr對象代表Hypervisor上的一個網路;virStorageVolPtr對象代表一個儲存卷,它是可以供域使用的Block Storage裝置;virStoragePoolPtr對象代表Hypervisor上的一個儲存池,它為儲存卷提供一個邏輯儲存地區。 上述對象都有以下幾種命名方法:1)name,方便使用型的標識名,但不能保證名稱在節點之間保持唯一性。2)ID, 運行時的標識名,一般為一數字,由Hypervisor為當前使用中的物件指定的名稱,只在對象存活期內有效。3)UUID,一個16位元組的唯一標識名,遵循RFC4122規範,可以確保名稱在跨節點範圍內的唯一性,並且能被長時間保持。
函數命名規範libvirt庫中的函數名稱存在一些命名規則,主要有以下幾種:1)尋找對象:[...LookupBy...]根據對象的名稱標識尋找對象,如: virDomainLookupByID virDomainLookupByName virDomainLookupByUUID virDomainLookupByUUIDString2)枚舉對象數量 [virConnectList..., virConnectNumOf...]枚舉當前串連可用對象的數量,如: virConnectListDomains virConnectNumOfDomains virConnectListNetworks virConnectListStoragePools3)擷取對象資訊 [...GetInfo]提供對象的基本資料,如: virNodeGetInfo virDomainGetInfo virStoragePoolGetInfo virStorageVolGetInfo4)訪問對象 [...Get..., ...Set...]查詢或修改指定對象的資料,如: virConnectGetType virDomainGetMaxMemory virDomainSetMemory virDomainGetVcpus virStoragePoolSetAutostart virNetworkGetBridgeName5)建立對象 [...Create, ...CreateXML]建立並啟始物件,可以通過XML描述資訊建立對象,也可以通過對象指標建立對象,如: virDomainCreate virDomainCreateXML virNetworkCreate virNetworkCreateXML6)停用對象 [...Destroy]通過關閉、停止操作使對象失效,如: virDomainDestroy virNetworkDestroy virStoragePoolDestroy 注意:有些函數返回一個對象vir*Ptr (如virDomainLookup),返回對象記憶體空間的釋放需要調用對應的vir*Free函數(如virDomainFree釋放一個virDomainPtr對象)。
(轉)libvirt API的基本概念