Omitir Vínculos de navegación | |
Salir de la Vista de impresión | |
Guía de administración de Oracle Solaris ZFS Oracle Solaris 10 1/13 Information Library (Español) |
1. Sistema de archivos ZFS de Oracle Solaris (introducción)
2. Procedimientos iniciales con Oracle Solaris ZFS
3. Administración de agrupaciones de almacenamiento de Oracle Solaris ZFS
4. Instalación e inicio de un sistema de archivos raíz ZFS Oracle Solaris
5. Administración de sistemas de archivos ZFS de Oracle Solaris
6. Uso de clones e instantáneas de Oracle Solaris ZFS
7. Uso de listas de control de acceso y atributos para proteger archivos Oracle Solaris ZFS
8. Administración delegada de ZFS Oracle Solaris
9. Temas avanzados de Oracle Solaris ZFS
10. Recuperación de agrupaciones y solución de problemas de Oracle Solaris ZFS
Identificación de problemas de ZFS
Resolución de problemas de hardware generales
Identificación de fallos de hardware y dispositivos
Creación de informes del sistema sobre mensajes de error de ZFS
Identificación de problemas con agrupaciones de almacenamiento ZFS
Cómo establecer si una agrupación de almacenamiento de ZFS tiene problemas
Revisión de la salida de zpool status
Información sobre el estado general de la agrupación
Información de configuración de agrupación de almacenamiento ZFS
Estado de limpieza de agrupación de almacenamiento ZFS
Resolución de problemas de dispositivos de almacenamiento ZFS
Resolución de problemas de dispositivo extraído o faltante
Resolución de problemas de un dispositivo extraído
Cómo volver a conectar físicamente un dispositivo
Notificación de ZFS sobre disponibilidad de dispositivos
Sustitución o reparación de un dispositivo dañado
Cómo determinar el tipo de error en dispositivos
Eliminación de errores transitorios de dispositivos
Sustitución de un dispositivo de un grupo de almacenamiento de ZFS
Cómo determinar si un dispositivo se puede reemplazar o no
Dispositivos que no se pueden reemplazar
Sustitución de un dispositivo de un grupo de almacenamiento de ZFS
Resolución de problemas del sistema de archivos ZFS
Resolución de problemas de datos en una agrupación de almacenamiento ZFS
Comprobación de integridad de sistema de archivos ZFS
Reparación de sistema de archivos
Validación de sistema de archivos
Control de la limpieza de datos de ZFS
Limpieza explícita de datos de ZFS
Limpieza y actualización de la duplicación de datos de ZFS
Resolución de problemas de espacio ZFS
Informes de espacio del sistema de archivos
Informes de espacio de la agrupación de almacenamiento ZFS
Identificación del tipo de corrupción de datos
Reparación de un archivo o directorio dañado
Reparación de datos dañados con referencias de varios bloques
Reparación de daños en las agrupaciones de almacenamiento de ZFS
Reparación de una configuración de ZFS dañada
Reparación de un sistema que no se puede iniciar
11. Prácticas de ZFS recomendadas por Oracle Solaris
Consulte las secciones siguientes para resolver problemas de un dispositivo defectuoso, extraído o faltante.
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 sólo 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 completa en caso de desastre de agrupaciones raíz: Recuperación de la agrupación raíz ZFS o las instantáneas de la agrupación raíz .
Por ejemplo, en pantalla puede aparecer un mensaje parecido al siguiente procedente de fmd tras un error de dispositivo:
SUNW-MSG-ID: ZFS-8000-FD, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Thu Jun 24 10:42:36 PDT 2010 PLATFORM: SUNW,Sun-Fire-T200, CSN: -, HOSTNAME: daleks SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: a1fb66d0-cc51-cd14-a835-961c15696fcb DESC: The number of I/O errors associated with a ZFS device exceeded acceptable levels. Refer to http://sun.com/msg/ZFS-8000-FD for more information. AUTO-RESPONSE: The device has been offlined and marked as faulted. An attempt will be made to activate a hot spare if available. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device.
Para ver información más pormenorizada del problema y la resolución, utilice el comando zpool status -x. Por ejemplo:
# zpool status -x pool: tank state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scan: scrub repaired 0 in 0h0m with 0 errors on Tue Sep 27 16:59:07 2011 config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c2t2d0 ONLINE 0 0 0 c2t1d0 UNAVAIL 0 0 0 cannot open errors: No known data errors
En esta salida, puede ver que el dispositivo c2t1d0 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 tank c2t1d0
Comunique a FMA que el dispositivo ha sido reemplazado si la salida de fmadm faulty identifica el error del dispositivo. Por ejemplo:
# fmadm faulty --------------- ------------------------------------ -------------- --------- TIME EVENT-ID MSG-ID SEVERITY --------------- ------------------------------------ -------------- --------- Sep 27 16:58:50 e6bb52c3-5fe0-41a1-9ccc-c2f8a6b56100 ZFS-8000-D3 Major Host : neo Platform : SUNW,Sun-Fire-T200 Chassis_id : Product_sn : Fault class : fault.fs.zfs.device Affects : zfs://pool=tank/vdev=c75a8336cda03110 faulted and taken out of service Problem in : zfs://pool=tank/vdev=c75a8336cda03110 faulted and taken out of service Description : A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. Response : No automated response will occur. Impact : Fault tolerance of the pool may be compromised. Action : Run 'zpool status -x' and replace the bad device. # fmadm repaired zfs://pool=tank/vdev=c75a8336cda03110
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. Es posible que una agrupación tenga 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 se eliminan todos los componentes de un reflejo
Si se elimina más de un dispositivo en un RAID-Z (raidz1)
Si se elimina un dispositivo de nivel superior en una configuración de un solo disco
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'. see: http://www.sun.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.
Esta sección describe la forma de determinar tipos de errores en dispositivos, eliminar errores transitorios y reemplazar un dispositivo.
El concepto dispositivo dañado es bastante ambiguo; puede referirse a varias situaciones:
Deterioro de bits: con el tiempo, eventos aleatorios como campos magnéticos o rayos cósmicos pueden causar anomalías en los bits almacenados en el disco. Son eventos relativamente poco frecuentes, pero lo suficientemente habituales como para causar daños en datos de sistemas grandes o con procesos de larga duración.
Lecturas o escrituras de ubicaciones incorrectas: los errores de firmware o hardware pueden hacer que lecturas o escrituras de bloques enteros hagan referencia a ubicaciones incorrectas en el disco. Suelen ser errores transitorios, pero si se producen en grandes cantidades podrían denotar una unidad defectuosa.
Error de administrador: los administradores pueden sobrescribir inadvertidamente porciones del disco con datos dañados (por ejemplo, sobrescribir porciones de /dev/zero en el disco) que afectarán el disco de manera permanente. Estos errores siempre son transitorios.
Interrupción temporal del suministro de energía: durante un determinado periodo de tiempo, quizá no se pueda acceder a un disco, lo que puede provocar errores de E/S. Esta situación se suele asociar con dispositivos conectados a redes, aunque los discos locales también pueden sufrir interrupciones temporales de suministro de energía. Estos errores pueden ser transitorios o no.
Hardware dañado o inestable: esta situación constituye un cajón de sastre de todos los problemas que puede presentar un hardware defectuoso, entre los que se pueden citar errores persistentes de E/S y transportes defectuosos que causan errores aleatorios. Estos errores suelen ser permanentes.
Dispositivo sin conexión: si un dispositivo está sin conexión, se supone que el administrador le ha asignado este estado porque presenta algún problema. El administrador que asigna este estado al dispositivo puede establecer si dicha suposición es correcta.
El diagnóstico exacto de la naturaleza del problema puede resultar un proceso complicado. El primer paso es examinar la cantidad de errores en la salida de zpool status. Por ejemplo:
# zpool status -v 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://www.sun.com/msg/ZFS-8000-8A scan: scrub in progress since Tue Sep 27 17:12:40 2011 63.9M scanned out of 528M at 10.7M/s, 0h0m to go 0 repaired, 12.11% done config: NAME STATE READ WRITE CKSUM tank ONLINE 2 0 0 mirror-0 ONLINE 2 0 0 c2t2d0 ONLINE 2 0 0 c2t1d0 ONLINE 2 0 0 errors: Permanent errors have been detected in the following files: /tank/words
Los errores pueden ser de E/S o de suma de comprobación, y pueden denotar el posible tipo de defecto. El funcionamiento normal prevé muy pocos errores (sólo unos pocos en periodos de tiempo prolongados). Si detecta una gran cantidad de errores, probablemente denote la inminencia de un error o la inutilización completa de un dispositivo. Pero un error de administrador también puede derivar en grandes cantidades de errores. El registro del sistema syslog es la otra fuente de información. Si el registro tiene una gran cantidad de mensajes de controlador de canal de fibra o SCSI, es probable que la situación sea sintomática de graves problemas de hardware. Si no se generan mensajes de syslog, es probable que los daños sean transitorios.
El objetivo es responder a la pregunta siguiente:
¿Es probable que este dispositivo vuelva a tener un error?
Los errores que suceden sólo una vez se consideran transitorios y no denotan problemas potenciales. Los errores continuos o suficientemente graves como para indicar problemas potenciales en el hardware se consideran errores fatales. El hecho de determinar el tipo de error trasciende el ámbito de cualquier software automatizado que haya actualmente en ZFS, por lo cual eso es una tarea propia de los administradores. Una vez determinado el error, se puede llevar a cabo la acción pertinente. Suprima los errores transitorios o reemplace los dispositivos con errores fatales. Estos procedimientos de reparación se explican en las secciones siguientes.
Aun en caso de que los errores de dispositivos se consideren transitorios, se pueden haber generado errores incorregibles en los datos de la agrupación. Estos errores precisan procedimientos especiales de reparación, incluso si el dispositivo subyacente se considera que está en buen estado o se ha reparado. Para obtener más información sobre cómo reparar errores de datos, consulte Reparación de datos dañados.
Si los errores en dispositivos se consideran transitorios, en el sentido de que es poco probable que incidan más adelante en el buen estado del dispositivo, se pueden suprimir tranquilamente para indicar que no se ha producido ningún error fatal. Para suprimir los recuentos de errores de RAID-Z o dispositivos reflejados, utilice el comando zpool clear. Por ejemplo:
# zpool clear tank c1t1d0
Esta sintaxis suprime todos los errores de dispositivo y recuentos de errores de datos asociados con el dispositivo.
Utilice la sintaxis siguiente para suprimir todos los errores asociados con los dispositivos virtuales de una agrupación y para suprimir los recuentos de errores de datos asociados con la agrupación:
# zpool clear tank
Para obtener más información sobre la supresión de errores de dispositivos, consulte Borrado de errores de dispositivo de agrupación de almacenamiento.
Si los daños en un dispositivo son permanentes o es posible que lo sean en el futuro, dicho dispositivo debe reemplazarse. El hecho de que el dispositivo pueda sustituirse o no depende de la configuración.
Si el dispositivo que se reemplazará forma parte de una configuración redundante, deben existir suficientes réplicas desde las que se puedan recuperar los datos en buen estado. Por ejemplo, si dos discos en un reflejo de cuatro vías tienen el estado UNAVAIL, se puede reemplazar cualquiera de ellos porque hay réplicas en buen estado. Sin embargo, si dos discos en un dispositivo virtual RAID-Z (raidz1) de cuatro vías tienen el estado UNAVAIL, ninguno de ellos se puede reemplazar porque no se dispone de suficientes réplicas desde las cuales recuperar los datos. Si el dispositivo está dañado pero tiene conexión, se puede reemplazar siempre que la agrupación no tenga el estado UNAVAIL. Sin embargo, cualquier dato dañado del dispositivo se copia al nuevo dispositivo a menos que haya suficientes réplicas con datos correctos.
En la configuración siguiente, el disco c1t1d0 se puede reemplazar y los datos de la agrupación se copian de la réplica en buen estado, c1t0d0.
mirror DEGRADED c1t0d0 ONLINE c1t1d0 FAULTED
El disco c1t0d0 también se puede reemplazar, aunque no es factible la recuperación automática de datos debido a la falta de réplicas en buen estado.
En la configuración siguiente, no se puede reemplazar ninguno de los discos UNAVAIL. Los discos ONLINE tampoco pueden reemplazarse porque la agrupación tiene el estado UNAVAIL.
raidz FAULTED c1t0d0 ONLINE c2t0d0 FAULTED c3t0d0 FAULTED c4t0d0 ONLINE
En la configuración siguiente, el disco de nivel superior tampoco se puede reemplazar, si bien en el disco nuevo se va a copiar cualquier dato dañado.
c1t0d0 ONLINE c1t1d0 ONLINE
Si cualquiera de los discos tiene el estado UNAVAIL, no se puede realizar ningún reemplazo porque la agrupación tiene el estado UNAVAIL.
Si la pérdida de un dispositivo hace que la agrupación tenga el estado UNAVAIL, o si el dispositivo contiene demasiados errores de datos en una configuración no redundante, el dispositivo no puede reemplazarse de forma segura. Si la redundancia es insuficiente, no es posible restaurar con datos en buen estado el dispositivo dañado. En este caso, la única posibilidad es destruir la agrupación, volver a crear la configuración y, a continuación, restaurar los datos desde una copia de seguridad.
Para obtener más información sobre cómo restaurar todo un grupo, consulte Reparación de daños en las agrupaciones de almacenamiento de ZFS.
Tras determinar que se puede reemplazar un dispositivo, utilice el comando zpool replace para reemplazarlo. Si va a reemplazar el dispositivo dañado con otro diferente, utilice sintaxis como ésta:
# zpool replace tank c1t1d0 c2t0d0
Este comando migra datos al dispositivo nuevo desde el dispositivo dañado, o de otros dispositivos de la agrupación si la configuración es redundante. Cuando finaliza el comando, desconecta el dispositivo dañado de la configuración. Es entonces cuando el dispositivo se puede eliminar del sistema. Si ya ha eliminado el dispositivo y lo ha reemplazado por uno nuevo en la misma ubicación, utilice la forma de un solo dispositivo del comando. Por ejemplo:
# zpool replace tank c1t1d0
Este comando selecciona un disco sin formato, le aplica el formato correspondiente y actualiza la duplicación de datos a partir del resto de la configuración.
Para obtener más información acerca del comando zpool replace, consulte Sustitución de dispositivos en un grupo de almacenamiento.
Ejemplo 10-1 Reemplazo de un disco SATA en una agrupación de almacenamiento ZFS
El siguiente ejemplo muestra cómo reemplazar un dispositivo (c1t3d0) en una agrupación de almacenamiento reflejada tank en un sistema con dispositivos SATA. Para reemplazar el disco c1t3d0 con un nuevo disco en la misma ubicación (c1t3d0), desconfigure el disco antes de intentar reemplazarlo. Si el disco que se debe reemplazar no es un disco SATA, consulte Sustitución de dispositivos en un grupo de almacenamiento.
Los pasos básicos son:
Desconectar el disco (c1t3d0) que se va a sustituir. No puede anular la configuración de un disco SATA en uso.
Utilizar el comando cfgadm para identificar el disco SATA (c1t3d0) cuya configuración se debe anular y llevar a cabo esta acción. La agrupación se degradará con el disco desconectado en esta configuración reflejada, pero la agrupación seguirá estando disponible.
Sustituir físicamente el disco (c1t3d0). Antes de eliminar físicamente la unidad UNAVAIL, asegúrese de que el LED azul Ready to Remove esté encendido.
Volver a configurar el disco SATA (c1t3d0).
Conectar el disco nuevo (c1t3d0).
Ejecutar el comando zpool replace para reemplazar el disco (c1t3d0).
Nota - Si ha configurado previamente la propiedad de agrupación autoreplace como on, se dará formato y se sustituirá automáticamente cualquier dispositivo nuevo que se detecte en la misma ubicación física como dispositivo que antes pertenecía a la agrupación, mediante el comando zpool replace. Es posible que el hardware no sea compatible con esta función.
Si un disco fallido se sustituye automáticamente por un repuesto en marcha, puede que deba desconectarlo después de dicha sustitución. Por ejemplo, si c2t4d0 es aún un repuesto en marcha activo después de sustituir el disco fallido, desconéctelo.
# zpool detach tank c2t4d0
Si FMA informa un dispositivo fallido, debe reparar las fallas del dispositivo.
# fmadm faulty # fmadm repaired zfs://pool=name/vdev=guid
El ejemplo siguiente detalla los pasos para reemplazar un disco en una agrupación de almacenamiento de ZFS.
# zpool offline tank c1t3d0 # cfgadm | grep c1t3d0 sata1/3::dsk/c1t3d0 disk connected configured ok # cfgadm -c unconfigure sata1/3 Unconfigure the device at: /devices/pci@0,0/pci1022,7458@2/pci11ab,11ab@1:3 This operation will suspend activity on the SATA device Continue (yes/no)? yes # cfgadm | grep sata1/3 sata1/3 disk connected unconfigured ok <Physically replace the failed disk c1t3d0> # cfgadm -c configure sata1/3 # cfgadm | grep sata1/3 sata1/3::dsk/c1t3d0 disk connected configured ok # zpool online tank c1t3d0 # zpool replace tank c1t3d0 # zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Feb 2 13:17:32 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 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
Tenga en cuenta que el comando zpool output anterior podría mostrar tanto los discos nuevos como los antiguos en un encabezado replacing. Por ejemplo:
replacing DEGRADED 0 0 0 c1t3d0s0/o FAULTED 0 0 0 c1t3d0 ONLINE 0 0 0
Este texto indica que el proceso de sustitución está en curso y se está actualizando la duplicación de datos.
Si va a reemplazar un disco (c1t3d0) con otro (c4t3d0), sólo tiene que ejecutar el comando zpool replace. Por ejemplo:
# zpool replace tank c1t3d0 c4t3d0 # zpool status pool: tank state: DEGRADED scrub: resilver completed after 0h0m with 0 errors on Tue Feb 2 13:35:41 2010 config: NAME STATE READ WRITE CKSUM tank DEGRADED 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 DEGRADED 0 0 0 c0t3d0 ONLINE 0 0 0 replacing DEGRADED 0 0 0 c1t3d0 OFFLINE 0 0 0 c4t3d0 ONLINE 0 0 0 errors: No known data errors
Es posible que deba ejecutar el comando zpool status varias veces hasta finalizar la sustitución del disco.
# zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Feb 2 13:35:41 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 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 c4t3d0 ONLINE 0 0 0
Ejemplo 10-2 Sustitución de un dispositivo de registro que presenta errores
ZFS identifica errores del registro de intento en la salida del comando zpool status. Diagnosis de arquitectura de administración fallida (FMA) informa de dichos errores también. Ambos, ZFS y FMA, describen cómo recuperarse de un error de intento de registro.
El ejemplo siguiente muestra cómo recuperar un dispositivo de registro (c0t5d0) que presenta errores en la agrupación de almacenamiento, (pool). Los pasos básicos son:
Revisar el resultado de zpool status -x y el mensaje de diagnóstico de FMA que se describen a continuación:
Reemplazar físicamente el dispositivo de registro que presenta errores.
Conectar el dispositivo de registro.
Borrar la condición de error de la agrupación.
Repare el error de la FMA.
# zpool status -x pool: pool state: FAULTED status: One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run 'zpool online', or ignore the intent log records by running 'zpool clear'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool FAULTED 0 0 0 bad intent log mirror ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 logs FAULTED 0 0 0 bad intent log c0t5d0 UNAVAIL 0 0 0 cannot open <Physically replace the failed log device> # zpool online pool c0t5d0 # zpool clear pool
Por ejemplo, si el sistema se cierra bruscamente antes de que las operaciones de escritura sincrónica se confirmen en una agrupación con un dispositivo de registro independiente, se muestran mensajes parecidos al siguiente:
# zpool status -x pool: pool state: FAULTED status: One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run 'zpool online', or ignore the intent log records by running 'zpool clear'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool FAULTED 0 0 0 bad intent log mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 logs FAULTED 0 0 0 bad intent log c0t5d0 UNAVAIL 0 0 0 cannot open <Physically replace the failed log device> # zpool online pool c0t5d0 # zpool clear pool # fmadm faulty # fmadm repair zfs://pool=name/vdev=guid
Puede resolver el error del dispositivo de registro como se indica a continuación:
Sustituya o recupere el dispositivo de registro. En este ejemplo, el dispositivo de registro es c0t5d0.
Vuelva a conectar el dispositivo de registro.
# zpool online pool c0t5d0
Restablezca la condición de error del dispositivo de registro que presenta errores.
# zpool clear pool
Si desea recuperarse de este error sin reemplazar el dispositivo de registro que presenta errores, puede borrar el error con el comando zpool clear. En esta situación, la agrupación no funcionará correctamente y los registros se escribirán en la agrupación principal hasta que se sustituya el dispositivo de registro independiente.
Considere el uso de dispositivos de registro reflejados para evitar los casos de error en el dispositivo de registro.
El proceso de reemplazar un dispositivo puede tardar una considerable cantidad de tiempo, según el tamaño del dispositivo y la cantidad de datos que haya en la agrupación. El proceso de transferir datos de un dispositivo a otro, denominado actualización de la duplicación de datos, se puede controlar mediante el comando zpool status.
Los sistemas de archivos tradicionales actualizan duplicaciones de datos en los bloques. Debido a que ZFS suprime la disposición artificial de capas de Volume Manager, puede ejecutar la actualización de duplicación de datos de manera más potente y controlada. Esta función presenta dos ventajas principales:
ZFS sólo actualiza la duplicación de los datos necesarios. En caso de una breve interrupción del suministro (en contraposición a un reemplazo completo del dispositivo), la actualización de duplicación de datos del disco puede hacerse en cuestión de segundos. Si se reemplaza todo un disco, el tiempo que implica el proceso de actualización de duplicación de datos es proporcional a la cantidad de datos que se utilizan en disco. La sustitución de un disco de 500 GB puede ser cuestión de segundos si la agrupación sólo tiene unos cuantos gigabytes de espacio usado en el disco.
La actualización de duplicación de datos es un proceso seguro que se puede interrumpir. Si el sistema se queda sin conexión o se reinicia, el proceso de actualización de duplicación de datos reanuda la tarea exactamente en el punto en que se había interrumpido, sin que haga falta hacer nada.
Para observar el progreso de la actualización de duplicación de datos, utilice el comando zpool status. Por ejemplo:
# zpool status tank pool: tank state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scrub: resilver in progress for 0h0m, 22.60% done, 0h1m to go config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 replacing-0 DEGRADED 0 0 0 c1t0d0 UNAVAIL 0 0 0 cannot open c2t0d0 ONLINE 0 0 0 85.0M resilvered c1t1d0 ONLINE 0 0 0 errors: No known data errors
En este ejemplo, el disco c1t0d0 se sustituye por c2t0d0. Este evento se refleja en la salida del estado mediante la presencia del dispositivo virtual que reemplaza en la configuración. Este dispositivo no es real ni sirve para crear una agrupación. La única finalidad de este dispositivo es mostrar el proceso de actualización de duplicación de datos e identificar el dispositivo que se va a reemplazar.
Cualquier agrupación sometida al proceso de actualización de duplicación de datos adquiere el estado ONLINE o DEGRADED, porque hasta que no haya finalizado dicho proceso es incapaz de proporcionar el nivel necesario de redundancia. La actualización de duplicación de datos se ejecuta lo más deprisa posible, si bien la E/S siempre se programa con una prioridad inferior a la E/S solicitada por el usuario, para que repercuta en el sistema lo menos posible. Tras finalizarse la actualización de duplicación de datos, la configuración asume los parámetros nuevos. Por ejemplo:
# zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h1m with 0 errors on Tue Feb 2 13:54:30 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 377M resilvered c1t1d0 ONLINE 0 0 0 errors: No known data errors
La agrupación pasa de nuevo al estado ONLINE y el disco dañado original (c1t0d0) desaparece de la configuración.