云业务存储服务器配备多块SATA/SAS接口的HDD或SSD,是很常见的配置,例如2U通用服务器配置12块3.5”SATA-HDD,4U存储服务器配置36块3.5”SATA-HDD。影响磁盘性能的因素有很多,例如硬件拓扑、HBA卡、Host CPU性能、OS kernal、应用软件等,本文仅针对存储硬件的拓扑结构,计算磁盘性能的瓶颈点。
先介绍一个概念,吞吐量(Throughput):单位时间数据的传输量。吞吐量通常有IO per second(IOPS)和Megabytes per second(MB/s)2种,IOPS一般用来测试随机读写性能(Small IO Size),MB/s则用来测试顺序读写(Large IO Size), 使用MB/s时,吞吐量一般称为带宽(BW),下面我们来介绍如何计算存储硬件拓扑中带宽的瓶颈点。
图1 常见存储硬件拓扑(带Expander)
图1是常见的带Expander的存储硬件拓扑,链路包括PCIe、SAS、Expander和Drivers间的接口,这些都可能影响链路的带宽。理论上SAS3.0的带宽达到1200 MB/s,但实际测试能达到的带宽只有1075 MB/s,所以要按照实际带宽计算。表1包括理论带宽和实际带宽。
表1 SATA/SAS/PCIe接口带宽
Protocol |
Phy Count |
Direction |
BW (Theoretical Large)MB/s |
BW(Practical) MB/s |
SATA(6Gb/s) |
1 |
Read |
600 |
550 |
4 |
2400 |
2200 |
||
8 |
4800 |
4400 |
||
16 |
9600 |
8800 |
||
1 |
Write |
600 |
540 |
|
4 |
2400 |
2160 |
||
8 |
4800 |
4320 |
||
16 |
9600 |
8640 |
||
SAS(12Gb/s) |
1 |
Read/Write |
1200 |
1075 |
4 |
4800 |
4300 |
||
8 |
9600 |
8600 |
||
16 |
19200 |
17200 |
||
SAS(24Gb/s) |
1 |
Read/Write |
2400 |
2150 |
4 |
9600 |
8600 |
||
8 |
19200 |
17200 |
||
16 |
38400 |
34400 |
||
PCIe 3.0(8.0GT/s) |
1 |
Read/Write |
985 |
850 |
4 |
3940 |
3400 |
||
8 |
7880 |
6800 |
||
16 |
15760 |
13600 |
||
PCIe 4.0(16.0GT/s) |
1 |
Read/Write |
1970 |
1700 |
4 |
7880 |
6800 |
||
8 |
15760 |
13600 |
||
16 |
31520 |
27200 |
另一个要注意的是,当服务器配置SATA-HDD时, Expander两侧分别是SAS接口和 SATA接口。SAS规范中,允许更快的通信信道通过使用可删除的对齐数据(Deletable ALIGN Primitives)减慢信道速率,从而将流量传输到较慢的设备。当数据通过Expander时,对齐数据被移除,数据以较慢设备的速率传输。当Expander两侧分别是SAS3.0(12Gb/s)和 SATA3.0(6Gb/s)时,带宽减少了50%,如下图所示。
图2 Deletable ALIGN Primitives
针对上面问题,博通推出了DataBolt技术,在Expander内部增加了Buffer,当开启DataBolt后,SATA3.0侧带宽从SAS3.0侧带宽的50%提升到70%以上,Microchip也有类似的技术,带宽和博通接近,开启DataBolt的带宽如表2所示。
图3 博通DataBolt Buffer技术
表2 是否开启DataBolt的带宽
Interface Protocol to SAS Controller |
Interface Protocol to Drives |
Phy Count |
Direction |
BW(Practical) MB/s |
BW(Practical) MB/s |
SAS(12Gb/s) |
SATA(6Gb/s) |
4 |
Read |
3700 |
2200 |
8 |
7400 |
4400 |
|||
4 |
Write |
3300 |
2160 |
||
8 |
6600 |
4320 |
实例计算,SAS HBA卡使用MegaRAID Tri-Mode 9460-8i,配置SATA-HDD,单盘SATA-HDD的带宽大约250MB/s。根据表格的数据,PCIe链路带宽是6800MB/s,SAS链路是8600MB/s,当不开启DataBolt时,SATA链路的最大带宽是4320 MB/s,则瓶颈点在SATA链路,要保证SATA-HDD最大性能工作,最多配置17块,当开启DataBolt时,SATA链路的最大带宽是6600 MB/s,瓶颈点也在SATA链路,要保证SATA-HDD最大性能工作,最多配置26块。如果配置SATA-SSD,单盘SATA-SSD的顺序读带宽最大550MB/s,当开启DataBolt时,最多可配置12块。
图4 存储硬件拓扑实例