Gestion des systèmes de fichiers ZFS dans Oracle®Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Décembre 2014
 
 

Réparation d'un fichier ou répertoire endommagé

En cas d'altération d'un fichier ou d'un répertoire, le système peut tout de même continuer à fonctionner, selon le type d'altération. Tout dommage est irréversible, à moins que des copies correctes des données n'existent sur le système. Si les données sont importantes, vous devez restaurer les données affectées à partir d'une sauvegarde. Quand bien même, vous devriez pouvoir réparer les données endommagées sans restaurer la totalité du pool.

En cas de dommages au sein d'un bloc de données de fichiers, le fichier peut être supprimé en toute sécurité. L'erreur est alors effacée du système. Utilisez la commande zpool status –v pour afficher la liste des noms de fichier contenant des erreurs persistantes. Par exemple :

# zpool status tank -v
pool: tank
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption.  Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://support.oracle.com/msg/ZFS-8000-8A
config:

NAME                     STATE     READ WRITE CKSUM
tank                     ONLINE       4     0     0
c0t5000C500335E106Bd0    ONLINE       0     0     0
c0t5000C500335FC3E7d0    ONLINE       4     0     0

errors: Permanent errors have been detected in the following files:
/tank/file.1
/tank/file.2

La liste des noms de fichiers comportant des erreurs persistantes peut être décrite comme suit :

  • Si le chemin complet du fichier est trouvé et si le jeu de données est monté, le chemin complet du fichier s'affiche. Par exemple :

    /monkey/a.txt
  • Si chemin complet du fichier est trouvé mais que le jeu de données n'est pas monté, le nom du jeu de données non précédé d'un slash (/) s'affiche, suivi du chemin du fichier au sein du jeu de données. Par exemple :

    monkey/ghost/e.txt
  • Si le nombre d'objet vers un chemin de fichiers ne peut pas être converti, soit en raison d'une erreur soit parce qu'aucun chemin de fichiers réel n'est associé à l'objet, tel que c'est le cas pour dnode_t, alors le nom du jeu de données s'affiche, suivi du numéro de l'objet. Par exemple :

    monkey/dnode:<0x0>
  • En cas d'altération d'un MOS (Meta-Object Set, jeu de méta-objet), la balise spéciale <metadata> s'affiche, suivie du numéro de l'objet.

Vous pouvez tenter de résoudre des altérations de données mineures à l'aide du nettoyage de pool et de la suppression des erreurs de pool dans plusieurs itérations. Effacez et nettoyez si la première itération n'est pas paramétré pour résoudre le again.For des fichiers corrompus exemple :, exécutez-les

# zpool scrub tank
# zpool clear tank

Si l'altération se situe au sein des métadonnées d'un répertoire ou d'un fichier, vous devez déplacer le fichier vers un autre emplacement. Vous pouvez déplacer en toute sécurité les fichiers ou les répertoires vers un autre emplacement. Cela permet de restaurer l'objet d'origine à son emplacement.

Réparation de données endommagées avec plusieurs références de blocs

Si un système de fichiers endommagé contient des données endommagées avec plusieurs références de blocs tels que les instantanés, la commande zpool status –v ne peut pas afficher les chemins de toutes les données endommagées. La génération de rapports zpool status actuelle de données endommagées est limitée par le niveau d'altération de métadonnées et par la réutilisation d'un bloc après l'exécution de la commande zpool status. Les blocs dédupliqués rendent la génération de rapports sur les données endommagées encore plus complexe.

Si vous avez des données endommagées, et que la commande zpool status– v signale que les données d'instantanées sont affectées, pensez à exécuter la commande suivante afin d'identifier les autres chemins endommagés :