浅析I/O处理过程与存储性能的关系

https://community.emc.com/docs/DOC-28653

性能”这个词可以说伴随着整个IT行业的发展,每次新的技术出现,从硬件到软件大多数情况下都围绕着性能提升而展开。“摩尔定理”指出CPU的处理速度每18个月会翻一番,但是进入21世纪的第二个十年来,似乎它的速度慢了下来。但是IT行业的各个行业领导者们,还是不断在计算机的性能寻求突破,继续挑战物理极限。细看存储行业,每款新的存储产品的推出,也围绕着如何更快、更好的服务前端服务器的I/O请求为中心。本文从I/O(Block)的流向介绍,试图解读整个I/O流与存储性能之间的些许联系。本文作为一篇存储基础的介绍文章,帮助读者了解看似简单的数据读写中的更多细节。

更多信息

存储I/O流与存储性能:

存储I/O(后文简称I/O)的处理过程就是计算机在存储器上读取数据和写入数据的过程。这种存储器可以是非持久性存储(RAM),也可以是类似硬盘的持久性存储。一个完整的I/O可以理解为一个数据单元完成从发起端到接收端的双向的过程。在企业级的存储环境中,在这个过程会经过多个节点,而每个节点中都会使用不同的数据传输协议。一个完整的I/O在每个不同节点间的传输,可能会被拆分成多个I/O,然后从一个节点传输到另外一个节点,最后再经历相同的过程返回源端。

下图演示了一个文件在经过整个I/O路径中每个节点所进行的变化(以EMC Symmetrix存储阵列为例):

整个I/O流经历一下几个节点:

  • File System – 文件系统会根据文件与Block的映射关系,通过File System Manager将文件划分为多个Block,请求发送给HBA。
  • HBA – HBA执行对这一系列的更小的工作单元进行操作,将这部分I/O转换为Fibre Channel协议,包装成不超过2KB的Frame传输到下一个连接节点FC Switch。
  • FC Switch – FC Switch会通过FC Fabric网络将这些Frame发送到存储系统的前端口(Front Adapter)。
  • Storage FA – 存储前端口会将这些FC 的Frame重新封装成和HBA初始发送I/O一致,然后FA会将数据传输到阵列缓存(Storage Array Cache)
  • Storage Array Cache – 阵列缓存处理I/O通常有两种情况:1.直接返回数据已经写入的讯号给HBA,这种叫作回写,也是大多数存储阵列处理的方式。2. 数据写入缓存然后再刷新到物理磁盘,叫做写透。I/O存放在缓存中以后,交由后端控制器(Disk Adapter)继续处理,完成后再返回数据已经写入的讯号给HBA。
  • Disk Adapter – 上述两种方式,最后都会将I/O最后写入到物理磁盘中。这个过程由后端Disk Adapter控制,根据后端物理磁盘的RAID级别的不同,一个I/O会变成两个或者多个实际的I/O。

根据上述的I/O流向的来看,一个完整的I/O传输,经过的会消耗时间的节点可以概括为以下几个:

  • CPU – RAM, 完成主机文件系统到HBA的操作。
  • HBA – FA,完成在光纤网络中的传输过程。
  • FA – Cache,存储前端卡将数据写入到缓存的时间。
  • DA – Drive,存储后端卡将数据从缓存写入到物理磁盘的时间。

下面的表中根据不同阶段的数据访问时间做了一个比较,一个8KB的I/O完成整个I/O流向的大概耗时。(表中的耗时根据每秒的传输数据整除获得,例如HBA到FA的速度有102,400KB/秒除以8KB得到78 μs)。根据表中的数据显而易见,I/O从主机的文件系统开始传输到存储阵列的缓存在整个这个I/O占比很小,由于机械硬盘的限制,最大的耗时还是在DA到物理磁盘的时间。如果使用闪存盘,那这个数据会大幅缩小,但是与其他几个节点的传输时间相比,占比还是比较大的。

8KB I/O的传输

耗时(单位:μs)

扩大1,000,000耗时

