libvirt的东西向外展现了虚拟化环境的所有资源。libvirt API编程独霸的第一个东西总是virConnectPtr,它供给了到一个Hypervisor的连接。任何一个libvirt应用措施,都是从挪用 virConnectOpen函数开始的,该函数的参数包罗一个Hypervisor的URI,函数执行告成暗示已连接到指定的Hypervisor,并返回一个代表该连接的virConnectPtr东西,通过这个东西,应用措施就可以打点它上面的域以及其它虚拟化资源。libvirt主要通过5个东西展现它的所有成果,东西之间的布局如图所示:
除了virConnectPtr东西外,virDomainPtr东西代表Hypervisor上的一个域;virNetworkPtr东西代表Hypervisor上的一个网络;virStorageVolPtr东西代表一个存储卷,它是可以供域使用的块存储设备;virStoragePoolPtr东西代表Hypervisor上的一个存储池,它为存储卷供给一个逻辑存储区域。
上述东西都有以下几种定名要领:
1)name,用户友好型的标识名,但不能保证名称在节点之间连结独一性。
2)ID, 运行时的标识名,一般为一数字,由Hypervisor为当前勾当东西指定的名称,只在东西存活期内有效。
3)UUID,一个16字节的独一标识名,遵循RFC4122规范,可以确保名称在跨节点范畴内的独一性,并且能被永劫间连结。
函数定名规范
libvirt库中的函数名称存在一些定名法则,主要有以下几种:
1)查找东西:[...LookupBy...]
按照东西的名称标识查找东西,如:
virDomainLookupByID
virDomainLookupByName
virDomainLookupByUUID
virDomainLookupByUUIDString
2)枚举东西数量 [virConnectList..., virConnectNumOf...]
枚举当前连接可用东西的数量,如:
virConnectListDomains
virConnectNumOfDomains
virConnectListNetworks
virConnectListStoragePools
3)获取东西信息 [...GetInfo]
供给东西的根基信息,如:
virNodeGetInfo
virDomainGetInfo
virStoragePoolGetInfo
virStorageVolGetInfo
4)访谒东西 [...Get..., ...Set...]
盘问或改削指定东西的数据,如:
virConnectGetType
virDomainGetMaxMemory
virDomainSetMemory
virDomainGetVcpus
virStoragePoolSetAutostart
virNetworkGetBridgeName
5)成立东西 [...Create, ...CreateXML]
成立并启动东西,可以通过XML描述信息成立东西,也可以通过东西指针成立东西,,如:
virDomainCreate
virDomainCreateXML
virNetworkCreate
virNetworkCreateXML
6)停用东西 [...Destroy]
通过*、遏制操纵使东西掉效,如:
virDomainDestroy
virNetworkDestroy
virStoragePoolDestroy
注意:有些函数返回一个东西vir*Ptr (如virDomainLookup) ,返回东西内存空间的释放需要挪用对应的vir*Free函数(如virDomainFree释放一个virDomainPtr东西)。