qemu-kvm
文章平均质量分 62
li_Jiejun
a_lijiejun@163.com
展开
-
qemu源码调试出现锁错误
调试命令行# gdb -tui --args /mnt/qemu-debug/bin/qemu-system-x86_64 -cpu host -smp 4,sockets=1,cores=4 -m 4096 -drive file=/mnt/win10.qcow2,format=qcow2 --enable-kvm -spice port=5900,ipv4,disable-ticketing,image-compression=auto_glz,jpeg-wan-compression=always原创 2022-04-13 16:35:30 · 955 阅读 · 0 评论 -
qemu时钟虚拟化
虚拟机启动参数-rtc base=localtime,driftfix=slew(gdb) bt#0 0x00005555558f3184 in mc146818_rtc_init (bus=0x555557057dd0, base_year=2000, intercept_irq=0x0) at /home/work/qemu/hw/rtc/mc146818rtc.c:981#1 0x0000555555945707 in pc_basic_device_init (pcms=0x55...原创 2022-01-11 12:10:47 · 1368 阅读 · 0 评论 -
虚拟机快照的奇招
创建虚拟机# /mnt/debug/bin/qemu-system-x86_64 -enable-kvm -vga std -m 8196 -smp 4 -cpu host -net nic,model=e1000 -net user -hda /home/centos8.img -vnc 0.0.0.0:10 -monitor stdio命令生成内存文件(qemu) migrate_set_speed 4095m(qemu) migrate "exec:cat > /mnt/STA原创 2021-03-05 17:08:50 · 231 阅读 · 0 评论 -
qemu-RCU锁
RCU (Read-Copy-Update) for synchronizationqemu进程启动后,有一个rcu的线程,用来提供读写锁的gdb) bt //rcu线程,用来提供读写锁的#0 0x00007f40799131c9 in syscall () at /lib64/libc.so.6#1 0x000055f58a9e23dd in qemu_futex_wait (f=0x55f58b3cb174 <rcu_call_ready_event>, val=4294...原创 2021-02-07 11:24:45 · 481 阅读 · 0 评论 -
Comprehensive guide to performance optimizations for gaming on virtual machines with KVM/QEMU and PC
PreambleThis guide describes performance optimizations for gaming on a virtual machine (VM) with GPU passthrough.In order to optimize the user experience for virtualized gaming, I started to pursue low latency and high performance. Especially since my转载 2020-12-09 14:30:06 · 669 阅读 · 1 评论 -
qemu源码调试
命令行:[root@node1 qemu-debug]# gdb -tui --args /usr/local/bin/qemu-system-x86_64 -name win7 -machine pc-i440fx-5.1,accel=kvm,usb=off,dump-guest-core=off -cpu IvyBridge-IBRS,+ss,+ht,+vmx,+pcid,+hypervisor,+arat,+tsc_adjust,+stibp,+ssbd,hv_time,hv_relaxed...原创 2020-10-15 15:13:07 · 817 阅读 · 0 评论 -
qemu/kvm内存预留
功能 内存预留,顾名思义,将虚拟机使用的内存在主机上预留出来,不让其它内存使用,同时也禁止主机将内存交换到swap。内存预留的虚拟机,使用的内存与正常虚机有三点不同:内核不会对这段内存执行页回收流程,因此如果虚拟机进程不退出,这段内存永远不会被释放内存一旦预留,内核将为虚机进程立即分配物理内存,因此qemu在访问这段内存时,不会发生缺页异常内存一旦预留,如果内核需要回收内存,不会将这段内存交换到swap分区开源用法libvirt配置<domain> <memory...原创 2020-07-24 16:57:31 · 652 阅读 · 0 评论 -
qemu-kvm虚拟机性能优化
在KVM虚拟机中运行mysql,发现与ESX虚拟机中比较,性能有些差。用sysbench测试KVM虚拟机中的mysql,TPS刚刚到1500级别。性能如图:使用perf命令跟踪KVM虚拟机对应的进程,情况如下:从图中可以看出,这台虚拟机的page_fault占比较高,其次是__GI__ioctl,而sys_poll虽然占比高,却无需关注,因为即使虚拟机是空闲状态,sys_poll也会...转载 2018-10-31 09:48:59 · 4049 阅读 · 0 评论 -
QEMU在main函数前对模块的初始化过程
初始化的难题QEMU中包含了大量的初始化函数,比如使用QOM模型设计的很多类(CPU、设备等都是利用QOM模型设计实现模拟的),这些类需要注册到管理类型的全局的hash表中,这个注册的过程需要在初始化函数中完成。想象一下,如果我们把这些注册过程都放到main函数里面调用,main函数中就会有非常长的一段篇幅,仅仅是用于调用大量的初始化函数,这样对于QEMU的代码维护非常不利,因此QEMU将...转载 2018-10-31 15:41:22 · 541 阅读 · 0 评论 -
qemu+kvm的IO路径分析
本文来自 网易云社区 。openstack之所以选择kvm作为底层虚拟化的主要方案,从我个人的角度分析应该与Redhat背后推动libvirt和kvm这两层组件密不可分。libvirt目前基本上已经等同于machine层虚拟化的glibc,而kvm方案随着linux一起演进加上不断在架构和性能上的优化,已经逐渐成为主流。由于kvm是基于host linux的虚拟化方案,所以在谈到kvm的i...转载 2018-11-01 11:29:05 · 565 阅读 · 0 评论 -
KVM总结-KVM性能优化之磁盘IO优化
前面讲了KVM CPU(http://blog.csdn.net/dylloveyou/article/details/71169463)、内存(http://blog.csdn.net/dylloveyou/article/details/71338378)的优化,下面接着第三块的内容,KVM磁盘性能方面的调优。磁盘IO我们可以从以下四个方面去着手优化:磁盘类型选择 缓存模式选择 AIO...转载 2018-11-01 11:30:05 · 710 阅读 · 0 评论 -
KVM总结-KVM性能优化之内存优化
我们说完CPU方面的优化(http://blog.csdn.net/dylloveyou/article/details/71169463),接着继续第二块内容,也就是内存方面的优化。内存方面有以下四个方向去着手:EPT 技术 大页和透明大页 KSM 技术 内存限制EPT技术EPT也就是扩展页表,这是intel开创的硬件辅助内存虚拟化技术。我们知道内存的使用,是一个逻辑地址跟物理地...转载 2018-11-01 12:03:47 · 1232 阅读 · 0 评论 -
KVM总结-KVM性能优化之CPU优化
前言任何平台根据场景的不同,都有相应的优化。不一样的硬件环境、网络环境,同样的一个平台,它跑出的效果也肯定不一样。就好比一辆法拉利,在高速公路里跑跟乡村街道跑,速度和激情肯定不同…所以,我们做运维工作,也是如此。首先你得充分了解你所用的软件平台,然后根据你现有的生产环境去充分的测试,最后得出结果,做最优的调整。KVM也是一样,首先要做的是充分的了解它,看看有哪些参数和设置我们可以做出调...转载 2018-11-01 12:05:16 · 1364 阅读 · 0 评论 -
KVM总结-KVM性能优化之网络性能优化
前面已经介绍了KVM CPU优化(http://blog.csdn.net/dylloveyou/article/details/71169463)、内存优化(http://blog.csdn.net/dylloveyou/article/details/71338378)、磁盘IO优化(http://blog.csdn.net/dylloveyou/article/details/7151588...转载 2018-11-01 12:06:29 · 793 阅读 · 0 评论 -
【系列分享】探索QEMU-KVM中PIO处理的奥秘
作者:Terenceli @ 360 Gear Team原文链接:https://www.anquanke.com/post/id/86400投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 我们都知道在kvm/qemu的虚拟机中向端口读写输入会陷入kvm中(绝大部分端口)。但是其具体过程是怎么样的,虚拟机、kvm和qemu这三者的关系在这个过程中又是如何相互联...转载 2018-11-09 12:20:45 · 1095 阅读 · 0 评论 -
qemu-kvm部分流程/源代码分析
接触虚拟化只有几个月,阅读qemu-kvm代码过程中,作了一点总结,画成流程图,如下(后续还会画qemu-kvm中断虚拟化,内存虚拟化等一些流程图):1. qemu-kvm相关程序图2.qemu-kvm创建的三种文件描述符:kvm_fd, vm_fd, vcpu_fd3.qemu-kvm虚拟设备创建流程4.qemu-kvm网络虚拟化...转载 2019-03-01 16:02:57 · 1280 阅读 · 3 评论 -
qemu-kvm网卡模式
全虚拟化情况下,KVM虚机可以选择的网络模式包括:默认用户模式(User); 基于网桥(Bridge)的模式; 基于NAT(Network Address Translation)的模式;分别使用的 qemu-kvm 参数为:-net user[,vlan=n]:使用用户模式网络堆栈,这样就不需要管理员权限来运行.如果没有指 定-net选项,这将是默认的情况.-net tap[,vl...原创 2019-03-12 10:13:24 · 1267 阅读 · 0 评论 -
qemu USB3.0支持
分析:主要是在qemu命令行中加入了 -device nec-usb-xhci,id=usb2,bus=pci.0,addr=0x8 这个配置项执行命令:# /usr/libexec/qemu-kvm -device helpUSB devices:name "ich9-usb-ehci1", bus PCIname "ich9-usb-ehci2", bus PCIname "...原创 2019-04-15 10:30:50 · 3069 阅读 · 0 评论 -
QEMU深入浅出: guest物理内存管理
原 文:http://blog.vmsplice.net/2016/01/qemu-internals-how-guest-physical-ram.html作 者:Stefan Hajnoczi领 域:Open source and virtualization 适宜读者:对虚拟化有一定了解背景知识:KVM,Qemu 前言:众所周知,内存是计算机系统的一个关...转载 2018-09-20 18:34:49 · 2341 阅读 · 0 评论 -
QEMU 代码分析:BIOS 的加载过程
DW原文链接QEMU 是一个广泛使用的开源计算机仿真器和虚拟机,它提供了虚拟机硬件的虚拟化功能,其使用的某些特定硬件的固件则由一些开源项目提供。本文将介绍 QEMU 代码中使用到的 BIOS,通过分析 QEMU 代码,讲解 BIOS 是如何加载到虚拟机的物理内存。 QEMU 中使用 BIOS 简介BIOS 提供主板或者显卡的固件信息以及基本输入输出功能,QEMU 使用的是一些开源的...转载 2018-09-20 18:00:16 · 2942 阅读 · 0 评论 -
KVM初始化过程
之前打算整理一下在Guest VM, KVM, QEMU中IO处理的整个流程,通过查阅资料和阅读源码,已经大致知道IO在Guest KVM中的处理流程.当想要整理IO在KVM和QEMU中的处理时,发现很难理清楚QEMU和KVM之间的跳转和交互的过程,于是促使自己去了解QEMU和KVM启动的过程.(本文展示的代码中,qemu版本为1.6.0, linux内核版本为3.7.10) 为了介绍q...转载 2018-09-26 11:41:55 · 327 阅读 · 0 评论 -
openstack hotplug-cpu
1. 首先这个功能对libvirt/qemu的版本是有要求的;2. 主要是nova的代码实现,最后调用的是libvirt的API;3. 需要修改云主机的XML文件来添加相关的属性;4. 实现功能中遇到的坑,重启后添加的cpu消失了,后面找到了原因解决了它;5. 前端界面的设计和计费功能的更新。总结:功能很好实现,要做得完美需要不停的测试。原创 2016-06-30 18:12:07 · 1003 阅读 · 3 评论 -
KVM 虚拟化原理探究— overview
#文章转载至http://www.cnblogs.com/Bozh/p/5750495.html 作者: Email:zhangbolinux@sina.comQQ:513364476写在前面的话本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验。同时希望借此系列博客,能够对KVM底层有一些清晰直观的认识,当然我没有通读KVM的源码,文中的内容一部分来自于书籍和转载 2016-12-01 22:14:43 · 617 阅读 · 0 评论 -
qemu虚拟机与外部网络的通信
为了使虚拟机能够与外界通信,Qemu需要为虚拟机提供网络设备。Qemu支持的常用网卡包括NE2000、rtl8139、pcnet32等。命令行上用-net nic为虚拟机创建虚拟机网卡转载 2016-11-30 18:18:09 · 9443 阅读 · 1 评论 -
spice性能优化
spice性能优化翻译 2017-06-10 15:39:28 · 3010 阅读 · 0 评论 -
Linux 下编译安装 QEMU
Linux 下编译安装 QEMU转载 2017-12-21 18:09:31 · 7127 阅读 · 0 评论 -
qemu-kvm磁盘读写的缓冲(cache)的五种模式
qemu-kvm磁盘读写的缓冲(cache)的五种模式qemu-kvm磁盘读写的缓冲(cache)模式一共有五种,分别是writethrough, wirteback, none, unsafe, directsync当你对VM读写磁盘的性能有不同的要求的时候,你可以在其启动的参数(cache=xxxx)里面进行一个合理的选择.现在来简单说一说这五种模式的各自的特点(默认的是writeback) ...转载 2018-05-30 18:21:29 · 664 阅读 · 0 评论 -
qemu-guest-agent命令行使用
源码位于qemu源码里面准备工作: 1. 在服务器上安装qemu-guest-agent 2. 在win7虚拟机上安装qemu-ga.exe命令行操作: 1. 修改密码 # virsh set-user-password vm4 --user root --password 123456789 2. 查看这台虚拟机支持哪些api # virsh qemu-agent-command vm4 '{...原创 2018-06-08 16:28:24 · 6224 阅读 · 0 评论 -
我见过最全的剖析QEMU原理的文章[Z]
转自:http://people.cs.nctu.edu.tw/~chenwj/dokuwiki/doku.php?id=qemu How To Become A Hacker 写给新手程序员的一封信目录建置 QEMUUser ModeSPARCPowerPCARMSystem Mode安裝系統BuildrootMonitorSnapshotNetworkTracingCross Compile...转载 2018-07-11 15:20:40 · 9403 阅读 · 0 评论 -
KVM性能优化
KVM / XenContents1 Libvirt and QEMU Performance Tweaks for KVM Guests2 virtio Block Device Driver Tweaks 2.1 virtio-blk iothreads (x-data-plane) 2.1.1 iothreads overview 2.1.2...转载 2018-08-03 11:08:37 · 1169 阅读 · 0 评论 -
qemu-kvm磁盘读写的缓冲(cache)的五种模式
原文地址:https://www.cnblogs.com/jusonalien/p/4772618.htmlqemu-kvm磁盘读写的缓冲(cache)的五种模式qemu-kvm磁盘读写的缓冲(cache)模式一共有五种,分别是writethrough, wirteback, none, unsafe, directsync当你对VM读写磁盘的性能有不同的要求的时候,你可以在其启动的参...转载 2018-08-15 11:25:29 · 2512 阅读 · 0 评论 -
虚拟机存储IO的那点事
随机IO vs 顺序IO一般90%以上的虚拟机都是随机IO模型,用户交互类应用,如桌面,Web,它们的存储IO在Hypervisor看来都是随机的,这主要是因为我们常见的文件格式如jpg, png, exe, elf一般都采用了元数据+数据的模式,应用程序经常需要来回移动文件指针读写文件中不同的部分,现代多核心多任务的操作系统会导致更多这样的并发任务,进一步加强了这种随机性。顺序IO模型的...转载 2018-09-17 18:27:46 · 3697 阅读 · 0 评论 -
利用主机端口转发实现对QEMU虚拟机的访问
作 者:郝庆丰领 域:QEMU 适宜读者:QEMU及虚拟化相关开发人员背景知识:虚拟化基础知识,QEMU基础知识正文:利用主机端口转发实现对QEMU虚拟机的访问命令选项:hostfwd详细描述:hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport该选项可以把虚拟机端口guest_port映射...转载 2018-09-20 09:51:52 · 7313 阅读 · 0 评论 -
KVM 内存虚拟化及其实现
概述KVM(Kernel Virtual Machine) , 作为开源的内核虚拟机,越来越受到 IBM,Redhat,HP,Intel 等各大公司的大力支持,基于 KVM 的开源虚拟化生态系统也日益完善。而实现 KVM 虚拟化,使客户机高效地、安全地使用宿主机的内存资源,就必须实现内存的虚拟化。客户机物理地址空间为 了实现内存虚拟化,让客户机使用一个隔离的、从零开始且具有连续的内存空...转载 2018-09-20 11:12:00 · 683 阅读 · 0 评论 -
Linux 上的基础网络设备详解
Linux 抽象网络设备简介和磁盘设备类似,Linux 用户想要使用网络功能,不能通过直接操作硬件完成,而需要直接或间接的操作一个 Linux 为我们抽象出来的设备,既通用的 Linux 网络设备来完成。一个常见的情况是,系统里装有一个硬件网卡,Linux 会在系统里为其生成一个网络设备实例,如 eth0,用户需要对 eth0 发出命令以配置或使用它了。更多的硬件会带来更多的设备实例,虚拟的硬...转载 2018-09-20 11:14:42 · 225 阅读 · 0 评论 -
使用KVM API实现Emulator Demo
原文链接:http://soulxu.github.io/blog/2014/08/11/use-kvm-api-write-emulator/这篇文章来描述如何用KVM API来写一个Virtualizer的demo code, 也就是相当与Qemu,用来做设备模拟。 此文是帮助想了解KVM原理已经Qemu原理的人 or Just for fun.完整的Code在这里: https://...转载 2018-09-20 15:38:42 · 436 阅读 · 0 评论 -
KVM虚拟机IO处理过程(一) ----Guest VM I/O 处理过程
虚拟化技术主要包含三部分内容:CPU虚拟化,内存虚拟化,设备虚拟化.本系列文章主要描述磁盘设备的虚拟化过程,包含了一个读操作的I/O请求如何从Guest Vm到其最终被处理的整个过程.本系列文章中引用到的linux内核代码版本为3.7.10,使用的虚拟化平台是KVM,qemu的版本是1.6.1. 用户程序想要访问IO设备需要调用操作系统提供的接口,即系统调用.当在用户程序中调用一个...转载 2018-09-26 11:27:34 · 967 阅读 · 0 评论 -
KVM虚拟机IO处理过程(二) ----QEMU/KVM I/O 处理过程
接着KVM虚拟机IO处理过程中Guest Vm IO处理过程(http://blog.csdn.net/dashulu/article/details/16820281),本篇文章主要描述IO从guest vm跳转到kvm和qemu后的处理过程. 首先回顾一下kvm的启动过程(http://blog.csdn.net/dashulu/article/details/17074675).q...转载 2018-09-26 11:29:10 · 1012 阅读 · 0 评论 -
Device mapper
Device mapper 基本概念 Device mapper是Linux内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略 基本原理及其构造 构造 整个device mapper机制由两部分组成--内核空间的device mapper驱动、用户空间的device mapp原创 2014-06-21 10:00:23 · 1748 阅读 · 0 评论