浅谈SR-IOV在SSD中的应用
近年来,随着腾讯云的规模逐步扩大,业界各种大数据业务架构日益增多,部分客户对IAAS层的存储性能提出了更高的要求。本地盘凭借着大带宽、低时延、免占母机带宽等天然优势在一些大数据型业务场景下备受客户青睐。
但随着云和数据中心的单个CPU核数越来越大,物理盘又无法单独做拆分,导致单个虚拟机实例的核数也随之增多,每个虚拟机对应均要占用一个PCIe槽位。
基于以上问题,为了更加灵活的为客户提供各种规格的本地盘,腾讯云硬件导入团队对多种方案进行了讨论验证,并决定从业界中找寻出可以支持SR-IOV的NVMe SSD,经过对不同供应商的深度调研与比对,最终选出忆联进行技术方案的测试和验证工作。
最终,经过腾讯云服务器与供应链NPI团队、腾讯云服务器虚拟化团队、忆联公司一起配合努力,在腾讯云的实验室机房进行了长达两个月的全面测试验证工作,验证结果表明SR-IOV特性在公有云场景下可以带来一定的价值。
一、SSD之SR-IOV的简单介绍
1、SR-IOV
先简单介绍一下SR-IOV,SR-IOV(Single-Root I/O Virtualization,单根 I/O虚拟化)是一种基于硬件的虚拟化解决方案,通过利用PF和VF的属性,将一个设备虚拟出多个PCIe设备,利于虚拟机操作,从而大大减轻宿主机的CPU负荷,提高性能和可伸缩性,帮助系统解决虚拟机SSD盘的QoS问题,可支持更多数量的虚拟机业务。
传统虚拟化系统使用Hypervisor(或者VMM)软件对虚拟机进行管理,软件层既消耗CPU资源,又有较深的调用栈,使得PCIe设备的性能优势无法彻底发挥。而SR-IOV可以实现多个虚拟机共享物理资源,且bypass Hypervisor(或者VMM)软件层,使得虚拟机可以使用到NVMe SSD的高性能。
对比传统虚拟化系统,在有SR-IOV技术的云业务虚拟机应用场景下,VM可直接与VF通信,不需要Hypervisor接入IO处理,节约 vCPU资源的同时,又可以实现不同VF之间性能相互隔离,互不影响。
*传统虚拟机与SR-IOV虚拟机对比
可以总结得出SR-IOV优势在于:
1,实现SR-IOV之后,VMM把中断交给虚拟机处理,提高了I/O性能;
2,虚拟机直接和PCIe设备交互,bypass掉中间的Hypervisor/VMM层,减轻物理主机CPU负担,使之有能力承载更多虚拟机;
3,SR-IOV虚拟化技术可以减少客户所需PCIe设备数量,进而节省PCIe插槽;
4,SR-IOV可以与其他的I/O虚拟化技术进行结合,提供一个更加完整的兼具高性能和安全性的解决方案;
比如,当前一块NVMe SSD容量可以达到十几TB,而IOPS可以达到100万以上,延时也降低到了微秒级,SR-IOV可以使NVMe SSD直接被上层多个VM所用,SSD的性能优势也可以直接被上层应用感知到。
如下图,在虚拟化分区方式场景下,通过SR-IOV技术将一片PCIe 4.0 7.68TB SSD(绑定16个CPU核)配置为2个容量为3.84TB VF(绑定8个CPU)。
二、忆联SSD技术验证
1、性能测试验证
目前,SR-IOV在虚拟化中的应用较为成熟,被广泛应用于网卡以及对网络性能、传输速度要求极高的应用场景中。而基于SR-IOV的SSD许多厂商已做过多种尝试,比如定义namespace后进行上层虚拟机的关联,多家SSD厂商都已支持。但如何做到1块物理SSD硬盘基于SR-IOV虚拟化成几块虚拟SSD硬盘后,依然能保障QoS的性能隔离和性能保障,是其中最大的挑战。
据悉,忆联在早期规划SR-IOV特性时就从控制器层面做了很多优化设计,基于硬件能力规划了QoS的能力,可以做到多块虚拟SSD硬盘之间性能隔离。
为了验证QoS的能力,我们在1分8的场景下,进行了充分的性能测试验证,从以下数据显示:
*1分8场景
在SR-IOV特性上,忆联的QoS能力依然表现不俗,隔离效果明显,基本可以做到在业务使用场景下相互之间并无影响,确保使用SR-IOV以后,也依然可以保障虚拟SSD盘的大带宽、低时延。
2、产品化验证——可靠性验证
满足性能的同时,在产品化过程中SR-IOV是否可以满足高可靠性也同样重要。例如在对命令支持方面,虚拟化SSD盘和物理SSD盘有何区别?在物理盘掉电之后,数据是否会丢失?物理盘掉盘异常之后, SR-IOV配置如何快速保留和恢复?
因此,忆联在设计SR-IOV之初,为了保障产品的高性能与高可靠性,对业务使用流程上的需求也进行了全面的考虑与分析,使得忆联的SR-IOV特性得以在各种业务流程和异常场景中都有应对的方案和措施。
具体测试流程及验证结果如下:
通过以上测试验证,我们可以比较明确忆联的SR-IOV在新盘接入,盘片掉电恢复,异常换盘三种场景下均有比较高的可靠性保障方案。
三、SR-IOV未来可期
未来,随着单台服务器的CPU核数增加,网卡带宽增加到100G,单个SSD硬盘容量越来越大,使用SR-IOV提供各种容量规格的本地盘的必要性也越来越高。
一方面,本地盘场景下使用大容量SSD盘的SR-IOV特性,可以减少小容量NVMe SSD的数量,有效降低单台服务器的TCO;
另一方面,使用SR-IOV技术可以让底层的NVMe SSD盘资源跟随上层碎片化的CPU核数进行更灵活的售卖,提升整体的售卖率,降低单台虚拟机的成本。
未来,腾讯云会继续在NVMe SSD的SR-IOV特性方面与忆联进行更多更深入的探索和投入,携手推进NVMe SSD盘的SR-IOV在公有云场景下的应用,并基于用户的实际应用需求场景,持续提供有竞争力的产品和服务,帮助用户创造更多价值。
浅谈SR-IOV在SSD中的应用相关推荐
- [原创]浅谈持续集成在测试中的应用
[原创]浅谈持续集成在测试中的应用 今天抽空理了下思路,来谈谈持续集成在测试中的应用,关于持续集成的介绍,可以参见我之前写的 浅谈我对持续集成的理解. 闲话少说,简单先介绍下,持续集成在测试中应用的范 ...
- java执行jar中的main_浅谈java 执行jar包中的main方法
浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 ...
- python竞赛_浅谈Python在信息学竞赛中的运用及Python的基本用法
浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...
- 计算机技术在排水领域的应用,浅谈计算机技术在市政给排水中的应用.doc
浅谈计算机技术在市政给排水中的应用.doc 浅谈计算机技术在市政给排水中的应用 [摘要]随着科技的进步与时代的发展,计算机技术在各个领域与行业中得到了广泛应.应用计算机技术可以增加工作的科学性与准确性 ...
- 计算机基础中怎么评价,浅谈职校计算机基础教学中的教学评价
浅谈职校计算机基础教学中的教学评价 在我们具体实施任务驱动法的教学过程中,教学评价是非常重要的环节.教学评价是计算机课 (本文共2页) 阅读全文>> 随着时代的发展,人们对高等教育发展的关 ...
- 浅谈iPhone和iPad开发中的图标设置
浅谈iPhone和iPad开发中的图标设置 图标大小问题 我们的辛辛苦苦做出来的应用程序在iPhone上的表示仅仅是一个图标,对这个图标不可以不谨慎对待,不能因为大小不对头这些小问题而失真啊什么的. ...
- ajax参数中有加号,浅谈在js传递参数中含加号(+)的处理方式
一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+). 但是对于带有中文的参数 ...
- 化学实验中计算机技术的应用,浅谈计算机在基础化学实验中的应用
<浅谈计算机在基础化学实验中的应用.doc>由会员分享,可免费在线阅读全文,更多与<浅谈计算机在基础化学实验中的应用>相关文档资源请在帮帮文库(www.woc88.com)数亿 ...
- PHP字符串转数字面试,浅谈php字符串反转 面试中经常遇到的问题
下面小编就为大家分享一篇浅谈php字符串反转 面试中经常遇到的问题,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 1.单字节字符串反转 php提供了用于字符串反转的函数strrev( ...
- android 存储空间监控,浅谈 Android 内存监控(中)
前言 在上篇 浅谈 Android 内存监控(上) 中,我们聊了 LeakCanary,微信的 Matirx 和美团的 Probe,它们各自有不同的应用场景,例如,在开发测试环境,我们会偏向用 Lea ...
最新文章
- 客快物流大数据项目(七):Docker总结
- 南昌职高计算机录取分数线,南昌运输职业技术学校2021年招生录取分数线
- js Array Map and Set
- nyoj-469--擅长排列的小明 II
- chrome浏览器,调试详解,调试js、调试php、调试ajax
- Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序
- C语言学习之输入4个整数,要求按由小到大的顺序输出。
- 关于Chrome支持http header最大长度限制的讨论
- 二、SpringMVC 注解式开发学习笔记
- 在VS2010中F5调试Silverlight程序时,提示“无法启动调试,找不到Microsoft Internet Explorer”...
- 分组 查出id最大的_MySQL分组top N问题疑点
- python数据预处理
- 由线性空间V中的集合生成的子空间
- Lib9的bada版本移植完毕
- 【游戏开发实战】Unity 2D游戏手指控制移动摄像机镜头和双指缩放镜头(愤怒的小鸟为例)
- 单片机继电器控制实验程序C语言,继电器控制实验
- mysql辅助索引非叶子节点_Mysql的聚集索引与辅助索引
- 解决管理问题的基本思维方式
- android 标注 比例换算,android APP UI设计图标注、换算
- 如何给行内元素设置宽高
热门文章
- C#毕业设计——基于C#+asp.net+sqlserver的网络商店销售管理系统设计与实现(毕业论文+程序源码)——销售管理系统
- 矿用巷道巡检机器人_防爆巷道巡检机器人
- 数字图像处理——中值滤波中心加权中值滤波
- 万能播放器 PotPlayer 的下载与安装,直播流 m3u8 导入
- linux查找当前目录及其子目录下的文件
- 7-41 小字辈 (25 分)
- factorybean 声明_说说 Spring 框架中的 Factory Bean
- 利用矮人Dos引导Linux
- 科技型中小企业和创新型中小企业有什么区别
- 170家!物联网、智慧园区、智慧社区等细分领域龙头全名单!