Falha na unidade de substituição durante o resilver do ZFS nas4free

0

Estou executando o nas4free v. 10.3.0.3., usando o ZFS, com quatro unidades de 2 TB RaidZ1. Uma vez por ano, faço um backup completo, off-line a unidade mais antiga, substituo-a por uma nova unidade e emita o comando "zpool replace mytank / dev / ada0" e ele inicia o resilver automaticamente.

Neste fim de semana, iniciei o processo, como sempre. Na época, o tempo para conclusão era de cerca de 8 horas. No entanto, agora depois de mais de 24 horas, o resilver ainda não está pronto. Olhando para o ecrã Disks | ZFS | Pools | Information, parece que o processo de resilvering continua a ser reiniciado. Agora, seu 0,14% está pronto. Eu sei que já aconteceu várias vezes antes.

Então, sabendo que o resilvering sobrecarrega as unidades, corri o smartctl em cada unidade individual. As três unidades "antigas" não mostram nenhum erro. Tudo é "normal".

No entanto, a "nova" unidade não é. Aqui estão algumas linhas relevantes da saída smartctl:

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   001   001   005    Pre-fail  Always   FAILING_NOW 0
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   001   001   000    Old_age   Always       -       2000

SMART Error Log Version: 1
ATA Error Count: 270 (device log contains only the most recent five errors)

Sim, acho que a unidade está falhando.

Agora, minhas perguntas:

1) Como faço para offline o disco ruim? Como sempre faço?

2) O "offline-ing" do disco defeituoso irá parar o processo de resilver?

3) Depois de substituir o disco defeituoso e emitir o comando zpool replace , o resilver iniciará novamente, automaticamente?

Obrigado pela sua ajuda.

    
por Gary Crockett 25.03.2018 / 23:33

1 resposta

0
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   001   001   005    Pre-fail  Always   FAILING_NOW 0
197 Current_Pending_Sector  0x0022   001   001   000    Old_age   Always       -       2000

Parece que você tem um limão. Essas coisas acontecem; RMA o disco e consiga um substituto. Com uma compra recente, presumivelmente baixa contagem de horas de energia e falhas indicadas pela SMART, isso não deve ser um problema. Se o revendedor fizer uma confusão, encontre um revendedor diferente e comece a comprar lá.

1) How do I offline the bad disk? Just like I always do?

Você sempre pode offline um disco usando zpool offline <pool> <dev> . Apenas tome cuidado para ficar acima do limite de redundância do pool. (Eu não acho que o ZFS permitirá que você remova um disco que traga um pool abaixo do limite de redundância sem ser forçado a fazê-lo, e talvez nem o faça, mas é fácil cair na armadilha de adicionar o -f sem pensar nas consequências.)

2) Will "offline-ing" the bad disk stop the resilver process?

Deveria, já que agora não há resilvering que precisa ser feito. Observe, no entanto, que você não terá nenhuma redundância, portanto, quaisquer falhas (mesmo erros de E / S em nível de setor) enquanto o pool estiver nessa configuração são potencialmente críticas.

3) After replacing the bad disk, and issuing the zpool replace command, will the resilver start up again, automatically?

Você pode precisar zpool online do novo disco, já que o antigo foi usado offline , mas não acredito. Conceitualmente, zpool replace <pool> <old> <new> é a mesma coisa que zpool attach <pool> <new> seguido por zpool detach <pool> <old> (mas você não pode anexar / desanexar dispositivos em um raidz vdev).

No que diz respeito ao ZFS, o novo disco substituto precisará de um resilver, portanto, um resilver será iniciado.

Dito isso, essa parte da sua pergunta se destacou para mim:

four 2TB drive RaidZ1. Once a year, I do a complete backup, off-line the oldest drive, replace it with a new drive, and issue the "zpool replace mytank /dev/ada0" command,

Eu encorajaria você a não remover o disco antigo antes de instalar o novo, especialmente se ele estiver funcionando bem. (Eu tive um disco começando a vomitar erros do mero pensamento de colocar E / S nele, e em tal caso, delinear ou remover o disco ofensivo pode ser uma escolha razoável.) Conecte o novo disco ao lado do antigo e zpool replace <pool> <old> <new> . Ao fazer isso, você obtém o benefício da redundância que você tem no pool; então, se algum dos outros discos encontrar um problema durante o resilver, as chances são muito melhores de que o sistema seja capaz de lidar com isso graciosamente e sem perda de dados.

Pelo menos muito , execute um zpool scrub na conclusão do pool imediatamente antes de criar o disco que você está substituindo.

    
por 28.07.2018 / 17:19