由于RAID算法的实现原理不同(RAID10的镜像、RAID5/6的校验盘),对于同样大小的裸容量来说,选择不同的RAID算法,可提供给用户的可用容量是不同的(不考虑热备空间和系统预留的影响) 。
从可靠性的层面来看,RAID6的可靠性最佳,RAID10次之,RAID5最差 。RAID6和RAID10都支持同时坏2块盘不丢数据,但是RAID10对坏的2块盘是有条件要求的 。
如何区分顺序IO和随机IO
IO的寻址方式是IO特性的一个重要方面,分为顺序、随机或混合,这取决于上层应用程序获取数据的方式 。例如,数据库OLTP业务是典型的随机读写,视频监控业务是典型的顺序读,SPC-1模型是混合读写 。
在通常情况下,如果数据的读写是在连续的磁盘空间上,可以认为是顺序IO;如果应用读取的数据分布在不连续的磁盘空间,且无固定的顺序,则视为随机IO;如果一部分数据是顺序读写,一部分数据是随机读写,则视为混合类型IO 。
顺序/随机特性对性能的影响
在磁盘层面,顺序IO的性能优于随机IO 。这是由于传统的机械磁盘读写数据需要盘片转动和磁头移动,使得随机读写的盘片旋转和磁头寻道时间要远大于顺序读写 。
在智能存储系统层面,通常情况下,顺序IO的性能同样大大优于随机IO,特别是对于小IO的IOPS性能而言:
1、小IO读:通过顺序流识别和预取算法,系统提前在磁盘上读取大块的连续数据存放在cache中,后续的大量顺序小IO在cache中命中,无需下盘处理 。而随机小IO在cache中命中率极低,只能逐个下盘读 。
2、小IO写:通过IO合并,系统将多个顺序小IO合并成一个较大的IO下盘 。如果在RAID5或RAID6场景,IO聚合成满分条大小的情况下,无需做预读操作,不会触发RAID写惩罚,效率很高 。而随机小IO无法合并,只能逐个下盘写,且会触发写惩罚,导致性能更为低下 。典型业务场景的顺序/随机特性,以下是一些典型业务场景的顺序/随机特性 。
如何区分大IO和小IO
在做性能评估和讨论IO模型时,经常会遇到是大IO还是小IO的问题 。我们通常把<=16KB的IO认为是小IO(典型的如512bytes、4KB),而>=32KB的IO认为是大IO(典型的如256KB、1MB),处于16K和32K间的IO也认为是小IO 。例如,典型的OLTP数据业务是小IO,而数据仓库业务是大IO 。典型业务场景的IO大小,以下是一些典型业务场景的IO大小 。
IO大小对性能的影响
IO的大小取决于上层应用程序本身 。对性能而言,小IO一般用IOPS来衡量,大IO一般用带宽来衡量 。例如我们熟悉的SPC-1,主要衡量存储系统在随机小IO负荷下的IOPS,而SPC-2则主要衡量在各种高负荷连续读写应用场合下存储系统的带宽 。
就单个IO而言,大IO从微观角度相比小IO会需要更多的处理资源 。对于随机IO而言,随着随机IO块大小的增加,IOPS会随之降低 。例如,当随机IO大小大于16KB时,机械硬盘的IOPS会呈线性下降 。因此,我们通常SPC-1测试的IOPS值很高,但因为用户业务模型不同,IO大小不同,性能值也是变化的 。
不过对于智能存储系统来说,会尽可能通过排序、合并、填充等方法对IO进行整合,将多个小IO组合成单个大IO 。例如,典型的Web Server Log业务,一般是8KB大小的顺序小IO,在分条大小设置为128KB的存储设备上,最终会将16个8KB大小的小IO合并成一个128KB的大IO下发到硬盘上 。在这种情况下,对比处理多个小IO,处理单个大IO的速度更快、开销更小 。
推荐阅读
- 云原生时代,企业如何选取、落地研发模式
- 组织如何利用云计算技术开展远程工作
- 向云端迁移如何改进灾难恢复计划
- 如何基于Ceph设计与构建一套软件定义存储系统
- 建设H.265解决方案,如何在linux下对图像做H.265
- 如何对网站进行seo诊断,都包括哪些内容?
- 韩国服务器的安全如何保障
- 未成年人沉迷网络游戏该如何破解,如何破解网游
- 两分钟教你vlog视频如何拍,如何拍摄实景视频
- 中国企业如何应对,品牌如何应对海淘