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

Salir de la Vista de impresión

Actualización: Diciembre de 2014
 
 

Designación de repuestos en marcha en la agrupación de almacenamiento

La función de repuesto permite identificar discos que se podrían utilizar para sustituir un dispositivo defectuoso en una agrupación de almacenamiento. Designar un dispositivo como reserva activa significa que el dispositivo no está activo en la agrupación, pero si un dispositivo activo de la agrupación falla, la reserva activa lo reemplaza automáticamente.

Los dispositivos se pueden designar como repuestos en marcha de los modos siguientes:

  • Cuando se crea la agrupación con el comando zpool create.

  • Después de crear la agrupación con el comando zpool add.

El ejemplo siguiente muestra cómo designar dispositivos como reservas activas cuando se crea la agrupación:

# 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

El ejemplo siguiente muestra cómo designar repuestos en marcha agregándolos a una agrupación después de crearla:

# 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

Los repuestos en marcha se pueden suprimir de un grupo de almacenamiento mediante el comando zpool remove. Por ejemplo:

# 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

No se puede suprimir un repuesto en marcha si se está utilizando en una agrupación de almacenamiento.

Tenga en cuenta lo siguiente al utilizar repuestos en marcha de ZFS:

  • Actualmente, el comando zpool remove solo es apto para eliminar repuestos en marcha, dispositivos caché y dispositivos de log.

  • Para agregar un disco como repuesto en marcha, el repuesto en marcha debe ser igual o mayor que el disco más grande de la agrupación. Se puede agregar un disco de repuesto de tamaño inferior. Ahora bien, al activar ese disco de repuesto de tamaño inferior, de forma automática o con el comando zpool replace, la operación falla y genera un mensaje de error parecido al siguiente:

    cannot replace disk3 with disk4: device is too small
  • No puede compartir un disco de repuesto entre varios sistemas.

    No puede configurar varios sistemas para compartir un repuesto incluso si el disco está visible para el acceso de estos sistemas. Si un disco está configurado para ser compartido entre varias agrupaciones, solo un único sistema debe controlar todas estas agrupaciones.

  • Tenga en cuenta que, si comparte un disco de repuesto entre dos agrupaciones de datos en el mismo sistema, debe coordinar el uso del disco de repuesto entre las dos agrupaciones. Por ejemplo, la agrupación B tiene el repuesto en uso y la agrupación A se exporta. Es posible que la agrupación B use inadvertidamente el repuesto mientras la agrupación A se exporta. Cuando se importa la agrupación A, pueden ocasionarse daños en los datos porque ambas agrupaciones están usando el mismo disco. Por lo tanto, tenga en cuenta dichos casos extremos en que aunque disco sea un repuesto compartido por varias agrupaciones, podrían existir condiciones que podrían activar problemas para las agrupaciones.

  • No comparta un disco de repuesto entre una agrupación raíz y una agrupación de datos.

Activación y desactivación de repuestos en marcha en el grupo de almacenamiento

Los repuestos en marcha se activan de los modos siguientes:

  • Sustitución manual: sustituya un dispositivo incorrecto en una agrupación de almacenamiento con un repuesto en marcha mediante el comando zpool replace.

  • Sustitución automática: cuando se detecta un error, un agente FMA examina la agrupación para ver si dispone de repuestos en marcha. Si es así, sustituye el dispositivo con errores por un repuesto en marcha.

    Si falla un repuesto en marcha que está en uso, el agente FMA quita el repuesto y cancela la sustitución. El agente intenta sustituir el dispositivo por otro repuesto en marcha, si lo hay. Esta función está limitada por el hecho de que el motor de diagnóstico ZFS solo emite errores cuando un dispositivo desaparece del sistema.

    Si sustituye físicamente un dispositivo defectuoso con un repuesto activo, puede reactivar el original, pero debe desactivar el dispositivo reemplazado mediante el comando zpool detach para desconectar el repuesto. Si configura la propiedad de agrupación autoreplace como activada (on), el repuesto se desconecta automáticamente y vuelve a la agrupación de repuestos cuando se inserta el dispositivo nuevo y se completa la operación de conexión.

Un dispositivo UNAVAIL se reemplaza automáticamente si hay disponible un repuesto en marcha. Por ejemplo:

# 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                       ONLINE       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

Actualmente se puede desactivar un repuesto en marcha de las siguientes maneras:

  • Eliminando el repuesto de la agrupación de almacenamiento.

  • Desconectando el repuesto después de la sustitución de un disco fallido. Consulte Example 3–8.

  • Intercambiando el repuesto de forma temporal o permanente con otro repuesto. Consulte Example 3–9.

Ejemplo 3-8  Desconexión de un repuesto en marcha después de sustituir el disco fallido

En este ejemplo, el disco fallido (c0t5000C500335DC60Fd0) se reemplaza físicamente y se informa a ZFS con el comando 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 es necesario, puede utilizar el comando zpool detach para devolver el repuesto en marcha a la agrupación de repuesto. Por ejemplo:

# zpool detach zeepool c0t5000C500335E106Bd0
Ejemplo 3-9  Desconexión de un disco averiado y uso del repuesto en marcha

Si desea sustituir un disco fallido mediante un intercambio temporal o permanente del repuesto que lo está sustituyendo, desconecte el disco original (fallido). Si se sustituye el disco fallido en algún momento, se podrá agregar a la agrupación de almacenamiento como repuesto. Por ejemplo:

# 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                       ONLINE       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                   DEGRADED     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                   DEGRADED     0      0      0
      c0t5000C500335BD117d0   ONLINE       0      0      0
      c0t5000C500335E106Bd0   ONLINE       0      0      0
   spares
      c0t5000C500335DC60Fd0    AVAIL

errors: No known data errors

Después de reemplazar un disco y de desconectar el repuesto, informe a FMA que el disco está reparado.

# fmadm faulty
# fmadm repaired zfs://pool=name/vdev=guid