libvirt, libvirt-python, libvirtd 关系浅析

libvirt 官方解释:  http://libvirt.org/

见分隔线以下。

我的理解:libvirt 作为一个中间层,封装了对下层虚拟化 hypervisor 的操作方法。也就是说,无论你是使用 kvm, 还是 xen,只要使用 libvirt 方式来操作,那操作的方法就是一样的。这些操作方法,就是 libvirt 提供的 API。

libvirt-python

我的理解:这个就是用来生成 libvirt.py 的自动化工具。将 libvirtmod.so (以及 libvirtmod_qemu.so 或其他)提供的接口转成 python 形式。

libvirtd:

以下来自:http://smilejay.com/2013/03/libvirt-configuration-and-usage/ (此博客强推)

"libvirtd 是一个作为 libvirt 虚拟化管理系统中的服务器端的守护程序,如果要让某个节点能够用 libvirt 进行管理(无论是本地还是远程管理),都需要在这个节点上运行着 libvirtd 这个守护进程,以便让其他上层管理工具可以连接到该节点,libvirtd 负责执行其他管理工具发送它的虚拟化管理操作指令。而 libvirt 的客户端工具(包括virsh、virt-manager等)可以连接到本地或远程的 libvirtd 进程,以便管理节点上的客户机(启动、关闭、重启、迁移等)、收集节点上的宿主机和客户机的配置和资源使用状态。"

以下来自:

"... 运行于远程节点上、名为 libvirtd 的特殊守护进程。当在新节点上安装 libvirt 时该程序会自动启动,且可自动确定本地虚拟机监控程序并为其安装驱动程序(稍后讨论)。该管理应用程序通过一种通用协议从本地 libvirt 连接到远程 libvirtd。对于 QEMU,协议在 QEMU 监视器处结束。QEMU 包含一个监测控制台,它允许检查运行中的来宾操作系统并控制虚拟机(VM)各部分。"

=======================================================

The virtualization API

libvirt is:

  • A toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes), see our project goals for details.
  • Free software available under the GNU Lesser General Public License.
  • A long term stable C API
  • A set of bindings for common languages
  • A CIM provider for the DMTF virtualization schema
  • A QMF agent for the AMQP/QPid messaging system
  • A technical meritocracy, in which participants gain influence over a project through recognition of their contributions.

libvirt supports:

libvirt provides:

  • Remote management using TLS encryption and x509 certificates
  • Remote management authenticating with Kerberos and SASL
  • Local access control using PolicyKit
  • Zero-conf discovery using Avahi multicast-DNS
  • Management of virtual machines, virtual networks and storage
  • Portable client API for Linux, Solaris and Windows

libvirt, libvirt-python, libvirtd 关系浅析

时间: 2024-10-12 00:22:26

libvirt, libvirt-python, libvirtd 关系浅析的相关文章

Python yield 使用浅析

Python yield 使用浅析 作者:廖 雪峰, 软件工程师, HP 2012 年 11 月 22 日 初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关键字,然而,带有 yield 的函数执行流程却和普通函数不一样,yield 到底用来做什么,为什么要设计 yield ?本文将由浅入深地讲解 yield 的概念和用法,帮助读者体会 Python 里 yield 简单而强大的功能. 您可能听说过,带有 yield 的函数在 Python 中被称之为 gen

Could not transfer artifact org.libvirt:libvirt:jar:0.4.9 from/to libvirt-org

CloudStack编译源码出现以下错误 [ERROR] Failed to execute goal on project cloud-plugin-hypervisor-kvm: Could not resolve dependencies for project org.apache.cloudstack:cloud-plugin-hypervisor-kvm:jar:4.2.0: Could not transfer artifact org.libvirt:libvirt:jar:0.

[Python网络编程]浅析守护进程后台任务的设计与实现

在做基于B/S应用中,经常有需要后台运行任务的需求,最简单比如发送邮件.在一些如防火墙,WAF等项目中,前台只是为了展示内容与各种参数配置,后台守护进程才是重头戏.所以在防火墙配置页面中可能会经常看到调用cgi,但真正做事的一般并不是cgi,比如说执行关机命令,他们的逻辑如下: (ps:上图所说的前台界面包含通常web开发中的后端,不然也没有socket一说) 为什么要这么设计 你可能疑惑为什么要这么设计,我觉得理由如下: 首先有一点说明,像防火墙等基本上都运行在类Linux平台上 1.安全问题

Python yield 使用浅析 ----以裴波那契数列生成为例

转载请注明出处,http://blog.csdn.net/suool/article/details/38388681谢谢! 之前转过一篇讲Python生成器的博文,不过觉得不是很清晰,前几天见到有讲yield的文章,感觉还不错,遂整理于此,与诸君共享.愿共同进步. 我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念. 如何生成斐波那契數列 斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到.用计算机程序

Objective-C的属性和成员变量用法及关系浅析

在使用Objective-C语言进行了一段时间的iOS开发之后,发现自己的语言基础相对薄弱,于是开始弥补自己的短处.我发现在用过一种语言之后,再回过头来看它的很多原理会发现有更加深刻的理解.下面就对一直困惑我的属性和成员变量的用法和关系问题进行浅析,由于水平有限可能会有错误,请看过文章的人多多指正. 1.属性 关于属性的用法在苹果的官方文档<The Objective-C Programming Language>中有详细的说明,在这里就不再赘述,链接如下: <The Objective

python变量内存浅析

1. Python变量 如果把单一值变量称为一维变量,把可以扩展元素的变量称为多维变量,则python的变量可以划分如下: 变量维度 Python变量 说明 一维 数字 int(有符号整型) 数字类型可以做转换 long(长整型[也可以代表八进制和十六进制]) float(浮点型) complex(复数) 字符串 字符串有丰富的运算符和内嵌函数: 有格式化输出: 二维 列表 除了元祖外,列表和字典可以灵活的扩展元素 元组 字典 2. Python变量的赋值处理 这里主要分析情况为,将原始变量赋值

【微信小程序】——rpx、px、rem等尺寸间关系浅析

最近开发微信小程序,在写样式表的时候发现用PX的效果不太理想,而官方文档用rpx来做响应式布局单位,就仔细研究了下,在此做个小总结: 这里先引用官方定义的尺寸单位'rpx':可以根据屏幕宽度进行自适应.规定屏幕宽为750rpx.如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素. 看不懂?没关系,我们接着往下看.... 日常开发中,我们常用rem.em来做响应式布局的像素单位,他们都是

几个Python字符串方法浅析

字符串提供了一系列的方法去实现复杂的文本处理任务.方法就是与特定的对象关联在一起的函数.方法调用同时进行了两次操作: 第一次:属性读取--具有object.attribute格式的表达式可以理解为"读取object对象的属性attribute的值": 第二次:函数调用表达式--具有函数(参数)格式的表达式意味着"调用函数代码,传递零或者更多用逗号隔开的参数对象,最后返回函数的返回值". 方法调用表达式对象,方法(参数)从左至右运行,也就是说Python首先读取对象方

二维数组和二级指针关系浅析

昨天写了关于一级指针的见解,即二级数组的用法和二级指针差不多,关于数组指针和指针数组这两个是不同的概念,这一点我们一定要清楚: 数组指针我们可以理解为指向数组的指针,就是一个指针: 指针数组则可以理解为数组里存的是指针,即每个储存空间上储存的是指针变量:这里储存了多个指针 一个数组可以这样定义 char a[3];分配了3个字节的内存 二维数组可以这样定义 char b[3][3];分配了3*3 即9个字节的内存 我们知道一维数组和一级指针的用法差不多,那么二级指针有和二级指针有什么关系呢? {