千家信息网

Libvirt概念及实现原理是什么

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章给大家介绍Libvirt概念及实现原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、Libvirt简介Libvirt是由Redhat开发的一套开源的软件工具,目
千家信息网最后更新 2025年12月02日Libvirt概念及实现原理是什么

这篇文章给大家介绍Libvirt概念及实现原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、Libvirt简介

Libvirt是由Redhat开发的一套开源的软件工具,目标是提供一个通用和稳定的软件库来高效、安全地管理一个节点上的虚拟机,并支持远程操作。它由以下的模块组成:

  • 一个库文件,实现管理接口

  • 一个守护进程(libvirtd)

  • 一个命令行工具(virsh)

基于可移植性和高可靠性的考虑,Libvirt采用C语言开发,但是也提供了对其他编程语言的绑定,包括Python,Perl,Ocaml,Ruby,Java和PHP。因此Libvirt的调用可以被集成到各种编程语言中,适应不同的环境。 Libvirt支持多种虚拟机,具体情况如下:

名称注释
LXC轻量级的Linux容器
OpenVZ基于Linux内核的轻量级Linux容器
KVM/QEMU基于Linux的类型2的VMM
Xen开源的类型1的VMM
User-mode Linux(UML)系统调用级别的Linux虚拟机
VirtualBoxOracle开发的类型2的VMM
Vmware ESX and GSXVmware虚拟化的服务器版本
Vmware Workstation and PlayerVmware虚拟化的桌面版本
Hyper-V微软开发的VMM
PowerVMIBM开发的VMM
Parallels WorkstationParallels为Mac开发的VMM
BhyveFreeBSD 9+上的VMM

二、Libvirt的结构

Libvirt屏蔽了不同虚拟化的实现,提供统一管理接口。用户只关心高层的功能,而VMM的实现细节,对于最终用户应该是透明的。Libvirt就作为VMM和高层功能之间的桥梁,接收用户请求,然后调用VMM提供的接口,来完成最终的工作。 Libvirt的层次结构如下:

为了支持多种VMM,Libvirt采用了基于驱动的架构,如图下图所示。也就是说,每种VMM需要提供一个Driver和Libvirt进行通信来操控特定的VMM。

三、Libvirt的实现

Libvirt代码里所定义的主要对象如下图所示。

  1. VirConnectPtr:代表了一个特定VMM建立的连接。每一个基于Libvirt的应用程序都应该先提供一个URI来指定本地或远程的某个VMM,从而获得一个VirConnectPtr连接。比如xen+ssh://host-virt/代表了通过ssh连接一个在host-virt机器上运行的Xen VMM。拿到virConnectPtr连接后,应用程序就可以管理这个VMM的虚拟机和对应的虚拟化资源,比如存储和网络。

  2. VirDomainPtr:代表一个虚拟机,可能是激活状态或者仅仅已定义。

  3. VirNetworkPtr:代表一个网络

  4. VirStorageVolPtr:代表一个存储卷,通常被虚拟机当做块设备使用。

  5. VirStoragePoolPtr:代表一个存储池,用来分配和管理存储卷的逻辑区域。

1、本机之间的通信'

在初始化的过程中,所有的驱动被枚举和注册。每一个驱动都会加载特定的函数为Libvirt API所调用。如下图所示,Application通过URI调用Public API,然后PublicAPI通过使用Driver提供的API接口调用正真的Driver实现。

2、远程主机之间的通信

Libvirt的目标是支持远程管理,所以到Libvirt的驱动的访问,都由Libvirt守护进程libvirtd处理,libvirtd被部署在运行虚拟机的节点上,通过RPC由对端的remote Driver管理,如下图所示。

在远程管理模式下,virConnectionPtr实际上连接了本地的remote Driver和远端的特定Driver。所有的调用都通过remote Driver先到达云端的libvirtd,libvirtd访问对应的Driver。

关于Libvirt概念及实现原理是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

管理 代表 开发 接口 存储 支持 驱动 之间 用户 类型 语言 通信 原理 不同 内容 功能 多种 容器 工具 应用程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全技能大赛中职 辽宁美领世家互联网科技有限公司 枣庄市网络安全执法典型案 河北网络技术分类创新服务 怎么查拳头账号的服务器 pcc连接什么数据库好 安全服务器上禁止使用vac 新中国邮票数据库 河南高配置服务器 手机uu服务器数据怎么看 湖南智嘉软件开发江苏扬州 北京直销软件开发 淄川办公管理软件开发公司 北京手机软件开发专业团队 大象数据库查询版本命令 e系列服务器cpu主板 雄安廊坊金蝶网络技术 广州千八互联网科技有限公司 下列不是数据库基本特征的是 查服务器工具 标本零为什么连接不了服务器 分布式服务器和端口区别 计算机网络技术大专生用吗 文件服务器框架 佛山大学招生计算机网络技术 如何创建自动更新的数据库 紫光展锐服务器cpu 怎么查网站是否安装服务器证书 公安部关于网络安全防控的意见 大学生网络安全具备哪些
0