CPU到RAM的传输,166MHz 64位总线

6 μs

6 sec

HBA到FA,100MB/秒速率

78 μs

1 min 18 sec

FA到Cache(Symmetrix DMX Director 2.5GHz)

26 μs

26 sec

DA到物理磁盘,73GB 15,000   rpm, Seek 3.6ms,latency 2.0ms

5,700 μs

1 hr 35 min

可以看到,存储阵列的缓存在整个I/O流中所起到的作用是至关重要。缓存的处理效率与大小,直接影响到I/O处理的速度。而然,在实际的环境中,即使存储阵列的缓存工作得当,主机的I/O也不会达到100 μs也就是0.1ms的水平,通常在1-3ms左右,就会认为I/O处理处于比较高性能的模式。原因就是因为另外两个因素“数据头处理”和“并发”。

1. “数据头处理“由于I/O流中每个I/O的数据组成并不是只包含数据,如下图所示,一个I/O除了数据以外还包含了Negotiation,Acknowledgement用来负责在I/O流中的每个节点传输和进行管理的。其中包含和TCP/IP一样的“Handshaking“信息以及流控制的信息,比如初始化传输,结束通讯等等。Header中则会定义一些例如CRC校验的信息,保证数据的一致性。所有这些数据的处理都会耗费一定的处理资源,增加I/O流的耗时。

2.“并发“。由于I/O流整个过程中不可能只同时处理一个I/O,所有的I/O在HBA,FC,FA和DA处理的过程中都是已大量并发的情况下进行。而主要的耗时取决于I/O队列的等待,虽然存储阵列会在并发上进行优化。同一个处理Slice的处理还是会一队列形式进行。入下图所示,当存储同时面对多个I/O的处理的情况,总会有某个I/O会在整个流的最后出来,而增加I/O的耗时。所以说,在I/O流的每个节点出现瓶颈,或者短板的时候。I/O的耗时就会增加。

综上所述,I/O流与存储性能的关系可以总结为以下几点:

  • 完成一个I/O流主要经历过的节点有HBA,FC网络,存储前端口FA,存储缓存、存储后端口,物理磁盘。而很个过程中最耗时的是物理磁盘。
  • 存储阵列的缓存的大小和处理方式直接影响到I/O流的性能,也是定义一个存储阵列优劣的重要指标之一。
  • I/O的处理速度通常会远离理论值,原因多个并发量较大而造成的队列延迟。
  • 优化I/O的方式可以从多个节点入手,而最显著的效果是提升物理磁盘的速度。因为存储阵列会把尽可能多的数据放入缓存,而当缓存用满以后的数据交换则完全取决于物理磁盘的速度。
  • 适当选用合适的RAID级别,因为不同的RAID级别的读写比例大不相同,可能使得物理磁盘处理耗时几倍增加。参考:浅谈RAID写惩罚(Write Penalty)与IOPS计算

