我只是在热插拔驱动器时失败了吗?

Rem*_*lor 8 linux home-server sata hotswapping

我有一个围绕联力 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 }
Run Code Online (Sandbox Code Playgroud)

(最后一个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
Run Code Online (Sandbox Code Playgroud)

此外,我的 logwatch 报告了 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
Run Code Online (Sandbox Code Playgroud)

第二天,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,
Run Code Online (Sandbox Code Playgroud)

因此,显然 sata 后端只是立即粗暴地为驱动器供电,可能会导致电压暂时下降。

我的错误可能是将所有四个驱动器都插入同一个 PSU 导轨中,并期望 PSU(尽管具有良好规格的 800W Seasonic)能够应对突然的功耗。

SATA 背板背面有两个 Molex 连接器用于供电 - 我会将它们插入单独的 PSU 导轨以确保更稳定的电源输出。

有没有办法防止驱动器在我将其放回驱动器包时立即旋转?

另外,我是否可能只是损坏了驱动器(从这些日志消息中可以看出)?

谢谢!

小智 1

硬盘驱动器的功耗约为 11 瓦,因此如果您的 PSU 为 800 瓦,则应该没有问题。

一些大型硬盘驱动器阵列可以按顺序为硬盘驱动器供电以避免潜在的电气问题,但这取决于控制器。

您是否尝试重新启动服务器(冷启动)然后一切都好?正如你所说,你听到其他人开车旋转并点击他们的头。这当然不正常。可能是热插拔背板制作不良,热插拔时出现短路。