é zfs disk rotting protection automatic e construído em?

2

algumas apresentações declaram que o zfs possui:

zfs can detect and correct silent data corruption.

por exemplo. aqui link

  1. Mas você precisa alocar algum disco sobressalente ou pool do zfs para fazer isso manualmente? ou isso é intrínseco por zfs?
  2. O sistema de arquivos do disco único zfs possui esse recurso ou você precisa obter o RAIDZ?
por c2h2 22.04.2012 / 06:48

2 respostas

11

1. Mas você precisa alocar algum disco sobressalente ou pool do zfs para fazer isso manualmente? ou isso é intrínseco por zfs?

Os dados afetados precisam ser redundantes para que isso aconteça. Essa redundância pode ser obtida sem discos extras. Vários discos também não implicam redundância.

O ZFS oferece suporte a dispositivos sobressalentes, mas eles estão aqui para substituir outros dispositivos que estão em estado de falha. Eles não são usados para redundância de dados.

2. O sistema de arquivos zfs de disco único possui esse recurso ou você precisa obter o RAIDZ?

Qualquer que seja a configuração do pool, os dados corrompidos são sempre detectados com o ZFS, a menos que você desative explicitamente checksums, mas isso seria uma idéia muito ruim.

Um único conjunto de discos pode recuperar um bloco corrompido quando contém metadados. Os blocos que contêm dados de arquivo só podem ser recuperados se a propriedade de cópias estiver definida como 2 ou superior.

Vários conjuntos de discos em uma configuração distribuída são semelhantes aos conjuntos de discos individuais, ou seja, os metadados podem sobreviver à decomposição de disco, e a presença de blocos é necessária para a auto-recuperação de dados de arquivos.

Vários conjuntos de discos em uma configuração redundante (mirror, raidz, raidz2, raidz3) podem recuperar qualquer problema de decomposição de disco (a menos, é claro, que uma situação de erro em massa como vários discos falhem).

Erros são detectados quando o arquivo afetado (ou metadados ou bloco zvol) é lido. Se o ZFS puder recuperar o erro, o erro será corrigido de forma transparente e os dados corretos serão retornados. Caso contrário, um erro de leitura é relatado. Note que o checksum não é um ECC, então ele não pode ser usado para recuperar blocos quebrados, apenas para detectá-los.

Se você quiser verificar um pool inteiro sem esperar que uma leitura ocorra, você pode usar o mecanismo de depuração. O ZFS verifica todos os blocos usados e auto-cura os podres quando possível.

    
por 22.04.2012 / 09:33
-4

Para detectar esse apodrecimento em um disco inteiro, você tem que executar um srcubbing de dados periódicos. Algumas distribuições fazem isso em um cron job, então dê uma olhada nele.
O comando é zpool scrub techrx . Você pode executar apenas um processo de depuração por vez.
Cada vez que os dados são lidos a partir do disco, o zfs verifica a existência de apodrecimento para os dados lidos. Então você tem certeza de ler os dados limpos. É aconselhável executar uma verificação completa uma vez por semana até uma vez por mês (como fazemos para a maioria dos RAID).

1 você não precisa alocar espaço em disco. A correção de dados é feita dentro do espaço disponível (lembro-me de ter visto primeiro feito reescrevendo os setores errados e, em caso de falha, eles são reescritos em outro lugar, mas isso pode ser impreciso). Claro, se o seu disco já está 100% cheio, isso pode não ser possível
2 o processo é baseado em checksums já integrados no zfs
Na maioria das vezes, a depuração corrige os dados, porque a soma de verificação é, na verdade, um código de correção de erros. se os dados danificados forem muito grandes, então o zfs não poderá recuperá-los, mas seu disco já pode ser considerado como morto

Você pode ter mais informações aqui:
execute uma limpeza de dados periódica: link
zfs auto-cura novamente corrupções silenciosas: link

    
por 22.04.2012 / 08:00

Tags