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 status
saí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 <MPT-FusionLinux.pdl@avagotech.com>
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 dmesg
saí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=12
para 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.