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.