首先先来了解下,什么是smart path Smart Path的技术介绍: 在传统的IO传递中,一个IO请求需要经过驱动,再经过阵列卡固件控制,通过阵列卡写到硬盘上 SSD Smart Path是一个在SSD上开启优化路径的一种技术,通过绕过Smart Array固件的方式直写硬盘,取代传统的IO传递方式 Smart Path是smart array阵列卡软件堆栈,换句话说就是HPE Smart Array的驱动,部署在直连储存上(direct-attached storage) SSD Smart Path主要用途是处理小的IO请求,通常来说,小的IO写请求会在任何的RAID level上开启,而小的IO读请求是在RAID0上开启。
开启smart path的前提要求: 1. 要求在HPE ProLiant Gen8以上的类型的服务器上 2. 一定是在SSD硬盘组成的逻辑卷上 3. 最新的Smart Array Controller的固件 4. 最新的Smart Array的驱动 5. Smart Array Controller必须有cache Module缓存模块 开启smart path的方式: 通过使用PE Smart Storage Administrator (SSA)工具进行开启 备注:默认当SSD硬盘组件的logical drive时,其smart path就是开启的。 Smart Path的性能测试对比: 那么接下来的问题,开启smart path和不开启smart path在性能上,到底有什么区别呢? 下面是对smart path的性能测试(测试结果仅供参考): 准备的测试材料: 测试的硬件: R59G2服务器,P840阵列卡,2块480GB SSD硬盘,每块硬盘组成一个RAID0,分别在一个RAID0上开启smart path,在另外一个RAID上禁用smart path。 测试的系统:Red Hat Enterprise 6.8 测试的方式: 如果我们之前所提到的,smart path主要是在小的IO读写上有优势,所以我们主要以4k大小的IO请求为测试元素 整体测试结构如下: 逻辑卷A:1块480G SSD硬盘,RAID0,开启smartpath(默认) - 在系统下识别为sdd 逻辑卷B:1块480G SSD硬盘,RAID0,关闭smartpath(手动) - 在系统下识别为sde 测试一:4k块的小IO随机读请求测试 分别对两块硬盘进行fio 4k块大小的 IO小读请求,命令如下: fio -name='4K-Random-Read' -filename=/dev/sdd -direct=1 -rw=randread -bs=4k -size=100G -numjobs=2 -runtime=20 -group_reporting 测试结果1: read : io=2008.6MB, bw=102833KB/s, iops=25708, runt= 20001msec fio -name='4K-Random-Read' -filename=/dev/sde -direct=1 -rw=randread -bs=4k -size=100G -numjobs=2 -runtime=20 -group_reporting 测试结果2: read : io=1658.6MB, bw=84912KB/s, iops=21227, runt= 20001msec 测试一的结论: 从这个结果中,我们可以看出,开启smart path要对比禁用smart path在小IO读请求时,会有一定的提升 测试二:1M块的大IO随机读请求测试 下面是分别对两块硬盘进行fio 1M块大小的 IO小读请求,命令如下: fio -name='1M-Random-Read' -filename=/dev/sdd -direct=1 -rw=randread -bs=1M -size=100G -numjobs=2 -runtime=20 -group_reporting 测试结果1: read : io=10564MB, bw=540769KB/s, iops=528, runt= 20004msec fio -name='1M-Random-Read' -filename=/dev/sde -direct=1 -rw=randread -bs=1M -size=100G -numjobs=2 -runtime=20 -group_reporting 测试结果2: read : io=10557MB, bw=540437KB/s, iops=527, runt= 20003msec 测试二的结论:从大块IO读测试中,我们看出smart path并没有生效,两者的测试结果近乎相同。 总结:由此我们验证了,开启和关闭smart path在读写小IO请求的情况下,会有一定的性能提升 |
|