Erros de soma de verificação do ZFS, quando substituo a unidade?

9

Sou bastante novo no ZFS e tenho uma configuração simples de pool de armazenamento espelhado com 8 unidades. Após algumas semanas de execução, uma unidade parecia gerar muitos erros, então eu a substituí.

Mais algumas semanas se passam e agora vejo pequenos erros surgindo em toda a piscina (veja a zpool statussaída abaixo). Eu deveria me preocupar com isso? Como posso determinar se o erro indica que a unidade precisa ser substituída?

# zpool status
  pool: storage
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: scrub repaired 22.5K in 1h18m with 0 errors on Sun Jul 10 03:18:42 2016
config:

        NAME        STATE     READ WRITE CKSUM
        storage     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            enc-a   ONLINE       0     0     2
            enc-b   ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            enc-c   ONLINE       0     0     0
            enc-d   ONLINE       0     0     2
          mirror-2  ONLINE       0     0     0
            enc-e   ONLINE       0     0     2
            enc-f   ONLINE       0     0     1
          mirror-3  ONLINE       0     0     0
            enc-g   ONLINE       0     0     0
            enc-h   ONLINE       0     0     3

errors: No known data errors

O ZFS, com toda a presteza, me diz para "Determinar se o dispositivo precisa ser substituído ...", mas não sei como fazer isso. Eu li o artigo referenciado que foi útil, mas não exatamente conclusivo.

Analisei os resultados do teste SMART para as unidades afetadas e nada me ocorreu (todos os testes foram concluídos sem erros), mas também posso postar os dados SMART se isso for útil.

Atualização: Enquanto me preparava para reiniciar no Memtest86 +, notei muitos erros no console. Eu normalmente SSH, então eu não os vi antes. Não tenho certeza de qual log eu deveria estar verificando, mas a tela inteira estava cheia de erros parecidos com este (não é minha linha de erro exata, apenas copiei isso de um fórum diferente):

blk_update_request: I/0 error, dev sda, sector 220473440

De alguns usuários do Google, parece que esse erro pode ser um indicativo de uma unidade defeituosa, mas é difícil para mim acreditar que todos eles estão falhando ao mesmo tempo. Pensamentos sobre onde ir a partir daqui?

Atualização 2: deparei-me com este problema da ZOL que parece estar relacionado ao meu problema. Como o OP, estou usando o hdparm para reduzir minhas unidades e estou vendo erros e somas de verificação do ZFS semelhantes blk_update_request. Minha máquina ainda está executando o Memtest, então não posso verificar meu kernel ou versão do ZFS no momento, mas isso pelo menos parece uma possibilidade. Eu também vi essa pergunta semelhante, que é meio desanimadora. Alguém sabe de problemas com o ZFS e a rotação de unidades?

Atualização 3: Um firmware e uma versão de driver incompatíveis no controlador LSI podem causar erros como este? Parece que estou executando uma versão de driver 20.100.00.00 e uma versão de firmware 17.00.01.00. Valeria a pena tentar atualizar o firmware atualizado no cartão?

# modinfo mpt2sas
filename:       /lib/modules/3.10.0-327.22.2.el7.x86_64/kernel/drivers/scsi/mpt2sas/mpt2sas.ko
version:        20.100.00.00
license:        GPL
description:    LSI MPT Fusion SAS 2.0 Device Driver
author:         Avago Technologies <[email protected]>
rhelversion:    7.2
srcversion:     FED1C003B865449804E59F5

# sas2flash -listall
LSI Corporation SAS2 Flash Utility
Version 20.00.00.00 (2014.09.18) 
Copyright (c) 2008-2014 LSI Corporation. All rights reserved 

    Adapter Selected is a LSI SAS: SAS2308_2(D1) 

Num   Ctlr            FW Ver        NVDATA        x86-BIOS         PCI Addr
----------------------------------------------------------------------------

0  SAS2308_2(D1)   17.00.01.00    11.00.00.05    07.33.00.00     00:04:00:00

Atualização 4: foram detectados mais erros na dmesgsaída. Não sei ao certo o que os desencadeou, mas os notei depois de desmontar todas as unidades da matriz, em preparação para atualizar o firmware do controlador LSI. Vou esperar um pouco para ver se a atualização do firmware resolveu o problema, mas aqui estão os erros enquanto isso. Não tenho muita certeza do que eles significam.

[87181.144130] sd 0:0:2:0: [sdc] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144142] sd 0:0:2:0: [sdc] CDB: Write(10) 2a 00 35 04 1c d1 00 00 01 00
[87181.144148] blk_update_request: I/O error, dev sdc, sector 889461969
[87181.144255] sd 0:0:3:0: [sdd] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144259] sd 0:0:3:0: [sdd] CDB: Write(10) 2a 00 35 04 1c d1 00 00 01 00
[87181.144263] blk_update_request: I/O error, dev sdd, sector 889461969
[87181.144371] sd 0:0:4:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144375] sd 0:0:4:0: [sde] CDB: Write(10) 2a 00 37 03 87 30 00 00 08 00
[87181.144379] blk_update_request: I/O error, dev sde, sector 922978096
[87181.144493] sd 0:0:5:0: [sdf] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144500] sd 0:0:5:0: [sdf] CDB: Write(10) 2a 00 37 03 87 30 00 00 08 00
[87181.144505] blk_update_request: I/O error, dev sdf, sector 922978096
[87191.960052] sd 0:0:6:0: [sdg] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87191.960063] sd 0:0:6:0: [sdg] CDB: Write(10) 2a 00 36 04 18 5c 00 00 01 00
[87191.960068] blk_update_request: I/O error, dev sdg, sector 906238044
[87191.960158] sd 0:0:7:0: [sdh] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87191.960162] sd 0:0:7:0: [sdh] CDB: Write(10) 2a 00 36 04 18 5c 00 00 01 00
[87191.960179] blk_update_request: I/O error, dev sdh, sector 906238044
[87195.864565] sd 0:0:0:0: [sda] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87195.864578] sd 0:0:0:0: [sda] CDB: Write(10) 2a 00 37 03 7c 68 00 00 20 00
[87195.864584] blk_update_request: I/O error, dev sda, sector 922975336
[87198.770065] sd 0:0:1:0: [sdb] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87198.770078] sd 0:0:1:0: [sdb] CDB: Write(10) 2a 00 37 03 7c 88 00 00 20 00
[87198.770084] blk_update_request: I/O error, dev sdb, sector 922975368

