Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Guía de administración de Oracle Solaris ZFS |
1. Sistema de archivos ZFS de Oracle Solaris (introducción)
2. Procedimientos iniciales con Oracle Solaris ZFS
3. Oracle Solaris ZFS y sistemas de archivos tradicionales
4. Administración de agrupaciones de almacenamiento de Oracle Solaris ZFS
Componentes de una agrupación de almacenamiento de ZFS
Uso de discos en una agrupación de almacenamiento de ZFS
Uso de segmentos en una agrupación de almacenamiento de ZFS
Uso de archivos en una agrupación 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 agrupaciones 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 una agrupación de almacenamiento
Creación y destrucción de agrupaciones de almacenamiento de ZFS
Creación de una agrupación de almacenamiento de ZFS
Creación de una agrupación 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é
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 repetició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 con errores
Administración de dispositivos en agrupaciones de almacenamiento de ZFS
Adición de dispositivos a una agrupación de almacenamiento
Conexión y desconexión de dispositivos en una agrupación de almacenamiento
Dispositivos con conexión y sin conexión en una agrupación 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 una agrupación de almacenamiento
Designación de repuestos en marcha en la agrupación de almacenamiento
Activación y desactivación de repuestos en marcha en la agrupación 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 información relativa a todas las agrupaciones de almacenamiento o a una específica
Visualización de estadísticas de una agrupación de almacenamiento específico
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 agrupaciones de almacenamiento de ZFS
Exportación de una agrupación de almacenamiento de ZFS
Especificación de agrupaciones de almacenamiento disponibles para importar
Importación de agrupaciones de almacenamiento de ZFS de directorios alternativos
Importación de agrupaciones 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
5. Instalación e inicio de un sistema de archivos raíz ZFS Oracle Solaris
6. Administrar sistemas de archivos ZFS de Oracle Solaris
7. Uso de clones e instantáneas de Oracle Solaris ZFS
8. Uso de listas de control de acceso y atributos para proteger archivos Oracle Solaris ZFS
9. Administración delegada de ZFS Oracle Solaris
10. Temas avanzados de Oracle Solaris ZFS
11. Recuperación de agrupaciones y solución de problemas de Oracle Solaris ZFS
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 una agrupación de almacenamiento
Borrado de errores de dispositivo de agrupación de almacenamiento
Sustitución de dispositivos en una 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 4-1 Adición de discos a una configuración de ZFS reflejada
En el ejemplo siguiente se agrega un reflejo a otro reflejo de ZFS ya existente en un sistema Sun Fire x4500 de Oracle.
# 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 4-2 Adició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 4-3 Adición y eliminación de un dispositivo de registro reflejado
En el ejemplo siguiente se muestra cómo agregar un dispositivo de registro reflejado a una agrupación de almacenamiento reflejada. Para obtener más información sobre cómo utilizar dispositivos de registro en la agrupación de almacenamiento, consulte Configuración de dispositivos de registro de ZFS independientes.
# 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 4-4 Cómo añadir y eliminar dispositivos caché
Se pueden agregar a la agrupación de almacenamiento ZFS y eliminar de allí 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 root reflejada, consulte Cómo crear una agrupación root ZFS reflejada (posterior a la instalación).
Si va a reemplazar un disco en la agrupación de almacenamiento de ZFS, consulte Cómo sustituir un disco en la agrupación raíz ZFS.
Ejemplo 4-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 4-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 de ZFS reflejada se puede clonar fácilmente como copia de seguridad de agrupación mediante el comando zpool split.
Actualmente, esta función no puede utilizarse para dividir una agrupación raíz reflejada.
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 conjunto de datos no predeterminados y la nueva agrupación se crea en el mismo sistema, tendrá que usar la opción de zpool split -R para identificar un directorio root alternativo para la nueva agrupación, a fin de evitar conflictos entre puntos de montaje. 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 root 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 RAIDZ 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.
Es importante tener discos que respondan al comando de vaciado de caché de escritura del disco, en lugar de pasarlo por alto.
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 la posibilidad de usar esta función para crear una agrupación reflejada nueva a partir de una agrupación reflejada existente.
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.
Ejemplo 4-7 División de una agrupación de ZFS reflejada
En el ejemplo siguiente se divide una agrupación de almacenamiento reflejada denominada trinity, con tres discos, c1t0d0, c1t2d0 y c1t3d0. Las dos agrupaciones resultantes son la agrupación reflejada trinity, con los discos c1t0d0 y c1t2d0, y la nueva agrupación denominada neo, con el disco c1t3d0. Cada agrupación tiene el mismo contenido.
# zpool status trinity pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors # zpool split trinity neo # zpool import neo # zpool status trinity neo pool: neo state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM neo ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity 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
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 c1t0d0 bringing device c1t0d0 offline
Tenga en cuenta los puntos siguientes al desconectar un dispositivo:
Una agrupación no se puede desconectar si genera errores. Por ejemplo, no puede desconectar dos dispositivos de una configuración raidz1, ni tampoco puede desconectar un dispositivo virtual de nivel superior.
# zpool offline tank c1t0d0 cannot offline c1t0d0: 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 bringing device 'c1t0d0' offline
Cuando el sistema se reinicia, este dispositivo vuelve automáticamente al estado ONLINE.
Si un dispositivo se queda sin conexión, no se desconecta de la agrupación 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 una agrupación 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 de la agrupación, 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 c1t0d0 bringing device c1t0d0 online
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 utilizar un dispositivo con conexión. Si desconecta un dispositivo, reemplaza el dispositivo e intenta conectarlo, queda en estado de error.
Si intenta conectar un dispositivo defectuoso, 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 30 14:53:39 MDT 2010 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 reemplazar un dispositivo defectuoso, consulte Resolución de un dispositivo que no se encuentra.
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é habilitada 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 sin conexión. Por ejemplo:
# zpool online -e tank c1t13d0
Si un dispositivo pierde la conexión por un fallo 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 errores asociados con los dispositivos especificados. Por ejemplo:
# zpool clear tank c1t0d0
Para obtener más información sobre cómo borrar errores de zpool, consulte Supresión de errores transitorios.
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 desea reemplazar un disco en la agrupación de almacenamiento de ZFS, consulte Cómo sustituir un disco en la agrupación raíz ZFS.
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.
Ejecute el comando zpool replace. Por ejemplo:
# zpool replace tank c1t1d0
Conecte el disco mediante el comando zpool online.
En algunos sistemas, como los sistemas Sun Fire de Oracle, el disco se debe desconfigurar antes de ser desconectado. 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.
Para ver un ejemplo de sustitución de un disco en un sistema Sun Fire X4500, consulte el Ejemplo 11-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 habilitada (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á habilitada. Es posible que no todos los tipos de hardware dispongan de esta función.
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á habilitada. Se puede habilitar 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. La propiedad autoexpand se habilita 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 la agrupación de almacenamiento.
Para obtener más información sobre cómo reemplazar dispositivos, consulte Resolución de un dispositivo que no se encuentra y Sustitución o reparación de un dispositivo dañado.
La función de repuesto en marcha permite identificar discos que se podrían utilizar para sustituir un dispositivo defectuoso o en estado "faulted" en una o más agrupaciones 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 trinity mirror c1t1d0 c2t1d0 spare c1t2d0 c2t2d0 # zpool status trinity pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c1t2d0 AVAIL c2t2d0 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 neo spare c5t3d0 c6t3d0 # zpool status neo pool: neo state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM neo ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c3t3d0 ONLINE 0 0 0 c4t3d0 ONLINE 0 0 0 spares c5t3d0 AVAIL c6t3d0 AVAIL errors: No known data errors
Los repuestos en marcha se pueden suprimir de una agrupación de almacenamiento mediante el comando zpool remove. Por ejemplo:
# zpool remove zeepool c2t3d0 # 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 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c1t3d0 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 habilitada (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.
Puede sustituir manualmente un dispositivo con un repuesto en marcha mediante el comando zpool replace. Consulte el Ejemplo 4-8.
Un dispositivo con errores se sustituye automáticamente si hay un repuesto en marcha. Por ejemplo:
# zpool status -x pool: zeepool 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 scrub: resilver completed after 0h0m with 0 errors on Mon Jan 11 10:20:35 2010 config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 DEGRADED 0 0 0 c2t1d0 UNAVAIL 0 0 0 cannot open c2t3d0 ONLINE 0 0 0 88.5K resilvered spares c2t3d0 INUSE currently in use 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 4-9.
Cambiando el repuesto de forma temporal o permanente. Consulte el Ejemplo 4-10.
Ejemplo 4-8 Sustitución manual de un disco con un repuesto en marcha
En este ejemplo, el comando zpool replace se utiliza para sustituir el disco c2t1d0 con el repuesto en marcha c2t3d0.
# zpool replace zeepool c2t1d0 c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 90K resilvered spares c2t3d0 INUSE currently in use errors: No known data errors
A continuación, quite el disco c2t1d0.
# zpool detach zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 90K resilvered errors: No known data errors
Ejemplo 4-9 Desconexión de un repuesto en marcha después de sustituir el disco fallido
En este ejemplo, el disco averiado (c2t1d0) se sustituye físicamente y ZFS recibe una notificación mediante el comando zpool replace.
# zpool replace zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:08:44 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 90K resilvered c2t1d0 ONLINE 0 0 0 spares c2t3d0 INUSE currently in use errors: No known data errors
A continuación se puede utilizar el comando zpool detach para volver a dejar el repuesto en marcha en la agrupación de repuestos. Por ejemplo:
# zpool detach zeepool c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed with 0 errors on Wed Jan 20 10:08:44 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c2t3d0 AVAIL errors: No known data errors
Ejemplo 4-10 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 en marcha 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 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 scrub: resilver in progress for 0h0m, 70.47% done, 0h0m to go config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 DEGRADED 0 0 0 c2t1d0 UNAVAIL 0 0 0 cannot open c2t3d0 ONLINE 0 0 0 70.5M resilvered spares c2t3d0 INUSE currently in use errors: No known data errors # zpool detach zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 13:46:46 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 70.5M resilvered errors: No known data errors (Original failed disk c2t1d0 is physically replaced) # zpool add zeepool spare c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 13:48:46 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 70.5M resilvered spares c2t1d0 AVAIL errors: No known data errors