Virtio SCSI设备介绍

2023-11-10

Qemu的存储栈

  在KVM虚拟化环境中,当客户机的内核存储系统像在物理机上一样通过页缓存、文件系统、通用块设备层运行到实际设备驱动时,这时驱动对设备寄存器的访问会触发CPU从客户机代码切换到物理机内的KVM内核模块,进而这个I/O请求会被分发到对应的Qemu模拟的磁盘设备的代码(下面将会介绍的vhost-scsi除外)。在引入virtio-scsi之前,SCSI设备的模拟并不成熟,所以Qemu支持的磁盘接口类型主要包括IDE和Virtio[1]。

Virtio是一个通用的I/O虚拟化框架[2], 它可以有效地简化设备逻辑,从而大大减少虚拟机退出(VMEXit)次数,并且通过使用虚拟机和物理机共享的分散聚合(scatter gather)缓冲区,提高了数据传输效率。当然这需要运行在客户机内核中的前端驱动和运行在物理机中后端设备代码协作完成。在Linux上,Virtio的磁盘驱动是在通用块设备框架下实现的,当它接收到来自上层的I/O请求后,会把该请求加上Virtio块设备请求的描述信息,一起加入缓冲区,然后触发VMExit来通知后端服务代码。Qemu中的Virtio块设备的服务代码会解析缓冲区中的数据,得到块设备的操作指令和对象数据,然后调用Qemu中的块设备代码,进一步完成这个I/O请求。也就是说,Qemu中暴露给虚拟机的设备只负责处理设备逻辑,和客户机里对应的驱动共同把数据从客户机传输到物理机。

  Qemu的块设备层会和后端存储交互,完成最终的I/O操作。后端存储也就是实际存储虚拟磁盘内容的地方。Qemu中支持的后端存储包括:

  • 主机支持的文件系统上的文件,包括本地文件系统和网络文件系统
  • 块设备,包括本地磁盘,SAN磁盘,iSCSI磁盘和LVM等
  • 远端存储,包括nbd, iSCSI以及Glusterfs, Sheepdog, Ceph等分布式存储。

​  前端设备和后端存储的分离,可以从Qemu的命令行中看出:

-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x9,drive=drive-virtio-disk1,id=virtio-disk1

