白水煮鸡蛋

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

KVM,QEMU核心分析

目前正在学习虚拟化软件KVM相关运行原理、过程,对源码的分析进行了总结,只是为了学习交流使用,若有不正确的地方,希望大家提出。 总入口:我的个人blog  文章列表 1. kvm安装与启动过程说明 2. kvm安装与启动过程说明-Kernel源码编译方式 3. KVM硬件辅助虚拟化之 ...

2014-07-16 13:12:34

阅读数:4348

评论数:2

virtio-netdev 数据包的发送

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

2014-09-04 11:39:31

阅读数:1615

评论数:0

Vhost Architecture

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

2014-09-04 11:38:58

阅读数:1608

评论数:0

vring的创建

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

2014-09-04 11:37:43

阅读数:848

评论数: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

阅读数:917

评论数: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

阅读数:1088

评论数:0

Hypercall

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

2014-09-04 11:29:25

阅读数:1466

评论数:0

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

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

2014-09-03 12:18:54

阅读数:1303

评论数:0

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

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

2014-09-03 12:17:13

阅读数:2815

评论数:1

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

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

2014-09-03 12:15:10

阅读数:1895

评论数:0

KVM Run Process之KVM核心流程

在“KVM Run Process之Qemu核心流程”一文中讲到Qemu通过KVM_RUN调用KVM提供的API发起KVM的启动,从这里进入到了内核空间运行,本文主要讲述内核中KVM关于VM运行的核心调用流程,所使用的内核版本为linux3.15。 [点击查看全文] http://luoye....

2014-08-31 18:04:50

阅读数:1077

评论数:0

KVM Run Process之Qemu核心流程

在前文中,介绍了在KVM环境下使用Qemu成功创建并运行了虚拟机,而这一切的背后是什么样的运作机制呢?本文主要介绍在整个创建和运行过程中Qemu与KVM里两者的核心运行流程。 [点击查看全文] http://luoye.me/2014/07/12/KVM-RUN-PROCESS/

2014-08-31 18:02:41

阅读数:910

评论数:0

KVM-Introduce

相信很多的人对虚拟机并不陌生,目前也有很多优秀的虚拟机软件,例如:VMware, VirtualBox, Xen, KVM等。而本文的主要内容是介绍KVM。 KVM: Kernel Based Virtual Machine: [点击查看全文] http://luoye.me/2...

2014-08-31 17:59:32

阅读数:823

评论数:0

KVM硬件辅助虚拟化之 EPT in Nested Virtualization

在嵌套虚拟环境(Nested Virtualization)下,运行在hypervisor上的Virtual Machine仍可以作为hypervisor去运行其它的Virutal Machine,而KVM也支持了这种强大的特性。 而在《KVM硬件辅助虚拟化之 EPT》一文中,我们详细分析了...

2014-08-31 17:57:10

阅读数:1959

评论数:0

KVM硬件辅助虚拟化之 EPT(Extended Page Table)

传统OS环境中,CPU对内存的访问都必须通过MMU将虚拟地址VA转换为物理地址PA从而得到真正的Physical Memory Access,即:VA->MMU->PA,见下图。 虚拟运行环境中由于Guest OS所使用的物理地址空间并不是真正的物理内存,而是由VMM供其所使用一层虚...

2014-08-29 23:00:50

阅读数:2053

评论数:1

kvm安装与启动过程说明-Kernel源码编译方式

《kvm安装与启动过程说明》进行了通用桌面系统的虚拟机安装。在本文中将介绍自行编译linux Kernel内核源码,无桌面OS虚拟机安装和启动。为后续内核调试打下基础。 [点击查看全文] http://luoye.me/2014/06/16/kvm-install-2/

2014-08-29 22:58:20

阅读数:582

评论数:0

kvm安装与启动过程说明

根据这段时间对Linux KVM的研究,现将KVM的安装与Virtual OS的启动进行总结说明。

2014-08-29 22:55:33

阅读数:494

评论数:0

virtio-blk浅析

和virtio-network一样,virtio-blk驱动使用Virtio机制为Guest提供了一个高性能的块设备I/O的方法。我们这里看下virtio-blk的实现。 [点击查看全文]  http://luoye.me/2014/08/29/virtio-blk/

2014-08-29 22:50:30

阅读数:1583

评论数:0

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