我有一个带有 2 个背板的存储单元。一个背板可容纳 24 个磁盘,一个背板可容纳 12 个磁盘。每个背板都独立连接到 RAID 卡的 SFF-8087 端口(4 通道/12Gbit)。
这就是我真正要问的问题。背板会不会超载?或者说超载有多容易?机器中的所有磁盘都是 WD RE4 WD1003FBYX(黑色)驱动器,平均写入速度为 115MB/秒,平均读取速度为 125 MB/秒
我知道情况会根据我们在其上放置的 raid 或文件系统而有所不同,但似乎只有一个 SFF-8087 连接器的 24 个磁盘背板应该能够使总线过载到实际上可能减慢其速度的程度?
根据我的计算,如果我在所有 24 个磁盘上都有 RAID0 并请求一个大文件,那么理论上我应该获得 24*115 MB/秒,这相当于总吞吐量为 22.08 GBit/秒。
要么是我搞糊涂了,要么这个背板设计得很糟糕——至少对于基于性能的环境来说是这样。
我正在考虑切换到一种模型,其中每个驱动器都有自己来自背板(和新的 HBA 或 RAID 卡)的通道。
编辑:更多细节
我们使用了纯 Linux(centos)、开放式 Solaris、软件 raid、硬件 raid、EXT3/4、ZFS。
以下是一些使用 bonnie++ 的示例
4 磁盘 RAID-0,ZFS
WRITE CPU RE-WRITE CPU READ CPU RND-SEEKS
194MB/s 19% 92MB/s 11% 200MB/s 8% 310/sec
194MB/s 19% 93MB/s 11% 201MB/s 8% 312/sec
--------- ---- --------- ---- --------- ---- ---------
389MB/s 19% 186MB/s 11% 402MB/s 8% 311/sec
8 磁盘 RAID-0,ZFS
WRITE CPU RE-WRITE CPU READ CPU RND-SEEKS
324MB/s 32% 164MB/s 19% 346MB/s 13% 466/sec
324MB/s 32% 164MB/s 19% 348MB/s 14% 465/sec
--------- ---- --------- ---- --------- ---- ---------
648MB/s 32% 328MB/s 19% 694MB/s 13% 465/sec
12 磁盘 RAID-0,ZFS
WRITE CPU RE-WRITE CPU READ CPU RND-SEEKS
377MB/s 38% 191MB/s 22% 429MB/s 17% 537/sec
376MB/s 38% 191MB/s 22% 427MB/s 17% 546/sec
--------- ---- --------- ---- --------- ---- ---------
753MB/s 38% 382MB/s 22% 857MB/s 17% 541/sec
现在 16 盘 RAID-0 变得有趣了
WRITE CPU RE-WRITE CPU READ CPU RND-SEEKS
359MB/s 34% 186MB/s 22% 407MB/s 18% 1397/sec
358MB/s 33% 186MB/s 22% 407MB/s 18% 1340/sec
--------- ---- --------- ---- --------- ---- ---------
717MB/s 33% 373MB/s 22% 814MB/s 18% 1368/sec
20 磁盘 RAID-0,ZFS
WRITE CPU RE-WRITE CPU READ CPU RND-SEEKS
371MB/s 37% 188MB/s 22% 450MB/s 19% 775/sec
370MB/s 37% 188MB/s 22% 447MB/s 19% 797/sec
--------- ---- --------- ---- --------- ---- ---------
741MB/s 37% 376MB/s 22% 898MB/s 19% 786/sec
24 磁盘 RAID-0,ZFS
WRITE CPU RE-WRITE CPU READ CPU RND-SEEKS
347MB/s 34% 193MB/s 22% 447MB/s 19% 907/sec
347MB/s 34% 192MB/s 23% 446MB/s 19% 933/sec
--------- ---- --------- ---- --------- ---- ---------
694MB/s 34% 386MB/s 22% 894MB/s 19% 920/sec
(有人开始看到这里的模式了吗?):-)
28 磁盘 RAID-0、ZFS
WRITE CPU RE-WRITE CPU READ CPU RND-SEEKS
358MB/s 35% 179MB/s 22% 417MB/s 18% 1105/sec
358MB/s 36% 179MB/s 22% 414MB/s 18% 1147/sec
--------- ---- --------- ---- --------- ---- ---------
717MB/s 35% 359MB/s 22% 832MB/s 18% 1126/sec
32 磁盘 RAID-0,ZFS
WRITE CPU RE-WRITE CPU READ CPU RND-SEEKS
354MB/s 35% 190MB/s 22% 420MB/s 18% 1519/sec
354MB/s 35% 190MB/s 22% 418MB/s 18% 1572/sec
--------- ---- --------- ---- --------- ---- ---------
708MB/s 35% 380MB/s 22% 838MB/s 18% 1545/sec
更多细节:
确切的单位如下:
http://www.supermicro.com/products/chassis/4U/847/SC847E16-R1400U.cfm
答案1
如果不知道您所使用的具体硬件,通过两个 SAS SFF-8087 可以获得的最大速度是 24Gbps 或 3 GBps;但许多控制器扩展器组合实际上不会正确使用 SFF-8087 中的所有 4 个通道,最终您只会得到大约一条链路(0.75GBps)。
考虑到您的绩效数据,我猜测情况是后者。
答案2
我本来想购买同样的产品,但是现在考虑到其性能,我最好再三考虑。
另一方面,您使用的是哪种 RAID 控制器?因为我在其他地方读到过,这些 LSI 背板与非 LSI RAID 卡配合得不是很好。
关于理论性能:对于 24 个驱动器背板,您应该有 (SAS2) 6 gbit x 4 = 24 Gbit,即每磁盘 1 Gbit。使用相同的计算方法,您应该使用另一个背板获得每磁盘 2 Gbit。现在,每磁盘 1Gbit 代表... 80 MB/s?因此,2Gbit 足以使磁盘成为瓶颈。所以:
(80 MB/秒 * 24)+(125 MB/秒 * 12)= 3420 MB/秒
我知道这只是理论上的,没有人会在现实世界中期望这些数字……但你得到的是~10%。你最好用 Supermicro 或 LSI 检查这个问题,因为这很奇怪。
答案3
您引用的平均磁盘速度可能适用于最佳条件下的高度连续操作。如果您的工作负载是随机的,那么说起来会更糟糕(我是认真的)。
SFF-8087 电缆只有 4 个通道,您基本上可以通过以最大速度读取/写入 4 个磁盘来超载它们。关键是,您通常不会一直这样做,这就是 SuperMicro 在其机箱的 E1/E2 版本中使用 LSI 扩展器的原因。
如果您始终需要最大性能,则需要将每个磁盘连接到控制器上的单个 SAS 端口。大多数控制器有 4、8 或 16 个端口,因此您必须进行计算并添加更多控制器以支持 36 个磁盘。TQ 版本的 SuperMicro 机箱允许您以这种方式访问磁盘。
原始 IOPS 性能取决于您关注的设备。LSI HBA 通常具有 >250k IOPS 规格,而 SATA 磁盘将达到 100-120,SAS 稍高一些,而平均 Intel SSD 为 3000 IOPS(高度依赖于您的块大小)。
您必须了解您将要投入到这台机器上的工作负载,否则您将过度配置错误的资源。如果您的工作负载高度随机,并且您需要从磁盘/SSD 获得更多 IOPS,那么专注于原始顺序速度(每个磁盘都有自己的控制器通道)将无济于事。