erro zfs por trás do raidcontroller LSI

erro zfs por trás do raidcontroller LSI

Portanto, o ZFS está relatando alguns "problemas de leitura", então parece que este disco está falhando, com base no fato de que nada foi fornecido noZFS-8000-9Pocorreram relatórios de documentos dos quais temos conhecimento. Esses discos são relativamente novos, o único problema que tivemos recentemente foi um ZFS completo.

O ZFS é executado em cima de umLSI MegaRAID 9271-8i, todos os discos executam "raid 0" por disco. Não estou muito familiarizado com esta placa raid, então encontrei um script que retorna dados derivados da ferramenta de linha de comando megacli. Adicionei 1 unidade para mostrar a configuração, todas estão configuradas da mesma forma. (os discos do sistema são diferentes)

saída de status do zpool

  pool: data
 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: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        data        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            br0c2   ONLINE       0     0     0
            br1c2   ONLINE       0     0     0
            br2c2   ONLINE       0     0     0
            br0c3   ONLINE       0     0     0
            br1c3   ONLINE       0     0     0
            br2c3   ONLINE       0     0     0
            r2c1    ONLINE       0     0     0
            r1c2    ONLINE       0     0     0
            r5c3    ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0
            sdg     ONLINE       0     0     0
            r3c1    ONLINE       0     0     0
            r4c1    ONLINE       2     0     0
... cut raidz2-1 ...
errors: No known data errors

A saída do script LSI

Virtual Drive: 32 (Target Id: 32)
Name                :
RAID Level          : Primary-0, Secondary-0, RAID Level Qualifier-0
Size                : 3.637 TB
Sector Size         : 512
Is VD emulated      : No
Parity Size         : 0
State               : Optimal
Strip Size          : 512 KB
Number Of Drives    : 1
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
PI type: No PI

Is VD Cached: No

O script não relata nenhum disco com defeito, nem o raidcontroller marca a unidade como defeituosa. Encontrei alguns outros tópicoserro zpoolque deu o conselho para limpar o erro e executar uma limpeza. Agora, minha pergunta é: quando é o limite para executar uma limpeza, quanto tempo isso levaria (assumindo que esse ataque zfs terá um impacto no desempenho para executar a limpeza). Além disso, quando esse disco estiver realmente fraco, a troca a quente inicializará uma "reconstrução" ? Todos os discos são "Western Digital RE 4 TB, SAS II, 32 MB, 7200 rpm, empresa 24/7/365". Existe um sistema que irá verificar erros do zfs, já que esta foi apenas uma verificação manual de rotina?

versão zfs: 0.6.4.1 zfsonlinux

Eu sei que 2 erros de leitura não são permitidos, mas prefiro substituir os discos mais cedo do que tarde.

Responder1

zfs scrubé o "sistema que verificará erros do zfs". Demorará o tempo que for necessário para ler todos os dados armazenados no volume (indo em ordem sequencial de txg, então pode estar buscando bastante, dependendo de quão cheio o pool está e como os dados foram gravados). Uma vez iniciado, zfs statusmostrará alguma estimativa. A execução do esfoliante pode ser interrompida.

Se você quiser verificar algo periodicamente zpool status, a maneira mais simples seria executar algo zpool status | grep -C 100 Statusperiodicamente (uma vez a cada 6 horas) e enviar a saída por e-mail, se houver. Você provavelmente poderia encontrar um plugin para o seu sistema de monitoramento favorito, como o nagios. Ou seria bastante simples escrever você mesmo.

Apenas trocar a unidade a quente não acionará o resilver. Você terá que correr zfs replacepara que isso aconteça.

O erro de leitura que você está vendo também pode ser algum tipo de problema no controlador. Mesmo sendo um hardware corporativo, esses controladores (HW RAID) às vezes se comportam de maneira estranha. E esses erros podem, por exemplo, ser resultado de um comando que demora muito - o controlador está ocupado com alguma coisa. É por isso que tento ficar longe deles, a menos que seja necessário.

Eu verificaria os dados SMART na unidade (consulte Recursos man smartctl) e limparia o pool. Se ambos parecerem OK, elimine os erros e não mexa no seu pool. Porque se o pool estiver quase cheio, a leitura de todos os dados durante o resilver pode realmente desencadear outro erro. Comece a entrar em pânico quando vir erros na mesma unidade novamente;).

por falar nisso. para melhor desempenho, você deve usar unidades n ^ 2 + 2 em vdevs RAIDZ2.

Responder2

Eu faria o que o ZFS diz para você fazer neste caso.Por favor, faça uma esfoliação.

Eu limpo meus sistemas semanalmente de acordo com uma programação. Eu também uso ozfswatcherdaemon para monitorar a integridade das instalações do Linux ZFS.

Seu array ZFS provavelmente não está ajustado, então existem alguns valores que podem ajudar a melhorar o desempenho da depuração, mas neste ponto, você deve apenas executá-lo.

E para a outra pergunta, seu hot swap provavelmente não fará o que você espera... Veja o discurso abaixo.


discurso retórico:

Ter vários drives virtuais RAID-0 atrás de um controlador de hardware é uma má ideia!

Você tem o pior dos dois mundos. A recuperabilidade e a verificação de erros são limitadas. Um disco com falha é essencialmente uma unidade virtual com falha e há implicações de hot swap. Digamos que você remova o(s) disco(s) em questão. Você provavelmente precisará criar um novo disco virtual ou poderá acabar com uma enumeração de unidade diferente.

A certa altura, é melhor obter um HBA real e executar os discos como dispositivos de passagem (sem metadados RAID) oubasta executar o ZFS sobre vdevs protegidos por matrizes de hardware.Por exemplo, execute um RAID-6 no seu controlador e instale o ZFS por cima. Ou execute vários grupos RAID-X e faça com que o ZFS espelhe ou distribua os vdevs resultantes.

informação relacionada