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 una agrupación de almacenamiento.
El ejemplo siguiente muestra cómo reemplazar un dispositivo (c1t3d0) en la agrupación de almacenamiento reflejada tank en un sistema Sun Fire x4500 de Oracle. Para reemplazar el disco c1t3d0 con un nuevo disco en la misma ubicación (c1t3d0), desconfigure el disco antes de intentar reemplazarlo. Los pasos básicos son:
Desconectar el disco (c1t3d0) que se va a sustituir. No puede desconfigurar un disco que se esté utilizando.
Utilizar el comando cfgadm para identificar el disco (c1t3d0) que desconfigurar y desconfigurarlo. 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 quitar la unidad que falla, asegúrese de que se encienda el LED azul que indica que el disco está listo para quitar.
Volver a configurar el disco (c1t3d0).
Conectar el disco nuevo (c1t3d0).
Ejecutar el comando zpool replace para reemplazar el disco (c1t3d0).
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 |
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 |
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.
# 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 |
# 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 |