A forma mais simples de verificar a integridade dos dados é iniciar um scrubbing explícito de todos os dados do conjunto. Esta operação percorre todos os dados do pool uma vez e comprova que todos os blocos possam ser lidos. O scrubbing se desenvolve tão rápido quanto os dispositivos permitam, sem bem que a prioridade de qualquer E/S é menor que a prioridade dada às operações normais. Essa operação pode impactar negativamente o desempenho, embora os dados do conjunto devam permanecer utilizáveis e um pouco receptivos enquanto o scrubbing ocorrer. Para iniciar um scrubbing explícito, use o comando zpool scrub. Por exemplo:
# zpool scrub tank |
O status da operação de scrubbing atual pode ser exibido utilizando o comando zpool status. Por exemplo:
# zpool status -v tank pool: tank state: ONLINE scrub: scrub completed after 0h7m with 0 errors on Tue Tue Feb 2 12:54:00 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 errors: No known data errors |
Somente uma operação de scrubbing ativa por conjunto pode ocorrer por vez.
É possível parar uma operação de scrubbing em andamento com a opção -s. Por exemplo:
# zpool scrub -s tank |
Na maioria dos casos, as operações de scrubbing devem chegar até o final para garantir a integridade dos dados. Interrompa uma operação de scrubbing de acordo com os seus próprios critérios se a performance do sistema é impactada pela operação.
Efetuar scrubbing de rotina garante E/S contínua para todos os discos do sistema. Scrubbing rotineiros apresentam a desvantagem de não permitir que o gerenciamento de energia coloque os discos inativos no modo de energia baixa. Se o sistema estiver geralmente realizando E/S sem parar ou se o consumo de energia não for uma preocupação, então esta questão pode ser ignorada sem perigo.
Para obter mais informações sobre a interpretação da saída zpool status, consulte Consultando status de pool de armazenamento do ZFS.