O que deve acontecer no Btrfs se eu desconectar um disco rígido durante a leitura?

2

Sou bastante novo no Linux (Debian) e no Btrfs. Começou a testar no meu DIY Nas em casa.

Configuração: - Hardware de nível médio com 2 discos WD RED 3TB - Debian (mais recente estável) - Btrfs-tools (mais recente estável) - Configurou uma configuração completa do disco raid1 e copiou vários gigabytes de dados para ele

Em seguida, fiz um teste e desconectei um dos dois HDDs enquanto lia os dados constantemente. Surpreendentemente, não foi possível continuar a operação de leitura a partir do espelho, mas em vez disso, recebi muitas mensagens de erro assustadoras sobre ele.

Eu esperaria de um sistema semelhante ao RAID1 que ele silenciosamente lidaria com essas coisas para mim. Isso é um comportamento normal, ou eu tenho alguns erros na configuração em algum lugar?

    
por Zoltán Tamási 26.11.2015 / 08:39

1 resposta

1

A ideia de espelhar é obviamente que se um lado do espelho falhar, o outro deve assumir o controle. Em um mundo ideal, os lados também devem trabalhar em conjunto para aumentar o desempenho de leitura quando ambos os lados do espelho estiverem disponíveis.

Dito isto, se um lado do espelho falhar, então todas as leituras em vôo para o dispositivo com falha falharão, possivelmente após um atraso. Isso é normal e esperado: um comando foi enviado para um dispositivo que de repente não está mais lá e é capaz de responder ao comando, o que resultará em uma condição de erro de algum tipo. O kernel provavelmente registrará essas falhas para dar ao administrador um aviso de que "algo ruim acabou de acontecer". O sistema pode ser configurado para gerar esses eventos importantes do kernel para o console.

O teste decisivo para qualquer solução de espelhamento é se esses erros realmente se propagam para a camada do espaço do usuário, resultando em aplicativos de usuário recebendo erros de E / S (ou pior, dados inválidos). Se uma configuração de espelhamento estiver funcionando corretamente, enquanto o outro lado do espelho funcionar corretamente, os aplicativos do espaço de usuário não devem ser afetados, exceto pelo fato de que a leitura demorou um pouco mais do que o normal e o sistema cuspiu. alguns diagnósticos sobre erros de E / S que ocorrem no dispositivo agora indisponível. Nenhum desses deve impactar sensivelmente o software de espaço do usuário bem comportado.

Se os processos de espaço de usuário (em vez de apenas o código Btrfs no kernel) apresentarem erros de E / S como resultado de sua experiência e você puder reproduzir o comportamento de maneira razoavelmente consistente, pode ter encontrado um bug no código do Btrfs. Nesse caso, você pode querer arquivar um relatório de bug. Especialmente considerando que este é o Debian, eu sugiro que primeiro preencha o relatório de erros no sistema de acompanhamento de bugs do Debian e deixe-os escalá-lo para o desenvolvedores do kernel se eles acham que é garantido. Certifique-se de incluir o máximo possível de detalhes pertences, incluindo os comandos exatos que você está executando, as versões exatas de todos os envolvidos, o texto exato das mensagens de erro, uma descrição exata de sua configuração de armazenamento e qualquer outra coisa que você possa imaginar. ajudar a rastrear o problema.

    
por 26.11.2015 / 11:02

Tags