硬盘的性能指标有哪些 硬盘的性能指标( 四 )


从经验上讲 , 我们在测试工作中 , 我们主要关注 IOPS 和吞吐量以及磁盘的 busy% 这三个数值 。如果 IOPS 和吞吐量均很低 , 磁盘的 busy% 也很低 , 我们会认为磁盘压力过小 , 造成吞吐量和 IOPS 过低;只有在 IOPS 和吞吐量均很低 , 磁盘的 busy% 很高(接近 100%)的时候 , 我们才会从磁盘 I/O 方面分析 I/O 性能
介绍通常在讨论不同RAID保护类型的性能的时候 , 结论都会是RAID-1提供比较好的读写性能 , RAID-5读性能不错 , 但是写入性能就不如RAID-1 , RAID-6保护级别更高 , 但写性能相对更加差 , RAID10是提供更好的性能和数据保护 , 不过成本更高等等 。其实决定这些性能考虑的因素很简单 , 它就是RAID Write Penalty(写惩罚) 。本文从原理上解释了不同RAID保护级别的写惩罚 , 以及通过写惩罚计算可用IOPS的 ***。
更多信息RAID-5 Write Penalty的例子:
存储方案规划的过程中 , 最基本的考虑因素有两个 , 性能和容量 。性能上的计算看可以分为IOPS和带宽需求 。计算IOPS , 抛开存储阵列的缓存和前端口不谈 。计算后端物理磁盘的IOPS不能简单的把物理磁盘的更大IOPS相加而获得 。原因是 , 对于不同的RAID级别 , 为了保证当有物理磁盘损坏的情况下可以恢复数据 , 数据写入的过程中都需要有一些特别的计算 。比如对于RAID-5 , 条带上的任意磁盘上的数据改变 , 都会重新计算校验位 。如下图所示 , 一个7+1的RAID-5的条带中 , 七个磁盘存储数据 , 最后一个磁盘存储校验位 。

硬盘的性能指标有哪些  硬盘的性能指标

文章插图
对于一个数据的写入 , 我们假设在第五个磁盘上写入的数据为1111 , 如下图所示 。那么整个RAID-5需要完成写入的过程分为以下几步:
硬盘的性能指标有哪些  硬盘的性能指标

文章插图
读取原数据0110 , 然后与新的数据1111做XOR操作: 0110 XOR 1111 = 1001读取原有的校验位0010用之一步算出的数值与原校验位再做一次XOR操作: 0010 XOR 1001 = 1011然后将1111新数据写入到数据磁盘 , 将第三步计算出来的新的校验位写入校验盘 。由上述几个步骤可见 , 对于任何一次写入 , 在存储端 , 需要分别进行两次读+两次写 , 所以说RAID-5的Write Penalty的值是4 。
不同RAID级别的Write Penalty:
下表列出了各种RAID级别的Write Penalty值:
RAID
Write Penalty
0
1
1
2
5
4
6
6
10
2
RAID-0:直接的条带 , 数据每次写入对应物理磁盘上的一次写入
RAID-1和10:RAID-1 和RAID-10的写惩罚很简单理解 , 因为数据的镜像存在的 , 所以一次写入会有两次 。
RAID-5:RAID-5由于要计算校验位的机制存在 , 需要读数据、读校验位、写数据、写校验位四个步骤 , 所以RAID-5的写惩罚值是4 。
RAID-6:RAID-6由于有两个校验位的存在 , 与RAID-5相比 , 需要读取两次校验位和写入两次校验位 , 所以RAID-6的写惩罚值是6 。
计算IOPS:
根据上文的描述 , 在实际存储方案设计的过程中 , 计算实际可用IOPS的过程中必须纳入RAID的写惩罚计算 。计算的公式如下:
物理磁盘总的IOPS = 物理磁盘的IOPS × 磁盘数目
可用的IOPS = (物理磁盘总的IOPS × 写百分比 ÷ RAID写惩罚) + (物理磁盘总的IOPS × 读百分比)
假设组成RAID-5的物理磁盘总共可以提供500 IOPS , 使用该存储的应用程序读写比例是50%/50% , 那么对于前端主机而言 , 实际可用的IOPS是:
(500 ×50% ÷ 4)+ ( 500 * 50%) = 312.5 IOPS
具体不同应用程序的读写比例 , 可以参考:关于不同应用程序存储IO类型的描述
===================================
机械硬盘的连续读写性很好 ,  但随机读写性能很差 。这是因为磁头移动至正确的磁道上需要时间 , 随机读写时 , 磁头不停的移动 , 时间都花在了磁头寻道上 , 所以性能不高 。如下图:
硬盘的性能指标有哪些  硬盘的性能指标

文章插图
在存储小文件(图片)、OLTP数据库应用时 , 随机读写性能(IOPS)是最重要指标 。

推荐阅读