Si no se puede abrir un dispositivo, se muestra como UNAVAIL en la salida de zpool status. Este estado indica que ZFS no ha podido abrir el dispositivo la primera vez que se accedió a la agrupación, o que desde entonces el dispositivo ya no está disponible. Si el dispositivo hace que no quede disponible un dispositivo virtual de alto nivel, el grupo queda completamente inaccesible. De lo contrario, podría verse en peligro la tolerancia a errores del grupo. En cualquier caso, el dispositivo solo tiene que volver a conectarse al sistema para restablecer el funcionamiento normal. Si necesita reemplazar un dispositivo con el estado UNAVAIL porque ha fallado, consulte Sustitución de un dispositivo de un grupo de almacenamiento de ZFS.
Si un dispositivo está en estado UNAVAIL en una agrupación raíz o una agrupación raíz reflejada, consulte las referencias siguientes:
Error en disco de agrupación raíz reflejada: Inicio desde un disco alternativo en una agrupación raíz ZFS reflejada
Cómo reemplazar un disco en una agrupación raíz
Recuperación después de un desastre de la agrupación raíz completa: Uso de Unified Archives para la clonación y la recuperación del sistema en Oracle Solaris 11.2 .
Por ejemplo, en pantalla puede aparecer un mensaje parecido al siguiente procedente de fmd tras un error de dispositivo:
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.
Para ver información más pormenorizada del problema y la resolución, utilice el comando zpool status –v. Por ejemplo:
# 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
En esta salida, puede ver que el dispositivo c0t5000C500335DC60Fd0 no funciona. Si determina que se trata de un dispositivo defectuoso, sustitúyalo.
Si es necesario, utilice el comando zpool online para conectar el dispositivo reemplazado. Por ejemplo:
# zpool online pond c0t5000C500335DC60Fd0
Comunique a la FMA que el dispositivo se ha sustituido si la salida de fmadm faulty identifica el error de dispositivo. Por ejemplo:
# 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.
Extraiga la cadena en la sección Affects: de la salida fmadm faulty e inclúyala con el siguiente comando para informar a FMA que se reemplazó el dispositivo:
# 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
Como último paso, confirme que la agrupación con el dispositivo reemplazado está en buen estado. Por ejemplo:
# zpool status -x tank pool 'tank' is healthy
Si un dispositivo ha desaparecido totalmente del sistema, ZFS detecta que dicho dispositivo no se puede abrir y le asigna el estado REMOVED. Según el nivel de repetición de datos que tenga la agrupación, la desaparición no tiene por qué significar que toda la agrupación deje de estar disponible. Si se elimina un disco de un dispositivo RAID-Z o reflejado, la agrupación sigue estando disponible. Una agrupación podría tener el estado UNAVAIL, lo que significa que no se puede acceder a los datos hasta que se vuelva a conectar el dispositivo, en las siguientes condiciones:
Si un dispositivo de agrupación de almacenamiento redundante se quita accidentalmente y reintroduce, puede borrar el error del dispositivo, en la mayoría de los casos. Por ejemplo:
# zpool clear tank c1t1d0
La forma de volver a conectar un dispositivo que falta depende del tipo de dispositivo. Si es una unidad de red, se debe restaurar la conectividad a la red. Si se trata de un dispositivo USB u otro medio extraíble, debe volverse a conectar al sistema. Si consiste en un disco local, podría haber fallado un controlador de tal forma que el dispositivo ya no estuviera visible en el sistema. En tal caso, el controlador se debe reemplazar en el punto en que los discos vuelvan a estar disponibles. Pueden darse otros problemas, según el tipo de hardware y su configuración. Si una unidad falla y ya no está visible en el sistema, el dispositivo debe tratarse como si estuviera dañado. Siga los procedimientos que se indican en Sustitución o reparación de un dispositivo dañado.
Una agrupación puede tener el estado SUSPENDED si la conectividad del dispositivo se ve comprometida. Una agrupación SUSPENDED se mantiene en estado de espera hasta que se resuelve el problema del dispositivo. Por ejemplo:
# 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
Después de restablecer la conectividad del dispositivo, borre la agrupación o los errores del dispositivo.
# zpool clear cybermen # fmadm repaired zfs://pool=name/vdev=guid
Después de que un dispositivo se vuelve a conectar al sistema, ZFS puede detectar o no automáticamente su disponibilidad. Si la agrupación tenía antes el estado UNAVAIL o SUSPENDED, o si el sistema se reinició como parte del procedimiento attach, ZFS vuelve a explorar automáticamente todos los dispositivos cuando intenta abrir la agrupación. Si la agrupación se había degradado y el dispositivo se reemplazó cuando el sistema estaba en ejecución, se debe notificar a ZFS que el dispositivo ya está disponible y listo para abrirse de nuevo mediante el comando zpool online. Por ejemplo:
# zpool online tank c0t1d0
Para obtener más información sobre la conexión de dispositivos, consulte Cómo conectar un dispositivo.