本文摘自: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对象代表一个存储卷,它是可以供域使用的块存储设备;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对象)。
 

(转)libvirt API的基本概念的更多相关文章

  1. 基于python调用libvirt API

    基于python调用libvirt API 1.程序代码 #!/usr/bin/python import libvirt import sys def createConnection(): con ...

  2. 基于C语言libvirt API简单小程序

    libvirt API简单小程序 1.程序代码如下 #include<stdio.h> #include<libvirt/libvirt.h> int getDomainInf ...

  3. JAVA—API和SPI概念

    JAVA—API和SPI概念 目录 概念 JDBC实例 自己实现一个SPI 总结 概念英文: What is the difference between Service Provider Inter ...

  4. 【翻译】Flink Table Api & SQL — 流概念

    本文翻译自官网:Streaming Concepts  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/st ...

  5. 【翻译】Flink Table Api & SQL —Streaming 概念 ——动态表

    本文翻译自官网:Flink Table Api & SQL 动态表 https://ci.apache.org/projects/flink/flink-docs-release-1.9/de ...

  6. 【翻译】Flink Table Api & SQL —Streaming 概念 ——在持续查询中 Join

    本文翻译自官网 :  Joins in Continuous Queries   https://ci.apache.org/projects/flink/flink-docs-release-1.9 ...

  7. 【翻译】Flink Table Api & SQL —Streaming 概念 —— 时态表

    本文翻译自官网: Temporal Tables https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/strea ...

  8. 【翻译】Flink Table Api & SQL ——Streaming 概念

    本文翻译自官网:Streaming 概念  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streamin ...

  9. HBase的Write Ahead Log (WAL) —— API与基本概念

    HBase的数据写入操作,会先记录到HLog中,再真正写入到MemStore中.前者是对写入友好的格式,后者是对查询友好的格式.所以前者吞吐量更高,写入成功率大,提高了系统的可靠性,“基本”可以实现宕 ...

随机推荐

  1. OpenStack_Swift源代码分析——Ring的rebalance算法源代码具体分析

    1 Command类中的rebalnace方法 在上篇文章中解说了,创建Ring已经为Ring加入设备.在加入设备后须要对Ring进行平衡,平衡 swift-ring-builder object.b ...

  2. odoo10 修改产品单价的小数点位数

    odoo10 修改产品单价的小数点位数 由于产品价格原因,单价需要保留小数点后 5 位,所以需要修改单价的小数点位数. 开启开发模式 找到数据库编辑 找到小数点精度 修改产品的小数点位数

  3. 学习 Git 玩转 GitHub

    原文地址:学习 Git 玩转 GitHub 博客地址:http://www.extlight.com 一.基本了解 1.1 什么是版本控制系统 版本控制系统是一种记录一个或若干个文件内容变化,以便将来 ...

  4. eclipse git 开发操作流程

    1.eclipse git 开发操作流程 1.1流程简介 1)master主分支,当开发版本得到了充分的验证之后,才能将分支合入master,master为可产品化发布的状态. 2)develop分支 ...

  5. dos命令行连接操作ORACLE数据库

    C:\Adminstrator> sqlplus "/as sysdba" 查看是否连接到数据库 SQL> select status from v$instance; ...

  6. Unit07: MyBatis框架简介 、 MyBatis基本应用

    Unit07: MyBatis框架简介 . MyBatis基本应用 1. myBatis (1)myBatis是什么? 是一个开源的持久层框架. 注:myBatis底层仍然是jdbc. (2)编程步骤 ...

  7. Java Language Changes for Java SE 9

    Java9引入了module模块的概念,是类与接口和数据资源的一种封装,并可以声明与其他模块的依赖关系.这里总结一下Java9带来的新特性. 更简练的try-with-resources语句 fina ...

  8. GOF23设计模式之访问者模式(visitor)

    一.访问者模式概述 (1)模式动机   对于存储在一个集合中的对象,他们可能具有不同的类型(即使有一个公共的接口),对于该集合中的对象,可以接受一类称为访问者的对象来访问,不同的访问者其访问方式也有所 ...

  9. ApacheOFBiz的相关介绍以及使用总结(三)

    Ofbiz中还提供了一些基础性服务,可以直接用来使用,下面就简单介绍说明一下.   ofbiz邮件发送服务   ofbiz中提供发送邮件相关功能:sendMailFromScreen   contex ...

  10. vptr, vtable, virtual base class table

    #include <iostream> using namespace std; class X { int x, y, z; }; class Y: public virtual X { ...