Eu tenho dois volumes RAID 10 onde apenas uma partição em / dev / sda foi expulsa de um dos dois volumes. Aqui está / dev / mdstat (no meio da recuperação):
md1 : active raid10 sda3[4] sdd3[3] sdc3[2] sdb3[1] 11719732224 blocks super 1.2 512K chunks 2 near-copies [4/3] [_UUU] [===================>.] recovery = 97.7% (5725121408/5859866112) finish=100.5min speed=22334K/sec
md0 : active raid10 sda2[4] sdd2[3] sdc2[2] sdb2[1] 1043456 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
Com base na seguinte mensagem do kernel, vejo que a partição sda3 foi eliminada do md1 após apenas 21 erros de leitura:
Apr 17 14:25:05 someserver kernel: md/raid10:md1: sda3: Raid device exceeded read_error threshold [cur 21:max 20]
Apr 17 14:25:05 someserver kernel: md/raid10:md1: sda3: Failing raid device
Bem, com base em minha pesquisa, pode ser que esses erros tenham ocorrido em um curto período de tempo e isso não é tudo sobre "todo o tempo".
Vendo que o smartctl reporta setores zero realocados na unidade física de 6 TB, não acho que a unidade precise ser descartada ainda e tenho várias cópias dos dados que esse servidor está armazenando.
Sendo esse o caso, eu fui em frente e adicionei novamente a partição ao array md1 e em 3 dias no reparo, está quase completo (o sistema está espelhando outro sistema ao mesmo tempo que o reparo e então é um servidor muito ocupado, que está a abrandar o reparo). Eu estou preocupado que, assim que esta unidade ou uma das outras unidades de 6 TB no array se deparar com um setor defeituoso, ele será ejetado rapidamente do array, exigindo outro reparo.
Existe uma maneira de aumentar o limite de read_error acima de 20 para que ele tente mais antes de falhar o dispositivo?
Tags mdadm linux software-raid