En tant que système de fichiers et gestionnaire de volumes combinés, ZFS peut rencontrer différentes pannes. Ce chapitre commence par une description des différentes pannes, puis explique comment les identifier sur un système en cours d'exécution. Il se conclut en expliquant comment résoudre les problèmes. Le système de fichiers ZFS peut rencontrer trois types d'erreurs de base :
Notez que les trois types d'erreurs peuvent se produire dans un même pool. Une procédure de réparation complète implique de trouver et de corriger une erreur, de passer à la suivante et ainsi de suite.
Si un périphérique est supprimé du système, ZFS détecte que son ouverture est impossible et le met en état REMOVED. En fonction du niveau de réplication des données du pool, ce retrait peut résulter ou non en une indisponibilité de la totalité du pool. Le pool reste accessible en cas de suppression d'un périphérique mis en miroir ou RAID-Z. Un pool peut renvoyer l'état FAULTED. Cela signifie qu'aucune donnée n'est accessible jusqu'à ce que le périphérique soit reconnecté selon les conditions suivantes :
si tous les composants d'un miroir sont supprimés ;
si plusieurs périphériques d'un périphérique RAID-Z (raidz1) sont supprimés ;
si le périphérique de niveau supérieur est supprimé dans une configuration contenant un seul disque.
Le terme " endommagé " fait référence à une grande variété d'erreurs possibles. Les exemples incluent les éléments suivants :
erreurs d'E/S transitoires causées par un disque ou un contrôleur défaillant ;
corruption de données sur disque causée par les rayons cosmiques ;
bogues de pilotes entraînant des transferts de données vers ou à partir d'un emplacement erroné ;
écrasement accidentel de parties du périphérique physique par un utilisateur.
Certaines erreurs sont transitoires, par exemple une erreur d'E/S aléatoire alors que le contrôleur rencontre des problèmes. Dans d'autres cas, les dommages sont permanents, par exemple lors de la corruption sur disque. En outre, même si les dommages sont permanents, cela ne signifie pas que l'erreur est susceptible de se reproduire. Par exemple, si un administrateur écrase une partie d'un disque par accident, aucune panne matérielle ne s'est produite et il est inutile de remplacer le périphérique. L'identification du problème exact dans un périphérique n'est pas une tâche aisée. Elle est abordée plus en détail dans une section ultérieure.
La corruption de données se produit lorsqu'une ou plusieurs erreurs de périphériques (indiquant un ou plusieurs périphériques manquants ou endommagés) affectent un périphérique virtuel de niveau supérieur. Par exemple, la moitié d'un miroir peut subir des milliers d'erreurs sans jamais causer de corruption de données. Si une erreur se produit sur l'autre côté du miroir au même emplacement, les données sont alors endommagées.
La corruption de données est toujours permanente et nécessite une soin particulier lors de la réparation. Même en cas de réparation ou de remplacement des périphériques sous-jacents, les données d'origine sont irrémédiablement perdues. La plupart du temps, ce scénario requiert la restauration des données à partir de sauvegardes. Les erreurs de données sont enregistrées à mesure qu'elles sont détectées et peuvent être contrôlées à l'aide de nettoyages de pools de routine, comme expliqué dans la section suivante. Lorsqu'un bloc corrompu est supprimé, le nettoyage de disque suivant reconnaît que la corruption n'est plus présente et supprime toute trace de l'erreur dans le système.