
Linux虚拟化
文章平均质量分 94
虚拟化
Eddyvv
一只菜鸟程序猿
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
virtio-net收包流程
函数把数据拷贝到虚拟机的 virtio 网卡接收队列,然后向虚拟机注入一个中断,虚拟机便感知到有网络数据报文。NAPI 是一种用于网络设备驱动的软件架构,其目的是减少网络中断对系统性能的影响。函数负责将报文拷贝到 buffer 中,实现向 Guest OS 物理地址写入数据。用于将 NAPI 设备的 napi 结构体加入到系统中轮询执行的链表中。函数用于将从网络中接收的数据填充到接收队列的输入缓冲区中。进行合并处理,根据处理的结果,决定。函数用于填充虚拟队列的元素。接收数据包回调函数。原创 2023-05-01 15:16:36 · 2649 阅读 · 1 评论 -
qemu virtio设备模拟与初始化流程
virtio则是属于一种半虚拟化解决方案,它是一种前后端架构,虚拟机内部需要安装特定的virtio设备驱动作为前端,模拟的设备作为后端,后端可以放在用户空间模拟,也可以放在内核空间模拟。放在内核空间模拟就是vhost的实现,如DPDK,SPDK等。原创 2023-01-03 19:45:36 · 3321 阅读 · 0 评论 -
Ubuntu20.04部署KVM并安装Ubuntu Server 20.04
KVM是Linux开源社区大力支持的虚拟化技术,基于Intel和AMD的硬件虚拟化技术。KVM(Kernel-bashdVirtual Machine,即基于内核的虚拟机),它是用于Linux内核中的虚拟化环境设施,是Linux内核中的一个功能模块,在Linux内核中默认被安装,可以将Linux内核转化为一个 Hypervisor。原创 2022-12-27 11:33:47 · 4229 阅读 · 2 评论 -
virtio前端驱动通知机制分析
virtio 前后端主要通过PCI配置空间的寄存器来完成通信,I/O 请求的数据地址存放于 vring 中,并通过共享vring这个区域来实现 I/O 请求数据的共享。原创 2022-12-26 13:35:31 · 1731 阅读 · 0 评论 -
virtio虚拟化框架
系统虚拟化技术是云计算最重要的核心技术之一。云计算平台的资源池化,资源统一管理以及后续的动态分配都是基于系统虚拟化技术才得以实现的。在计算机系统中,主要有计算资源,存储资源和网络资源。所以,系统虚拟化技术又可以细分为计算虚拟化,存储虚拟化和网络虚拟化。其中存储设备和网络设备一般都是以外设的形式和CPU通过I/O总线连接起来的,所以存储虚拟化和网络虚拟化又可以统一归类为I/O虚拟化技术。原创 2022-12-26 11:24:06 · 1955 阅读 · 0 评论 -
virtio vring原理
在 virtio 设备上进行批量数据传输的机制被称为 virtqueue 。每个设备可以拥有零个或多个 virtqueue ,当 Driver 想要向设备发送数据时,它会填充 Descriptor Table 中的一项(或将几项链接在一起),并将描述符索引写入 Available Ring 中,然后它通知 Device ,当 Device 完成后,它将描述符索引写入 Used Ring 中并发送中断。Virtio 在 Guest 中实现了前端驱动,在 Host (qemu)中实现了后端驱动,前后端之间通原创 2022-12-25 19:38:57 · 3768 阅读 · 0 评论 -
virtio-net发包流程分析
virtio-net发包流程大致为:虚拟机中的进程发送网络包时,仍然通过文件系统和socket调用网络协议栈到达网络设备层。此时的网络设备为virtio虚拟网络设备,virtio-net前端驱动作为网卡设备驱动层,接收IP层传输下来的二层网络数据包,最终调用start_xmit函数完成内核的前端发包流程,后端收到数据后在根据具体的操作将数据通过实体网卡发送出去。原创 2022-12-25 19:15:50 · 2631 阅读 · 0 评论