![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
虚拟化
文章平均质量分 69
Jorhson_Deng
这个作者很懒,什么都没留下…
展开
-
【无标题】
无转载 2022-07-19 11:33:13 · 81 阅读 · 0 评论 -
libvirt线程模型分析
libvirtd启动之后,会创建一系列线程,本文就是针对libvirtd进程创建的线程进行分析:libvirtd:是libvirt的daemon进程rpc-worker:是libvirtd接收客户端发送的命令处理的线程pri-rpc-workerqemu-event:udev-event:vm-instance-000:线程,这个线程比较奇怪,每启动一个虚拟机,就会多出一个这样的线程,看名字明显是和VM的名字相关,原因是线程设定的名字只能是15个字符,所以会出现名字相同的情况。但..原创 2022-04-13 14:07:15 · 470 阅读 · 0 评论 -
关于qemu进程的一些思考
1. VM中的进程和线程是如何在物理机(宿主机)上体现的?在Qemu进程中,通过对每个vCPU创建线程,然后调用ioctl_kvm系统调用陷入VMEntry,进入到non-root模式,去执行Guest操作系统代码。从物理机视角,对每个vCPU都是一个物理机上的线程,并且在qemu的进程中。但从Guest的角度来看,进入到锈迹中之后,仍然可以创建很多进程和线程,这些进程和线程在宿主机上是如何表现的?即若虚拟机中创建一个进程,宿主机上的qemu进程中的线程数量会增加吗?答案是否定的,因为在宿主原创 2022-04-12 17:57:03 · 2244 阅读 · 0 评论 -
libvirt初始化流程分析
libvirtd daemon初始化流程比较复杂,本文对代码流程进行初步分析,可能有不对的地方,随时会进行更新和补充。总体代码流程main{remote/remote_deamon.c} | |--daemonConfigLoadFile{读取libvid.conf配置项} | |--Decided on pid file path '/usr/local/var/run/libvirtd.pid' | |--virDaemonUnixSocketPaths{获取unix对应的sock原创 2022-04-01 17:29:10 · 931 阅读 · 2 评论 -
Libvirt的job机制3--基本原理
在Job机制简介中介绍了在libvirt中调用接口时如何使用Job机制;在条件变量基本原理中介绍了条件变量的一些基本原理,这个是Job机制的基础。本文主要介绍Job机制中用到的一些函数、结构体等变量,分析其具体的原理和用法。在Job机制简介中已经介绍了Job中condition的类型:分别是asynchronous, agent and normal.参数变量定义:qemuDomainJobtypedef enum { QEMU_JOB_NONE = 0, /* Alwa原创 2022-01-22 22:06:35 · 715 阅读 · 2 评论 -
Libvirt的job机制2--条件变量基本原理
上篇介绍了libvirt中的job机制是如何使用的,在介绍job机制的原理之前,需要介绍条件变量是如何使用的,因为在libvirt中使用的job机制,是基于条件变量的。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待“条件变量的条件成立”;另一个线程使得“条件成立”(即发出条件变量)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。条件变量创建int pthread_cond_init(pthread_cond_t *cond, pthread_co原创 2022-01-22 16:12:24 · 541 阅读 · 0 评论 -
Libvirt的job机制1--Job机制简介
本文章针对libvirt job机制做了一些说明和介绍,后续会随着认识的不断增加,更新该内容!Job机制简介QEMU driver 使用三种job conditions: asynchronous, agent and normal.Async job 条件变量(condition)用于长时间运行的jobs(eg:migration),通常包含多个monitor command,允许在这些jobs运行时调用有限的monitor command sets。 这允许客户端,例如,查询统计数据(que原创 2022-01-21 17:52:46 · 701 阅读 · 0 评论 -
OpenStack云平台开启网卡多队列和多队列缓存功
开启网卡多队列功能来源为镜像的虚拟机,需要设置镜像元数据hw_vif_multiqueue_enabled=“yes” 来源为云硬盘的虚拟机,在创建系统盘时需要设置镜像的元数据hw_vif_multiqueue_enabled=“yes” 创建虚拟机成功之后,可以在XML文件中看到<interface> … queues='XXX' ….</interface>XXX是网卡多队列的个数,一般和虚...原创 2021-02-04 15:06:52 · 1945 阅读 · 0 评论