I would like to understand what "insufficient replicas" means
Isso significa que o ZFS encontrou um erro ao ler ou gravar no pool e, em seguida, descobriu que não há redundância suficiente no conjunto para corrigir o problema. Como parece que você configurou o ZFS para pools de unidade única, isso significa simplesmente que ele se deparou com um problema e agora não pode se recuperar sozinho.
No caso simples, zpool status -v
relatará arquivos individuais que agora estão irremediavelmente corrompidos. Restaurá-los a partir de backups ou removê-los retornará o pool a um estado não corrompido. Essa é uma das vantagens que você obtém com o ZFS, em vez de separar os subsistemas do sistema de arquivos, do gerenciador de volume lógico e do RAID. Um erro no nível do disco que afeta um único arquivo pode ser relatado como um erro nesse arquivo específico, enquanto que com lash-ups FS + LVM + RAID, um erro nos níveis inferiores não pode manter o contexto semântico à medida que se propaga para a pilha. / p>
De acordo com a sua pergunta, no entanto, zpool status
não está relatando um problema com arquivos específicos, o que significa que algo mais fundamental deu errado com o disco solitário no pool de problemas. Neste ponto, eu estaria analisando o próprio disco: smartctl
, badblocks
, SpinRite, ferramentas de diagnóstico de fornecedores, etc.
No futuro, considere usar pelo menos espelhos com o ZFS. O ZFS pode corrigir esses problemas quando recebe alguma redundância para trabalhar ou, pelo menos, deixá-lo flácido até conseguir a substituição do disco.
any way to recover from this safely before I pull out the backups
Se o ZFS pudesse fazê-lo, seria. O ZFS não desiste facilmente, mas quando isso acontece, significa que você não pode usar com segurança os dados no pool.
Neste ponto, sua melhor esperança é que o problema seja que o meio de armazenamento subjacente tenha um erro temporário que permitirá que o SpinRite, badblocks
ou similar apareça e force o disco a extrair uma cópia limpa do arquivo. setor ruim uma última vez e copiá-lo para um setor de reposição.
Tenha em atenção que o ZFS é mais rigoroso do que outros sistemas de ficheiros a este respeito, pois não aceita uma recuperação parcial do sector. A strong soma de verificação de dados significa que apenas uma restauração completa de cada setor pode fazer com que o ZFS aceite que o sistema de arquivos está limpo agora.
Se você acredita que os dados parciais são melhores que nenhum dado, isso significa que o ZFS é um problema para você. Se você acredita que os dados incorretos estão incorretos, o ZFS está fazendo exatamente o que você deseja.
one or more devices are already in use
Isso não é bom.
Isso significa que você permite que algum outro driver de kernel seja anexado a esse disco antes que o ZFS possa acessá-lo, ou o ZFS está localizando o mesmo disco por vários caminhos.
Sua melhor esperança é que você esteja no segundo caso e forçar o ZFS a procurar discos por apenas um caminho pode fazer com que você passe por esse problema:
$ sudo ZPOOL_IMPORT_PATH="/dev/disk/by-id" zpool import -a
Se isso funcionar, a exportação e reimportação do pool de problemas poderá funcionar sem a força, já que o ZFS geralmente lembra o caminho pelo qual seus vdevs foram importados pela última vez.