kvm

[转帖]KVM性能测试报告

坚强是说给别人听的谎言 提交于 2020-01-17 22:52:10
KVM性能测试报告 http://openskill.cn/article/88 本测试试图找出以下问题的答案: 1. 虚拟机相对于物理机性能损失有多严重(CPU/MEM/NET/DISK) 2. 对于多个虚拟机,KVM 对资源的分配是否公正 3. 找出性能最好的物理机磁盘类型和虚拟机磁盘类型及参数 A) 物理机使用 ext4 的最优化设置 ➔ 使用 raw 磁盘的最优性能设置 ➢ cache类型 • none • writeback • writethrough ➢ 驱动类型 • ide • virtio ➔ 使用 qcow2 磁盘的最优性能设置 ➢ cache类型 • none • writeback • writethrough ➢ 驱动类型 • ide • virtio ➢ 是否preallocation ➔ 比较得出使用 ext4 的虚拟机磁盘类型最优化设置 B) 物理机使用xfs磁盘的最优化设置 ➔ 使用 raw 磁盘的最优性能设置 ➢ cache类型 1. none 2. writeback 3. writethrough ➢ 驱动类型 1. ide 2. virtio ➔ 使用 qcow2 磁盘的最优性能设置 ➢ cache类型 1. none 2. writeback 3. writethrough ➢ 驱动类型 1. ide 2. virtio ➢

Qemu/KVM虚拟机网卡TC双向限速

不打扰是莪最后的温柔 提交于 2020-01-17 00:39:04
本文档由成都征天科技有限公司天极云团队原创出品,转载请注明出处,征天科技致力于为企业和个人提供专业的云计算IaaS和PaaS层产品和服务,官网地址:www.tjiyun.com 欢迎访问。 本文档主要介绍Qemu/KVM虚拟机使用TC做网卡流量双向限速的原理和操作。 一.TC限速相关介绍 1.TC限速原理介绍 Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。 接收包从输入接口进来后,经过流量限制丢弃不符合规定的数据包,由输入多路分配器进行判断选择,如果接收包的目的主机是本主机,那么将该包送给上层处理,否则需要进行转发,将接收包交到转发块(Forwarding Block)处理。转发块同时也接收本主机上层(TCP、UDP等)产生的包,通过查看路由表,决定所处理包的下一跳。然后,对包进行排列以便将它们送到输出接口。 从以上介绍可以看出,TC只能对网卡发出的数据包做分类限制,不能对网卡接收的数据包做分类限制,但是可以对网卡接收的数据包流量做一个整体限制。因为我们项目中只需要对网卡接收的流量做整体限制,所以TC刚好可以满足我们对网卡流量双向限制的要求。 2.TC限速基本概念介绍 TC对流量的处理由三种对象控制,它们是: 队列规则 qdisc(queueing discipline) 类

通过QEMU-GuestAgent实现从外部注入写文件到KVM虚拟机内部

怎甘沉沦 提交于 2020-01-16 08:32:57
本文将以宿主上直接写文件到VM内部为例讲解为何要注入以及如何实现 目录 ▪ 为什么要“注入”到VM内部 ▪ 如何实现“注入” ▪ Step1. 为VM配置channel ▪ Step2. 部署qemu-ga ▪ Step3. 注入操作说明 ▪ Step4. Base64计算 ▪ Step5. 开始注入 ▪ 附1. qemu-ga支持的所有指令 ▪ 附2. 配置多个channel ▪ 参考文档 为什么要“注入”到VM内部 原因很简单:在VM外部无法实现,只能进入到VM内来实现 KVM不像Docker(container)只是对进程进行cgroup隔离,KVM是全封闭的环境。 对于基于KVM的虚拟机来说,通常存在如下需求: ▷ 在线修改密码 ▷ 在线增加公钥 ▷ 在线采集性能 (如cpu使用率、负载、内存使用量等性能指标) ▷ 其他各种在线功能 上述这些场景的共性:仅在VM外部是无法实现的。因此就有了多种解决方案,但无论哪种解决方案都要同时满足以下2点才能实现: ▷ 通道 :在VM内部与外部(宿主)之间打开一个通道,可以进行数据交互 ▷ agent :在VM内部种下一个agent,用于接收外部的指令并反馈结果 在VM内部种下agent的做法可以形象地称之为 "inject 注入" 如何实现“注入” 第一步,打开通道 有2类方法: ▷ 走网络 :会复杂一些,需要提前预插入一张管理网卡

qemu kvm: how to get permformance monitoring interrupt?

感情迁移 提交于 2020-01-14 14:17:31
问题 I write some function in my OS kernel to issue the performance monitoring interrupt (PMI) on instructions counter overflow. It works well on my machine (Intel core i5). But when I run it on qemu using qemu-system-x86_64 -enable-kvm -cpu host -m 256 -serial mon:stdio -cdrom var/run/hypervisor.iso the interrupt does never fire. Is there anything I am missing? Does it require any special configuration to get the PMI fired on qemu? I recall that instruction counting works well in qemu. msr

