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
Composants d'un pool de stockage ZFS
Utilisation de disques dans un pool de stockage ZFS
Utilisation de tranches dans un pool de stockage ZFS
Utilisation de fichiers dans un pool de stockage ZFS
Remarques relatives aux pools de stockage ZFS
Fonctions de réplication d'un pool de stockage ZFS
Configuration de pool de stockage mis en miroir
Configuration de pool de stockage RAID-Z
Données d'autorétablissement dans une configuration redondante
Entrelacement dynamique dans un pool de stockage
Création et destruction de pools de stockage ZFS
Création de pools de stockage ZFS
Création d'un pool de stockage de base
Création d'un pool de stockage mis en miroir
Création d'un pool de stockage RAID-Z
Création d'un pool de stockage ZFS avec des périphériques de journalisation
Création d'un pool de stockage ZFS avec des périphériques de cache
Précautions pour la création de pools de stockage
Affichage des informations d'un périphérique virtuel de pool de stockage
Gestion d'erreurs de création de pools de stockage ZFS
Détection des périphériques utilisés
Niveaux de réplication incohérents
Réalisation d'un test à la création d'un pool de stockage
Point de montage par défaut pour les pools de stockage
Destruction de pools de stockage ZFS
Destruction d'un pool avec des périphériques disponibles
Gestion de périphériques dans un pool de stockage ZFS
Ajout de périphériques à un pool de stockage
Connexion et séparation de périphériques dans un pool de stockage
Création d'un pool par scission d'un pool de stockage ZFS mis en miroir
Mise en ligne et mise hors ligne de périphériques dans un pool de stockage
Mise hors ligne d'un périphérique
Mise en ligne d'un périphérique
Effacement des erreurs de périphérique de pool de stockage
Remplacement de périphériques dans un pool de stockage
Désignation des disques hot spare dans le pool de stockage
Activation et désactivation de disques hot spare dans le pool de stockage
Gestion des propriétés de pool de stockage ZFS
Requête d'état de pool de stockage ZFS
Affichage des informations des pools de stockage ZFS
Affichage des informations concernant tous les pools de stockage ou un pool spécifique
Affichage des périphériques de pool par emplacement physique
Affichage de statistiques spécifiques à un pool de stockage
Script de sortie du pool de stockage ZFS
Affichage de l'historique des commandes du pool de stockage ZFS
Visualisation des statistiques d'E/S des pools de stockage ZFS
Liste des statistiques d'E/S à l'échelle du pool
Liste des statistiques d'E/S des périphériques virtuels
Détermination de l'état de maintenance des pools de stockage ZFS
Etat de maintenance de base de pool de stockage
Collecte des informations sur l'état du pool de stockage ZFS
Migration de pools de stockage ZFS
Préparatifs de migration de pool de stockage ZFS
Exportation d'un pool de stockage ZFS
Définition des pools de stockage disponibles pour importation
Importation de pools de stockage ZFS à partir d'autres répertoires
Importation de pools de stockage ZFS
Importation d'un pool avec un périphérique de journalisation manquant
Importation d'un pool en mode lecture seule
Importation d'un pool via le chemin d'accès au périphérique
Récupération de pools de stockage ZFS détruits
Mise à niveau de pools de stockage 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
11. Archivage des instantanés et récupération du pool root
12. Pratiques recommandées pour Oracle Solaris ZFS
Vous trouverez la plupart des informations de base concernant les périphériques dans la section Composants d'un pool de stockage ZFS. Après la création d'un pool, vous pouvez effectuer plusieurs tâches de gestion des périphériques physiques au sein du pool.
Connexion et séparation de périphériques dans un pool de stockage
Création d'un pool par scission d'un pool de stockage ZFS mis en miroir
Mise en ligne et mise hors ligne de périphériques dans un pool de stockage
Vous pouvez ajouter de l'espace disque à un pool de façon dynamique, en ajoutant un périphérique virtuel de niveau supérieur. Cet espace disque est disponible immédiatement pour l'ensemble des jeux de données du pool. Pour ajouter un périphérique virtuel à un pool, utilisez la commande zpool add. Par exemple :
# zpool add zeepool mirror c2t1d0 c2t2d0
Le format de spécification des périphériques virtuels est le même que pour la commande zpool create. Une vérification des périphériques est effectuée afin de déterminer s'ils sont en cours d'utilisation et la commande ne peut pas modifier le niveau de redondance sans l'option -f. La commande prend également en charge l'option -n, ce qui permet d'effectuer un test. Par exemple :
# zpool add -n zeepool mirror c3t1d0 c3t2d0 would update 'zeepool' to the following configuration: zeepool mirror c1t0d0 c1t1d0 mirror c2t1d0 c2t2d0 mirror c3t1d0 c3t2d0
Cette syntaxe de commande ajouterait les périphériques en miroir c3t1d0 et c3t2d0 à la configuration existante du pool zeepool.
Pour plus d'informations sur la validation des périphériques virtuels, reportez-vous à la section Détection des périphériques utilisés.
Exemple 3-1 Ajout de disques à une configuration ZFS mise en miroir
Dans l'exemple suivant, un autre miroir est ajouté à une configuration ZFS mise en miroir existante.
# zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors # zpool add tank mirror c0t3d0 c1t3d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-2 ONLINE 0 0 0 c0t3d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors
Exemple 3-2 Ajout de disques à une configuration RAID-Z
De la même façon, vous pouvez ajouter des disques supplémentaires à une configuration RAID-Z. L'exemple suivant illustre la conversion d'un pool de stockage avec un périphérique RAID–Z composé de trois disques en pool de stockage avec deux périphériques RAID-Z composés de trois disques chacun.
# zpool status rzpool pool: rzpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rzpool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 errors: No known data errors # zpool add rzpool raidz c2t2d0 c2t3d0 c2t4d0 # zpool status rzpool pool: rzpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rzpool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 raidz1-1 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t4d0 ONLINE 0 0 0 errors: No known data errors
Exemple 3-3 Ajout et suppression d'un périphérique de journalisation mis en miroir
L'exemple suivant indique comment ajouter un périphérique de journalisation mis en miroir dans un pool de stockage mis en miroir.
# zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 errors: No known data errors # zpool add newpool log mirror c0t6d0 c0t7d0 # zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 logs mirror-1 ONLINE 0 0 0 c0t6d0 ONLINE 0 0 0 c0t7d0 ONLINE 0 0 0 errors: No known data errors
Vous pouvez connecter un périphérique de journalisation à un périphérique de journalisation existant afin de créer un périphérique mis en miroir. Cette opération est similaire à la connexion d'un périphérique à un pool de stockage qui n'est pas mis en miroir.
Vous pouvez supprimer les périphériques de journalisation en utilisant la commande zpool remove. Le périphérique de journalisation mis en miroir dans l'exemple précédent peut être supprimé en spécifiant l'argument miroir-1. Par exemple :
# zpool remove newpool mirror-1 # zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 errors: No known data errors
Si votre configuration de pool contient un seul périphérique de journalisation, supprimez-le en saisissant le nom du périphérique. Par exemple :
# zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c0t8d0 ONLINE 0 0 0 c0t9d0 ONLINE 0 0 0 logs c0t10d0 ONLINE 0 0 0 errors: No known data errors # zpool remove pool c0t10d0
Exemple 3-4 Ajout et suppression des périphériques de cache
Vous pouvez ajouter des périphériques de cache à votre pool de stockage ZFS et les supprimer s'ils ne sont plus nécessaires.
Utilisez la commande zpool add pour ajouter des périphériques de cache. Par exemple :
# zpool add tank cache c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 cache c2t5d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 errors: No known data errors
Les périphériques de cache ne peuvent pas être mis en miroir ou faire partie d'une configuration RAID-Z.
Utilisez la commande zpool remove pour supprimer des périphériques de cache. Par exemple :
# zpool remove tank c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 errors: No known data errors
Actuellement, la commande zpool remove prend uniquement en charge la suppression des disques hot spare, des périphériques de journalisation et des périphériques de cache. Les périphériques faisant partie de la configuration de pool mis en miroir principale peuvent être supprimés à l'aide de la commande zpool detach. Les périphériques non redondants et RAID-Z ne peuvent pas être supprimés d'un pool.
Pour plus d'informations sur l'utilisation des périphériques de cache dans un pool de stockage ZFS, reportez-vous à la section Création d'un pool de stockage ZFS avec des périphériques de cache.
Outre la commande zpool add, vous pouvez utiliser la commande zpool attach pour ajouter un périphérique à un périphérique existant, en miroir ou non.
Si vous connectez un disque pour créer un pool root mis en miroir, reportez-vous à la section Configuration d'un pool root mis en miroir (SPARC ou x86/VTOC).
Si vous remplacez un disque dans le pool root ZFS, reportez-vous à la section Remplacement d'un disque dans un pool root ZFS (SPARC ou x86/VTOC).
Exemple 3-5 Conversion d'un pool de stockage bidirectionnel mis en miroir en un pool de stockage tridirectionnel mis en miroir
Dans cet exemple, zeepool est un miroir bidirectionnel. Il est converti en un miroir tridirectionnel via la connexion de c2t1d0, le nouveau périphérique, au périphérique existant, c1t1d0.
# zpool status zeepool pool: zeepool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach zeepool c1t1d0 c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 12:59:20 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 592K resilvered errors: No known data errors
Si le périphérique existant fait partie d'un miroir tridirectionnel, la connexion d'un nouveau périphérique crée un miroir quadridirectionnel, et ainsi de suite. Dans tous les cas, la réargenture du nouveau périphérique commence immédiatement.
Exemple 3-6 Conversion d'un pool de stockage ZFS non redondant en pool de stockage ZFS en miroir
En outre, vous pouvez convertir un pool de stockage non redondant en pool de stockage redondant à l'aide de la commande zpool attach. Par exemple :
# zpool create tank c0t1d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach tank c0t1d0 c1t1d0 # zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 14:28:23 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 73.5K resilvered errors: No known data errors
Vous pouvez utiliser la commande zpool detach pour séparer un périphérique d'un pool de stockage mis en miroir. Par exemple :
# zpool detach zeepool c2t1d0
Cependant, en l'absence de répliques de données valides, cette opération échoue. Par exemple :
# zpool detach newpool c1t2d0 cannot detach c1t2d0: only applicable to mirror and replacing vdevs
Un pool de stockage ZFS mis en miroir peut être rapidement cloné en tant que pool de sauvegarde à l'aide de la commande zpool split. Vous pouvez utiliser cette fonctionnalité pour scinder un pool root mis en miroir. Toutefois, le pool qui a été séparé n'est pas amorçable tant que vous n'avez pas suivi des étapes supplémentaires.
Vous pouvez utiliser la commande zpool split pour déconnecter un ou plusieurs disques à partir d'un pool de stockage ZFS mis en miroir afin de créer un pool de stockage avec l'un des disques déconnectés. Le nouveau pool contiendra les mêmes données que le pool de stockage ZFS d'origine mis en miroir.
Par défaut, une opération zpool split sur un pool mis en miroir déconnecte le dernier disque du nouveau pool. Une fois l'opération de scission terminée, importez le nouveau pool. Par exemple :
# zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors # zpool split tank tank2 # zpool import tank2 # zpool status tank tank2 pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 errors: No known data errors pool: tank2 state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank2 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors
Vous pouvez identifier le disque à utiliser par le nouveau pool en le définissant avec la commande zpool split. Par exemple :
# zpool split tank tank2 c1t0d0
Avant l'opération de scission, les données de la mémoire sont vidées vers les disques mis en miroir. Une fois les données vidées, le disque est déconnecté du pool et reçoit un nouveau GUID de pool. Un pool GUID est généré pour que le pool puisse être importé sur le même système que celui sur lequel il a été scindé.
Si le pool à scinder possède des points de montage de système de fichiers autres que celui par défaut et si le nouveau pool est créé sur le même système, utilisez l'option zpool split -R pour identifier un autre répertoire root pour le nouveau pool afin d'éviter tout conflit entre les points de montage existants. Par exemple :
# zpool split -R /tank2 tank tank2
Si vous n'utilisez pas l'option zpool split -R et si des points de montage entrent en conflit lorsque vous tentez d'importer le nouveau pool, importez celui-ci à l'aide de l'option -R. Si le nouveau pool est créé sur un autre système, il n'est pas nécessaire de spécifier un autre répertoire root, sauf en cas de conflits entre les points de montage.
Avant d'utiliser la fonctionnalité zpool split, veuillez prendre en compte les points suivants :
Cette fonction n'est pas disponible dans une configuration RAID-Z ou un pool non redondant composé de plusieurs disques.
Avant de tenter une opération zpool split, les opérations des données et des applications doivent être suspendues.
Vous ne pouvez pas scinder un pool si une réargenture est en cours.
Lorsqu'un pool mis en miroir est composé de deux à trois disques et que le dernier disque du pool d'origine est utilisé pour le nouveau pool créé, la meilleure solution consiste à scinder le pool mis en miroir. Vous pouvez ensuite utiliser la commande zpool attach pour recréer votre pool de stockage d'origine mis en miroir ou convertir votre nouveau pool dans un pool de stockage mis en miroir. Aucune méthode ne permet de créer un nouveau pool mis en miroir à partir d'un pool mis en miroir existant en une opération zpool split, car le nouveau pool (séparé) n'est pas redondant.
Si le pool existant est un miroir tridirectionnel, le nouveau pool contiendra un disque après l'opération de scission. Si le pool existant est un miroir bidirectionnel composé de deux disques, cela donne deux pools non redondants composés de deux disques. Vous devez connecter deux disques supplémentaires pour convertir les pools non redondants en pools mis en miroir.
Pour conserver vos données redondantes lors d'une scission, scindez un pool de stockage mis en miroir composé de trois disques pour que le pool d'origine soit composé de deux disques mis en miroir après la scission.
Confirmez que votre matériel est configuré correctement avant de séparer un pool mis en miroir. Pour plus d'informations sur la confirmation des paramètres de purge du cache de votre matériel, reportez-vous à la section Pratiques recommandées générales.
Exemple 3-7 Scission d'un pool ZFS mis en miroir
Dans l'exemple suivant, un pool de stockage mis en miroir, nommé mothership avec trois disques, est séparé. Les deux pools obtenus sont le pool mis en miroir mothership, avec deux disques, et le nouveau pool luna , avec un disque. Chaque pool contient les mêmes données.
Le pool luna peut être importé dans un autre système à des fins de sauvegarde. Une fois la sauvegarde terminée, le pool luna peut être détruit et rattaché à mothership. Le processus peut ensuite être répété.
# zpool status mothership pool: mothership state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mothership ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 errors: No known data errors # zpool split mothership luna # zpool import luna # zpool status mothership luna pool: luna state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM luna ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 errors: No known data errors pool: mothership state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mothership ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 errors: No known data errors
ZFS permet la mise en ligne ou hors ligne de périphériques. Lorsque le matériel n'est pas fiable ou fonctionne mal, ZFS continue de lire ou d'écrire les données dans le périphérique en partant du principe que le problème est temporaire. Dans le cas contraire, vous pouvez indiquer à ZFS d'ignorer le périphérique en le mettant hors ligne. Le système de fichiers ZFS n'envoie aucune demande à un périphérique déconnecté.
Remarque - Il est inutile de mettre les périphériques hors ligne pour les remplacer.
La commande zpool offline permet de mettre un périphérique hors ligne. Vous pouvez spécifier le périphérique via son chemin ou via son nom abrégé s'il s'agit d'un disque. Par exemple :
# zpool offline tank c0t5000C500335F95E3d0
Lors de la déconnexion d'un périphérique, veuillez prendre en compte les points suivants :
Vous ne pouvez pas mettre un périphérique hors ligne au point où il devient UNAVAIL. Par exemple, vous ne pouvez pas mettre hors ligne deux périphériques d'une configuration raid-z1, ni ne pouvez mettre hors ligne un périphérique virtuel de niveau supérieur.
# zpool offline tank c0t5000C500335F95E3d0 cannot offline c0t5000C500335F95E3d0: no valid replicas
Par défaut, l'état OFFLINE est persistant. Le périphérique reste hors ligne lors de la réinitialisation du système.
Pour mettre un périphérique hors ligne temporairement, utilisez l'option -t de la commande zpool offline. Par exemple :
# zpool offline -t tank c1t0d0 bringing device 'c1t0d0' offline
En cas de réinitialisation du système, ce périphérique revient automatiquement à l'état ONLINE.
Lorsqu'un périphérique est mis hors ligne, il n'est pas séparé du pool de stockage. En cas de tentative d'utilisation du périphérique hors ligne dans un autre pool, même en cas de destruction du pool d'origine, un message similaire au suivant s'affiche :
device is part of exported or potentially active ZFS pool. Please see zpool(1M)
Si vous souhaitez utiliser le périphérique hors ligne dans un autre pool de stockage après destruction du pool de stockage d'origine, remettez le périphérique en ligne puis détruisez le pool de stockage d'origine.
Une autre mode d'utilisation d'un périphérique provenant d'un autre pool de stockage si vous souhaitez conserver le pool de stockage d'origine consiste à remplacer le périphérique existant dans le pool de stockage d'origine par un autre périphérique similaire. Pour obtenir des informations sur le remplacement de périphériques, reportez-vous à la section Remplacement de périphériques dans un pool de stockage.
Les périphériques mis hors ligne s'affichent dans l'état OFFLINE en cas de requête de l'état de pool. Pour obtenir des informations sur les requêtes d'état de pool, reportez-vous à la section Requête d'état de pool de stockage ZFS.
Pour plus d'informations sur la maintenance des périphériques, reportez-vous à la section Détermination de l'état de maintenance des pools de stockage ZFS.
Lorsqu'un périphérique est mis hors ligne, il peut être restauré grâce à la commande zpool online. Par exemple :
# zpool online tank c0t5000C500335F95E3d0
Lorsqu'un périphérique est mis en ligne, toute donnée écrite dans le pool est resynchronisée sur le périphérique nouvellement disponible. Notez que vous ne pouvez pas mettre en ligne un périphérique pour remplacer un disque. Si vous mettez un périphérique hors ligne, le remplacez, puis tentez de le mettre en ligne, son état reste UNAVAIL .
Si vous tentez de mettre un périphérique UNAVAIL en ligne, un message similaire au suivant s'affiche :
Vous pouvez également afficher les messages de disques erronés dans la console ou les messages enregistrés dans le fichier /var/adm/messages. Par exemple :
SUNW-MSG-ID: ZFS-8000-LR, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 20 11:35:26 MDT 2012 PLATFORM: ORCL,SPARC-T3-4, CSN: 1120BDRCCD, HOSTNAME: tardis SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: fb6699c8-6bfb-eefa-88bb-81479182e3b7 DESC: ZFS device 'id1,sd@n5000c500335dc60f/a' in pool 'pond' failed to open. AUTO-RESPONSE: An attempt will be made to activate a hot spare if available. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Use 'fmadm faulty' to provide a more detailed view of this event. Run 'zpool status -lx' for more information. Please refer to the associated reference document at http://support.oracle.com/msg/ZFS-8000-LR for the latest service procedures and policies regarding this diagnosis.
Pour obtenir des informations sur le remplacement d'un périphérique défaillant, reportez-vous à la section Réparation d'un périphérique manquant.
Vous pouvez utiliser la commande zpool online -e pour étendre un LUN. Par défaut, un LUN ajouté à un pool n'est pas étendu à sa taille maximale, à moins que la propriété autoexpand du pool ne soit activée. Vous pouvez étendre automatiquement le LUN à l'aide de la commande zpool online -e, même si le LUN est déjà en ligne ou s'il est actuellement hors ligne. Par exemple :
# zpool online -e tank c0t5000C500335F95E3d0
Si un périphérique est mis hors ligne en raison d'une défaillance qui entraîne l'affichage d'erreurs dans la sortie zpool status, la commande zpool clear permet d'effacer les nombres d'erreurs.
Si elle est spécifiée sans argument, cette commande efface toutes les erreurs de périphérique dans le pool. Par exemple :
# zpool clear tank
Si un ou plusieurs périphériques sont spécifiés, cette commande n'efface que les erreurs associées aux périphériques spécifiés. Par exemple :
# zpool clear tank c0t5000C500335F95E3d0
Pour plus d'informations sur l'effacement d'erreurs de zpool reportez-vous à la section Suppression des erreurs transitoires.
Vous pouvez remplacer un périphérique dans un pool de stockage à l'aide de la commande zpool replace.
Pour remplacer physiquement un périphérique par un autre, en conservant le même emplacement dans le pool redondant, il vous suffit alors d'identifier le périphérique remplacé. Sur certains matériels, ZFS reconnaît que le périphérique est un disque différent au même emplacement. Par exemple, pour remplacer un disque défaillant (c1t1d0), supprimez-le, puis ajoutez le disque de rechange au même emplacement en respectant la syntaxe suivante :
# zpool replace tank c1t1d0
Si vous remplacez un périphérique dans un pool de stockage par un disque dans un autre emplacement physique, vous devez spécifier les deux périphériques. Par exemple :
# zpool replace tank c1t1d0 c1t2d0
Si vous remplacez un disque dans le pool root ZFS, reportez-vous à la section Remplacement d'un disque dans un pool root ZFS (SPARC ou x86/VTOC).
Voici les étapes de base pour remplacer un disque :
Le cas échéant, mettez le disque hors ligne à l'aide de la commande zpool offline.
Enlevez le disque à remplacer.
Insérez le disque de remplacement.
Consultez la sortie de format pour déterminer si le disque de remplacement est visible.
Vérifiez également si l'ID du périphérique a changé. Si le disque de remplacement a un nom universel, alors l'ID de périphérique du disque défaillant a changé.
Indiquez au système ZFS que le disque a été remplacé. Par exemple :
# zpool replace tank c1t1d0
Si le disque de remplacement a un ID de périphérique différent, incluez ce dernier.
# zpool replace tank c0t5000C500335FC3E7d0 c0t5000C500335BA8C3d0
Remettez le disque en ligne à l'aide de la commande zpool online, si nécessaire.
Informez FMA du remplacement du périphérique.
Dans la sortie fmadm faulty, identifiez la chaîne zfs://pool=name/vdev=guid dans la section Affects: et attribuez-la comme argument à la commande fmadm repaired.
# fmadm faulty # fmadm repaired zfs://pool=name/vdev=guid
Sur certains systèmes avec des disques SATA, vous devez annuler la configuration d'un disque avant de pouvoir mettre hors ligne. Si vous remplacez un disque dans le même emplacement sur ce système, vous pouvez exécuter la commande zpool replace comme décrit dans le premier exemple de cette section.
Pour consulter un exemple de remplacement d'un disque SATA, reportez-vous à l'Exemple 10-1.
Lorsque vous remplacez des périphériques dans un pool de stockage ZFS, veuillez prendre en compte les points suivants :
Si vous définissez la propriété de pool autoreplace sur on, tout nouveau périphérique détecté au même emplacement physique qu'un périphérique appartenant précédemment au pool est automatiquement formaté et remplacé. Lorsque cette propriété est activée, vous n'êtes pas obligé d'utiliser la commande zpool replace. Cette fonction n'est pas disponible sur tous les types de matériel.
L'état de pool de stockage REMOVED est fourni en cas de retrait physique du périphérique ou d'un disque hot spare alors que le système est en cours d'exécution. Si un disque hot spare est disponible, il remplace le périphérique retiré.
Si un périphérique est retiré, puis réinséré, il est mis en ligne. Si un disque hot spare est activé lors de la réinsertion du périphérique, le disque hot spare est retiré une fois l'opération en ligne terminée.
La détection automatique du retrait ou de l'insertion de périphériques dépend du matériel utilisé. Il est possible qu'elle ne soit pas prise en charge sur certaines plates-formes. Par exemple, les périphériques USB sont configurés automatiquement après insertion. Il peut être toutefois nécessaire d'utiliser la commande cfgadm -c configure pour configurer un lecteur SATA.
Les disques hot spare sont consultés régulièrement afin de vérifier qu'ils sont en ligne et disponibles.
La taille du périphérique de remplacement doit être égale ou supérieure au disque le plus petit d'une configuration RAID-Z ou mise en miroir.
Lorsqu'un périphérique de remplacement dont la taille est supérieure à la taille du périphérique qu'il remplace est ajouté à un pool, ce dernier n'est pas automatiquement étendu à sa taille maximale. La valeur de la propriété autoexpand du pool détermine si un LUN de remplacement est étendu à sa taille maximale lorsque le disque est ajouté au pool. Par défaut, la propriété autoexpand est désactivée. Vous pouvez activer cette propriété pour augmenter la taille du LUN avant ou après avoir ajouté le plus grand LUN au pool.
Dans l'exemple suivant, deux disques de 16 Go d'un pool mis en miroir sont remplacés par deux disques de 72 Go. Assurez-vous qu'une réargenture complète a été effectuée sur le premier périphérique avant de tenter le remplacement du deuxième périphérique. La propriété autoexpand est activée après les remplacements de disque pour étendre le disque à sa taille maximale.
# zpool create pool mirror c1t16d0 c1t17d0 # zpool status pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t16d0 ONLINE 0 0 0 c1t17d0 ONLINE 0 0 0 zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 76.5K 16.7G 0% ONLINE - # zpool replace pool c1t16d0 c1t1d0 # zpool replace pool c1t17d0 c1t2d0 # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 88.5K 16.7G 0% ONLINE - # zpool set autoexpand=on pool # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 68.2G 117K 68.2G 0% ONLINE -
Le remplacement d'un grand nombre de disques dans un pool volumineux prend du temps, en raison de la réargenture des données sur les nouveaux disques. En outre, il peut s'avérer utile d'exécuter la commande zpool scrub entre chaque remplacement de disque afin de garantir le fonctionnement des périphériques de remplacement et l'exactitude des données écrites.
Si un disque défectueux a été remplacé automatiquement par un disque hot spare, il se peut que vous deviez déconnecter le disque hot spare une fois le disque défectueux remplacé. Vous pouvez utiliser la commande zpool detach pour déconnecter le disque hot spare d'un pool RAID-Z ou mis en miroir. Pour plus d'informations sur la déconnexion d'un disque hot spare, reportez-vous à la section Activation et désactivation de disques hot spare dans le pool de stockage.
Pour plus d'informations sur le remplacement de périphériques, reportez-vous aux sections Réparation d'un périphérique manquant et Remplacement ou réparation d'un périphérique endommagé .
La fonction de disques hot spare permet d'identifier les disques utilisables pour remplacer un périphérique défaillant dans un pool de stockage. Un périphérique désigné en tant que disque hot spare n'est pas actif dans un pool, mais en cas d'échec d'un périphérique actif du pool, le disque hot spare le remplace automatiquement
Pour désigner des périphériques en tant que disques hot spare, vous avez le choix entre les méthodes suivantes :
lors de la création du pool à l'aide de la commande zpool create ;
après la création du pool à l'aide de la commande zpool create.
L'exemple suivant explique comment désigner des périphériques en tant que disques hot spare lorsque le pool est créé :
# zpool create zeepool mirror c0t5000C500335F95E3d0 c0t5000C500335F907Fd0 mirror c0t5000C500335BD117d0 c0t5000C500335DC60Fd0 spare c0t5000C500335E106Bd0 c0t5000C500335FC3E7d0 # zpool status zeepool pool: zeepool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 AVAIL c0t5000C500335FC3E7d0 AVAIL errors: No known data errors
L'exemple suivant explique comment désigner des disques hot spare en les ajoutant à un pool après la création du pool :
# zpool add zeepool spare c0t5000C500335E106Bd0 c0t5000C500335FC3E7d0 # zpool status zeepool pool: zeepool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 AVAIL c0t5000C500335FC3E7d0 AVAIL errors: No known data errors
Vous pouvez supprimer les disques hot spare d'un pool de stockage à l'aide de la commande zpool remove. Par exemple :
# zpool remove zeepool c0t5000C500335FC3E7d0 # zpool status zeepool pool: zeepool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 AVAIL errors: No known data errors
Vous ne pouvez pas supprimer un disque hot spare si ce dernier est actuellement utilisé par un pool de stockage.
Lorsque vous utilisez des disques hot spare ZFS, veuillez prendre en compte les points suivants :
Actuellement, la commande zpool remove ne peut être utilisée que pour la suppression de disques hot spare, de périphériques de journalisation et de périphériques de cache.
Pour ajouter un disque en tant que disque hot spare, la taille du disque hot spare doit être égale ou supérieure à la taille du plus grand disque du pool. L'ajout d'un disque de rechange plus petit dans le pool est autorisé. Toutefois, lorsque le plus petit disque de rechange est activé, automatiquement ou via la commande zpool replace, l'opération échoue et une erreur du type suivant s'affiche :
cannot replace disk3 with disk4: device is too small
Vous ne pouvez pas partager un disque de rechange entre plusieurs systèmes.
Tenez compte du fait que si vous partagez un disque de rechange entre deux pools de données sur le même système, vous devez coordonner l'utilisation du disque de rechange entre les deux pools. Par exemple, le pool A utilise le disque de rechange et est exporté. Sans le savoir, le pool B peut utiliser le disque de rechange lors de l'exportation du pool A. Lorsque le pool A est importé, une altération des données peut se produire car les deux pools utilisent le même disque.
Ne partagez pas un disque de rechange entre un pool root et un pool de données.
Les disques hot spare s'activent des façons suivantes :
Remplacement manuel : remplacez un périphérique défaillant dans un pool de stockage par un disque hot spare à l'aide de la commande zpool replace.
Remplacement automatique : en cas de détection d'une défaillance, un agent FMA examine le pool pour déterminer s'il y a des disques hot spare. Dans ce cas, le périphérique défaillant est remplacé par un disque hot spare disponible.
En cas de défaillance d'un disque hot spare en cours d'utilisation, l'agent FMA sépare le disque hot spare et annule ainsi le remplacement. L'agent tente ensuite de remplacer le périphérique par un autre disque hot spare s'il y en a un de disponible. Cette fonction est actuellement limitée par le fait que le moteur de diagnostics ZFS ne génère des défaillances qu'en cas de disparition d'un périphérique du système.
Si vous remplacez physiquement un périphérique défaillant par un disque spare actif, vous pouvez réactiver le périphérique original en utilisant la commande zpool detach pour déconnecter le disque spare. Si vous définissez la propriété de pool autoreplace sur on, le disque spare est automatiquement déconnecté et retourne au pool de disques spare lorsque le nouveau périphérique est inséré et que l'opération en ligne s'achève.
Tout périphérique UNAVAIL est remplacé automatiquement si un disque hot spare est disponible. Par exemple :
# zpool status -x pool: zeepool state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. Run 'zpool status -v' to see device specific details. scan: resilvered 3.15G in 0h0m with 0 errors on Thu Jun 21 16:46:19 2012 config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 DEGRADED 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 spare-1 DEGRADED 449 0 0 c0t5000C500335DC60Fd0 UNAVAIL 0 0 0 c0t5000C500335E106Bd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 INUSE errors: No known data errors
Vous pouvez actuellement désactiver un disque hot spare en recourant à l'une des méthodes suivantes :
Suppression du disque hot spare du pool de stockage.
Déconnexion du disque hot spare après avoir remplacé physiquement un disque défectueux. Reportez-vous à l'Exemple 3-8.
Remplacement temporaire ou permanent par un autre disque hot spare. Reportez-vous à l'Exemple 3-9.
Exemple 3-8 Déconnexion d'un disque hot spare après le remplacement du disque défectueux
Dans cet exemple, le disque défectueux (c0t5000C500335DC60Fd0) est remplacé physiquement et ZFS est averti à l'aide de la commande zpool replace.
# zpool replace zeepool c0t5000C500335DC60Fd0 # zpool status zeepool pool: zeepool state: ONLINE scan: resilvered 3.15G in 0h0m with 0 errors on Thu Jun 21 16:53:43 2012 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 AVAIL
Si nécessaire, vous pouvez ensuite utiliser la commande zpool detach pour retourner le disque hot spare au pool de disques hot spare. Par exemple :
# zpool detach zeepool c0t5000C500335E106Bd0
Exemple 3-9 Déconnexion d'un disque défectueux et utilisation d'un disque hot spare
Si vous souhaitez remplacer un disque défectueux par un swap temporaire ou permanent dans le disque hot spare qui le remplace actuellement, vous devez déconnecter le disque d'origine (défectueux). Si le disque défectueux finit par être remplacé, vous pouvez l'ajouter de nouveau au groupe de stockage en tant que disque hot spare. Par exemple :
# zpool status zeepool pool: zeepool state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. Run 'zpool status -v' to see device specific details. scan: scrub in progress since Thu Jun 21 17:01:49 2012 1.07G scanned out of 6.29G at 220M/s, 0h0m to go 0 repaired, 17.05% done config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 DEGRADED 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 UNAVAIL 0 0 0 spares c0t5000C500335E106Bd0 AVAIL errors: No known data errors # zpool detach zeepool c0t5000C500335DC60Fd0 # zpool status zeepool pool: zeepool state: ONLINE scan: resilvered 3.15G in 0h0m with 0 errors on Thu Jun 21 17:02:35 2012 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335E106Bd0 ONLINE 0 0 0 errors: No known data errors (Original failed disk c0t5000C500335DC60Fd0 is physically replaced) # zpool add zeepool spare c0t5000C500335DC60Fd0 # zpool status zeepool pool: zeepool state: ONLINE scan: resilvered 3.15G in 0h0m with 0 errors on Thu Jun 21 17:02:35 2012 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335E106Bd0 ONLINE 0 0 0 spares c0t5000C500335DC60Fd0 AVAIL errors: No known data errors
Une fois qu'un disque est remplacé et que le remplacement est détaché, informez FMA que le disque est réparé.
# fmadm faulty # fmadm repaired zfs://pool=name/vdev=guid