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
Componentes de una agrupación de almacenamiento de ZFS
Utilización de discos en un grupo de almacenamiento de ZFS
Uso de segmentos en una agrupación de almacenamiento de ZFS
Utilización de archivos en un grupo de almacenamiento de ZFS
Consideraciones para grupos de almacenamiento de ZFS
Funciones de repetición de una agrupación de almacenamiento de ZFS
Configuración reflejada de agrupaciones de almacenamiento
Configuración de grupos de almacenamiento RAID-Z
Agrupación de almacenamiento híbrido de ZFS
Datos de recuperación automática en una configuración redundante
Reparto dinámico de discos en bandas en un grupo de almacenamiento
Creación y destrucción de agrupaciones de almacenamiento de ZFS
Creación de grupos de almacenamiento de ZFS
Creación de un grupo de almacenamiento básico
Creación de una agrupación de almacenamiento reflejado
Creación de una agrupación raíz ZFS
Creación de una agrupación de almacenamiento de RAID-Z
Creación de una agrupación de almacenamiento de ZFS con dispositivos de registro
Creación de una agrupación de almacenamiento de ZFS con dispositivos caché
Precauciones para la creación de grupos de almacenamiento
Visualización de información de dispositivos virtuales de agrupaciones de almacenamiento
Administración de errores de creación de agrupaciones de almacenamiento de ZFS
Detección de dispositivos en uso
Niveles de replicación no coincidentes
Ensayo de creación de una agrupación de almacenamiento
Punto de montaje predeterminado para agrupaciones de almacenamiento
Destrucción de agrupaciones de almacenamiento de ZFS
Destrucción de una agrupación con dispositivos no disponibles
Administración de dispositivos en agrupaciones de almacenamiento de ZFS
Agregación de dispositivos a un grupo de almacenamiento
Conexión y desconexión de dispositivos en una agrupación de almacenamiento
Dispositivos con conexión y sin conexión en un grupo de almacenamiento
Cómo terminar la conexión de un dispositivo
Borrado de errores de dispositivo de agrupación de almacenamiento
Sustitución de dispositivos en un grupo de almacenamiento
Designación de repuestos en marcha en la agrupación de almacenamiento
Activación y desactivación de repuestos en marcha en el grupo de almacenamiento
Administración de propiedades de agrupaciones de almacenamiento de ZFS
Consulta del estado de una agrupación de almacenamiento de ZFS
Visualización de información de agrupaciones de almacenamiento de ZFS
Visualización de estadísticas específicas de una agrupación de almacenamiento
Salida de la secuencia de comandos de la agrupación de almacenamiento de ZFS
Cómo mostrar el historial de comandos de la agrupación de almacenamiento de ZFS
Visualización de estadísticas de E/S de agrupaciones de almacenamiento de ZFS
Lista de estadísticas de E/S de todas las agrupaciones
Lista de estadísticas de E/S de dispositivos virtuales
Cómo determinar el estado de las agrupaciones de almacenamiento de ZFS
Estado de la agrupación de almacenamiento básico
Recopilación de información sobre el estado de la agrupación ZFS
Migración de agrupaciones de almacenamiento de ZFS
Preparación para la migración de grupos de almacenamiento de ZFS
Exportación a un grupo de almacenamiento de ZFS
Especificación de grupos de almacenamiento disponibles para importar
Importación de agrupaciones de almacenamiento de ZFS de directorios alternativos
Importación de grupos de almacenamiento de ZFS
Importación de una agrupación a la que le falta un dispositivo de registro
Importación de una agrupación en modo de sólo lectura
Importación de una agrupación mediante una ruta de dispositivo específico
Recuperación de agrupaciones de almacenamiento de ZFS destruidas
Actualización de agrupaciones de almacenamiento de 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
11. Prácticas de ZFS recomendadas por Oracle Solaris
La mayor parte de la información básica relacionada con los dispositivos se puede consultar en Componentes de una agrupación de almacenamiento de ZFS. Después de crear una agrupación, puede efectuar diversas tareas para administrar los dispositivos físicos en ella.
Conexión y desconexión de dispositivos en una agrupación de almacenamiento
Dispositivos con conexión y sin conexión en un grupo de almacenamiento
Borrado de errores de dispositivo de agrupación de almacenamiento
Designación de repuestos en marcha en la agrupación de almacenamiento
Puede agregar espacio en el disco a una agrupación de forma dinámica, incorporando un nuevo dispositivo virtual de nivel superior. Este espacio está inmediatamente disponible para todos los conjuntos de datos de la agrupación. Para agregar un dispositivo virtual a una agrupación, utilice el comando zpool add. Por ejemplo:
# zpool add zeepool mirror c2t1d0 c2t2d0
El formato para especificar dispositivos virtuales es el mismo que para el comando zpool create. Los dispositivos se comprueban para determinar si se utilizan y el comando no puede cambiar el nivel de redundancia sin la opción -f. El comando también es compatible con la opción -n de manera que puede ejecutar un ensayo. Por ejemplo:
# zpool add -n zeepool mirror c3t1d0 c3t2d0 would update 'zeepool' to the following configuration: zeepool mirror c1t0d0 c1t1d0 mirror c2t1d0 c2t2d0 mirror c3t1d0 c3t2d0
La sintaxis de este comando agregaría dispositivos reflejados c3t1d0 y c3t2d0 a la configuración existente de la agrupación zeepool.
Para obtener más información sobre cómo validar dispositivos virtuales, consulte Detección de dispositivos en uso.
Ejemplo 3-1 Agregación de discos a una configuración de ZFS reflejada
En el siguiente ejemplo, se agrega otro reflejo a una configuración del ZFS reflejado existente.
# zpool status tank pool: tank state: ONLINE scrub: none requested 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 errors: No known data errors # zpool add tank mirror c0t3d0 c1t3d0 # zpool status tank pool: tank state: ONLINE scrub: none requested 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
Ejemplo 3-2 Agregación de discos a una configuración de RAID-Z
Se pueden agregar discos adicionales de modo similar a una configuración de RAID-Z. El ejemplo siguiente muestra cómo convertir una agrupación de almacenamiento con un dispositivo RAID–Z que contiene tres discos en una agrupación de almacenamiento con dos dispositivos RAID-Z con tres discos cada uno.
# zpool status rzpool pool: rzpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rzpool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 errors: No known data errors # zpool add rzpool raidz c2t2d0 c2t3d0 c2t4d0 # zpool status rzpool pool: rzpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rzpool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 raidz1-1 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t4d0 ONLINE 0 0 0 errors: No known data errors
Ejemplo 3-3 Agregación y eliminación de un dispositivo de registro reflejado
El siguiente ejemplo muestra cómo agregar un dispositivo de registro reflejado a una agrupación de almacenamiento reflejada.
# zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 errors: No known data errors # zpool add newpool log mirror c0t6d0 c0t7d0 # zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 logs mirror-1 ONLINE 0 0 0 c0t6d0 ONLINE 0 0 0 c0t7d0 ONLINE 0 0 0 errors: No known data errors
Puede vincular un dispositivo de registro a uno ya creado para crear un dispositivo de registro reflejado. Esta operación es idéntica a la de conectar un dispositivo en una agrupación de almacenamiento sin reflejar.
Puede eliminar los dispositivos de registro mediante el comando zpool remove. El dispositivo de registro reflejado en el ejemplo anterior se puede eliminar mediante la especificación del argumento mirror-1. Por ejemplo:
# zpool remove newpool mirror-1 # zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 errors: No known data errors
Si su configuración de agrupación sólo contiene un dispositivo de registro, para eliminarlo tendrá que especificar el nombre del dispositivo. Por ejemplo:
# zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c0t8d0 ONLINE 0 0 0 c0t9d0 ONLINE 0 0 0 logs c0t10d0 ONLINE 0 0 0 errors: No known data errors # zpool remove pool c0t10d0
Ejemplo 3-4 Cómo agregar y eliminar dispositivos caché
Puede agregar dispositivos de caché a la agrupación de almacenamiento de ZFS y eliminarlos si dejan de ser necesarios.
Utilice el comando zpool add para agregar dispositivos caché. Por ejemplo:
# zpool add tank cache c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 cache c2t5d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 errors: No known data errors
Los dispositivos caché no se pueden reflejar ni pueden formar parte de una configuración de RAID-Z.
Utilice el comando zpool remove para eliminar dispositivos caché. Por ejemplo:
# zpool remove tank c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 errors: No known data errors
Actualmente, el comando zpool remove sólo admite la eliminación de dispositivos caché, dispositivos de registro y repuestos en marcha. Los dispositivos que forman parte de la configuración de la agrupación reflejada principal se pueden eliminar mediante el comando zpool detach. Los dispositivos no redundantes y de RAID-Z no se pueden eliminar de una agrupación.
Para obtener más información sobre cómo utilizar dispositivos caché en una agrupación de almacenamiento de ZFS, consulte Creación de una agrupación de almacenamiento de ZFS con dispositivos caché.
Además del comando zpool add, puede utilizar el comando zpool attach para agregar un nuevo dispositivo a un dispositivo reflejado o no reflejado existente.
Si va a conectar un disco para crear una agrupación raíz reflejada, consulte Cómo crear una agrupación raíz ZFS reflejada (posterior a la instalación).
Si va a sustituir un disco en una agrupación raíz ZFS, consulte Recuperación de la agrupación raíz ZFS o las instantáneas de la agrupación raíz .
Ejemplo 3-5 Conversión de una agrupación de almacenamiento reflejada de dos vías a una reflejada de tres vías
En este ejemplo, zeepool es un reflejo de dos vías que se transforma en uno de tres vías mediante la conexión del nuevo dispositivo c2t1d0 a c1t1d0, el que ya existía.
# zpool status zeepool pool: zeepool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach zeepool c1t1d0 c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 12:59:20 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 592K resilvered errors: No known data errors
Si el dispositivo existente forma parte de un reflejo de tres vías, al conectar el nuevo dispositivo se crea un reflejo de cuatro vías, y así sucesivamente. En cualquier caso, el nuevo dispositivo comienza inmediatamente la actualización de la duplicación.
Ejemplo 3-6 Conversión de una agrupación de almacenamiento de ZFS no redundante a una de ZFS reflejada
También se puede convertir una agrupación de almacenamiento no redundante en una redundante mediante el comando zpool attach. Por ejemplo:
# zpool create tank c0t1d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach tank c0t1d0 c1t1d0 # zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 14:28:23 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 73.5K resilvered errors: No known data errors
Puede utilizar el comando zpool detach para desconectar un dispositivo de una agrupación de almacenamiento reflejada. Por ejemplo:
# zpool detach zeepool c2t1d0
Pero esta operación fallará si no hay ninguna otra réplica válida de los datos. Por ejemplo:
# zpool detach newpool c1t2d0 cannot detach c1t2d0: only applicable to mirror and replacing vdevs
Una agrupación de almacenamiento ZFS reflejada puede ser rápidamente clonada como una agrupación de copia de seguridad mediante el comando zpool split. Puede utilizar esta función para dividir una agrupación raíz reflejada, pero la agrupación dividida no se puede iniciar hasta realizar pasos adicionales.
Puede utilizar el comando zpool split para desconectar uno o varios discos de una agrupación de almacenamiento ZFS reflejada para crear una nueva agrupación con los discos desconectados. La nueva agrupación tendrá el mismo contenido que la agrupación original de almacenamiento de ZFS reflejada.
De manera predeterminada, una operación zpool split en una agrupación reflejada desvincula el último disco de la agrupación recién creada. Después de la operación de división, importe la nueva agrupación. Por ejemplo:
# zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors # zpool split tank tank2 # zpool import tank2 # zpool status tank tank2 pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 errors: No known data errors pool: tank2 state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank2 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors
Puede identificar qué disco utilizar para la nueva agrupación especificando ésta con el comando zpool split. Por ejemplo:
# zpool split tank tank2 c1t0d0
Antes de que se produzca la división, los datos en memoria se vaciarán en los discos reflejados. Después de vaciarse los datos, el disco se desconecta de la agrupación y se le asigna un nuevo GUID de agrupación. Se genera un nuevo GUID para permitir la importación de la agrupación en el mismo sistema en que se ha dividido.
Si la agrupación que se va a dividir tiene puntos de montaje de sistema de archivos no predeterminados y la nueva agrupación se crea en el mismo sistema, deberá usar la opción zpool split -R para identificar un directorio raíz alternativo para la nueva agrupación, a fin de evitar conflictos entre los puntos de montaje existentes. Por ejemplo:
# zpool split -R /tank2 tank tank2
Si no utiliza la opción de zpool split -R y observa que hay conflictos entre puntos de montaje al intentar importar la nueva agrupación, impórtela utilizando la opción -R. Si la nueva agrupación se crea en un sistema distinto, no debería ser preciso especificar un directorio raíz alternativo a menos que haya conflictos de puntos de montaje.
Tenga en cuenta lo siguiente antes de utilizar la función zpool split:
Esta función no está disponible para una configuración RAID-Z o una agrupación no redundante de varios discos.
Antes de intentar una operación zpool split, no debería haber activas operaciones de aplicación ni datos.
Una agrupación no se puede dividir si la actualización de duplicación está en curso.
La división de una agrupación reflejada es óptima cuando la agrupación está compuesta por dos o tres discos y el último disco de la agrupación original se utiliza para crear la nueva agrupación. Luego, puede usar el comando zpool attach para volver a crear la agrupación de almacenamiento reflejada original o para convertir la agrupación recién creada en una agrupación de almacenamiento reflejada. Actualmente no existe ningún método para crear una nueva agrupación reflejada a partir de una agrupación reflejada existente en una operación zpool split, ya que la nueva agrupación (dividida) no es redundante.
Si la agrupación ya existente es un reflejo de tres vías, la nueva agrupación contendrá un disco después de la operación de división. Si la agrupación ya existente es un reflejo de dos vías de dos discos, el resultado son dos agrupaciones no redundantes de dos discos. Tendrá que conectar dos discos adicionales para convertir las agrupaciones no redundantes en agrupaciones reflejadas.
Una buena forma de mantener los datos redundantes durante una operación de división consiste en dividir una agrupación de almacenamiento reflejada compuesta de tres discos de manera que la agrupación original se componga de dos discos reflejados después de la operación de división.
Confirme que el hardware esté configurado correctamente antes de dividir una agrupación reflejada. Para obtener información sobre la confirmación de la configuración de vaciado de caché del hardware, consulte Prácticas generales del sistema.
Ejemplo 3-7 División de una agrupación de ZFS reflejada
En el siguiente ejemplo, se divide una agrupación reflejada denominada mothership, con tres discos. Las dos agrupaciones resultantes son la agrupación reflejada mothership, con dos discos, y la nueva agrupación, luna, con un disco. Cada agrupación tiene el mismo contenido.
La agrupación luna se puede importar en otro sistema para realizar copias de seguridad. Una vez finalizada la copia de seguridad, se puede destruir la agrupación luna y el disco se vuelve a conectar a mothership. A continuación, se puede repetir el proceso.
# zpool status mothership pool: mothership state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mothership ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 errors: No known data errors # zpool split mothership luna # zpool import luna # zpool status mothership luna pool: luna state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM luna ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 errors: No known data errors pool: mothership state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mothership ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 errors: No known data errors
ZFS permite que los dispositivos individuales queden sin conexión o con conexión. Cuando el hardware no es fiable o no funciona adecuadamente, ZFS continúa con la lectura o la escritura de datos en el dispositivo, suponiendo que la condición es sólo temporal. Si no es temporal, es posible indicar a ZFS que termine la conexión del dispositivo para que éste se pase por alto. ZFS no envía solicitudes a un dispositivo sin conexión.
Nota - Para sustituir dispositivos no es necesario desconectarlos.
Puede terminar la conexión de un dispositivo mediante el comando zpool offline. El dispositivo se puede especificar mediante la ruta o un nombre abreviado, si el dispositivo es un disco. Por ejemplo:
# zpool offline tank c0t5000C500335F95E3d0
Tenga en cuenta los puntos siguientes al desconectar un dispositivo:
No puede desconectar una agrupación si, como resultado, tendrá el estado UNAVAIL. Por ejemplo, no puede desconectar dos dispositivos en una configuración raidz1, ni tampoco puede desconectar un dispositivo virtual de nivel superior.
# zpool offline tank c0t5000C500335F95E3d0 cannot offline c0t5000C500335F95E3d0: no valid replicas
De modo predeterminado, el estado OFFLINE es persistente. El dispositivo permanece sin conexión cuando el sistema se reinicia.
Para desconectar temporalmente un dispositivo, utilice la opción zpool offline -t. Por ejemplo:
# zpool offline -t tank c1t0d0
Cuando el sistema se reinicia, este dispositivo vuelve automáticamente al estado ONLINE.
Si un dispositivo se queda sin conexión, no se desconecta del grupo de almacenamiento. Si intenta utilizar el dispositivo sin conexión en otra agrupación, incluso después de que la agrupación original se haya destruido, aparece en pantalla un mensaje similar al siguiente:
device is part of exported or potentially active ZFS pool. Please see zpool(1M)
Si desea utilizar el dispositivo sin conexión en otra agrupación de almacenamiento después de destruir la agrupación de almacenamiento original, conecte el dispositivo y destruya la agrupación de almacenamiento original.
Otra forma de utilizar un dispositivo de otra agrupación de almacenamiento a la vez que se mantiene la agrupación de almacenamiento original consiste en sustituir el dispositivo de la agrupación de almacenamiento original por otro equivalente. Para obtener información sobre la sustitución de dispositivos, consulte Sustitución de dispositivos en un grupo de almacenamiento.
Los dispositivos sin conexión aparecen con el estado OFFLINE al consultar el estado de la agrupación. Para obtener información sobre cómo saber el estado del grupo, consulte Consulta del estado de una agrupación de almacenamiento de ZFS.
Para obtener más información sobre la situación del dispositivo, consulte Cómo determinar el estado de las agrupaciones de almacenamiento de ZFS.
Si se anula la conexión de un dispositivo, se puede restablecer mediante el comando zpool online. Por ejemplo:
# zpool online tank c0t5000C500335F95E3d0
Si se conecta un dispositivo, los datos escritos en la agrupación se vuelven a sincronizar con el dispositivo que acaba de quedar disponible. Para sustituir un disco, no se puede conectar un dispositivo. Si desconecta un dispositivo, lo reemplaza por otro e intenta conectar ese otro, permanece en el estado UNAVAIL.
Si intenta conectar un dispositivo UNAVAIL, aparece un mensaje similar al siguiente:
# zpool online tank c1t0d0 warning: device 'c1t0d0' onlined, but remains in faulted state use 'zpool replace' to replace devices that are no longer present
También puede que vea el mensaje de disco defectuoso en la consola o escrito en el archivo /var/adm/messages. Por ejemplo:
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 20 11:35:26 MDT 2012 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device.
Para obtener más información sobre cómo sustituir un dispositivo defectuoso, consulte Resolución de problemas de dispositivo extraído o faltante.
Puede utilizar el comando zpool online -e para ampliar el tamaño de la agrupación si se conectó un disco más grande a la agrupación o si se reemplazó un disco más pequeño por uno más grande. De manera predeterminada, un disco que se agrega a una agrupación no se amplía a su tamaño máximo a menos que esté activada la propiedad de agrupación autoexpand. Puede ampliar la agrupación automáticamente por medio del comando zpool online -e aunque el disco de repuesto ya esté en línea o aunque el disco esté actualmente fuera de línea. Por ejemplo:
# zpool online -e tank c0t5000C500335F95E3d0
Si un dispositivo pierde la conexión por un error que hace que los errores aparezcan en la salida de zpool status, los recuentos de errores se pueden borrar con el comando zpool clear.
Si se especifica sin argumentos, este comando borra todos los errores de dispositivo de la agrupación. Por ejemplo:
# zpool clear tank
Si se especifican uno o más dispositivos, este comando sólo borra los errores asociados con los dispositivos especificados. Por ejemplo:
# zpool clear tank c0t5000C500335F95E3d0
Para obtener más información sobre cómo borrar errores de zpool, consulte Eliminación de errores transitorios de dispositivos.
Puede reemplazar un dispositivo en una agrupación de almacenamiento mediante el comando zpool replace.
Si se reemplaza físicamente un dispositivo por otro en la misma ubicación de una agrupación redundante, puede que sólo haga falta identificar el dispositivo sustituido. En algunos dispositivos de hardware, ZFS reconoce que el dispositivo es un disco distinto de la misma ubicación. Por ejemplo, para reemplazar un disco defectuoso (c1t1d0) quitándolo y colocándolo en la misma ubicación, emplee la siguiente sintaxis:
# zpool replace tank c1t1d0
Si va a reemplazar un dispositivo de una agrupación de almacenamiento con un disco de otra ubicación física, tendrá que especificar ambos dispositivos. Por ejemplo:
# zpool replace tank c1t1d0 c1t2d0
Si va a sustituir un disco en una agrupación raíz ZFS, consulte Recuperación de la agrupación raíz ZFS o las instantáneas de la agrupación raíz .
A continuación se detalla el procedimiento básico para sustituir un disco:
Si es preciso, desconecte el dispositivo con el comando zpool offline.
Retire el disco que se debe reemplazar.
Inserte el disco nuevo.
Revise la salida de format para determinar si el disco de reemplazo es visible.
Además, compruebe si el identificador de dispositivo ha cambiado. Si el disco de reemplazo tiene WWN, el identificador de dispositivo para el disco fallido ha cambiado.
Informe a ZFS que se reemplazó el disco. Por ejemplo:
# zpool replace tank c1t1d0
Si el disco de reemplazo tiene un identificador de dispositivo diferente, como se identificó antes, incluya el nuevo identificador de dispositivo.
# zpool replace tank c0t5000C500335FC3E7d0 c0t5000C500335BA8C3d0
Conecte el disco mediante el comando zpool online, si es necesario.
Notifique a FMA que el dispositivo se ha sustituido.
En la salida de fmadm faulty, identifique la cadena zfs://pool=name/vdev=guid en la sección Affects: y proporcione esa cadena como argumento para el comando fmadm repaired.
# fmadm faulty # fmadm repaired zfs://pool=name/vdev=guid
En algunos sistemas con discos SATA, los discos se deben desconfigurar antes de desconectarlos. Si va a reemplazar un disco en la misma posición de ranura en este sistema, puede ejecutar el comando zpool replace del modo descrito en el primer ejemplo de esta sección.
Si desea obtener un ejemplo de cómo reemplazar un disco SATA, consulte Ejemplo 10-1.
Tenga en cuenta lo siguiente al sustituir dispositivos en una agrupación de almacenamiento de ZFS:
Si la propiedad de agrupación autoreplace se configura como activada (on), se aplicará formato y sustitución a cualquier dispositivo que se encuentre en la misma ubicación física que un dispositivo previamente perteneciente a la ubicación. No es necesario que utilice el comando zpool replace cuando esta propiedad está activada. Es posible que no todos los tipos de hardware dispongan de esta función.
El estado REMOVED de la agrupación de almacenamiento se proporciona cuando se ha extraído físicamente un dispositivo o repuesto en marcha con el sistema en funcionamiento. Un dispositivo de repuesto en marcha se sustituye por el dispositivo extraído, si lo hay.
Si un dispositivo se extrae y después se vuelve a insertar, queda conectado. Si el repuesto en marcha se activó al volverse a insertar el dispositivo, el repuesto se extrae cuando termina la operación con conexión.
La detección automática cuando los dispositivos se extraen o insertan depende del hardware, y quizá no sea compatible en todas las plataformas. Por ejemplo, los dispositivos USB se configuran automáticamente al insertarse. Ahora bien, quizá deba utilizar el comando cfgadm -c configure para configurar una unidad SATA.
Los repuestos en marcha se comprueban periódicamente para asegurarse de que tengan conexión y estén disponibles.
El tamaño del dispositivo de sustitución debe ser igual o mayor que el disco más pequeño en una configuración de RAID-Z o reflejada.
Cuando un dispositivo de sustitución de un tamaño mayor que el del dispositivo que va a sustituir se agrega a una agrupación, ésta no se amplía automáticamente a su tamaño máximo. El valor de propiedad de agrupación autoexpand determina si la agrupación se ampliará cuando se agregue a ésta un disco más grande. De manera predeterminada, la propiedad autoexpand está activada. Se puede activar esta propiedad para ampliar el tamaño de la agrupación antes o después de que se agregue el disco más grande a la agrupación.
En el ejemplo siguiente, se sustituyen dos discos de 16 GB de una agrupación reflejada por dos discos de 72 GB. Asegúrese de que el primer dispositivo esté completamente reconstruido antes de intentar realizar la segunda sustitución del dispositivo. La propiedad autoexpand se activa tras las sustituciones de disco para ampliar el tamaño del disco al máximo.
# zpool create pool mirror c1t16d0 c1t17d0 # zpool status pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t16d0 ONLINE 0 0 0 c1t17d0 ONLINE 0 0 0 zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 76.5K 16.7G 0% ONLINE - # zpool replace pool c1t16d0 c1t1d0 # zpool replace pool c1t17d0 c1t2d0 # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 88.5K 16.7G 0% ONLINE - # zpool set autoexpand=on pool # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 68.2G 117K 68.2G 0% ONLINE -
La sustitución de muchos discos en una agrupación de gran tamaño tarda mucho en realizarse debido al proceso de actualizar la duplicación de los datos en los discos nuevos. Además, es recomendable ejecutar el comando zpool scrub entre sustituciones de discos, para asegurarse de que los dispositivos de sustitución estén operativos y que los datos se escriban correctamente.
Si se ha sustituido automáticamente un disco fallido con un repuesto en marcha, es posible que sea necesario desconectar el repuesto después de sustituir el disco fallido. Puede utilizar el comando zpool detach para desconectar un repuesto en una agrupación RAID-Z o reflejada. Para obtener información sobre cómo desconectar un repuesto en marcha, consulte Activación y desactivación de repuestos en marcha en el grupo de almacenamiento.
Para obtener más información sobre cómo sustituir dispositivos, consulte Resolución de problemas de dispositivo extraído o faltante y Sustitución o reparación de un dispositivo dañado.
La función de repuesto permite identificar discos que se podrían utilizar para sustituir un dispositivo defectuoso en una agrupación de almacenamiento. Si un dispositivo se designa como repuesto en marcha, significa que no es un dispositivo activo en una agrupación. Ahora bien, si un dispositivo activo falla, el repuesto en marcha sustituye automáticamente al defectuoso.
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 repuestos en marcha 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 sólo es apto para eliminar repuestos en marcha, dispositivos caché y dispositivos de registro.
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
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 sólo 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: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scan: resilvered 3.15G in 0h0m with 0 errors on Mon Nov 12 15:53:42 2012 config: NAME STATE READ WRITE CKSUM zeepool 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 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 el Ejemplo 3-8.
Intercambiando el repuesto de forma temporal o permanente con otro repuesto. Consulte el Ejemplo 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: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scan: resilver in progress since Mon Nov 12 16:04:12 2012 4.80G scanned out of 12.0G at 55.8M/s, 0h2m to go 4.80G scanned out of 12.0G at 55.8M/s, 0h2m to go 4.77G resilvered, 39.97% done config: NAME STATE READ WRITE CKSUM zeepool 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 spares c0t5000C500335E106Bd0 AVAIL errors: No known data errors # zpool detach zeepool c0t5000C500335DC60Fd0 # zpool status zeepool pool: zeepool state: ONLINE scan: resilvered 11.3G in 0h3m with 0 errors on Mon Nov 12 16:07:12 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 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 11.2G in 0h3m with 0 errors on Mon Nov 12 16:07:12 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 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