一起因硬盘 APM 设定值被不停地重置为 128 而最终发现的, SATA 供电线接触不良(非常轻微)的故障

ungrown:家里自组的 NAS (完全没有 NAS 该有的样子)自打四年前服役以来,每年总是会遇到两三起软硬件故障

虽然基本但是我作死,操作、配置不谨慎居多,硬件本身鲜有大毛病,个别配件可能会闹些小脾气

HDD 的供电线是用一转二 SATA 供电线扩展出来的口,其实以前就发现过接触不良的现象,但当时用热熔胶加固后就一直没有复发过

因为这块 HDD 是用 hdparm 设置成禁用 APM 的(-B255 ),几年来一直如此

但最近几天发现它总是自己变成 APM=128 (上电后的默认值),哪怕手动输入hdparm -B255之后,过不了多久还是会变成 128

然而从没想过是电源线的事情

今天休息,依然发现这个现象,耐不住自己的疑心病,把机箱侧板打开,没过一会儿就听到了很不妙的声音

是 HDD 掉电停转时磁头复位伴随转速下降的声音,然而还没停稳,紧跟着就是重新上电时电机发力的声音

不好!

观察了好一会儿,发现这个现象时不时会发生,但是间隔并不一定,也没什么规律,试着去各种角度折弯供电线,但并不会让这种掉电又立刻上电的现象变得可控,也对,一分二线的转接处早就被我胶死了,接触不良的地方肯定另有它处

想了一会儿,问题根源也找到了,至于到底哪里接触不良也不纠结了,直接把 HDD 和装系统的垃圾 SSD 的 SATA 供电线交换了一下

这个看似怠慢的举动其实是有道理的,既然之前 HDD 接这根线是隔几分钟掉电并且立刻上电的话,那么说明这根线接触不良的情况很轻微

SSD 吃电很少,其内部有额外的板载直流电源模块,配合数量不算少的滤波电容,这么轻微的波动,对 HDD 而言不能容忍,但对这块 SSD 来说应该问题不大

怀着忐忑(并不)的心情换完电源线后,重启,到现在已经过去 9 个小时,还没看到关于 SSD 的报错或者警告日志,而 HDD 也不再掉电复位,一切似乎岁月静好

再观察几日

(只是可怜了这块 HDD,这么想来,前前后后它忍受这样恶劣的供电足足持续了一个多星期,难怪前几天上面的 ZFS 因为校验错误丢了整整一个目录,还好有镜像,数据并没丢。这块硬盘也买来四年多了,目前来看没有什么不良预兆,希望这次的供电问题没有对它造成太大影响)

对于 1 亿个字符串(10~30 字符长度) 求一个算法尽量均匀映射到 128 个哈希桶

therethere9:字符串是数据库的主键,考虑到数据量比较大,想根据字符串的哈希值建立对应的 128 个表,这样每个表只需要存储 1 百万条记录。请教有比较好的类似哈希函数吗?主要考虑因为哈希函数调用量非常频繁,挑选的哈希函数运算开销尽量要小,哈希映射的均匀分布质量的话,其实只要差不多就行了(不需要达到完全均匀分布,各个映射到的桶之间差 30%以内都可以…

UnicodeEncodeError:'ascii'编解码器无法在位置0编码字符:序数不在范围内(128) - python

我正在使用使用剪刀字符(9986-✂)的Python脚本,正在尝试将代码移植到Mac,但是遇到了此错误。从IDLE(Python 3.2.5-OS X 10.4.11 iBook G4 PPC)运行时,剪刀字符显示正常,并且代码在Ubuntu 13.10上完全正常,但是当我尝试在终端上运行时,出现此错误/追溯:Traceback (most recent c…