组装SFF-8088外置存储柜的心路历程
首先,先对之前看过那篇Expander并期待本文的朋友说一声抱歉,两篇的时间差是有点长。不是因为我咕咕咕,而是因为坑实在太多,还请大家见谅。
先说明一下,SFF-8088并不是什么设备的型号,而是Mini-SAS x4外接接口的名字。我这么叫它是因为这个接口最能反映这个外置存储柜的特点,以及我真的不知道该叫它什么。
背景
组装这个存储柜的一个原因是因为之前在家里服务器上的4x3TB的RAID5阵列炸了一块盘,品牌希捷。虽然那块盘炸的那时候还在保,但希捷给我换回了块256MB大缓存人见人怕的盘。于是我入手了块东芝P300顶上去,并且更幸运的是,RAID5重建成功了(感谢LSI)。至于那块换回来的SMR,已经在某鱼上出了回血了。
虽然那个4x3T的阵列抢救回来了,但毕竟已经用了快80%多了,而且剩下的盘也说不准会不会炸,也是时候整一个更大的了。但全部迁移成本太高,我还是决定再组一个新的阵列一起用。正好疫情在家期间刷张大妈刷到了3月头的那次12T Elements的好价,于是入手了4块。配合着亚马逊三八节的优惠券,平均每块在1300以内,价格还是很香的。
买了这4块之后意味着又得往机箱里塞硬盘,但是家里服务器的8个3.5寸硬盘位已经全满了,光驱位也没空间,就想到了再买个机箱专门装硬盘,然后连接主机和那个机箱。这种外接主要有两个方案,一个是基于以太网,就是做NAS,张大妈上有一大堆文章讲组装NAS的,从千兆到万兆都有;另一种是基于SAS的,类似于eSATA这样,直接从机箱里把硬盘线拉出去。
这台服务器配置是2xE5-2696v2,64G内存,超微X9DRi-LN4F+主板,PCIe从上到下分别是Dell H710p阵列卡、4路M2转接卡,Intel i350-T4网卡,USB3.0扩展卡(没错C602这么上古的主板没有USB3.0),海韵650W电源,右边是2个光驱和8个网卡。这台机器上跑ESXi,上面再跑好几个虚拟机,包括软路由这些。配置算是一般的垃圾佬配置,经过几年折腾这货已经快被我打造成要你命3000了。顺便提一下,之前这机器上面我试过各种虚拟化方案,甚至比较硬核的用virsh管理的KVM,用下来感觉还是ESXi最强大。
回到先前的话题,为什么我选择基于SAS的方案,而不是基于以太网的,主要还是成本上的考量。基于以太网的话,相当于配一台新电脑,主板CPU内存什么都得搞一套。更麻烦的是,千兆网肯定不够用,万兆网卡一个是不便宜,即使是双子星拆下来的CX341也要上百一块,另一个是要占用PCIe通道,考虑到我要上阵列卡,需要2个PCIe槽,这直接否决了一票蜗牛星际拆下的J1900主板这些。而且以太网还有不小的协议栈开销,至于上InfiniBand开RDMA,得是土豪才能考虑的了。而SAS相对来说就比较便宜,只需要2块内接口转外接口的板子,比如SFF-8087转SFF-8088,和数据线就行了,如果是主动式的话,买一块Expander来充当背板就行了,而且一根SFF-8088的数据线配合6Gbps的卡,理论速度有4*6=24Gbps,比万兆网还快,而且省去了阵列卡-网卡间的拷贝开销,性能上强于万兆网。
硬件选择
硬件选择还是挺简单的,我这边要用到8个盘位,淘宝上8盘位的小机箱一大堆,我买了个大蜗牛A款。
这货和蜗牛A非常非常像,区别就是能塞8个盘,以及硬盘位下面有个地方可以装个小屏幕,有个PCIe槽,还有它的背板是SFF-8087接口的被动背板,而不是蜗牛A的4个SATA口。
稍微解释下什么是主动背板,被动背板,简单理解的话,主动背板就是有芯片的,一根线可以带N个盘,N取决于背板那块芯片,那块芯片和交换机类似。而被动背板没有芯片,其功能相当于数据线。至于为什么一根SFF-8087线能带4个盘,这根线传输4路信号,说的更通俗些的话,就是它可以被看成4根SATA捆一起。
买这个机箱之前,由于我不往上面装主板,还问了客服,确定了默认主板那边挡片不是空的。到手之后发现这机箱主板I/O挡片那边自带那块保护板还挺厚的。
机箱正面,当中那块空的是我把那个装屏幕位置挡片卸了,原因后面会讲
机箱之外的另一个大件是电源,电源这东西在接硬盘这事情上,我个人是倾向于用好的。硬盘虽然平时功耗并不高,但是启动一瞬间的电流还是很大的。虽然现代的阵列卡/HBA卡有Staggered Spin-Up功能来让硬盘交错启动,避免瞬间功耗过大,但给8块同时启动做好冗余,还是有必要的。
45Drives这个项目做过一个实验,他们测量了15块ST1000NM0033(1TB,7200RPM)的启动电流,并画了下面这张表。
15块ST1000NM0033启动5秒内的电流,红线为5V输出,黄线为12V
可以看到,硬盘启动前4s内的功耗还是很大的,15块硬盘最高需要12V上约33A的输出,5V上约6A的输出。简单计算可以知道,1块硬盘启动大概需要12V 2.2A以及5V 0.4A,也就是28.4W。
而西部数据的这份HC520(就是12T Elements里面那块盘降速前的原型)的文档指出,12T的HC520氦气盘,SATA型号启动时需要5V 0.4A和12V 1.52A,也就是20.24W。
这里取比较大的那个,再多算点,算它30W好了。那8块盘就是240W,保险起见,我上了300W的电源。这里我用的是改蜗牛电源常用的益衡7000B系列中的300W型号,益衡ENP7030B。
回到机箱上,这个机箱的背板2个Molex接口带8块硬盘,一开始我也觉得有点虚,查了一下,大D口最多每个pin可以承载11A,再用上面的数据,以一个接口拖4个硬盘来算,最多那个pin也就是8.8A,还有一定的安全空间。此外,银欣CS380那个8盘位机箱也是两个大D口供电,看来是没问题的。
不过这个限制也提出了一个要求,就是这两个大D口不能来自电源出来的同一根线,必须来自两条线。查了一下益衡7030B的Spec,符合这点。换句话说,不能同时用下图中的P5和P6插这个背板,必须用P4和P5或者P4和P6。
顺带一提,买电源的这家还送了两根大D口的延长线,正好。电源上的线是有点短。
而SFF-8087转8088的转接板就有点小贵了,某宝上要80多一片。
至于线材,我某鱼50块钱收了2根1m长的SFF-8088线,又50收了4根超短的SFF-8087线。这些线就是下一部分踩坑的万恶之源。
组装
组装比装ITX简单多了,电源一装,那个转接卡一插,再接一下线完事。为了让它更静音,我还买了个十块钱包邮的风扇调速器贴在机箱里。
组装这边大概最值得讲的是电源开关这个最基础的东西。这机器没有主板,要控制它的开关,最简单的办法是短接开机法,俗称回形针开机。
具体讲的话,就是当电源通电后,ATX 20/24pin上的PS_ON(Pin 16/绿线)被置高(5V),当其被置低(接地)时,电源将会输出5V,12V和3.3V,给设备供电。PS_ON被再次置高时,结束供电。所以只需要在PS_ON和任意一条GND之间接一个开关就行了。所以第一版的开机就这么出来了,淘宝上买根现成的ATX 24pin开机线搞定。
但这带来一个问题,整个机箱都是金属的,要在金属板上开这么一个放方形开关的孔是件非常困难的事情。后来在淘宝上发现了圆形的按钮开关,一眼就决定是它了。开圆形孔只需要钻头就行,还带LED,可以说是非常理想的选择了。注意对于这种短接开机,要买自锁的,才能保持接通状态。机箱上用的那种自复位的,是因为主板上有专门的开机电路来保持PS_ON长期接地。
LED的电源接过来也很简单,都开机了,直接24Pin上接一个12V过来点亮LED就完事了。这里我是用的两个上面那个开机线,用订书钉退针,做了一个4线的,其中两根GND,1根PS_ON,1根12V。像下面这样接线,就能实现按下按钮开机并点亮LED了。至于为什么不共用GND,是因为我用的插簧接的开关和ATX胶头,两个插片塞一个插簧里太难了。
至于开孔,我开在了那块机箱上装屏幕位置的挡片上。买一个16mm的金属钻头一钻就行了。为了方便,买开关的时候顺便买了个连接母座。装好之后是这样的。
最后是插入硬盘了,这次用的是我上一篇晒单中的4块12T元素盘拆机盘。由于我是顺便把阵列卡从Dell H710p换成Adaptec ASR-71605,这边我先插入新盘,老盘等数据转移完了再放入导回去。
一个个坑
组装完了就是上电了,也就是喜闻乐见的踩坑环节了。说实话,通电之前,我从没想过这玩意会有这么多坑。
Adaptec 71605+ESXi的坑
这次换上的Adaptec ASR-71605阵列卡有个我挺欣赏的功能,它和那些LSI的阵列卡不一样,支持一个叫RAID: expose RAW的模式,这个模式下,对于没做RAID的硬盘,这张卡会像HBA卡那样把它直通给系统。对于拆下来直接插上去的元素盘,应该是可以直接在ESXi的存储设备那里看到的,但是开机后却看不到。买这张卡之前,我是查过VMware Compatibility Guide的,上面说这张卡是支持6.7U3的,当时我又去查了一下,才发现这张卡不像LSI那些免驱的卡,是要自己装驱动的,ESXi自带的scsi-aacraid驱动是个残疾版。
跑到Adaptec官网,上面71605的驱动最高支持到ESXi 6。下载安装,驱动正常了,但是附带的CLI和远程管理的cim provider一用就报错,搜了下这个错误,还真有解决方案。说是安装下一代卡的驱动,也就是81605的驱动就好了。下载安装重启一套流程下来,它居然能用了。至于为什么新卡驱动能带旧卡,我在Windows版的驱动里找到了答案。
被动柜的坑
这个坑是一个比上一个更大,坑了我两个多礼拜的大坑。
一开始我计划的是被动方案,就是不借助Expander,直接用数据线连接阵列卡和硬盘,阵列柜也是为了这张方案设计的。上一个坑踩完之后,阵列卡终于认硬盘了,先通到虚拟机里跑个测试试试看。这一跑吓一跳,阵列卡一阵长哔,吓得我赶紧关机。拔下阵列卡,插到另一台机器上,启动到Adaptec bootUSB Utility试一试,至少不会哔了。谨慎起见,测试了下读取,因为是配置阵列卡用的USB启动环境,没什么测试软件,只能用最基本的'cat /dev/sdd > /dev/null'命令来了(这个命令意思是从sdd,也就是我硬盘的设备号读取原始数据,并丢弃)。这个命令跑是可以跑,但是跑起来巨卡无比,开了下maxView storage manager,一看吓一跳,硬盘的C7暴涨,再次吓得我赶紧按下Ctrl+C。
查了一堆资料,过程不表,最后查到原因是线太长了,机箱里70cm+外置1m+盘柜里30cm,再算上转接板、背板的距离,足足两米多,而SATA极限距离是2m(外置)或者1m(内置)(这是一个错误说法,后面会更正),也就是说,正好超了。
搜了一圈淘宝,发现有卖SFF-8088转4xSATA线,长2m的,更是验证了我当时的猜测。当场上淘宝,下单了我看到的最短的SFF-8643转8087线和SFF-8088线,都是50cm。这下这些线应该在2m内了吧。不过这些短的线反而比长的贵。
几天后线到了,有一说一,服务器的线做工都不错,但是外置线的50cm居然是含头50cm的,意味着机箱和盘柜必须靠的非常近。
换了短线之后又跑了一下之前的测试,C7不再增长了。终于可以配置RAID了。Adaptec的RAID配置界面还是很人性化的,并且支持UEFI。选择RAID类型,设置空间大小,设一下条带大小和缓存模式就行了,这里我选择的是RAID5,36T和1024K的条带大小,缓存我选择在电池正常工作时启用,这样可以保证掉电数据不丢失。虽然我这边电网还是很稳的,但毕竟是没配UPS的机器,还是稳一点好。
对于初始化,这张卡提供了两个模式,一个是Build,就是计算盘里的脏数据(大多数的删除都是标记删除,这些被标记为可用空间的数据就是脏数据),并写入,跟重建RAID一样;另一个是Clear,就是全盘写零。因为我这里都是新盘,当然选择Clear。(配图是Build是因为我第一次选错了,第二次忘拍了,请见谅)
经过一天多的初始化终于可以用了,并且C7也没有再增长。把这个阵列通进虚拟机,看上去是这样的。
顺便跑了下测速,也和之前那张H710p进行了下对比。虽然这个对比没有可比性,所用的硬盘不同,而且一个是空盘一个不是,另外71605上的阵列是用的RDM直通,而H710p是PCIe直通进虚拟机的(71605打PCIe直通会造成Windows启动失败,而H710p在ESXi下无法使用MegaRAID Storage Manager远程管理,因为SAS2208那代卡的cim provider只支持ESXi 5.5)这个测试是一个控制变量非常失败的测试,大家看一看就好。不过至少能看出,H710p的读缓存比较厉害,而写入是71605好一些,不过这两张毕竟是差不多年代的卡,性能总体上半斤八两吧。
娱乐跑分,上为H710p 4x3TB,下为71065 4x12TB,均开启读写缓存
跑完分就是给旧阵列的数据转移到新阵列上,这里我记录了用fastcopy的性能,总的来说,两张卡的性能都挺强的,基本都发挥了4盘RAID5相当于3盘RAID0的理论性能。
1T左右的数据拷贝+验证(写一遍读一遍)只要1小时左右,折算下来大概580MB/s,已经比一众SATA SSD强了,这玩意还不掉速。
又是被动柜的坑
俗话说得好,“人类总是重复同样的错误”。搞完第一个新的4x12T阵列后,下一步就是把旧阵列拆下来塞新阵列卡上了,这旧阵列不拆下来没事,一拆下来和新阵列丢一起初始化,又坏起来了,C7开始稳步上升。甚至在初始化的时候大半夜突然掉盘,持续的哔声把我吓醒。
问题又回到了前面的C7上,大家都知道,硬盘C7这个数值跟接口、线材有关。在先前的折腾之后,我寻思着我现在这个线也没问题,直到我发现了一个惊人的事实,SATA所谓的外接最长2米是有严格的条件的。
这个外接2m的条件是要卡上的接口是原生外接口,而转接出来的外接口和内接的一样,只能1m。那什么是eSATA HBA那,就是带eSATA接口的接口卡。
可能有些人有疑问,上面表里写的SAS可以10米,为什么到这边就成了1米了?这是因为10m是对于SAS设备来说的,而1米是对SATA设备而言的。如果是接SAS硬盘,那的确是10米。究其原因,是因为SAS和SATA的信号电压不同,SAS最高可以1600mV,而SATA最多只能600mV,更高的电压可以带来更远的传输距离。SAS"兼容"SATA,对于SATA硬盘,实际上传输的是SATA信号。
SATA和SAS是两个完全不同的协议,SATA是由ATA演变过来,而SAS是串行版的SCSI。这两个都可以追溯到非常古老的技术,大概20年前,SCSI硬盘是高端配置才会有的,而一般的硬盘是IDE的。如今SATA和SAS的硬盘虽然只差一个主控板(比如HC520既有SATA型号也有SAS型号),但操作硬盘的指令集还是完全不同的。不过现在的SAS控制器中有一个叫SAT的东西,不是考试那个SAT,而是SCSI/ATA Translation,通过它来将系统发来的SCSI命令翻译成ATA命令,从而可以带SATA硬盘。现在支持UASP的外置硬盘盒也有SAT。
回到先前的问题,要延长SATA信号的距离那,那必须得放弃被动方案,往里面塞一张Expander。
这里我用的Expander是我之前介绍过的联想03X3834。考虑到这玩意工作起来还挺烫的,这里我给它加了个风扇。
在小机箱里塞进这个Expander还是挺难的,一个是这张Expander尺寸并不小,而且也没有固定孔。由于实在没地方放了,只好机箱自带的前面板(开机按钮、USB口等)拆了。塞完之后机箱里画风是这样的。
加了Expander后,8块硬盘的C7终于不再增加了,虽然8块硬盘只有1块C7为0幸存。
接下来终于可以把数据导回去了,作为对比,我截了个同阵列卡之间不通硬盘复制的速度。可以看到,性能上略差于之前的不同阵列卡间对拷,我个人觉得应该是加了Expander之后的性能损失。不过530MB/s也够用了,跑满千兆网绰绰有余。
一些改装
最后对于这机箱的一些小问题,我稍微做了点改装。首先机箱自带的风扇风量不行,并且因为是用的螺丝固定,螺丝也不紧,导致箱子共振。这里我淘宝买了俩8025风扇,用减震钉固定,有一说一,这么小地方拉减震钉还挺麻烦的。
然后这个箱子的四个腿是不平的,并且也没橡胶垫,我给它装了几个。
另外在等买的0.5米的8088线到的时候,我给阵列卡换了个硅脂,阵列卡上原本自带的硅脂都干了。换硅脂之后阵列卡瞬间降温10度多,如果有用硬阵列卡且卡的温度很高的值友,也可以给自己的阵列卡换个硅脂,有奇效。
总结
先放个成品图
这次组这个SFF-8088硬盘柜,不算踩坑的部分,只算最终用到的,具体花费如下:
相对于直接组NAS不上万兆的话,这个硬盘柜价格上优势并不强。但如果想扩展硬盘位,并要比较好的传输性能的话,这样的SAS方案我个人感觉还是值得选择的。如果追求极致性价比,我觉得还是上俩蜗牛更好。
写这篇原创时候,这台设备已经正常工作1周了,稳定性看来也不错。
希望这篇原创能给大家一些参考吧,之前有值友也说过有类似的想法。最后再次提醒大家:SATA的线长千万不要超过1米。
零零碎碎写了快7000字了,感谢您耐心看到这里。如果有相关的问题,欢迎在下面评论。如果您觉得这篇文章对您有帮助,还请点个赞。再次感谢各位的阅读!
findyouwherever
校验提示文案
zyffreedom2
校验提示文案
你的名字是爱情
校验提示文案
jccg315
校验提示文案
蓝牙e族
校验提示文案
碧海兰
校验提示文案
大悠悠
校验提示文案
wavelet
校验提示文案
xmjn001
打算电脑外置2-4个硬盘,只有个简单的想法:搞一个硬盘架插硬盘,然后从主机后面接相同数量的电源线与硬盘线。
这样有什么弊端
校验提示文案
非正常天气
校验提示文案
蒙多
校验提示文案
哪个昵称不被占用呢
校验提示文案
涂鸦D微笑
校验提示文案
CasparLi
校验提示文案
greatjs
校验提示文案
wangfenghun
校验提示文案
qiefly2
校验提示文案
julianzhu1982
校验提示文案
请叫我大飞哥
校验提示文案
无人熟悉大菠萝
要知道会用到用了扩展卡就应该买16位的机箱。
另外问一下,用了扩展卡sas接口是不是只要一条就可以了?一个sas经过扩展卡也够8盘位了吧?
校验提示文案
wzpok
校验提示文案
虐杀血轮眼
校验提示文案
堕星落羽
校验提示文案
zhanzhan
校验提示文案
索尼今天破产了吗
校验提示文案
L_xhw
校验提示文案
你要可乐吗
校验提示文案
豉椒牛肉
校验提示文案
sundy1588
校验提示文案
晓燕燕
但是有一点困惑,那个盘柜的电源开关,打开是加电,这点应该没有问题。
如果需要断电是不是会变成强制断电,这样是不是对硬盘不好。
还是走主机关机或者休眠模式后,再手动关掉盘柜的电源,这样相当正常关机?
校验提示文案
值友2685882074
校验提示文案
值友2988978795
别用那个8088转接卡,直接把8087的线从机箱上找个洞拉出去,再从那个硬盘柜找个洞拉进去,中间就没有接头了,能比你这个方案稳定很多。
校验提示文案
faninx
校验提示文案
捆在树上的叶
校验提示文案
冰燕紫云
校验提示文案
值友3879431159
校验提示文案
值友7843701873
校验提示文案
lixaoyao
校验提示文案
謃謃
校验提示文案
值友9100546999
校验提示文案