Si l'ouverture d'un périphérique est impossible, ce dernier s'affiche dans l'état UNAVAIL dans la sortie de zpool status. Cet état indique que ZFS n'a pas pu ouvrir le périphérique lors du premier accès au pool ou que le périphérique est devenu indisponible par la suite. Si le périphérique rend un périphérique de niveau supérieur indisponible, l'intégralité du pool devient inaccessible. Dans le cas contraire, la tolérance de pannes du pool risque d'être compromise. Quel que soit le cas, le périphérique doit simplement être reconnecté au système pour fonctionner à nouveau normalement. Si vous avez besoin de remplacer un périphérique qui est UNAVAIL parce qu'il est défectueux, reportez-vous à la section Remplacement d'un périphérique dans un pool de stockage ZFS.
Si l'état d'un périphérique est UNAVAIL dans un pool root ou dans un pool root mis en miroir, consultez les références suivantes :
La mise en miroir du disque de pool root a échoué : Initialisation à partir d'un disque alternatif d'un pool root ZFS mis en miroir
Remplacement d'un disque dans un pool root
Récupération sur sinistre de pool root complet : Utilisation de Unified Archives pour la récupération du système et le clonage dans Oracle Solaris 11.2 .
Par exemple, après une panne de périphérique, fmd peut afficher un message similaire au suivant :
SUNW-MSG-ID: ZFS-8000-QJ, TYPE: Fault, VER: 1, SEVERITY: Minor EVENT-TIME: Wed Jun 20 13:09:55 MDT 2012 PLATFORM: ORCL,SPARC-T3-4, CSN: 1120BDRCCD, HOSTNAME: tardis SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: e13312e0-be0a-439b-d7d3-cddaefe717b0 DESC: Outstanding dtls on ZFS device 'id1,sd@n5000c500335dc60f/a' in pool 'pond'. AUTO-RESPONSE: No automated response will occur. IMPACT: None at this time. 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-QJ for the latest service procedures and policies regarding this diagnosis.
Pour afficher des informations détaillées sur le problème du périphérique et sa résolution, utilisez la commande zpool status–v. Par exemple :
# zpool status -v pool: pond 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'. scan: scrub repaired 0 in 0h0m with 0 errors on Wed Jun 20 13:16:09 2012 config: NAME STATE READ WRITE CKSUM pond 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 device details: c0t5000C500335DC60Fd0 UNAVAIL cannot open status: ZFS detected errors on this device. The device was missing. see: http://support.oracle.com/msg/ZFS-8000-LR for recovery
Dans cette sortie, vous pouvez voir que le périphérique c0t5000C500335DC60Fd0 ne fonctionne pas. Si vous estimez que le périphérique est défectueux, remplacez-le.
Si nécessaire, exécutez ensuite la commande zpool online pour mettre le périphérique remplacé en ligne. Par exemple :
# zpool online pond c0t5000C500335DC60Fd0
Signalez à FMA que le périphérique a été remplacé si la sortie de fmadm faulty identifie l'erreur de périphérique. Par exemple :
# fmadm faulty --------------- ------------------------------------ -------------- --------- TIME EVENT-ID MSG-ID SEVERITY --------------- ------------------------------------ -------------- --------- Jun 20 13:15:41 3745f745-371c-c2d3-d940-93acbb881bd8 ZFS-8000-LR Major Problem Status : solved Diag Engine : zfs-diagnosis / 1.0 System Manufacturer : unknown Name : ORCL,SPARC-T3-4 Part_Number : unknown Serial_Number : 1120BDRCCD Host_ID : 84a02d28 ---------------------------------------- Suspect 1 of 1 : Fault class : fault.fs.zfs.open_failed Certainty : 100% Affects : zfs://pool=86124fa573cad84e/ vdev=25d36cd46e0a7f49/pool_name=pond/ vdev_name=id1,sd@n5000c500335dc60f/a Status : faulted and taken out of service FRU Name : "zfs://pool=86124fa573cad84e/ vdev=25d36cd46e0a7f49/pool_name=pond/ vdev_name=id1,sd@n5000c500335dc60f/a" Status : faulty Description : ZFS device 'id1,sd@n5000c500335dc60f/a' in pool 'pond' failed to open. Response : An attempt will be made to activate a hot spare if available. Impact : Fault tolerance of the pool may be compromised. 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.
Extrayez la chaîne dans la section Affects: de la sortie fmadm faulty et incluez-la dans la commande suivante pour informer FMA que le périphérique est remplacé :
# fmadm repaired zfs://pool=86124fa573cad84e/ \ vdev=25d36cd46e0a7f49/pool_name=pond/ \ vdev_name=id1,sd@n5000c500335dc60f/a fmadm: recorded repair to of zfs://pool=86124fa573cad84e/ vdev=25d36cd46e0a7f49/pool_name=pond/vdev_ name=id1,sd@n5000c500335dc60f/a
Confirmez ensuite que le pool dont le périphérique a été remplacé fonctionne correctement. Par exemple :
# zpool status -x tank pool 'tank' is healthy
Si un périphérique est entièrement supprimé du système, ZFS s'assure que le périphérique ne peut pas être ouvert et il le place dans l'é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 UNAVAIL, cela signifie qu'aucune donnée n'est accessible jusqu'à ce que le périphérique soit reconnecté selon les conditions suivantes :
Périphérique de pool de stockage si redondant, reportez-vous à la est accidentellement supprimé et réinséré, vous pouvez, il vous suffit d'effacer l'erreur de périphérique dans la plupart des cas. Par exemple :
# zpool clear tank c1t1d0
La reconnexion d'un périphérique dépend du périphérique en question. S'il s'agit d'un disque connecté au réseau, la connectivité au réseau doit être restaurée. S'il s'agit d'un périphérique USB ou autre média amovible, il doit être reconnecté au système. S'il s'agit d'un disque local, un contrôleur est peut-être tombé en panne, rendant le périphérique invisible au système. Dans ce cas, il faut remplacer le contrôleur pour que les disques soient à nouveau disponibles. D'autres problèmes existent et dépendent du type de matériel et de sa configuration. Si un disque tombe en panne et n'est plus visible pour le système, le périphérique doit être traité comme un périphérique endommagé. Suivez les procédures décrites dans la section Remplacement ou réparation d'un périphérique endommagé .
Un pool peut être SUSPENDED si la connectivité du périphérique est problématique. Un pool SUSPENDED reste en état wait jusqu'à ce que le problème du périphérique soit résolu. Par exemple :
# zpool status cybermen pool: cybermen state: SUSPENDED status: One or more devices are unavailable in response to IO failures. The pool is suspended. action: Make sure the affected devices are connected, then run 'zpool clear' or 'fmadm repaired'. Run 'zpool status -v' to see device specific details. see: http://support.oracle.com/msg/ZFS-8000-HC scan: none requested config: NAME STATE READ WRITE CKSUM cybermen UNAVAIL 0 16 0 c8t3d0 UNAVAIL 0 0 0 c8t1d0 UNAVAIL 0 0 0
Une fois la connectivité de périphérique restaurée, effacez les erreurs de pool ou de périphérique.
# zpool clear cybermen # fmadm repaired zfs://pool=name/vdev=guid
Une fois le périphérique reconnecté au système, sa disponibilité peut être détectée automatiquement ou non dans ZFS. Si le pool était précédemment UNAVAIL ou SUSPENDED, ou si le système a été réinitialisé en tant que partie de la procédure attach, ZFS rebalaye automatiquement tous les périphériques lors de la tentative d'ouverture du pool. Si le pool était endommagé et que le périphérique a été remplacé alors que le système était en cours d'exécution, vous devez indiquer à ZFS que le périphérique est dorénavant disponible et qu'il est prêt à être rouvert à l'aide de la commande zpool online. Par exemple :
# zpool online tank c0t1d0
Pour plus d'informations sur la remise en ligne de périphériques, reportez-vous à la section Mise en ligne d'un périphérique.