-drive file=/var/lib/libvirt/images/vm1.img,if=none,id=drive-virtio-disk2,format=qcow2

  可以看到, 选项 '-device' 指定了前端的设备类型,而 '-drive' 选项定义了后端存储,并且通过设备的'drive'属性把设备和存储关联起来,就好像把盘片插入控制器。这样的设计,使得Qemu更容易利用到外部存储服务提供的高级特性,比如镜像和条带化I/O等。

  后端存储

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Virtio SCSI设备介绍 的相关文章

  • 38条Web测试经验分享

    1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro File AIDCS HTML Link Validater Xenu等工具 LinkBotPro不支持中文 中文字符显示为乱码
  • SRC漏洞挖掘经验+技巧篇

    一 漏洞挖掘的前期 信息收集 虽然是前期 但是却是我认为最重要的一部分 很多人挖洞的时候说不知道如何入手 其实挖洞就是信息收集 常规owasp top 10 逻辑漏洞 重要的可能就是思路猥琐一点 这些漏洞的测试方法本身不是特别复杂 一般混迹
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 每天10个前端小知识 <Day 5>

    前端面试基础知识题 1 typeof 与 instanceof 有什么区别 typeof与instanceof都是判断数据类型的方法 区别如下 typeof会返回一个变量的基本类型 instanceof返回的是一个布尔值 instanceo
  • Jenkins 插件下载速度慢、安装失败了!我教你怎么解决!

    Jenkins部署完毕 如果不安装插件的话 那它就是一个光杆司令 啥事也做不了 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI CD必要插件 但是问题来了 jenkins下载插件速度非常慢 而且经常提示下载插件失败 真
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 探索Web开发的未来——使用KendoReact服务器组件

    Kendo UI 是带有jQuery Angular React和Vue库的JavaScript UI组件的最终集合 无论选择哪种JavaScript框架 都可以快速构建高性能响应式Web应用程序 通过可自定义的UI组件 Kendo UI可
  • 点击存储到固定时间清除存储

    这段代码 无意间想到的 随便写了下来 运行 根据点击之后传递一个参数 将他存入本地存储 方便测试为10秒 10秒后触发下一个事件 清除本地存储 结束
  • Vue3 和Vue2的区别,以及钩子函数的使用

    Vue js 3 和 Vue js 2 是两个主要版本的流行前端框架 它们之间有很多区别 包括性能优化 新特性和改进的API等 以下是一些Vue 3与Vue 2之间的主要区别 以及一些示例代码来说明这些差异 1 性能优化 响应式系统 Vue
  • 低代码配置-组件列表设计

    过滤字段功能 配置了api 启用 输出配置 filter type Array default gt
  • JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置

    JVM优化之 Xss Xms Xmx Xmn 参数设置 XmnXmsXmxXss有什么区别 Xmn Xms Xmx Xss都是JVM对内存的配置参数 我们可以根据不同需要区修改这些参数 以达到运行程序的最好效果 Xms 堆内存的初始大小 默
  • vue实现 marquee(走马灯)

    样式 代码 div class marquee prompt div class list prompt span class prompt item span div div data return listPrompt xxx xxxx
  • (2024最新整理)Java最全八股文及答案!

    Java的特点 Java是一门面向对象的编程语言 面向对象和面向过程的区别参考下一个问题 Java具有平台独立性和移植性 Java有一句口号 Write once run anywhere 一次编写 到处运行 这也是Java的魅力所在 而实
  • 30天精通Nodejs--第十九天:express-文件上传下载

    目录 前言 环境准备与依赖安装 文件上传功能实现 引入并配置express fileupload中间件 注意事项 文件下载功能实现 结语 前言 文件的上传和下载是许多应用程序必备的功能 Node js的Express框架同样可以通过集
  • chrome浏览器无法在地址栏输入内容搜索问题解决--图文

    关于日常遇到的小问题解决记录一下 1 导航栏录入信息后跳转错误 2 解决办法 默认百度搜索引擎地址错误 百度正确的搜索格式是 http www baidu com s wd s chrome浏览器中百度的搜索格式是 http www bai
  • 【go语言】读取toml文件

    一 简介 TOML 全称为Tom s Obvious Minimal Language 是一种易读的配置文件格式 旨在成为一个极简的数据序列化语言 TOML的设计原则之一是保持简洁性 易读性 同时提供足够的灵活性以满足各种应用场景 TOML
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • 【安全-SSH】SSH安全设置

    今天发现自己的公有云服务器被攻击了 在这里插入图片描述 https img blog csdnimg cn direct cafdca04646f4b8b838400ec79ac282f png 然后查看了登录日志 如上图 ls sh va

