详解:如何做好系统性能评估?( 三 )


带宽计算中如何考虑校验的影响
对于顺序写业务,IO经过cache的IO合并后下发到RAID层,基本能够确保都是满分条写 。对于RAID5-5(4D+1P)这种配置来说,每4个数据IO(D)下盘同时会有一个校验IO(P)需要下盘 。
校验IO下盘所占的硬盘带宽用于保障数据的可靠性,而对于用户上层业务来说并没有提供可用带宽,因此需要扣除掉校验位下盘所占的带宽开销 。

详解:如何做好系统性能评估?


对于顺序读业务,在满分条的情况下,在每个分条内部只需要读数据位所在的磁盘,不需要读校验位所在的磁盘 。
详解:如何做好系统性能评估?


例如,某一款产品,能够提供的最大写带宽为3200MB,规划配置96块600GB 15k SAS盘(推荐单盘写带宽为30MB),部署RAID6-6(4D+2P),估算这款产品能够提供的有效写带宽 。
硬盘提供的有效写带宽 = 单盘顺序写带宽 * 硬盘数量 * (RAID数据盘数量/RAID总盘数)= 30MB * 96 * (4/6)= 1920 MB
产品能提供的有效写带宽 = MIN(产品能提供的最大写带宽,硬盘提供的有效写带宽)= MIN(3200MB,1920MB)= 1920 MB
什么是读写比和对性能影响
读写比(Read/Write):指的是上层应用下发的读IO和写IO的比例分布 。此数据是存储规划的重要参考依据 。读业务与写业务消耗的存储资源差异很大 。下面是一些典型业务模型的常见读写比例
详解:如何做好系统性能评估?


确切了解上层应用的读写比例直接影响到对cache策略、RAID级别和LUN配置的选择 。写业务比读业务会消耗更多的存储系统资源:
1、在回写的场景下,写IO下发到cache之后需要通过交换通道“镜像”到对端控制器,IO路径更长,并需要占用交换通道的带宽;
2、为保证写数据的可靠性和一致性,智能存储通常会采用一些可靠性技术,例如writehole方案,需要将写数据额外保存一份在cache或磁盘上;
3、对于不同的RAID级别而言,写惩罚的存在会造成更大的时延和资源的开销;此外,对于磁盘(包括SSD盘)而言,写速度低于读速度 。
而对于读业务来说,通常消耗较少的系统资源 。例如,读业务不需要生成额外的数据来保证数据一致 。此外,绝大部分存储设备的读速度都比写速度要快 。当读IO发现它所需读取的数据已经在Cache中(读命中)时,可以直接返回而不需要再下盘读取 。在读命中的情况下,通常意味着最短的响应时延 。
同样数量的主机IO,如果读写比例不同,最终需要下盘的IO数量不同,意味着需要提供的磁盘能力不同 。
例如,RAID6单次写入需要分别对数据位和校验位进行3次读和3次写,即写惩罚是6 。在RAID6的场景下,如果有1000个随机的主机IO,读写比为2:8,则需要下盘的IO数量为1000*0.2 + 1000*0.8*6 = 5000;而如果读写比例为8:2的话,则需要下盘的IO数量为1000*0.8 + 1000*0.2*6 = 2000 。
不同RAID级别对性能和容量影响
【详解:如何做好系统性能评估?】由于各RAID级别的写惩罚不同,对于相同的业务类型、同样数量的硬盘而言,选择不同的RAID算法,能够提供给主机的性能是不相等的 。
针对各种典型场景的RAID10、RAID5和RAID6的性能对比,其中假设某存储设备上所有硬盘能够提供的性能为100%,按照各个应用场景的读写比例,经过写惩罚系数的折算,得到配置成各个RAID级别后能提供给用户的实际性能 。
详解:如何做好系统性能评估?


从数据中也可以看出,对于不同的业务类型、同样数量的硬盘、相同的RAID算法,写比例越大,性能越差 。以SPC-1场景配置RAID6为例,假设用户实际性能为x(0.4x + 0.6x * 6 = 100%),实际性能只是磁盘能提供的x = 25% 。

推荐阅读