Ignorer les liens de navigation | |
Quitter l'aperu | |
![]() |
Administration d'Oracle Solaris 11.1 : Systèmes de fichiers ZFS Oracle Solaris 11.1 Information Library (Français) |
1. Système de fichiers Oracle Solaris ZFS (introduction)
2. Mise en route d'Oracle Solaris ZFS
3. Gestion des pools de stockage Oracle Solaris ZFS
4. Gestion des composants du pool root ZFS
5. Gestion des systèmes de fichiers Oracle Solaris ZFS
6. Utilisation des instantanés et des clones ZFS Oracle Solaris
7. Utilisation des ACL et des attributs pour protéger les fichiers Oracle Solaris ZFS
8. Administration déléguée de ZFS dans Oracle Solaris
9. Rubriques avancées Oracle Solaris ZFS
10. Dépannage d'Oracle Solaris ZFS et récupération de pool
Résolution des problèmes d'espace ZFS
Compte-rendu d'espace de système de fichiers ZFS
Compte-rendu sur l'espace des pools de stockage ZFS
Identification des défaillances ZFS
Périphériques manquants dans un pool de stockage ZFS
Périphériques endommagés dans un pool de stockage ZFS
Contrôle de l'intégrité d'un système de fichiers ZFS
Réparation du système de fichiers
Validation du système de fichiers
Contrôle du nettoyage de données ZFS
Nettoyage explicite de données ZFS
Nettoyage et réargenture de données ZFS
Résolution de problèmes avec le système de fichiers ZFS
Recherche de problèmes éventuels dans un pool de stockage ZFS
Consultation de la sortie de zpool status
Informations globales d'état des pools
Informations de configuration de pool
Erreurs d'altération de données
Rapport système de messages d'erreur ZFS
Réparation d'un configuration ZFS endommagée
Réparation d'un périphérique manquant
Reconnexion physique d'un périphérique
Notification relative à la disponibilité de périphériques dans ZFS
Remplacement ou réparation d'un périphérique endommagé
Détermination du type de panne de périphérique
Suppression des erreurs transitoires
Remplacement d'un périphérique dans un pool de stockage ZFS
Détermination de la possibilité de remplacement du périphérique
Périphériques impossibles à remplacer
Remplacement d'un périphérique dans un pool de stockage ZFS
Affichage de l'état de réargenture
Réparation de données endommagées
Identification du type d'altération de données
Réparation d'un fichier ou répertoire endommagé
Réparation de données endommagées avec plusieurs références de blocs
Réparation de dommages présents dans l'ensemble du pool de stockage ZFS
Réparation d'un système impossible à réinitialiser
11. Archivage des instantanés et récupération du pool root
12. Pratiques recommandées pour Oracle Solaris ZFS
Les sections suivantes décrivent comment identifier le type d'altération de données et comment réparer les données le cas échéant.
ZFS utilise les données des sommes de contrôles, de redondance et d'autorétablissement pour minimiser le risque d'altération de données. Cependant, l'altération de données peut se produire si le pool n'est pas redondant, si une altération s'est produite alors que le pool était endommagé ou si une série d'événements improbables a endommagé plusieurs copies d'un élément de données. Quelle que soit la source, le résultat est le même : les données sont endommagées et par conséquent inaccessibles. Les actions à effectuer dépendent du type de données endommagées et de leurs valeurs relatives. Deux types de données peuvent être endommagés :
Métadonnées de pool : ZFS requiert une certaine quantité de données à analyser afin d'ouvrir un pool et d'accéder aux jeux de données. Si ces données sont endommagées, le pool entier ou des parties de la hiérarchie du jeu de données sont indisponibles.
Données d'objet : dans ce cas, l'altération se produit au sein d'un fichier ou périphérique spécifique. Ce problème peut rendre une partie du fichier ou répertoire inaccessible ou endommager l'objet.
Les données sont vérifiées lors des opérations normales et lors du nettoyage. Pour plus d'informations sur la vérification de l'intégrité des données du pool, reportez-vous à la section Contrôle de l'intégrité d'un système de fichiers ZFS.
Par défaut, la commande zpool status indique qu'une altération s'est produite, mais n'indique pas à quel endroit. Par exemple :
# zpool status tank 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: 2 data errors, use '-v' for a list
Toute erreur indique seulement qu'une erreur s'est produite à un moment donné. Il est possible que certaines erreurs ne soient plus présentes dans le système. Dans le cadre d'une utilisation normale, elles le sont. Certaines interruptions de service temporaires peuvent entraîner une altération de données qui est automatiquement réparée une fois l'interruption de service terminée. Un nettoyage complet du pool examine chaque bloc actif dans le pool. Ainsi, le journal d'erreur est réinitialisé à la fin de chaque nettoyage. Si vous déterminez que les erreurs ne sont plus présentes et ne souhaitez pas attendre la fin du nettoyage, la commande zpool online permet de réinitialiser toutes les erreurs du pool.
Si l'altération de données se produit dans des métadonnées au niveau du pool, la sortie est légèrement différente. Par exemple :
# zpool status -v morpheus pool: morpheus id: 13289416187275223932 state: UNAVAIL status: The pool metadata is corrupted. action: The pool cannot be imported due to damaged devices or data. see: http://support.oracle.com/msg/ZFS-8000-72 config: morpheus FAULTED corrupted data c1t10d0 ONLINE
Dans le cas d'une altération au niveau du pool, ce dernier se voit attribuer l'état FAULTED, car le pool ne peut pas fournir le niveau de redondance requis.
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'endommagement 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.
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.
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 n'affiche pas les chemins de toutes les données endommagées. L'algorithme de nettoyage ZFS traverse le pool et visite une fois chaque bloc de données. L'altération n'est signalée qu'une seule fois. Ainsi, un seul chemin d'accès est généré vers le fichier affecté. Notez que cela s'applique également aux blocs endommagés ayant été dédupliqués.
Si vous avez des données endommagées et que la commande zpool status - v signale que les données d'instantané sont affectées, pensez à rechercher s'il existe d'autres chemins endommagés.
# find mount-point -inum $inode -print # find mount-point/.zfs/snapshot -inum $inode -print
La première commande recherche le numéro d'inode des données endommagées signalées dans le système de fichiers spécifié et tous les instantanés associés. La deuxième commande recherche les instantanés à l'aide du même numéro d'inode.
Si des dommages sont présents dans les métadonnées du pool et que cela empêche l'ouverture ou l'importation du pool, vous pouvez utiliser les options suivantes :
Tentez de récupérer le pool à l'aide de la commande zpool clear -F ou zpool import -F. Ces commandes tentent d'annuler (roll back) les dernières transactions restantes du pool pour qu'elles reviennent à un fonctionnement normal. Vous pouvez utiliser la commande zpool status pour vérifier le pool endommagé et les mesures de récupération recommandées. Par exemple :
# zpool status pool: tpool state: UNAVAIL status: The pool metadata is corrupted and the pool cannot be opened. action: Recovery is possible, but will result in some data loss. Returning the pool to its state as of Fri Jun 29 17:22:49 2012 should correct the problem. Approximately 5 seconds of data must be discarded, irreversibly. Recovery can be attempted by executing 'zpool clear -F tpool'. A scrub of the pool is strongly recommended after recovery. see: http://support.oracle.com/msg/ZFS-8000-72 scrub: none requested config: NAME STATE READ WRITE CKSUM tpool UNAVAIL 0 0 1 corrupted data c1t1d0 ONLINE 0 0 2 c1t3d0 ONLINE 0 0 4
Le processus de récupération comme décrit dans la sortie ci-dessus consiste à utiliser la commande suivante :
# zpool clear -F tpool
Si vous tentez d'importer un pool de stockage endommagé, des messages semblables aux messages suivants s'affichent :
# zpool import tpool cannot import 'tpool': I/O error Recovery is possible, but will result in some data loss. Returning the pool to its state as of Fri Jun 29 17:22:49 2012 should correct the problem. Approximately 5 seconds of data must be discarded, irreversibly. Recovery can be attempted by executing 'zpool import -F tpool'. A scrub of the pool is strongly recommended after recovery.
Le processus de récupération comme décrit dans la sortie ci-dessus consiste à utiliser la commande suivante :
# zpool import -F tpool Pool tpool returned to its state as of Fri Jun 29 17:22:49 2012. Discarded approximately 5 seconds of transactions
Si le pool endommagé se trouve dans le fichier zpool.cache, le problème est détecté lors de l'initialisation du système. Le pool endommagé est consigné dans la commande zpool status. Si le pool ne se trouve pas dans le fichier zpool.cache, il n'est pas importé ou ouvert et des messages indiquant que le pool est endommagé s'affichent lorsque vous tentez de l'importer.
Vous pouvez importer un pool endommagé en mode lecture seule. Cette méthode permet d'importer le pool, ce qui vous permet d'accéder aux données. Par exemple :
# zpool import -o readonly=on tpool
Pour plus d'informations sur l'importation d'un pool en lecture seule, reportez-vous à la section Importation d'un pool en mode lecture seule.
Vous pouvez importer un pool avec un périphérique de journalisation manquant à l'aide de la commande zpool import -m. Pour plus d'informations, reportez-vous à la section Importation d'un pool avec un périphérique de journalisation manquant.
Si le pool ne peut pas être récupéré par le biais de l'une des méthodes de récupération de pool, vous devez restaurer le pool et l'ensemble de ses données à partir d'une copie de sauvegarde. Le mécanisme utilisé varie énormément selon la configuration du pool et la stratégie de sauvegarde. Tout d'abord, enregistrez la configuration telle qu'elle s'affiche dans la commande zpool status pour pouvoir la recréer après la destruction du pool. Ensuite, détruisez le pool à l'aide de la commande zpool destroy -f.
Conservez également un fichier décrivant la disposition des jeux de données et les diverses propriétés définies localement dans un emplacement sûr, car ces informations deviennent inaccessibles lorsque le pool est lui-même inaccessible. Avec la configuration du pool et la disposition des jeux de données, vous pouvez reconstruire la configuration complète après destruction du pool. Les données peuvent ensuite être renseignées par la stratégie de sauvegarde ou de restauration de votre choix.