近年来,随着腾讯云的规模逐步扩大,业界各种大数据业务架构日益增多,部分客户对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中的应用相关推荐

  1. [原创]浅谈持续集成在测试中的应用

    [原创]浅谈持续集成在测试中的应用 今天抽空理了下思路,来谈谈持续集成在测试中的应用,关于持续集成的介绍,可以参见我之前写的 浅谈我对持续集成的理解. 闲话少说,简单先介绍下,持续集成在测试中应用的范 ...

  2. java执行jar中的main_浅谈java 执行jar包中的main方法

    浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 ...

  3. python竞赛_浅谈Python在信息学竞赛中的运用及Python的基本用法

    浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...

  4. 计算机技术在排水领域的应用,浅谈计算机技术在市政给排水中的应用.doc

    浅谈计算机技术在市政给排水中的应用.doc 浅谈计算机技术在市政给排水中的应用 [摘要]随着科技的进步与时代的发展,计算机技术在各个领域与行业中得到了广泛应.应用计算机技术可以增加工作的科学性与准确性 ...

  5. 计算机基础中怎么评价,浅谈职校计算机基础教学中的教学评价

    浅谈职校计算机基础教学中的教学评价 在我们具体实施任务驱动法的教学过程中,教学评价是非常重要的环节.教学评价是计算机课 (本文共2页) 阅读全文>> 随着时代的发展,人们对高等教育发展的关 ...

  6. 浅谈iPhone和iPad开发中的图标设置

    浅谈iPhone和iPad开发中的图标设置 图标大小问题 我们的辛辛苦苦做出来的应用程序在iPhone上的表示仅仅是一个图标,对这个图标不可以不谨慎对待,不能因为大小不对头这些小问题而失真啊什么的. ...

  7. ajax参数中有加号,浅谈在js传递参数中含加号(+)的处理方式

    一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+). 但是对于带有中文的参数 ...

  8. 化学实验中计算机技术的应用,浅谈计算机在基础化学实验中的应用

    <浅谈计算机在基础化学实验中的应用.doc>由会员分享,可免费在线阅读全文,更多与<浅谈计算机在基础化学实验中的应用>相关文档资源请在帮帮文库(www.woc88.com)数亿 ...

  9. PHP字符串转数字面试,浅谈php字符串反转 面试中经常遇到的问题

    下面小编就为大家分享一篇浅谈php字符串反转 面试中经常遇到的问题,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 1.单字节字符串反转 php提供了用于字符串反转的函数strrev( ...

  10. android 存储空间监控,浅谈 Android 内存监控(中)

    前言 在上篇 浅谈 Android 内存监控(上) 中,我们聊了 LeakCanary,微信的 Matirx 和美团的 Probe,它们各自有不同的应用场景,例如,在开发测试环境,我们会偏向用 Lea ...

最新文章

  1. 客快物流大数据项目(七):Docker总结
  2. 南昌职高计算机录取分数线,南昌运输职业技术学校2021年招生录取分数线
  3. js Array Map and Set
  4. nyoj-469--擅长排列的小明 II
  5. chrome浏览器,调试详解,调试js、调试php、调试ajax
  6. Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序
  7. C语言学习之输入4个整数,要求按由小到大的顺序输出。
  8. 关于Chrome支持http header最大长度限制的讨论
  9. 二、SpringMVC 注解式开发学习笔记
  10. 在VS2010中F5调试Silverlight程序时,提示“无法启动调试,找不到Microsoft Internet Explorer”...
  11. 分组 查出id最大的_MySQL分组top N问题疑点
  12. python数据预处理
  13. 由线性空间V中的集合生成的子空间
  14. Lib9的bada版本移植完毕
  15. 【游戏开发实战】Unity 2D游戏手指控制移动摄像机镜头和双指缩放镜头(愤怒的小鸟为例)
  16. 单片机继电器控制实验程序C语言,继电器控制实验
  17. mysql辅助索引非叶子节点_Mysql的聚集索引与辅助索引
  18. 解决管理问题的基本思维方式
  19. android 标注 比例换算,android APP UI设计图标注、换算
  20. 如何给行内元素设置宽高

热门文章

  1. C#毕业设计——基于C#+asp.net+sqlserver的网络商店销售管理系统设计与实现(毕业论文+程序源码)——销售管理系统
  2. 矿用巷道巡检机器人_防爆巷道巡检机器人
  3. 数字图像处理——中值滤波中心加权中值滤波
  4. 万能播放器 PotPlayer 的下载与安装,直播流 m3u8 导入
  5. linux查找当前目录及其子目录下的文件
  6. 7-41 小字辈 (25 分)
  7. factorybean 声明_说说 Spring 框架中的 Factory Bean
  8. 利用矮人Dos引导Linux
  9. 科技型中小企业和创新型中小企业有什么区别
  10. 170家!物联网、智慧园区、智慧社区等细分领域龙头全名单!