Eu tenho um pequeno servidor doméstico construído em torno de um gabinete Lian Li PC-Q25 com uma placa traseira SATA que se anuncia como hot pluggable. A placa-mãe é a Asus P8H77-I. Eu tenho 4 unidades SATA conectadas à placa traseira - dois pares embutidos em matrizes RAID1. O sistema está sendo executado no Centos 6.3 x86_64.
Uma das unidades quebrou, então eu fiz o procedimento recomendado: sincronizado, removi-o da matriz, desliguei-o corretamente e retirei-o. Nenhum desastre aqui, eu podia ouvir a unidade girar e nenhum erro apareceu no log do dmesg.
Agora, presumi que, pelo padrão SATA, os pinos escalonados na unidade assegurariam um plug-in seguro sem qualquer oscilação de energia súbita. Empurrando o drive para dentro, eu consegui dirigir os outros drives devagar e clicar em suas cabeças por um breve momento.
A verificação do log do dmesg revelou o seguinte:
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 }
(As últimas mensagens ata3.00 são repetidas cerca de 20 vezes com números diferentes, mas o mesmo texto)
As últimas linhas são:
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
Além disso, meu logwatch relatou as seguintes alterações nos dados do 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
No dia seguinte, o registro do SMART ainda tinha entradas suspeitas:
/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,
Então, aparentemente o back-end do sata apenas acionou o drive imediatamente, possivelmente fazendo com que a voltagem caísse por um momento.
Meu erro foi, talvez, conectar todos os quatro drives no mesmo barramento PSU e esperar que o PSU (embora um 800W Seasonic com boas especificações) lide com o consumo repentino de energia.
A placa traseira SATA tem dois conectores Molex na parte traseira para alimentação - eu os conecto em trilhos PSU separados para garantir uma saída de energia mais estável.
Existe uma maneira de evitar que a unidade gire imediatamente quando eu a coloco de volta no drive?
Além disso, eu possivelmente danifiquei as unidades (pode ser visto a partir dessas mensagens de log)?
Obrigado!