ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

理解I/O虚拟化过程

2020-01-26 16:43:26  阅读:321  来源: 互联网

标签:虚拟 VMM 虚拟化 虚拟机 理解 驱动 过程 设备


I/O是什么

  • I:input,输入设备
  • O:output,输出设备

I/O分类

  • 字符设备(character device)
    • 用户通过这些设备实现与计算机系统的通信,比如键盘鼠标,写字板,摄像头,扫描仪
  • 块设备(block device)
    • 计算机外部存储设备,用于永久存储数据,比如硬盘,光盘,U盘
  • 网络设备(Network driver)
    • 用户计算机可以远程通讯的设备,比如网卡、调制解调器、光口

通过I/O接口的功能负责实现CPU通过系统总线把I/O电路和 外围设备联系在一起

I/O虚拟化
在这里插入图片描述
虚拟化由于增加了一层VMM逻辑层来管理虚拟机的资源使用

I/O虚拟化全虚拟化

  • 所有的VM虚拟机需要复用有限的外设资源,因为真实的I/O只有一个
  • 所有的虚拟机I/O都是通过VMM用软件模拟实现

在这里插入图片描述
优点:兼容屏蔽了底层,方便移植
缺点:性能不足,虚拟机发出的 I/O 请求需要虚拟机和 VMM 之间的多次交互,产生大量的上下文切换,造成巨大的开销

I/O 半虚拟化

  • 前端设备驱动将数据通过VMM提供的接口转发到后端驱动
  • 后端驱动对VMM的数据进行分时分通道进行处理
    在这里插入图片描述
  • Domain 0
    • I/O虚拟管理端,也就是后端驱动,所以的I/O驱动都是安装到这里面
  • Domain u
    • 代表所以的虚拟机,也就是前端驱动,虚拟机默认创建都是会加载前端驱动

虚拟机Tools工具

  • 由于Domain 0 一般我们没有能力做修改的,那么我们只能通过 Domain u也就是自己的前端驱动来进行增强虚拟I/O性能,显卡、硬盘这些

优点:由于基于C/S架构,能在很大程度上减少上下文切换开销,没有额外的硬件开销
缺点:需要VMM实现前端驱动,后端驱动可能成为瓶颈

I/O全虚拟化

  • 直接将物理设备分配给某个 Guest OS
  • Guest OS直接访问I/O设备(不经 VMM),但是需要硬件的支持
    在这里插入图片描述
    优点:提升了VMM处理性能
    缺点:无法实现复用技术,设备被单个虚拟机占用

SR-IOV技术
一个物理设备可以虚拟出多个设备,分配给虚拟机使用

  • 物理功能(Physical Functions,PF):这是完整的带有 SR-IOV 能力的设备。PF 能像普通设备那样被发现、管理和配置。
  • 虚拟功能(Virtual Functions,VF):简单的设备功能,它只能处理I/O。每个 VF 都是从 PF中分离出来的。每个物理硬件都有一个 VF 数目的限制。一个 PF,能被虚拟成多个 VF 用于分配给多个虚拟机。

硬件辅助I/O虚拟技术

  • Intel vt-d
  • amd-vi

部分参考:http://www.pianshen.com/article/315496053/

总结:目前好像都是使用半虚拟化的C/S架构多,KVM的Virtio,华为的前后端驱动模型(半虚拟化)

Y。S。H。 发布了38 篇原创文章 · 获赞 14 · 访问量 2122 私信 关注

标签:虚拟,VMM,虚拟化,虚拟机,理解,驱动,过程,设备
来源: https://blog.csdn.net/yangshihuz/article/details/104087135

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有