白水煮鸡蛋

路漫漫其修远兮~~~~~~~~~~

virtio-netdev 数据包的发送

在前面几文中已经大体介绍了virtio的重要组成,包括virtio net设备的创建,vring的创建,与virtio设备的交互方式,我们就从网络数据包的发送角度来看下virtio的具体使用流程。 [点击查看全文] http://luoye.me/2014/08/09/virtio-netde...

2014-09-04 11:39:31

阅读数:1661

评论数:0

Vhost Architecture

在前面的文章中在介绍virtio机制中,可以看到在通常的应用中一般使用QEMU用户态程序来模拟I/O访问,而Guest中的数据要通过Guest到Host Userspace的第一次拷贝,再经过Host userspace的第二次拷贝,这种多次的数据拷贝和CPU特权级的切换对性能有相当大的影响。...

2014-09-04 11:38:58

阅读数:1636

评论数:0

vring的创建

KVM上设备I/O虚拟化的性能问题长期存在,此时由Rusty Russell开发的virtio引起了开发者们的注意并逐渐被KVM等虚拟化平台接纳并作为了其I/O虚拟化最主要的一个通用框架。 Virtio使用virtqueue来实现其I/O机制,每个virtqueue就是一个承载大量数据的qu...

2014-09-04 11:37:43

阅读数:865

评论数:0

virtio netdev的创建

Linux目前支持至少了8种虚拟化系统: XenKVMVMware’s VMIIBM’s System pIBM’s System zUser Mode LinuxlguestIBM’s legacy iSeries 而新的系统也在不断的涌现,各个系统在网络设备、块设备、console...

2014-09-04 11:33:32

阅读数:931

评论数:0

Guest与virtio netdev的交互方式

Qemu为virtio设备分配了专门的pci设备ID,device IDs (vendor ID 0x1AF4) from 0x1000 through 0x10FF,而pci子系统中的厂商ID和设备ID就成为了virtio类型和厂商域的组成,所以PCI驱动是不需要知道virtio设备类型的真正含...

2014-09-04 11:33:06

阅读数:1097

评论数:0

Hypercall

在Linux中,大家应该对syscall非常的了解和熟悉,其是用户态进入内核态的一种途径或者说是一种方式,完成了两个模式之间的切换;而在虚拟环境中,有没有一种类似于syscall这种方式,能够从no root模式切换到root模式呢?答案是肯定的,KVM提供了Hypercall机制,x86体系...

2014-09-04 11:29:25

阅读数:1559

评论数:0

Qemu之Network Device全虚拟方案三: I/O虚拟化

前面两文主要对前端网络流的数据路径和虚拟网卡的创建进行了说明,这些可以看做是Guest OS网络数据包收发的准备工作,那么网络数据包是如何在Guest OS中进进出出的呢,本文就是重点讲述Guest OS的数据包的收发路径,其中涉及到一个重要的虚拟化技术,即I/O虚拟化。 [点击查看全文] ...

2014-09-03 12:18:54

阅读数:1325

评论数:0

Qemu之Network Device全虚拟方案二:虚拟网卡的创建

上文针对Qemu在前端网络流路径的建立方面做了详细的描述,数据包从Host的物理网卡经过Host Linux内核中的Bridge, 经过Tap设备到达了Qemu的用户态空间。而Qemu是如何把数据包送进Guest中的呢,这里必然要说到到虚拟网卡的建立。 当命令行传入nic相关参数时,Qemu就会...

2014-09-03 12:17:13

阅读数:2942

评论数:1

Qemu之Network Device全虚拟方案一:前端网络流的建立

KVM在I/O虚拟化方面,传统的方式是使用Qemu纯软件的方式来模拟I/O设备,其中包括经常使用的网卡设备。这次我们重点分析Qemu为实现网络设备虚拟化的全虚拟化方案。本主题从三个组成方面来完整描述,包括:1. 前端网络流的建立; 2. 虚拟网卡的创建; 3. 网络I/O虚拟化 in Gues...

2014-09-03 12:15:10

阅读数:1946

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