随机推荐

  • Java UUID生成4位8位16位20位24位32位长度的随机字符串 UUIDUtil工具类

    import sun misc BASE64Encoder public class UUIDUtil 采用URL Base64字符 即把 换成 static private char alphabet ABCDEFGHIJKLMNOPQR
  • 无线ap ntp服务器,我有一优科 ZoneFlex 7982 的无线AP,怎样可以进AP系统进行设置...

    满意答案 zisedeL 2015 10 09 采纳率 49 等级 7 已帮助 308人 1 用手机或笔记本连上优科 产品反面MAC地址后6位 的无线信号 2 1 xp系统 右击网络邻居选择属性 看到无线网络连接再右击选择属性 选择Inte
  • pygame游戏模块详解

    目录 一 下载pygame第三方模块 二 pygame模块知识点化 把模块分为n多个知识点 1 使用pygame知识制作一个可以关闭的空白窗体 这里我就不用文字说明了 直接上代码 简洁明了 2 使用精灵显示背景 背景的循环展示 3 使用精灵
  • Win11:软件图标丢失

    问题描述 Win11 软件图标丢失 有空白的 也有带图案的 问题截图 开始页面 桌面 问题原因 文件路径权限丢失 权限异常 解决方案 有用 添加权限 文件夹右键 属性 安全 高级 更改 高级 立即查找 选择当前登录账户 一路点击确定 应用即
  • PFR简介---Cisco技术

    什么是 PfR Performance Routing PfR 是 Cisco Systems 的最新 WAN 线路优化技术 能够发挥现有 Cisco 设备的作用 该技术可以优化两条或更多条 WAN 连接之间的流量 既可以节省带宽成本 又能
  • 恶意流量监测开源系统:Maltrail

    20210309 0 引言 一般来说 通过IDS来监测一些攻击流量 或者说恶意流量也是可以的 但是现在看到的这个开源软件 1 是专门利用IOC来识别恶意流量 具体细节我没有深入去研究 例如流量捕获部分到底是什么引擎来启动的 1 系统简介 在
  • 【STM32+cubemx】0020 HAL库开发:以太网ENC28J60芯片和TCP、UDP简单应用

    MCU通过以太网通信有很多种方式 有的内部自带以太网接口 如stm32f107的某些型号 如果没有 也可以在外围连接以太网芯片来实现 外接的以太网芯片 又分为带网络协议栈和不带协议栈的 带网络协议栈的典型如W5500 不带网络协议栈的典型的
  • python数据分页pandas_使用python pandas&刮分页网页表美丽的汤

    I am a beginner in python pandas i am trying to scrap a paginated table using beautiful soup package the data is scraped
  • 有了它,你还想用postman吗

    Apifox 介绍 Apifox 是 API 文档 API 调试 API Mock API 自动化测试一体化协作平台 定位 Postman Swagger Mock JMeter 通过一套系统 一份数据 解决多个系统之间的数据同步问题 只要
  • Java常见面试题汇总-----------数据库(数据库索引及其实现)

    54 数据库索引 索引的优缺点 优点 1 大大加快数据的检索速度 2 创建唯一性索引 保证数据库表中每一行数据的唯一性 3 加速表和表之间的连接 4 在使用分组和排序子句进行数据检索时 可以显著减少查询中分组和排序的时间 缺点 1 索引需要
  • 应用程序如何调用驱动

    以write函数举例 详细调用流程 insmod驱动程序 申请设备名 设备号以及指定fops方法 这些可以在 proc devices中获得 从 proc devices中获得主设备号 并使用mknode命令来建立设备节点文件 这是通过主设
  • 软件测试第一次做项目之银行项目【操作细节总结】

    在我们的日常在金融或银行软件测试工作中都有哪些内容需要测试 在这些测试的内容中如何去更好的掌握测试技能保证测试质量 一起来学习探讨交流 下面为银行测试点的概括 根据上图 我们可以从以下几个方面重点关注 1 管理端的测试主要是在管理后端对用户
  • osgEarth的Rex引擎原理分析(四十八)osgEarth::Drivers::RexTerrainEngine::DrawState的作用

    目标 四十五 中的110 每帧都会创建一个DrawState 创建在TerrainRenderData setup 这里存在内存泄漏的问题 因为只有new没有delete 不存在的 drawState是智能指针 超出范围时会自动销毁 也就是
  • Windows Update Blocker,windows系统关闭自动更新工具

    今天打开电脑发现系统又自动更新了 这一天天更新真的太烦了 然后我从网上找到一个工具 可以自由开启和关闭系统自动更新 这里分享一下网址 https www filehorse com download windows update block
  • ScriptableObject保存数据的几个坑

    public class GraphData ScriptableObject public string Title HideInInspector public string hide private int pri public Ty
  • 互联网摸鱼日报(2022-10-16)

    互联网摸鱼日报 2022 10 16 博客园新闻 百度商标维权获赔超千万 又一公司冒用 百度 一审被判赔60万 Meta首席产品设计主管 副总裁宣布将离职 Temu冲至美区苹果商店购物类前五 拼多多的低价策略在海外也奏效了 特斯拉 撞车 疑
  • flex 实现三栏等分布局

    ul li 左 li li 中 li li 右 li ul 将下列布局三等分如下图 方法一 父子元素宽度设为相等宽度 父元素 display flex 子元素 flex auto 即 flex 1 1 auto 解析 可以看到width的设
  • 电容传感器

    背景介绍 去年 博后师兄从新西兰购买了一款电容传感器 能够对大变形进行测量 可以用来人体动作捕捉 在智能穿戴 医疗复健等领域具有广阔的应用前景 本推文对相关内容进行介绍 具体如下图所示 电容传感器主要包含两部分内容 1 传感器部分 师兄对电
  • 重装ubuntu后Samba从windows不能登录

    Samba登录问题 ubuntu被搞挂了 重装了下 apt get samba后导入之前的smb conf竟然在windows里无法登录 折腾了几个小时后突然发现sb服务器竟然没有从linux里自动倒入密码 所以如下路径 新装ubuntu后
  • Virtio SCSI设备介绍

    emu的存储栈 在KVM虚拟化环境中 当客户机的内核存储系统像在物理机上一样通过页缓存 文件系统 通用块设备层运行到实际设备驱动时 这时驱动对设备寄存器的访问会触发CPU从客户机代码切换到物理机内的KVM内核模块 进而这个I O请求会被分发