私家 homelab 番外篇一:SAS 硬盘兼容性问题解决
SAS 硬盘停转协议兼容适配

正篇系列已经介绍了笔者本人在家里搞了一个 ceph 集群的硬件搭建部分介绍,再来开一个番外介绍下一些小问题的解决方案,把经验分享给有需要的 NAS 玩家。当然技术大佬们可能会不屑于这个系列的内容,望多多包涵。

TL;DR

本文主要说明对于在 SAS 硬盘柜或者热插拔服务器硬盘架上,使用新款 SAS 硬盘可能遇到的盘片停转问题的解决办法。原理很简单,只需要屏蔽硬盘供电引脚 pin3 部分的信号即可解决。

01. 硬盘坏了吗?

本次在家中组建 Ceph 集群,新入了一批希捷企业级 Exos SAS 盘。毕竟这些年 SAS/SATA 其实都在混用,最终用下来的感受还是 SAS 盘在可靠性上更加靠谱,接口设计上支持两路数据通道,有一定冗余度。企业级盘在设计用料做工方面要优于专门的 NAS 盘,像希捷的无论是 SATA 还是 SAS 都可以有厂商的五年保,7 x 24h 工况下,如果保修期内出毛病还能找代理商换。

SAS

当我拿着买回来的硬盘,装上热插拔托盘,插到服务器上。上电启动后发现,机箱前面板的硬盘电源指示灯工作正常,但是上电过程却没有看到硬盘读写灯闪烁,同时也没有听到一般硬盘启动过程中,电机发出的启动噪音(其实 SAS 盘的电机声音要比 SATA 盘来的更明显一点)。

第一个怀疑是我的阵列卡配置有问题,也可能是我的背板问题,或者是 SAS 线的连接问题。然而手头正好有一块限制 SAS2 的 10k 硬盘,插上以后可以直接被识别,显然没有我一开始想的那么直接。于是我开始怀疑是不是这块硬盘有问题,我是不是遇到奸商了,毕竟我这个硬盘也是捡的二手,只不过成色很新,同样有联保而已。大不了硬盘有问题,本地找代理商换就是了。

于是我又试了下第二块硬盘,同样不能被识别。按照我对企业级产品的品控感觉来看,一般不可能出现连续两块硬盘都有问题的情况。所以我开始意识到,这个问题可能并不是硬件故障,而是协议兼容性的问题,于是便上 stack exchange 上找找有没有类似的问题案例,最终发现了问题的原因所在。

02. 问题原因

现在所能遇到的主流 SAS 硬盘一般执行 SAS 3 标准,但是在修订版本的规范中,新增了用于控制硬盘节能的 power disable (PWDIS)功能,允许像 SATA 硬盘控制 HDD 盘片的停转一样实现节能目的,而后在 2017 年开始陆续有厂商开始在 SAS 硬盘上也支持这一特性。PWDIS 功能使用 15 针供电线接口部分的第三针来实现对于 HDD 盘片转动的控制,当该引脚存在 3v 电压信号时,硬盘的盘片就会处于停转状态,而无法正常工作。从厂商对于硬盘的物理引脚定义说明文档中,就可以看到相关的介绍。

PWDIS

power pin

本身 SAS/SATA 接口的物理定义其实都采用了 SFF-8482 的物理规范,区别仅在于 SAS 多了一组 7 针的信号线。所以,一般服务器的热插拔硬盘架可以很轻松的实现两种物理设备的混合支持,当然前提后方还需要有 SAS 控制器来提供对 SAS 协议的支持。

SATA

SAS

更新的 U2 接口其实也是使用了与 SAS 类似的物理接口形态,只不过对于冗余信号线部分有了全新的设计,直接实现了将 PCI-E 协议直接连接到盘架上面。

03. 解决办法

解决方法其实可以分情况来处理,对于直接使用 SAS 线来连接硬盘的朋友来说,电源自带的 15pin 电源线因为包含了 3v 供电的输出,也会遇到这个问题,但是这种情况下,有个最简单的方式可以解决此问题,那就是直接使用 4pin 电源(俗称大 D 口)转接 sata 供电线来解决。

SATA 供电

4pin 转 SATA

因为 4pin 的引脚定义中只包含 12v 与 5v 定义,本身电脑中对于 3v 信号的使用是非常罕见的。大 D 口转 SATA 电源只是纯粹的物理连线处理,不会多出 3v 信号,就直接避开了这个问题。

不过对于像我一样,使用 SAS 背板来接硬盘的同学来说,可能就没有那么顺利,需要额外动手来 hack 一下自己手上的设备。其实也不复杂,找一个绝缘的透明胶或者单面胶将控制 PWDIS 的引脚覆盖即可,屏蔽这个控制信号以后,就可以免受该问题的困扰了。像我下面这张图的操作一样。

引脚频闭

如果觉得引脚太小,手残贴不好的话,其实也可以直接把 pin1 ~ pin3 都屏蔽掉,本身前两个引脚都是预留的,全屏蔽也没啥影响。

另外,暴力一点的玩家也可以直接用美工刀把这部分铜片直接切掉,不过这种做法会影响质保,以及硬盘将来的二手交易。一般不推荐这样的做法。

经过简单的改造以后,再把硬盘插上服务器的盘架,启动电源,硬盘读写指示灯工作正常。硬盘已经可以被 UEFI 和操作系统正常识别工作了。

本身对于我这边 Ceph 的使用场景来看,各个微服务的日志记录是存在连续写入的,并不需要硬盘停转功能,对于我的应用场景来说,屏蔽这一功能并不会带来什么损失,一般对于服务器应用场景,PWDIS 这个功能也显得有点鸡肋。

最后,欢迎各位大佬评论点赞。


最后修改于 2020-02-23