我有一台小型家用服务器,它基于 Lian Li PC-Q25 机箱,SATA 背板标榜自己可热插拔。主板是华硕 P8H77-I。我有 4 个 SATA 驱动器连接到背板上 - 两对内置在 RAID1 阵列中。系统在 Centos 6.3 x86_64 上运行。
其中一个驱动器坏了,所以我按照推荐的步骤操作:同步,从阵列中移除,正确关闭并拔出。这里没有灾难,我可以听到驱动器旋转的声音,dmesg 日志中没有出现任何错误。
现在,我认为按照 SATA 标准,驱动器中的交错针脚可以确保安全插入,而不会出现任何突然的电涌。将驱动器推入时,我可以听到其他驱动器的速度减慢,并在很短的时间内点击它们的头部。
检查 dmesg 日志发现以下内容:
ata1: exception Emask 0x10 SAct 0x0 SErr 0x4090000 action 0xe frozen
ata3.00: exception Emask 0x10 SAct 0x3ff007ff SErr 0x4890000 action 0xe frozen
ata3.00: irq_stat 0x08400040, interface fatal error, connection status changed
ata3: SError: { PHYRdyChg 10B8B LinkSeq DevExch }
ata3.00: failed command: WRITE FPDMA QUEUED
ata3.00: cmd 61/80:00:3f:81:ca/00:00:00:00:00/40 tag 0 ncq 65536 out
res 40/00:54:bf:81:ca/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
ata3.00: status: { DRDY }
(最后的 ata3.00 消息重复了大约 20 次,数字不同,但文本相同)
最后几行是:
ata3.00: status: { DRDY }
ata3: hard resetting link
ata2: exception Emask 0x50 SAct 0x0 SErr 0x4090800 action 0xe frozen
ata2: irq_stat 0x00400040, connection status changed
ata2: SError: { HostInt PHYRdyChg 10B8B DevExch }
ata2: hard resetting link
ata1: irq_stat 0x00400040, connection status changed
ata1: SError: { PHYRdyChg 10B8B DevExch }
ata1: hard resetting link
ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
ata1.00: configured for UDMA/133
ata1: EH complete
ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata2.00: configured for UDMA/133
ata2: EH complete
ata3.00: configured for UDMA/133
ata3: EH complete
另外,我的日志观察报告了 SMART 数据的以下变化:
/dev/disk/by-path/pci-0000:00:1f.2-scsi-2:0:0:0 [SAT] :
Prefailure: Raw_Read_Error_Rate (1) changed to
100,
Prefailure: Reallocated_Sector_Ct (5) changed to
200,
Prefailure: Spin_Up_Time (3) changed to
100,
Usage: Seek_Error_Rate (7) changed to
200,
/dev/disk/by-path/pci-0000:00:1f.2-scsi-3:0:0:0 [SAT] :
Usage: Calibration_Retry_Count (11) changed to
100,
Usage: Load_Retry_Count (223) changed to
100,
Device: /dev/disk/by-path/pci-0000:00:1f.2-scsi-2:0:0:0 [SAT], Self-Test Log error count increased from 0 to 1
第二天,SMART 日志中仍然有可疑条目:
/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 [SAT] :
Usage: Seek_Error_Rate (7) changed to
200,
/dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0 [SAT] :
Usage: Seek_Error_Rate (7) changed to
200,
/dev/disk/by-path/pci-0000:00:1f.2-scsi-2:0:0:0 [SAT] :
Usage: Multi_Zone_Error_Rate (200) changed to
200,
/dev/disk/by-path/pci-0000:00:1f.2-scsi-3:0:0:0 [SAT] :
Usage: Throughput_Performance (2) changed to
56,
/dev/disk/by-path/pci-0000:00:1f.2-scsi-4:0:0:0 [SAT] :
Prefailure: Raw_Read_Error_Rate (1) changed to
116, 117,
Usage: ECC_Uncorr_Error_Count (195) changed to
116, 117,
因此,显然 sata 后端只是立即强行启动了驱动器,可能会导致电压暂时下降。
我的错误可能是将所有四个驱动器插在同一个 PSU 导轨上,并期望 PSU(尽管是具有良好规格的 800W Seasonic)能够应对突然的功率消耗。
SATA 背板背面有两个 Molex 连接器用于供电 - 我将它们插入单独的 PSU 导轨以确保更稳定的电源输出。
当我将驱动器放回驱动器组时,有什么办法可以防止它立即旋转起来吗?
另外,我是否可能损坏了驱动器(可以从这些日志消息中看出来吗)?
谢谢你!
答案1
硬盘的功耗约为 11 瓦,因此如果您的 PSU 是 800W,那么应该没有问题。
一些大型硬盘阵列可以按顺序启动硬盘以避免潜在的电气问题,但这取决于控制器。
您是否尝试过重启服务器(冷重启),一切正常吗?正如您所说,您听到其他驱动器旋转并发出咔嗒声。这当然不正常。也许热插拔背板制造不良,热插拔过程中出现短路。