libvirt_python

一、Connections

连接函数接口
libvirt.open(name);                   //可读写方式连接上QEMU 参数说明: name:连接名称
libvirt.openAuth(uri, auth, flags);          //认证方式连接上QEMU      参数说明: uri:连接到Hypervisor的入口地址
libvirt.openReadOnly(name)               //可读方式连接上QEMU          


# Example-1.py from __future__ import print_function import sys import libvirt conn = libvirt.open('qemu:///system')                            //可读写方式连接上hypervisor(QEMU) if conn == None:   print('Failed to open connection to qemu:///system', file=sys.stderr) exit(1) conn.close() exit(0) # Example-2.py from __future__ import print_function import sys import libvirt conn = libvirt.openReadOnly('qemu:///system')                      //只读方式连接上hypervisor(QEMU)                                                               if conn == None:   print('Failed to open connection to qemu:///system', file=sys.stderr) exit(1) conn.close() exit(0) # Example-3.py from __future__ import print_function import sys import libvirt SASL_USER = "my-super-user" SASL_PASS = "my-super-pass" def request_cred(credentials, user_data):   for credential in credentials:     if credential[0] == libvirt.VIR_CRED_AUTHNAME:       credential[4] = SASL_USER     elif credential[0] == libvirt.VIR_CRED_PASSPHRASE:       credential[4] = SASL_PASS   return 0 auth = [[libvirt.VIR_CRED_AUTHNAME, libvirt.VIR_CRED_PASSPHRASE], request_cred, None] conn = libvirt.openAuth('qemu+tcp://localhost/system', auth, 0) if conn == None:   print('Failed to open connection to qemu+tcp://localhost/system', file=sys.stderr) exit(1) conn.close()

二、Host information

 

getHostname                    //获取主机名
getMaxVcpus                    //获取支持最大虚拟cpu个数
getInfo     //获取主机内存,CPU 相关信息    **以列表形式存储(list[7])存储8个值 list[0]:cpu平台(x86_64/i382);list[1]:主机内存大小;list[2]:CPU个数;list[3]:CPU频率;list[4]:NUMA节点个数;list[5]:CPU sockets 个数;list[6]:CPU核数;list[7]:CPU超线程核数
MemberDescription     
list[0]CPU平台
list[1] 主机内存大小
list[2]CPU个数
list[3]CPU频率
list[4]NUMA节点个数
list[5]CPU Sockets 个数
list[6]CPU核数
list[7]CPU超线程核数





                      






getCellsFreeMemory            //每个节点(如 NUMA 节点)空闲内存大小 getType                  //获取虚拟化平台类型 getVersion                //获取版本号 **版本号计算方法:Versions numbers are integers: 1000000*major + 1000*minor + release. getLibVersion              //获取libvirt 版本号         getURI                   //获取 libvirt 连接URI 地址              isEncrypted              //检测连接方式是否加密 isSecure                //检测连接是否安全 isAlive                 //检测是否是连接状态 compareCPU              //设定CPU模式与主机CPU进行对比 getFreeMemory            //返回空间节点内存大小(设定CPU与主机CPU对比之后)       getFreePages            //获取指定空闲页表大小 getMemoryParameters        //获取内存参数类型 getMemoryStats            //获取节点内存统计信息 getSecurityModel          //获取当前使用的安全模型 getSysinfo              getCPUMap              //获取主机节点CPU的CPU映射 getCPUStats             //获取CPU统计信息 getCPUModelNames          //获取与CPU体系结构匹配的名称列表
# Example
-9.py from __future__ import print_function import sys import libvirt conn = libvirt.open('qemu:///system') if conn == None:   print('Failed to open connection to qemu:///system', file=sys.stderr)   exit(1) host = conn.getHostname() print('Hostname:'+host) vcpus = conn.getMaxVcpus(None) print('Maximum support virtual CPUs: '+str(vcpus)) nodeinfo = conn.getInfo() print('Model: '+str(nodeinfo[0])) print('Memory size: '+str(nodeinfo[1])+'MB') print('Number of CPUs: '+str(nodeinfo[2])) print('MHz of CPUs: '+str(nodeinfo[3])) print('Number of NUMA nodes: '+str(nodeinfo[4])) print('Number of CPU sockets: '+str(nodeinfo[5])) print('Number of CPU cores per socket: '+str(nodeinfo[6])) print('Number of CPU threads per core: '+str(nodeinfo[7])) nodeinfo = conn.getInfo() numnodes = nodeinfo[4] memlist = conn.getCellsFreeMemory(0, numnodes) cell = 0 for cellfreemem in memlist:   print('Node '+str(cell)+': '+str(cellfreemem)+' bytes free memory')   cell += 1 print('Virtualization type: '+conn.getType()) print('Version: '+str(conn.getVersion())) print('Libvirt Version: '+str(conn.getLibVersion())); print('Canonical URI: '+conn.getURI()) print('Connection is encrypted: '+str(conn.isEncrypted())) print('Connection is secure: '+str(conn.isSecure())) print("Connection is alive = " + str(conn.isAlive())) xml = '<cpu mode="custom" match="exact">' + \ '<model fallback="forbid">kvm64</model>' + \ '</cpu>' retc = conn.compareCPU(xml) if retc == libvirt.VIR_CPU_COMPARE_ERROR:   print("CPUs are not the same or ther was error.") elif retc == libvirt.VIR_CPU_COMPARE_INCOMPATIBLE:   print("CPUs are incompatible.") elif retc == libvirt.VIR_CPU_COMPARE_IDENTICAL:   print("CPUs are identical.") elif retc == libvirt.VIR_CPU_COMPARE_SUPERSET:   print("The host CPU is better than the one specified.") else:   print("An Unknown return code was emitted.") print("Free memory on the node (host) is " + str(conn.getFreeMemory()) + " bytes.") pages = [2048] start = 0 cellcount = 4 buf = conn.getFreePages(pages, start, cellcount) i = 0 for page in buf:   print("Page Size: " + str(pages[i]) + " Available pages: " + str(page))   ++i buf = conn.getMemoryParameters() for parm in buf:   print(parm) buf = conn.getMemoryStats(libvirt.VIR_NODE_MEMORY_STATS_ALL_CELLS) for parm in buf:   print(parm) model = conn.getSecurityModel() print(model[0] + " " + model[1]) xmlInfo = conn.getSysinfo() print(xmlInfo) map = conn.getCPUMap() print("CPUs: " + str(map[0])) print("Available: " + str(map[1])) stats = conn.getCPUStats(0) print("kernel: " + str(stats['kernel'])) print("idle: " + str(stats['idle'])) print("user: " + str(stats['user'])) print("iowait: " + str(stats['iowait'])) models = conn.getCPUModelNames('x86_64') for model in models:   print(model) conn.close() exit(0)

三、Guest Domains

 

转载于:https://www.cnblogs.com/jiejunwang/p/9232575.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值