Qemu为virtio设备分配了专门的pci设备ID,device IDs (vendor ID 0x1AF4) from 0x1000 through 0x10FF,而pci子系统中的厂商ID和设备ID就成为了virtio类型和厂商域的组成,所以PCI驱动是不需要知道virtio设备类型的真正含义,对于Kernel来说只是注册了一个struct virtio_device,并挂载到了virtio...
分类:
Web程序 时间:
2014-09-04 11:47:59
阅读次数:
195
Linux目前支持至少了8种虚拟化系统:
XenKVMVMware’s VMIIBM’s System pIBM’s System zUser Mode LinuxlguestIBM’s legacy iSeries
而新的系统也在不断的涌现,各个系统在网络设备、块设备、console及其它设备驱动在新特性支持和性能优化方面存在着瓶颈。
为解决这些问题,Rusty Russell...
分类:
Web程序 时间:
2014-09-04 11:47:49
阅读次数:
214
在前面的文章中在介绍virtio机制中,可以看到在通常的应用中一般使用QEMU用户态程序来模拟I/O访问,而Guest中的数据要通过Guest到Host Userspace的第一次拷贝,再经过Host
userspace的第二次拷贝,这种多次的数据拷贝和CPU特权级的切换对性能有相当大的影响。为加速virtio设备的I/O性能,VHOST通过driver的形式在Host Kernel中直接实现...
分类:
其他好文 时间:
2014-09-04 11:47:39
阅读次数:
280
在前面几文中已经大体介绍了virtio的重要组成,包括virtio net设备的创建,vring的创建,与virtio设备的交互方式,我们就从网络数据包的发送角度来看下virtio的具体使用流程。
[点击查看全文]
http://luoye.me/2014/08/09/virtio-netdev-send/...
分类:
Web程序 时间:
2014-09-04 11:47:29
阅读次数:
203
2009年的印象:曾经有过一段时间,徘徊于对虚拟机硬盘格式的迷惑中,2009年,终于得出了一些结论(下面的思路基本通用于其他虚拟机)搜了下,发现大部分用qemu或者kvm的,都默认使用qcow2来作为虚拟硬盘,但qemu官方默认是用raw。下面是qemu wiki对两种格式的描述:rawRaw di...
分类:
其他好文 时间:
2014-09-03 16:30:36
阅读次数:
234
KVM在I/O虚拟化方面,传统的方式是使用Qemu纯软件的方式来模拟I/O设备,其中包括经常使用的网卡设备。这次我们重点分析Qemu为实现网络设备虚拟化的全虚拟化方案。本主题从三个组成方面来完整描述,包括:1.
前端网络流的建立; 2. 虚拟网卡的创建; 3. 网络I/O虚拟化 in Guest OS。
本篇主要讲述“前端网络流的建立”。
[点击查看全文]
http://luoye....
分类:
Web程序 时间:
2014-09-03 13:07:56
阅读次数:
305
上文针对Qemu在前端网络流路径的建立方面做了详细的描述,数据包从Host的物理网卡经过Host Linux内核中的Bridge, 经过Tap设备到达了Qemu的用户态空间。而Qemu是如何把数据包送进Guest中的呢,这里必然要说到到虚拟网卡的建立。
当命令行传入nic相关参数时,Qemu就会解析网络相关的参数后进入虚拟网卡的创建流程。而在上文中提到对于所有-net类型的设备,都视作一个n...
分类:
Web程序 时间:
2014-09-03 13:07:36
阅读次数:
198
前面两文主要对前端网络流的数据路径和虚拟网卡的创建进行了说明,这些可以看做是Guest OS网络数据包收发的准备工作,那么网络数据包是如何在Guest OS中进进出出的呢,本文就是重点讲述Guest
OS的数据包的收发路径,其中涉及到一个重要的虚拟化技术,即I/O虚拟化。
[点击查看全文]
http://luoye.me/2014/07/26/netdev-virtual-3/...
分类:
Web程序 时间:
2014-09-03 13:07:26
阅读次数:
222
关于CPU型号的定义:libvirt对CPU的定义提炼出标准的几种类型在/usr/share/libvirt/cpu_map.xml可以查到"486","pentium","pentium2","pentiumpro","coreduo","n270","pentiumpro","qemu32","kvm32","cpu64-rhel5","cpu64-rhel5","kvm64","pentiumpro","Conroe""Penryn","Nehale..
分类:
其他好文 时间:
2014-09-01 15:53:14
阅读次数:
291
从centos6.0以来,kvm虚拟机时钟配置这里,都使用的是localtime,工作也很正常。<clockoffset=‘localtime‘>
<timername=‘rtc‘tickpolicy=‘catchup‘track=‘guest‘>
<catchupthreshold=‘123‘slew=‘120‘limit=‘10000‘/>
</timer>
<timername=‘pit‘tick..
分类:
其他好文 时间:
2014-09-01 10:52:03
阅读次数:
396