浅析I/O处理过程与存储性能的关系相关推荐

  1. 20天持续压测,告诉你云存储性能哪家更强?

    2019独角兽企业重金招聘Python工程师标准>>> 上个月,笔者对国内两大云厂商(阿里云和腾讯云)的云服务器.云数据库和云存储三种产品做了性能评测,算是对两家的部分计算和存储产品 ...

  2. 明明是全闪存阵列,为何存储性能仍然不够快

    [51CTO.com原创稿件]软件定义基础架构,软件定义存储,软件定义存储.目前,用软件定义超融合的方式替代专用服务器.专用网络.专用存储设备等传统基础架构的方法,已经成为了行业的热点.英特尔系统架构 ...

  3. kylin如何支持flink_如何使用 JuiceFS 在云上优化 Kylin 4.0 的存储性能?

    Apache Kylin 4.0 采用 Spark 作为构建引擎以及 Parquet 作为存储,让云上部署和伸缩变得更容易,然而使用云上的对象存储相较于使用本地磁盘的 HDFS,可能存在部分兼容性和性 ...

  4. v380云存储如何查询_使用 JuiceFS 在云上优化 Kylin 的存储性能

    Apache Kylin 4.0 采用 Spark 作为构建引擎以及 Parquet 作为存储,让云上部署和伸缩变得更容易,然而使用云上的对象存储相较于使用本地磁盘的 HDFS,可能存在部分兼容性和性 ...

  5. 云服务器及其存储性能测试方法

    1.整体性能 做任何的业务计算都需要占用大量CPU的运算能力,比如直播等视频编解码等,业务高峰期CPU的利用率经常会达到90%以上. 测试工具:我们选择了评测工具SPEC CPU.SPEC CPU是标 ...

  6. 我国计算机的创新,浅析计算机技术的创新过程

    <浅析计算机技术的创新过程>由会员分享,可在线阅读,更多相关<浅析计算机技术的创新过程(5页珍藏版)>请在人人文库网上搜索. 1.浅析计算机技术的创新过程浅析计算机技术的创新过 ...

  7. Ceph万字总结|如何改善存储性能以及提升存储稳定性

    「Ceph – 简介」 Ceph是一个即让人印象深刻又让人畏惧的开源存储产品.通过本文,用户能确定Ceph是否满足自身的应用需求.在本文中,我们将深入研究Ceph的起源,研究其功能和基础技术,并讨论一 ...

  8. 【HBase调优】Hbase万亿级存储性能优化总结

    [HBase调优]Hbase万亿级存储性能优化总结 2017-04-07 背景:HBase主集群在生产环境已稳定运行有1年半时间,最大的单表region数已达7200多个,每天新增入库量就有百亿条,对 ...

  9. 华为联合openEuler发布全新NFS+协议,实现NAS存储性能与可靠性倍增

    在openEuler开发者大会2023上,华为携手openEuler发布NFS+协议,实现单客户端访问NAS存储可靠性提升3倍.性能提升6倍,助力NAS存储全面满足新型生产核心场景下苛刻要求. 在数字 ...

最新文章

  1. 看完2017年这10大AI失败案例,就知道什么是人工智障了
  2. bzoj1814 Ural 1519 Formula 1(插头dp模板题)
  3. 什么技术能改变世界?
  4. 1虚拟机下U盘或磁盘挂载,Ubuntu下的网络配置,图形化界面和命令界面之间的切换,软件源配置
  5. Linux下重要目录功能介绍
  6. 虚拟机环境下安装ESX不能安装虚拟系统解决方案
  7. word打开wps文件乱码_word文档打开是乱码解决方法
  8. 【Arduino】开发入门【八】舵机操作+源代码
  9. ogg批量配置_Mac批量文件重命名A Better Finder Rename11.07直装
  10. SPOJ375 Query on a tree(LCT边权)
  11. 数据结构_十字链表(C语言)
  12. Zotero | zotero与endnote题录与pdf文件的完整互转(2)
  13. 如何删除IE中的证书
  14. vim 配置(有插件)
  15. 书写NDIS过滤钩子驱动实现ip包过滤
  16. CS61B project 2 示例图的地牢地图房间走廊地图生成洞穴地图生成方法
  17. excel VBA 字典与集合(Dictionary与Collection)
  18. python之拉格朗日插值算法完成计算
  19. 阿里达摩院的AI Earth(AIE)初体验
  20. Android 开启数据业务

热门文章

  1. 计算机内部使用什么方法技术,计算机内部使用什么技术
  2. 配置ssl证书_Nginx监听443端口配置SSL证书
  3. 2021年信号与系统作业统计处理
  4. 基于超声波升压中周构建的150kHz的单管选频放大电路
  5. DG8SAQ 矢量网络分析
  6. 2021年春季学期-信号与系统-第五次作业参考答案-第九小题
  7. 2020年第十五届竞赛数据上报竞赛数据给高等教学学会统计
  8. go split 正则_WEGO使用—华大基因在线GO功能注释
  9. java 显示c控制台程序窗口,Windows-如何清除C中的控制台屏幕?
  10. html折线图怎么控制y轴数值,echarts Y轴数据类型不同怎么让折线图显示差距不大...