Detalhes sobre requisitos / garantias de reparos de limpeza ZFS

3

Não encontrei detalhes sobre como funciona o reparo e quais são os requisitos dos docs .

Para reparos automáticos de um scrub, preciso espelhar? RAIDZ Ou? Nem (os checksums em si contêm paridade)?

    
por Yang 07.06.2013 / 01:15

2 respostas

4

Não há paridade nos blocos do ZFS, portanto eles não são "auto-reparáveis".

A depuração tenta reparar os erros de corrupção realocando os blocos com uma soma de verificação incorreta em outro lugar. Só pode fazê-lo se existir uma cópia sã dos blocos defeituosos no conjunto.

A chance de o último ser verdadeiro é bastante alta se você estiver usando redundância (espelhamento ou raidz), mas ainda está presente para pools ou faixas de dispositivos únicos se o erro de checksum afetar:

  • um bloco de metadados, pois eles são (pelo menos) duplicados por padrão
  • um bloco de dados de um conjunto de dados configurado com blocos idem ( copies=2 ou mais)
por 07.06.2013 / 08:06
2

A limpeza não corrige erros de corrupção, apenas os detecta. Se houver uma cópia redundante válida dos dados disponíveis (mirror, raidz, etc), os dados corrompidos serão descartados.

Quando o scrub estiver concluído, se dados incorretos forem encontrados e descartados, uma operação de resilvering será acionada. Isso restaura a redundância para um array (mirror, raidz, etc). Como o scrub aciona esse comportamento, você poderia chamá-lo de parte da mesma operação, mas internamente é definitivamente um processo separado.

A depuração deve solicitar ao armazenamento subjacente para relatar erros do SMART e do URE, se existirem. O URE avisaria que a marcação de um disco falhou (e substituirá automaticamente se houver um disponível disponível). Os erros SMART devem ser monitorados separadamente (normalmente via smartd ou similar).

    
por 07.06.2013 / 06:21

Tags