Atualização 5: atualizei o firmware do controlador LSI, mas depois de limpar os erros e a limpeza do ZFS, vejo o mesmo comportamento (pequenos erros de soma de verificação em algumas unidades). O próximo passo será atualizar o firmware nas próprias unidades.

Atualização 6: Substituí o riser PCI depois de ler em alguns fóruns que outras pessoas com o gabinete U-NAS NSC800 tiveram problemas com o riser fornecido. Não houve efeito nos erros de soma de verificação. Venho adiando a atualização do firmware do HDD porque o processo é doloroso, mas acho que é hora de absorver e criar uma unidade flash DOS inicializável.

Atualização 7: atualizei o firmware nas três unidades da Seagate. As outras unidades não tinham uma atualização de firmware disponível ou eu não consegui obtê-la (a Western Digital me disse que não havia atualização de firmware para a minha unidade). Nenhum erro apareceu após uma limpeza inicial, mas vou dar a ela pelo menos uma semana ou duas antes de dizer que isso resolveu o problema. Parece-me altamente improvável que o firmware em três unidades possa estar afetando todo o pool assim.

Atualização 8: os erros de soma de verificação estão de volta, como antes. Eu posso procurar uma atualização de firmware para a placa-mãe, mas neste momento estou perdida. Será difícil / caro substituir os componentes físicos restantes (controlador, backplane, cabeamento) e não tenho 100% de certeza de que não há problema com minha configuração (ZFS + Linux + LUKS + Rotação de unidades inativas). Quaisquer outras idéias são bem-vindas.

Atualização 9: Ainda está tentando rastrear este. Me deparei com esta pergunta que tinha algumas semelhanças com a minha situação. Então, fui em frente e reconstruí o zpool usando ashift=12para ver se isso resolveria o problema (sem sorte). Então, mordi a bala e comprei um novo controlador. Acabei de instalar uma placa HBA Supermicro AOC-SAS2LP-MV8 . Vou dar uma ou duas semanas para ver se isso resolve o problema.

Atualização 10: Apenas para fechar isso. Já se passaram cerca de duas semanas desde que o novo cartão HBA entrou e, sob o risco de estremecer, não tive erros de soma de verificação desde então. Um enorme agradecimento a todos que me ajudaram a resolver esse problema.

Dominic P
fonte
2
Você pode nos contar mais sobre o hardware? A presença desses erros em várias unidades parece indicar mais um problema no backplane / controlador / cabeamento do que no disco.
ewwhite
Eu não tinha pensado nisso. As unidades estão em um chassi U-NAS NSC-800 que veio com um backplane SATA / SAS integrado. Isso é conectado via 2 conectores mini-sas a um HBA LSI SAS 9207-8i . Isso é conectado através de um riser PCI que acompanha o chassi a um Supermicro MBD-X10SDV-4C .
Dominic P
1
Sua RAM está bem? Eu tive erros semelhantes quando um módulo de memória estava com defeito - sem erros de disco, mas com uma quantidade (baixa) de erros de soma de verificação em todas as unidades.
12136
1
É mais provável que o controlador seja óbvio neste momento. Na verdade, era óbvio há algum tempo, com a "Atualização 4".
Michael Hampton
1
De nada @ hak8or. As pessoas deste site me ajudaram muito, por isso é bom ouvir que meu exemplo pode ajudar outra pessoa.
Dominic P

Respostas:

6

Ter esses erros em várias unidades parece indicar um problema no painel traseiro / controlador / cabeamento, mais do que um problema de disco ou RAM.

ewwhite
fonte
Obrigado pela ajuda. Não sou capaz de trocar todos esses componentes no momento. Você tem alguma sugestão de como eu poderia reduzi-lo ou qual poderia ser o culpado mais provável?
22816 Dominic P
Tente atualizações de firmware de todos os componentes afetados. Estes são discos SATA?
ewwhite
Vai fazer, obrigado. Começarei com a atualização do firmware no controlador, porque vi em outro lugar que as versões de firmware e driver devem corresponder (consulte a atualização 3 na minha pergunta). Sim, todos eles são discos SATA de 1 TB e lembro que smartctldisse que havia uma atualização de firmware disponível para alguns dos discos da Seagate que estou usando, por isso também os atualizo.
Dominic P
7

Minha regra geral é que, se os erros continuarem a aumentar inesperadamente, o disco precisará ser substituído; se for estático, pode ter havido alguma condição transitória que causou o erro e o sistema não está reproduzindo as condições que causaram problemas.

Alguns erros de soma de verificação não indicam necessariamente nada de ruim mecanicamente na unidade (a rotação dos bits acontece, o ZFS apenas a detecta, enquanto outros sistemas de arquivos não o fazem), mas se esses erros ocorrerem ao longo de uma hora, será uma situação muito diferente do que se eles tivessem acontecido ao longo de um ano.

Shane Madden
fonte