Gestión de sistemas de archivos ZFS en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Diciembre de 2014
 
 

Comprobación de integridad de sistema de archivos ZFS

En ZFS no hay una utilidad fsck equivalente. Esta utilidad se ha venido utilizando con dos fines: para reparaciones de sistema de archivos y para validaciones de dichos sistemas.

Reparación de sistema de archivos

En los sistemas de archivos tradicionales, el método de escritura de datos es intrínsecamente vulnerable a errores imprevistos que generan incoherencias en el sistema. Debido a que un sistema de archivos tradicional no es transaccional, puede haber bloques sin referenciar, recuentos de enlaces erróneos u otras estructuras de sistema de archivos no coherentes. La agregación de diarios soluciona algunos de estos problemas, pero puede presentar otros problemas si el log no se puede invertir. La única forma de que existan datos incoherentes en un disco en una configuración de ZFS es a través de un error de hardware (en cuyo caso, la agrupación debería haber sido redundante) o cuando hay un error en el software ZFS.

La utilidad fsck soluciona problemas conocidos específicos de sistemas de archivos UFS. Casi todos los problemas de agrupación de almacenamiento ZFS suelen estar relacionados con errores de hardware o fallos de alimentación. Muchos se pueden evitar utilizando agrupaciones redundantes. Si una agrupación se ha dañado por un error de hardware o un fallo de alimentación, consulte Reparación de daños en las agrupaciones de almacenamiento de ZFS.

Si la agrupación no es redundante, siempre existe el riesgo de que los daños en el sistema de archivos lleguen a hacer que parte o todos los datos queden inaccesibles.

Validación de sistema de archivos

Aparte de reparar sistemas de archivos, la utilidad fsck comprueba que los datos en disco no tengan problemas. El procedimiento habitual para esta tarea consiste en desmontar el sistema de archivos y ejecutar la utilidad fsck, seguramente con el sistema en modo monousuario durante el proceso. Esta situación da como resultado un tiempo de inactividad proporcional al tamaño del sistema de archivos que se comprueba. En lugar de hacer que una determinada utilidad realice la comprobación pertinente, ZFS brinda un mecanismo para ejecutar una comprobación rutinaria de todas las incoherencias. Esta función, denominada limpieza, se suele utilizar en la memoria y otros sistemas como método para detectar y evitar errores antes de que deriven en errores de hardware o software.

Control de la limpieza de datos de ZFS

Cuando ZFS detecta un error, ya sea mediante el proceso de limpieza o al acceder a un archivo por algún motivo, el error se registra internamente para poder disponer de una visión general inmediata de todos los errores conocidos de la agrupación.

Limpieza explícita de datos de ZFS

La manera más sencilla de comprobar la integridad de los datos es iniciar una limpieza explícita de todos los datos de la agrupación. Este proceso afecta a todos los datos del grupo y verifica que se puedan leer todos los bloques. El proceso de limpieza transcurre todo lo deprisa que permiten los dispositivos, aunque la prioridad de cualquier E/S quede por debajo de las operaciones normales. Esta operación puede incidir negativamente en el rendimiento, aunque los datos de la agrupación deberían seguir siendo utilizables casi del modo habitual. Para iniciar una limpieza explícita, utilice el comando zpool scrub. Por ejemplo:

# zpool scrub tank

El estado de la limpieza actual puede verse mediante el comando zpool status. Por ejemplo:

# zpool status -v tank
pool: tank
state: ONLINE
scan: scrub in progress since Mon Jun  7 12:07:52 2010
201M scanned out of 222M at 9.55M/s, 0h0m to go
0 repaired, 90.44% done
config:

NAME      STATE     READ WRITE CKSUM
tank      ONLINE       0     0     0
mirror-0  ONLINE       0     0     0
c1t0d0    ONLINE       0     0     0
c1t1d0    ONLINE       0     0     0

errors: No known data errors

Solo puede haber una operación de limpieza activa por agrupación.

Con la opción –s se puede detener una operación de limpieza en curso. Por ejemplo:

# zpool scrub -s tank

En la mayoría de los casos, una operación de limpieza para asegurar la integridad de los datos debe continuar hasta finalizar. Si cree que la limpieza afecta negativamente al rendimiento del sistema, puede detenerla.

La ejecución rutinaria de limpiezas garantiza la E/S continua en todos los discos del sistema. La ejecución rutinaria de limpiezas tiene el inconveniente de impedir que los discos inactivos pasen a la modalidad de bajo consumo. Si en general el sistema efectúa E/S permanentemente, o si el consumo de energía no es ningún problema, se puede prescindir de este tema. Si el sistema está mayormente inactivo, y desea conservar energía a los discos, debe considerar utilizar una limpieza explícita cron(1M) programada en lugar de una limpieza en segundo plano. Aun así se realizará una limpieza completa de los datos, aunque solo se generará una gran cantidad de E/S hasta que la limpieza finaliza, punto en el que se puede gestionar la alimentación de los discos de manera normal. La desventaja (además de un aumento de E/S) es que habrá largos períodos en los que no se realicen limpiezas en absoluto, lo que aumenta potencialmente el riesgo de sufrir daños durante dichos períodos.

Para obtener más información sobre la interpretación de la salida de zpool status, consulte Consulta del estado de una agrupación de almacenamiento de ZFS.

Limpieza y actualización de la duplicación de datos de ZFS

Al reemplazar un dispositivo, se inicia una operación de actualización de duplicación de datos para transferir datos de las copias correctas al nuevo dispositivo. Este proceso es una forma de limpieza de disco. Por lo tanto, una acción de este tipo solo puede darse en la agrupación en un momento determinado. Si hay una operación de limpieza en curso, una operación de creación de reflejo suspende la limpieza en curso y la reinicia una vez concluida la creación de reflejo.

Para obtener más información sobre la actualización de duplicación de datos, consulte Visualización de estado de reconstrucción.