![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
虚拟化
文章平均质量分 62
北方南方
阿里云PolarDB数据库研发部门,有兴趣的小伙伴可以私信我~
展开
-
qemu源码编辑注意事项—暨HACKING文档翻译
1. 预处理器1.1. 变体宏对于变体宏来说,坚持使用类似C99的语法:#define DPRINTF(fmt, ...) \ do { printf("IRQ: " fmt, ## __VA_ARGS__); } while (0)1.2. include指令原创 2017-06-09 14:05:05 · 917 阅读 · 0 评论 -
qemu多线程技术的实现
1 qemy_mutex_* qemu_mutex_init –> pthread_mutex_init、qemu_mutex_destroy –> pthread_mutex_destroy、qemu_mutex_lock –> pthread_mutex_lock(如果锁被占据,则阻塞当前线程)、qemu_mutex_trylock –> pthread_mute...原创 2018-08-03 11:00:08 · 6052 阅读 · 0 评论 -
QEMU内部:整体架构和线程模型
HOST将qemu当做一个普通的进程和其他进程统一调度,可以使用资源对qemu进行资源预留隔离(cpuset)和优先级提升(chrt)。qemu进程包含多个线程,分配给GUEST的每个vcpu都对应一个vcpu线程,另外qemu还有一个线程循环执行select专门处理I/O事件。 QEMU的主要线程: 主线程(main_loop),一个 vCPU线程,一个或者多个...翻译 2018-08-07 11:47:35 · 7447 阅读 · 0 评论 -
QEMU/seaBIOS启动流程分析
1 QEMU函数执行流程 machine_init(pc_machine_init) –> pc_machine_init(void) –> 注册QEMUMachine结构体变量pc_i440fx_machine_v2_3 –> pc_init_pci –> pc_init1 –> pc_memory_init –> pc_原创 2018-08-06 17:27:44 · 8517 阅读 · 0 评论 -
KVM/QEMU2.3.0 虚拟机动态迁移分析(一)
1 迁移源端QEMUmigrate命令 –> hmp_migrate –> qmp_migrate –> qemu_savevm_state_blocked判断当前虚拟机状态适不适合迁移 –> migrate_init迁移初始化 –> 根据uri来选择迁移函数,如表1所示。 Uri 跳转函数 Tcp: tcp_start_outgoi...原创 2018-07-27 12:20:27 · 4638 阅读 · 3 评论 -
KVM/QEMU2.3.0 虚拟机动态迁移分析(三)
QEMU的函数处理流程图动态迁移的接收方原创 2018-07-30 11:40:50 · 2846 阅读 · 0 评论 -
KVM/QEMU2.3.0 虚拟机动态迁移分析(二)
QEMU的函数处理流程图原创 2018-07-28 17:27:00 · 2744 阅读 · 0 评论 -
libvirt问题之virbr0虚拟网卡启动出错
1、错误提示 root@sunshine:~/libvirt# virsh net-start default 错误:开始网络 default 失败 错误:内部错误:Failed to apply firewall rules /sbin/iptables -w –table nat –insert POSTROUTING –source 192.168.122.0/24 ‘!...原创 2018-06-19 11:16:31 · 5570 阅读 · 0 评论 -
qmp—QEMU Machine Protocol介绍
1、基于JSON(http://www.ietf.org/rfc/rfc4627.txt)的协议,便于其他应用控制QEMU2、QMP本质上是一种unix socket本地通信机制,通信内容基于JSON格式,当其他的应用成功连接qemu的QMP监听服务后,会得到一个欢迎消息(表明连接成功),具体的消息如下:{ "QMP": {"version": json-objec原创 2018-04-23 20:16:18 · 7722 阅读 · 0 评论 -
libvmi在qemu上的patch解读—kvm-qemu-v2.8-libvmi.patch
(1)打开一个UNIX socket,用于对客户机物理内存的访问。具体做法:创建在固定的端口上建立本地通信的监听服务,服务程序设置为函数memory_access_thread(……)。(2)accept连接请求,调用函数connection_handler(...)来处理请求,最后关闭连接。(3)解析请求中的数据,并根据请求数据选择具体的处理函数,一般有两个主要的任务—内存读、内存写,然后调用内...原创 2018-03-29 19:38:41 · 792 阅读 · 0 评论 -
QEMU是如何以后台进程运行的?
当使用libvirt启动QEMU后,QEMU进程便成为后台进程在运行,刚刚分析了QEMU启动的代码,将其转换为daemon进程的过程简单解释如下(QEMU-2.3.0):1 概述 QEMU在被libvirt启动的时候,可以传入一些参数来设置QEMU进程的运行状态,主要参数有:-runas指定以某个用户的权限运行虚拟机、-chroot改变当前QEMU的工作根目录、-daemoniz...原创 2018-08-23 00:17:34 · 6104 阅读 · 0 评论