libvirt内部原理

libvirt内部原理整体分析 Libvirt 是管理虚拟机和其他虚拟化功能,比如存储管理,网络管理的软件集合。这些软件包括一个API 库、一个daemon(libvirtd)和一个命令行工具(virsh)。 Libvirt是一个功能强大的虚拟化管理工具,它提供了一套统一的API来管理不同类型的虚拟化平台。Libvirt的开发目标是提供一个通用和稳定的抽象层,以便安全地管理节点上的虚拟机,包括可能远程的节点。Libvirt的功能涵盖了虚拟机的生命周期管理、存储管理、网络管理,以及虚拟网络的创建和监控。 在体系结构上,Libvirt包括一个守护进程libvirtd、一个API库和一个命令行工具virsh。libvirtd作为远程代理,负责本地环境的初始化并根据环境注册各种驱动(Driver),如qemu、xen、storage等。每个驱动都实现了统一的接口,这些接口可以被API调用以执行相应的虚拟化操作。例如,libvirt可以通过API调用qemu驱动来启动一个新的虚拟机。 Virsh是libvirt的命令行界面工具,它通过初始化一个连接(conn)来调用相应的驱动,解析参数,并最终调用API来完成用户请求的操作,如创建虚拟机、存储池等。这些API函数的实现在C语言中声明和定义,并且通过Python绑定暴露给Python脚本进行调用。 在内部原理方面,libvirt的工作流程可以分为以下几个步骤: 1. 初始化:创建连接conn,选择具体的驱动(Driver)来处理请求。 2. 参数解析:根据提供的参数调用特定的函数,例如启动虚拟机或创建存储池。 3. API调用:通过API来完成操作,最终这些API会调用到具体驱动实现的功能。 对于Python绑定,libvirt提供了一个Python模块,可以导入libvirt.py,并通过Python接口调用libvirtmod.so中的函数,这些函数最终调用到libvirt的C语言API。 以qemu驱动实现为例,qemu驱动接口声明在qemu_driver.c中,其中包含创建虚拟机的具体函数。该函数会经过一系列判断和计算,最终调用qemu-kvm命令来启动虚拟机。 同样地,存储驱动(StorageDriver)接口在Storage_driver.c中声明,它定义了存储池创建等操作。这些操作会调用后端实现,例如当需要操作iSCSI存储时,会调用iscsiadm命令。 从整个内容来看,Libvirt不仅支持KVM、Xen等主流虚拟化技术,而且也支持LVM、iSCSI等多种存储技术,以及提供网络虚拟化的支持。其API库允许开发人员通过统一的接口来实现各种虚拟化管理和自动化任务,无论是简单的虚拟机操作还是复杂的虚拟化策略实施。通过libvirt,用户可以在一个统一的框架下管理不同虚拟化平台,无论这些平台是运行在同一台物理机上还是分布在不同的网络节点上。



























- hogngege2015-05-04还不错啊,就是写的比较简单,如果有更详细的资料就好了

- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 大数据时代下互联网金融发展的机遇与风险应对.docx
- 三天六万平米之创造算量新神话.doc
- 信息化条件下农村综合服务体系建设问题与对策.docx
- 通信设备环境考点精讲之空调系统的水泵与冷却塔.docx
- 电子信息工程在信息化环境中的发展探讨.docx
- 建设工程施工技术资料管理培训课件(161页)2.pdf
- 实验一---网络化控制系统的构成及投运和1.doc
- 牛津英语3A优秀教案.doc
- 物流行业信息化发展现状及趋势分析.docx
- 基于android-的任务管理器的设计.doc
- 某小区工地临时用水方案.doc
- 互联网时代的信息技术.doc
- 11-楼竣工评估报告.doc
- 万科大钢模板施工方案.doc
- 消防水施工程进度计划安排表.doc
- 第11讲第6章-圆轴扭转-.ppt