qemu kvm: how to get permformance monitoring interrupt?

北慕城南 提交于 2020-01-14 14:16:32
问题 I write some function in my OS kernel to issue the performance monitoring interrupt (PMI) on instructions counter overflow. It works well on my machine (Intel core i5). But when I run it on qemu using qemu-system-x86_64 -enable-kvm -cpu host -m 256 -serial mon:stdio -cdrom var/run/hypervisor.iso the interrupt does never fire. Is there anything I am missing? Does it require any special configuration to get the PMI fired on qemu? I recall that instruction counting works well in qemu. msr

x86 PIC, is it correct for QEMU to raise interrupts on all CPUs?

不想你离开。 提交于 2020-01-14 09:51:51
问题 I recently had to work around a proprietary OS issue with the x86 PIC where the OS expected timer interrupts ONLY on CPU0. I enabled the IO-APIC to get around this and did CPU steering so the interrupts went only to CPU0. Problem solved. I was told that our hardware is broken to do such a thing. i.e. raise timer interrupts on all CPUs when only a PIC is in use. The 'hardware' in question is QEMU/KVM. Is QEMU/KVM at fault here ? Is the OS making an invalid assumption ? My suspicion is that

How to enable VT-x in BIOS and KVM modules on Linux? [closed]

时间秒杀一切 提交于 2020-01-10 07:20:22
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 2 years ago . I have Dell Inspiron 15 5000 Series laptop containing intel core i5 6200U processor. I am using Windows 10 Home edition. It has the virtualization device and I already checked in BIOS for the virtualization, which is enabled. But in android studio I am getting this error when I run AVD manager. Enable VT-x in

KVM虚拟机克隆方式

ε祈祈猫儿з 提交于 2020-01-07 20:38:18
KVM虚拟机克隆方式 (VM虚拟机克隆方式有三种) (1)手动克隆 ** 我们用 test01 和 克隆后的 test02来演示** test01 -----------------------> test02 第一步:进入test01虚拟机的xml主配置文件目录下 复制xml文件:cp test01.xml test02.xml 第二步:进入test01虚拟机的raw磁盘文件目录下 复制磁盘文件:cp centos.raw test02.raw 第三步:修改配置文件并重新生产一个虚拟机(定义) vim test02.xml 修改名称,删除uuid,删除mac 定义虚拟机完成手动克隆 virsh define test02.xml (2)链接克隆 第一步:我们将上面的 test01 和 test02 关闭 第二步:将qcow2磁盘格式链接到 test01的raw磁盘文件,名称改为test02.qcow2 qemu-img create -f qcow2 -b centos.raw test02.qcow2 查看 qemu-img info test02.qcow2 第三步:修改 test01(修改回默认) test02(磁盘修改为链接文件qcow2) 的磁盘文件 第四步:重新定义 test01 test02 (3)完整克隆-----一步到位 第一步: virt-clone -

Hypervisor, KVM, QEMU总结

醉酒当歌 提交于 2020-01-07 20:29:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Hypervisor 概念 作用 种类 特点 多Hypervisor QEMU和KVM KVM QEMU QEMU-KVM libvirt Hypervisor 1.概念 Hypervisor——一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM( virtual machine monitor ),即虚拟机监视器。 Hypervisors是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,而且在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。 2.作用 Hypervisor是所有虚拟化技术的核心。 非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。 3.种类 目前市场上各种x86 管理程序(hypervisor)的架构存在差异,三个最主要的架构类别包括: I型:虚拟机直接运行在系统硬件上,创建硬件全仿真实例,被称为“裸机”型。 裸机型在虚拟化中Hypervisor直接管理调用硬件资源,不需要底层操作系统

在CentOS7上安装KVM虚拟化软件

家住魔仙堡 提交于 2020-01-07 18:31:27
在CentOS7上安装KVM虚拟化软件 CentOS7.6虚拟化软件: KVM是基于内核的虚拟机(Kernel-based Virtual Machine)。 QEMU软件(qemu-kvm)能够创建和管理 KVM 虚拟机。 Libvirt是一套提供了多种语言接口的API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且支持 Xen 等其它虚拟机。 Virsh是一套基于文本的管理虚拟机的命令。 Virt-manager是一套用 python 编写的虚拟机管理图形界面。 试验机器: CPU支持Intel VT 内存8GB以上 硬盘200GB以上 1.安装CentOS7.6组件 在安装操作系统时,选择Virtualization Host软件中的Virtualization Platform、Compatibilty Libraries、Development Tools、System Administration Tools; 选择GNOME Desktop软件中的GNOME Applications。 2.检查cpu的vmx支持 [root@C76 ~]# cat /proc/cpuinfo | grep vmx flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat