Guía de administración de Oracle Solaris ZFS

Capítulo 4 Administración de agrupaciones de almacenamiento de Oracle Solaris ZFS

Este capítulo describe cómo crear y administrar agrupaciones de almacenamiento en Oracle Solaris ZFS.

Este capítulo se divide en las secciones siguientes:

Componentes de una agrupación de almacenamiento de ZFS

Las secciones siguientes ofrecen información detallada sobre estos componentes de agrupación de almacenamiento:

Uso de discos en una agrupación de almacenamiento de ZFS

El elemento más básico de una agrupación de almacenamiento es el almacenamiento físico. El almacenamiento físico puede ser cualquier dispositivo de bloque de al menos 128 MB. En general, este dispositivo es una unidad de disco duro visible en el sistema, en el directorio /dev/dsk.

Un dispositivo de almacenamiento puede ser todo un disco (c1t0d0) o un determinado segmento (c0t0d0s7). Se recomienda utilizar un disco entero, para lo cual no hace falta dar ningún formato especial al disco. ZFS da formato al disco mediante la etiqueta EFI para que contenga un solo segmento grande. Si se utiliza de este modo, la tabla de partición que aparece junto al comando format tiene un aspecto similar al siguiente:


Current partition table (original):
Total disk sectors available: 286722878 + 16384 (reserved sectors)

Part      Tag    Flag     First Sector         Size         Last Sector
  0        usr    wm                34      136.72GB          286722911    
  1 unassigned    wm                 0           0               0    
  2 unassigned    wm                 0           0               0    
  3 unassigned    wm                 0           0               0    
  4 unassigned    wm                 0           0               0    
  5 unassigned    wm                 0           0               0    
  6 unassigned    wm                 0           0               0    
  8   reserved    wm         286722912        8.00MB          286739295    

Para utilizar un disco entero, se le debe asignar un nombre de acuerdo con la convención /dev/dsk/cNtNdN . Algunos controladores de terceros utilizan otra convención de asignación de nombres o sitúan discos en una ubicación diferente de la del directorio /dev/dsk. Para utilizar estos discos, debe etiquetarlos manualmente y proporcionar un segmento a ZFS.

ZFS aplica una etiqueta EFI cuando crea una agrupación de almacenamiento con discos completos. Para obtener más información sobre etiquetas EFI, consulte EFI Disk Label de System Administration Guide: Devices and File Systems.

Se debe crear un disco destinado a una agrupación raíz ZFS con una etiqueta SMI, no EFI. Puede volver a etiquetar un disco con una etiqueta SMI mediante el uso del comando format -e.

Los discos se pueden especificar mediante una ruta completa, como /dev/dsk/c1t0d0, o un nombre abreviado compuesto del nombre de dispositivo en el directorio /dev/dsk, por ejemplo c1t0d0. A continuación puede ver algunos nombres de disco válidos:

La forma más sencilla de crear agrupaciones de almacenamiento de ZFS es usar todo el disco físico. Las configuraciones de ZFS se vuelven más complejas de forma progresiva respecto a administración, fiabilidad y rendimiento, cuando se crean agrupaciones de segmentos de discos, LUN (unidades lógicas) en matrices RAID de hardware o volúmenes presentados por administradores de volúmenes basados en software. Las consideraciones siguientes pueden ayudar a determinar la configuración de ZFS con otras soluciones de almacenamiento de hardware o software:

Para obtener información adicional sobre las recomendaciones de agrupaciones de almacenamiento, consulte el sitio sobre métodos recomendados para ZFS:

http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide

Los discos se identifican por la ruta e ID de dispositivo, si lo hay. En sistemas donde hay información de ID de dispositivo disponible, este método de identificación permite volver a configurar los dispositivos sin tener que actualizar ZFS. Debido a que los procedimientos de generación y administración de ID de dispositivos pueden variar de un sistema a otro, se recomienda exportar la agrupación antes de mover dispositivos (por ejemplo, trasladar un disco de un controlador a otro). Un evento del sistema como, por ejemplo, una actualización de firmware u otro cambio de hardware, podría cambiar el ID de dispositivo en la agrupación de almacenamiento de ZFS y hacer que los dispositivos no estén disponibles.

Uso de segmentos en una agrupación de almacenamiento de ZFS

Los discos se pueden etiquetar con una etiqueta Solaris VTOC (SMI) tradicional cuando se crea una agrupación de almacenamiento con un segmento de disco.

Para una agrupación raíz ZFS de inicio, los discos de la agrupación deben contener segmentos y deben etiquetarse con una etiqueta SMI. La configuración más sencilla es establecer la capacidad de todo el disco en el segmento 0 y utilizar ese segmento para la agrupación raíz.

En un sistema basado en SPARC, un disco de 72 GB tiene 68 GB de espacio utilizable ubicados en el segmento 0, tal y como se muestra en la siguiente salida de format.


# format
.
.
.
Specify disk (enter its number): 4
selecting c1t1d0
partition> p
Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  1 unassigned    wm       0                0         (0/0/0)             0
  2     backup    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6 unassigned    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0

En un sistema basado en x86, un disco de 72 GB tiene 68 GB de espacio utilizable ubicados en el segmento 0, tal y como se muestra en la siguiente salida de format. En el segmento 8 se incluye una pequeña cantidad de información de inicio. El segmento 8 no requiere administración y no se puede cambiar.


# format
.
.
.
selecting c1t0d0
partition> p
Current partition table (original):
Total disk cylinders available: 49779 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       1 - 49778       68.36GB    (49778/0/0) 143360640
  1 unassigned    wu       0                0         (0/0/0)             0
  2     backup    wm       0 - 49778       68.36GB    (49779/0/0) 143363520
  3 unassigned    wu       0                0         (0/0/0)             0
  4 unassigned    wu       0                0         (0/0/0)             0
  5 unassigned    wu       0                0         (0/0/0)             0
  6 unassigned    wu       0                0         (0/0/0)             0
  7 unassigned    wu       0                0         (0/0/0)             0
  8       boot    wu       0 -     0        1.41MB    (1/0/0)          2880
  9 unassigned    wu       0                0         (0/0/0)             0

Uso de archivos en una agrupación de almacenamiento de ZFS

ZFS también permite utilizar los archivos UFS como dispositivos virtuales en la agrupación de almacenamiento. Esta función se aplica sobre todo a verificaciones y pruebas sencillas, no es apta la producción. El motivo es que cualquier uso de los archivos se basa en el sistema de archivos subyacente por motivos de coherencia. Si crea una agrupación ZFS respaldada por archivos en un sistema de archivos UFS, de forma implícita depende de UFS para garantizar la corrección y una semántica síncrona.

Sin embargo, los archivos pueden ser bastante útiles al probar ZFS por primera vez o experimentar con configuraciones más complejas cuando no hay suficientes dispositivos físicos. Se deben especificar todos los archivos como rutas completas y deben tener al menos 64 MB de tamaño.

Funciones de repetición de una agrupación de almacenamiento de ZFS

ZFS proporciona redundancia de datos y propiedades de autocorrección en configuraciones reflejadas y RAID-Z.

Configuración reflejada de agrupaciones de almacenamiento

Una configuración reflejada de agrupación de almacenamiento necesita al menos dos discos, preferiblemente en controladores independientes. En una configuración reflejada se pueden utilizar muchos discos. Asimismo, puede crear más de un reflejo en cada agrupación. Conceptualmente hablando, una configuración reflejada sencilla tendría un aspecto similar al siguiente:


mirror c1t0d0 c2t0d0

Desde un punto de vista conceptual, una configuración reflejada más compleja tendría un aspecto similar al siguiente:


mirror c1t0d0 c2t0d0 c3t0d0 mirror c4t0d0 c5t0d0 c6t0d0

Para obtener información sobre cómo crear agrupaciones de almacenamiento reflejadas, consulte Creación de una agrupación de almacenamiento reflejado.

Configuración de agrupaciones de almacenamiento RAID-Z

Además de una configuración reflejada de agrupación de almacenamiento, ZFS ofrece una configuración de RAID-Z con tolerancia a fallos de paridad sencilla, doble o triple. RAID-Z de paridad sencilla (raidz o raidz1) es similar a RAID-5. RAID-Z de paridad doble (raidz2) es similar a RAID-6.

Para obtener más información sobre RAIDZ-3 (raidz3), consulte el blog siguiente:

http://blogs.sun.com/ahl/entry/triple_parity_raid_z

Todos los algoritmos tradicionales similares a RAID-5 (RAID-4, RAID-6, RDP y par-impar, por ejemplo) tienen un problema conocido como "error de escritura por caída del sistema de RAID-5". Si sólo se escribe parte de una distribución de discos en bandas de RAID-5 y la alimentación se interrumpe antes de que todos los bloques se hayan escrito en el disco, la paridad permanece sin sincronizarse con los datos, y por eso deja de ser útil (a menos que se sobrescriba con una escritura posterior de todas las bandas). En RAID-Z, ZFS utiliza repartos de discos en bandas de RAID de ancho variable, de manera que todas las escrituras son de reparto total de discos en bandas. Este diseño sólo es posible porque ZFS integra el sistema de archivos y la administración de dispositivos de manera que los metadatos del sistema de archivos tengan suficiente información sobre el modelo de redundancia de los datos subyacentes para controlar los repartos de discos en bandas de RAID de anchura variable. RAID-Z es la primera solución exclusiva de software en el mundo para el error de escritura por caída del sistema de RAID-5.

Una configuración de RAID-Z con N discos de tamaño X con discos de paridad P puede contener aproximadamente (N-P)*X bytes, así como admitir uno o más dispositivos P con errores antes de que se comprometa la integridad de los datos. Para la configuración de RAID-Z de paridad sencilla se necesita un mínimo de dos discos y al menos tres para la configuración de RAID-Z de paridad doble. Por ejemplo, si tiene tres discos en una configuración de RAID-Z de paridad sencilla, los datos de la paridad ocupan un espacio equivalente a uno de los tres discos. Para crear una configuración de RAID-Z no se necesita hardware especial.

Conceptualmente hablando, una configuración de RAID-Z con tres discos tendría un aspecto similar al siguiente:


raidz c1t0d0 c2t0d0 c3t0d0

Mientras que una configuración reflejada más compleja tendría un aspecto similar al siguiente:


raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 raidz c8t0d0 c9t0d0 c10t0d0 c11t0d0
c12t0d0 c13t0d0 c14t0d0

Si desea crear una configuración de RAID-Z con muchos discos, puede ser conveniente dividir los discos en varios grupos. Por ejemplo, una configuración de RAID-Z con 14 discos se puede dividir en dos grupos de 7 discos. En principio, las configuraciones de RAID-Z con agrupaciones de un solo dígito de discos funcionan mejor.

Para obtener información sobre cómo crear una agrupación de almacenamiento de RAID-Z, consulte Creación de una agrupación de almacenamiento de RAID-Z.

Para obtener más información sobre cómo elegir entre una configuración reflejada o una de RAID-Z en función del espacio y el rendimiento, consulte el blog siguiente:

http://blogs.sun.com/roch/entry/when_to_and_not_to

Para obtener información adicional sobre las recomendaciones de agrupaciones de almacenamiento de RAID-Z, consulte el sitio sobre métodos recomendados para ZFS:

http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide

Agrupación de almacenamiento híbrido de ZFS

La agrupación de almacenamiento híbrido de ZFS, disponible en la serie de productos de Oracle Sun Storage 7000, es una agrupación de almacenamiento especial que combina DRAM, SSD y HDD con el fin de mejorar el rendimiento y aumentar la capacidad, al tiempo que se reduce el consumo de energía. Con la interfaz de administración de este producto, puede seleccionar la configuración de redundancia de ZFS de la agrupación de almacenamiento y administrar fácilmente otras opciones de configuración.

Para obtener más información acerca de este producto, consulte la Sun Storage Unified Storage System Administration Guide.

Datos de recuperación automática en una configuración redundante

ZFS ofrece soluciones para datos de recuperación automática en una configuración de RAID-Z o reflejada.

Si se detecta un bloque de datos incorrectos, ZFS no sólo recupera los datos correctos de otra copia redundante, sino que además repara los datos incorrectos sustituyéndolos por la copia correcta

Reparto dinámico de discos en bandas en una agrupación de almacenamiento

ZFS reparte dinámicamente los datos de los discos en bandas entre todos los dispositivos virtuales de nivel superior. La elección de ubicación de los datos se efectúa en el momento de la escritura, por lo que en el momento de la asignación no se crean bandas de ancho fijo.

Cuando se agregan a una agrupación dispositivos virtuales nuevos, ZFS asigna datos gradualmente al nuevo dispositivo con el fin de mantener el rendimiento y las normas de asignación de espacio. Cada dispositivo virtual puede ser también un reflejo o un dispositivo de RAID-Z que contenga otros archivos o dispositivos de discos. Esta configuración ofrece flexibilidad a la hora de controlar las características predeterminadas de la agrupación. Por ejemplo, puede crear las configuraciones siguientes a partir de cuatro discos:

Aunque ZFS admite la combinación de diversos tipos de dispositivos virtuales en la misma agrupación, debe evitar hacerlo. Por ejemplo, puede crear una agrupación con un reflejo de dos vías y una configuración de RAID-Z de tres vías. Sin embargo, la tolerancia a errores es como el peor de los dispositivos virtuales de que disponga, en este caso RAID-Z. La práctica recomendada es utilizar dispositivos virtuales de nivel superior del mismo tipo con idéntico nivel de redundancia en cada dispositivo.

Creación y destrucción de agrupaciones de almacenamiento de ZFS

Las secciones siguientes describen distintas situaciones de creación y destrucción de agrupaciones de almacenamiento de ZFS:

La creación y la destrucción de agrupaciones son procesos fáciles y rápidos. Sin embargo, estas operaciones se deben efectuar con cuidado. Aunque las comprobaciones se efectúan para impedir el uso de dispositivos se están usando en una nueva agrupación, ZFS no puede saber siempre si un dispositivo ya se está utilizando. La destrucción de una agrupación es más fácil que crear uno. Utilice zpool destroy con precaución. Este comando sencillo tiene importantes consecuencias.

Creación de una agrupación de almacenamiento de ZFS

Para crear una agrupación de almacenamiento, utilice el comando zpool create. Este comando toma un nombre de agrupación y cualquier cantidad de dispositivos virtuales como argumentos. El nombre de la agrupación debe atenerse a los requisitos de denominación indicados en Requisitos de asignación de nombres de componentes de ZFS.

Creación de una agrupación de almacenamiento básico

El comando siguiente crea un recurso con el nombre tank que se compone de los discos c1t0d0 y c1t1d0:


# zpool create tank c1t0d0 c1t1d0

Los nombres de dispositivo que representan los discos completos se encuentran en el directorio /dev/dsk; ZFS los etiqueta correspondientemente para que contengan un segmento único y de gran tamaño. Los datos se reparten dinámicamente en ambos discos.

Creación de una agrupación de almacenamiento reflejado

Para crear una agrupación reflejada, utilice la palabra clave mirror, seguida de varios dispositivos de almacenamiento que incluirán el reflejo. Se pueden especificar varios reflejos si se repite la palabra clave mirror en la línea de comandos. El comando siguiente crea una agrupación con dos reflejos de dos vías:


# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0

La segunda palabra clave mirror indica que se especifica un nuevo dispositivo virtual de nivel superior. Los datos se colocan dinámicamente en bandas en los dos reflejos, con la correspondiente redundancia de datos en cada disco.

Para obtener más información sobre configuraciones reflejadas recomendadas, visite la página web siguiente:

http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide

En la actualidad, en una configuración reflejada de ZFS son posibles las operaciones siguientes:

No puede quitarse de una agrupación de almacenamiento reflejada un dispositivo que no sea de registro o de caché. Para esta función se presenta un RFE.

Creación de una agrupación raíz ZFS

Puede instalar e iniciar el sistema a partir de ZFS desde un sistema de archivos raíz ZFS. Revise la siguiente información de configuración de agrupaciones raíz:

Para más información sobre cómo instalar e iniciar un sistema de archivos raíz ZFS, consulte el Capítulo 5Instalación e inicio de un sistema de archivos raíz ZFS Oracle Solaris.

Creación de una agrupación de almacenamiento de RAID-Z

Una agrupación de RAID-Z de paridad sencilla se crea del mismo modo que una agrupación reflejada, excepto que se utiliza la palabra clave raidz o raidz1 en lugar de mirror. El ejemplo siguiente muestra cómo crear una agrupación con un único dispositivo de RAID-Z que se compone de cinco discos:


# zpool create tank raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 /dev/dsk/c5t0d0

Este ejemplo muestra que los discos se pueden especificar con sus nombres de dispositivo abreviados o completos. /dev/dsk/c5t0d0 y c5t0d0 hacen referencia al mismo disco.

Puede crear una configuración de RAID-Z de paridad doble mediante la palabra clave raidz2 o raidz3 al crear la agrupación. Por ejemplo:


# zpool create tank raidz2 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0
# zpool status -v tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c2t0d0  ONLINE       0     0     0
            c3t0d0  ONLINE       0     0     0
            c4t0d0  ONLINE       0     0     0
            c5t0d0  ONLINE       0     0     0

errors: No known data errors

# zpool create tank raidz3 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0
# zpool status -v tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz3-0  ONLINE       0     0     0
            c0t0d0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c2t0d0  ONLINE       0     0     0
            c3t0d0  ONLINE       0     0     0
            c4t0d0  ONLINE       0     0     0
            c5t0d0  ONLINE       0     0     0
            c6t0d0  ONLINE       0     0     0
            c7t0d0  ONLINE       0     0     0

errors: No known data errors

En la actualidad, en una configuración RAID-Z de ZFS son posibles las operaciones siguientes:

Actualmente no se permiten las siguientes operaciones en una configuración RAID-Z:

Para obtener más información sobre una configuración de RAID-Z, consulte Configuración de agrupaciones de almacenamiento RAID-Z.

Creación de una agrupación de almacenamiento de ZFS con dispositivos de registro

De forma predeterminada, ZIL se asigna a partir de bloques de la agrupación principal. Sin embargo, el rendimiento puede mejorar si se usan dispositivos de registro independientes, por ejemplo NVRAM o un disco dedicado. Para obtener más información sobre dispositivos de registro ZFS, consulte Configuración de dispositivos de registro de ZFS independientes.

Puede crear un dispositivo de registro ZFS durante la creación de la agrupación o una vez creada.

El ejemplo siguiente muestra cómo crear una agrupación de almacenamiento reflejada con dispositivos de registro reflejados:


# zpool create datap mirror c1t1d0 c1t2d0 mirror c1t3d0 c1t4d0 log mirror c1t5d0 c1t8d0
# zpool status datap
  pool: datap
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        datap       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c1t1d0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            c1t3d0  ONLINE       0     0     0
            c1t4d0  ONLINE       0     0     0
        logs
          mirror-2  ONLINE       0     0     0
            c1t5d0  ONLINE       0     0     0
            c1t8d0  ONLINE       0     0     0

errors: No known data errors

Para obtener información sobre la recuperación de un error en un dispositivo de registro, consulte el Ejemplo 11–2.

Creación de una agrupación de almacenamiento de ZFS con dispositivos caché

Puede crear una agrupación de almacenamiento con dispositivos caché para guardar en éstos datos de la agrupación de almacenamiento. Por ejemplo:


# zpool create tank mirror c2t0d0 c2t1d0 c2t3d0 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

Tenga en cuenta los siguientes puntos antes de decidir si se debe crear una agrupación de almacenamiento de ZFS con dispositivos caché:

Visualización de información de dispositivos virtuales de agrupaciones de almacenamiento

Cada agrupación de almacenamiento contiene uno o más dispositivos virtuales. Un dispositivo virtual es una representación interna de la agrupación de almacenamiento que describe la disposición del almacenamiento físico y sus características predeterminadas. Un dispositivo virtual representa los archivos o dispositivos de disco que se utilizan para crear la agrupación de almacenamiento. Una agrupación puede tener en la parte superior de la configuración cualquier cantidad de dispositivos virtuales, denominados vdev de nivel superior.

Si el dispositivo virtual de nivel superior contiene dos o más dispositivos físicos, la configuración ofrece redundancia de datos como reflejo o dispositivo virtual RAID-Z. Estos dispositivos virtuales se componen de discos, segmentos de discos o archivos. Un repuesto es un caso especial de dispositivo virtual que hace un seguimiento de repuestos disponibles para una agrupación.

El ejemplo siguiente muestra cómo crear una agrupación formada por dos dispositivos virtuales de nivel superior, cada uno de los cuales es un reflejos de dos discos:


# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0

El ejemplo siguiente muestra cómo crear una agrupación formada por un dispositivo virtual de nivel superior de cuatro discos:


# zpool create mypool raidz2 c1d0 c2d0 c3d0 c4d0

Se puede agregar otro dispositivo virtual de nivel superior a esta agrupación mediante el comando zpool add. Por ejemplo:


# zpool add mypool raidz2 c2d1 c3d1 c4d1 c5d1

Los discos, segmentos de discos o archivos que se utilizan en agrupaciones no redundantes funcionan como dispositivos virtuales de nivel superior. Las agrupaciones de almacenamiento suelen contener diversos dispositivos virtuales de nivel superior. ZFS reparte dinámicamente los discos en bandas entre todos los dispositivos virtuales de nivel superior en una agrupación.

Los dispositivos virtuales y físicos que se incluyen en una agrupación de almacenamiento de ZFS se muestran con el comando zpool status. 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
            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

Administración de errores de creación de agrupaciones de almacenamiento de ZFS

Los errores de creación de agrupaciones pueden deberse a diversos motivos. Algunos de ellos son obvios (por ejemplo, un dispositivo especificado que no existe), mientras que otros no lo son tanto.

Detección de dispositivos en uso

Antes de dar formato a un dispositivo, ZFS determina si el disco lo está utilizando ZFS o cualquier otro componente del sistema operativo. Si el disco está en uso, puede haber errores como el siguiente:


# zpool create tank c1t0d0 c1t1d0
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c1t0d0s0 is currently mounted on /. Please see umount(1M).
/dev/dsk/c1t0d0s1 is currently mounted on swap. Please see swap(1M).
/dev/dsk/c1t1d0s0 is part of active ZFS pool zeepool. Please see zpool(1M).

Algunos errores pueden omitirse mediante la opción -f, pero no es algo aplicable a la mayoría. Las condiciones siguientes no pueden omitirse mediante la opción -f; se deben corregir manualmente:

Sistema de archivos montado

El disco o uno de sus segmentos contiene un sistema de archivos que está montado. Para corregir este error, utilice el comando umount.

Sistema de archivos en /etc/vfstab

El disco contiene un sistema de archivos que se muestra en el archivo /etc/vfstab, pero el sistema de archivos no está montado. Para corregir este error, suprima la línea del archivo /etc/vfstab o conviértala en comentario.

Dispositivo de volcado dedicado

El disco se utiliza como dispositivo de volcado dedicado para el sistema. Para corregir este error, utilice el comando dumpadm.

Parte de una agrupación de ZFS

El disco o archivo es parte de una agrupación de almacenamiento de ZFS activa. Para corregir este error, utilice el comando zpool destroy para destruir la otra agrupación, si ya no se necesita. También puede utilizar el comando zpool detach para desvincular el disco de la otra agrupación. Sólo se puede desvincular un disco de una agrupación de almacenamiento reflejada.

Las siguientes comprobaciones en uso son advertencias útiles; se pueden anular mediante la opción -f para crear la agrupación:

Contiene un sistema de archivos

El disco contiene un sistema de archivos conocido, aunque no está montado y no parece que se utilice.

Parte de volumen

El disco es parte de un volumen de Solaris Volume Manager.

Actualización automática

El disco se utiliza como entorno de inicio alternativo para Actualización automática de Oracle Solaris.

Parte de agrupación de ZFS exportado

El disco es parte de una agrupación de almacenamiento que se ha exportado o suprimido manualmente de un sistema. En el último caso, se informa de que la agrupación es potencialmente activo, ya que el disco quizá sea o no una unidad conectada a la red que otro sistema utiliza. Actúe con precaución al anular una agrupación potencialmente activa.

El ejemplo siguiente muestra la forma de utilizar la opción -f:


# zpool create tank c1t0d0
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c1t0d0s0 contains a ufs filesystem.
# zpool create -f tank c1t0d0

En lugar de utilizar la opción -f es preferible corregir los errores.

Niveles de repetición no coincidentes

No se recomienda crear agrupaciones con dispositivos virtuales de niveles de repetición diferentes. El comando zpool impide la creación involuntaria de una agrupación con niveles de redundancia que no coinciden. Si intenta crear una agrupación con una configuración de ese tipo, aparecen errores similares al siguiente:


# zpool create tank c1t0d0 mirror c2t0d0 c3t0d0
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: both disk and mirror vdevs are present
# zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0 c5t0d0
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: 2-way mirror and 3-way mirror vdevs are present

Puede anular estos errores con la opción -f, pero debería evitar esta práctica. El comando también advierte sobre la creación de una agrupación de RAID-Z o reflejada mediante dispositivos de diversos tamaños. Aunque esta configuración se permite, los niveles sin correspondencia de redundancia generan espacio sin usar en disco en el dispositivo de mayor tamaño. Se necesita la opción -f para anular la advertencia.

Ensayo de creación de una agrupación de almacenamiento

Los intentos de creación de agrupación pueden fallar de modo imprevisto y formas diferentes; la aplicación de formato a discos es una acción potencialmente perjudicial. Por ello, el comando zpool create tiene la opción adicional -n que simula la creación de la agrupación sin escribir realmente en el dispositivo. Esta opción de ensayo realiza la comprobación del dispositivo en uso y la validación de nivel de repetición, y notifica si se producen errores en el proceso. Si no se encuentran errores, se genera una salida similar a la siguiente:


# zpool create -n tank mirror c1t0d0 c1t1d0
would create 'tank' with the following layout:

        tank
          mirror
            c1t0d0
            c1t1d0

Algunos errores no se pueden detectar sin crear la agrupación. El caso más habitual es la especificación del mismo dispositivo dos veces en la misma configuración. Este error puede pasar desapercibido si no se escriben los datos, por lo que el comando zpool create -n podría notificar que la operación es correcta y aun así no conseguir crear la agrupación cuando el comando se ejecuta sin esta opción.

Punto de montaje predeterminado para agrupaciones de almacenamiento

Cuando se crea una agrupación, el punto de montaje predeterminado del conjunto de datos de nivel superior es /nombre_agrupación. Este directorio no debe existir o debe estar vacío. Si el directorio no existe, se crea automáticamente. Si está vacío, el conjunto de datos raíz se monta en la parte superior del directorio ya creado. Para crear una agrupación con un punto de montaje predeterminado diferente, utilice la opción - m del comando zpool create. Por ejemplo:


# zpool create home c1t0d0
default mountpoint '/home' exists and is not empty
use '-m' option to provide a different default
# zpool create -m /export/zfs home c1t0d0

Este comando crea la agrupación home y el conjunto de datos home con un punto de montaje de /export/zfs.

Para obtener más información sobre los puntos de montaje, consulte Administración de puntos de montaje de ZFS.

Destrucción de agrupaciones de almacenamiento de ZFS

Para destruir agrupaciones se utiliza el comando zpool destroy. Este comando destruye la agrupación aunque contenga conjuntos de datos montados.


# zpool destroy tank

Precaución – Precaución –

Ponga el máximo cuidado al destruir una agrupación. Asegúrese de que se va a destruir la agrupación correcta y guarde siempre copias de los datos. Si destruye involuntariamente la agrupación incorrecta, puede intentar recuperarla. Para obtener más información, consulte Recuperación de agrupaciones de almacenamiento de ZFS destruidas.


Destrucción de una agrupación con dispositivos con errores

La destrucción de una agrupación requiere que los datos se escriban en el disco para indicar que la agrupación ya no es válida. Esta información del estado impide que los dispositivos aparezcan como una agrupación potencial cuando efectúa una importación. Si uno o más dispositivos dejan de estar disponibles, sigue siendo posible destruir la agrupación. Pero la información de estado necesaria no se escribirá en estos dispositivos no disponibles.

Cuando se reparan adecuadamente, estos dispositivos se notifican como potencialmente activos cuando se crea una agrupación. Se incluyen como dispositivos válidos si se buscan agrupaciones para importar. Si una agrupación tiene tantos dispositivos con errores que la propia agrupación aparece con errores (lo que significa que el dispositivo virtual de nivel superior es incorrecto), el comando imprime una advertencia y no se puede completar sin la opción -f. Esta opción es necesaria porque la agrupación no se puede abrir, de manera que no se sabe si los datos están o no almacenados allí. Por ejemplo:


# zpool destroy tank
cannot destroy 'tank': pool is faulted
use '-f' to force destruction anyway
# zpool destroy -f tank

Para obtener más información sobre la situación de dispositivos y agrupaciones, consulte Cómo determinar el estado de las agrupaciones de almacenamiento de ZFS.

Para obtener más información sobre importación de agrupaciones, consulte Importación de agrupaciones de almacenamiento de ZFS.

Administración de dispositivos en agrupaciones de almacenamiento de 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.

Adición de dispositivos a una 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 vincular un dispositivo en una agrupación de almacenamiento sin reflejar.

Los dispositivos de registro se pueden eliminar utilizando 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 eliminar éste 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 de ZFS y quitarlos 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é.


Conexión y desconexión de dispositivos en una agrupación de almacenamiento

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 vincular un disco para crear una agrupación raíz reflejada, consulte Cómo crear una agrupación raíz 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

Creación de una nueva agrupación mediante la división de una agrupación de almacenamiento de ZFS reflejada

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 dividir para separar discos desde una agrupación de almacenamiento de ZFS reflejada para crear un nuevo conjunto de conexiones con uno de los discos separado. 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 raíz alternativo para la nueva, 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 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:


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

Dispositivos con conexión y sin conexión en una agrupación de almacenamiento

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.


Para desconectar temporalmente el almacenamiento puede utilizar el comando zpool offline. Por ejemplo, si tiene que desconectar físicamente una matriz de un conjunto de conmutadores de canal de fibra y conectar la matriz a otro conjunto, puede terminar la conexión de LUN desde la matriz utilizada en las agrupaciones de almacenamiento de ZFS. Con la matriz conectada de nuevo y en funcionamiento en el nuevo conjunto de conmutadores, puede volver a conectar las mismas LUN. Los datos agregados a las agrupaciones de almacenamiento mientras las LUN estaban sin conexión se actualizarán en las LUN una vez restablecida la conexión.

Esta situación es posible siempre y cuando los sistemas en cuestión detecten el almacenamiento después de conectarlo a los nuevos conmutadores, posiblemente a través de distintos controladores, y las agrupaciones se establecen como configuraciones reflejadas o de RAID-Z.

Cómo terminar la conexión de un dispositivo

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:

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.

Cómo conectar un dispositivo

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 expandir una LUN. De manera predeterminada, una LUN que se agrega a una agrupación no se expande a su tamaño máximo a menos que esté activada la propiedad de agrupación autoexpand. Puede ampliar la LUN automáticamente por medio del comando zpool online -e con la LUN tanto conectada como sin conexión. Por ejemplo:


# zpool online -e tank c1t13d0

Borrado de errores de dispositivo de agrupación de almacenamiento

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.

Sustitución de dispositivos en una agrupación de almacenamiento

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. ZFS reconoce que el dispositivo es un disco diferente en la misma ubicación de cierto hardware. 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 en 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:

En sistemas como Sun Fire x4500, antes de desconectar un disco se debe desconfigurar. 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:

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.

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

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:

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:

Activación y desactivación de repuestos en marcha en la agrupación de almacenamiento

Los repuestos en marcha se activan de los modos siguientes:

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:


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

Administración de propiedades de agrupaciones de almacenamiento de ZFS

Utilice el comando zpool get para visualizar información de propiedades de almacenamiento. Por ejemplo:


# zpool get all mpool
NAME  PROPERTY       VALUE       SOURCE
pool  size           68G         -
pool  capacity       0%          -
pool  altroot        -           default
pool  health         ONLINE      -
pool  guid           601891032394735745  default
pool  version        22          default
pool  bootfs         -           default
pool  delegation     on          default
pool  autoreplace    off         default
pool  cachefile      -           default
pool  failmode       wait        default
pool  listsnapshots  on          default
pool  autoexpand     off         default
pool  free           68.0G       -
pool  allocated      76.5K       -

Con el comando zpool set se pueden establecer las propiedades de agrupaciones de almacenamiento. Por ejemplo:


# zpool set autoreplace=on mpool
# zpool get autoreplace mpool
NAME  PROPERTY     VALUE    SOURCE
mpool autoreplace  on       default
Tabla 4–1 Descripciones de propiedades de agrupaciones ZFS

Nombre de propiedad 

Tipo 

Valor predeterminado 

Descripción 

allocated

Cadena 

N/D 

Valor de sólo lectura que identifica la cantidad de espacio de almacenamiento dentro de la agrupación que se ha asignado físicamente.

altroot

Cadena 

off

Identifica un directorio raíz alternativo. Si se establece, el directorio se antepone a cualquier punto de montaje de la agrupación. Esta propiedad es apta para examinar una agrupación desconocida, si los puntos de montaje no son de confianza o en un entorno de inicio alternativo en que las rutas habituales no sean válidas.

autoreplace

Booleano 

off

Controla el reemplazo automático de dispositivos. Si la propiedad se establece en off, la sustitución del dispositivo debe iniciarla el administrador mediante el comando zpool replace. Si se establece en on, automáticamente se da formato y se sustituye cualquier dispositivo nuevo que se detecte en la misma ubicación física que un dispositivo previamente perteneciente a la agrupación. La abreviatura de la propiedad es replace.

bootfs

Booleano 

N/D 

Identifica el conjunto de datos predeterminado que se puede iniciar para la agrupación raíz. Esta propiedad la suelen establecer los programas de instalación y actualización.

cachefile

Cadena 

N/D 

Los controles donde se almacena en la memoria caché la configuración de agrupación. Todas las agrupaciones de la caché se importan automáticamente cuando se inicia el sistema. Sin embargo, los entornos de instalación y administración de clústeres podrían requerir el almacenamiento en caché de esta información en otra ubicación, para impedir la importación automática de las agrupaciones. Puede configurar esta propiedad para almacenar en caché información de configuración de agrupación en una ubicación distinta. Esta información se puede importar más adelante mediante el comando zpool import - c. La mayoría de las configuraciones ZFS no usan esta propiedad.

capacity

Número 

N/D 

Valor de sólo lectura que identifica el porcentaje del espacio de agrupación utilizado.

La abreviatura de la propiedad es cap.

delegation

Booleano 

on

Controla si a un usuario sin privilegios se le pueden conceder permisos de acceso que se definen para un conjunto de datos. Para más información, consulte el Capítulo 9Administración delegada de ZFS.

failmode

Cadena 

wait

Controla el comportamiento del sistema en caso de producirse un error grave de agrupación. Esta situación suele deberse a la pérdida de conexión con el dispositivo o los dispositivos de almacenamiento subyacentes, o a un error de todos los dispositivos de la agrupación. El comportamiento de dicho evento depende de uno de estos valores:

  • wait: bloquea todas las solicitudes de acceso a la agrupación hasta que se restablece la conexión del dispositivo y los errores se borran mediante el comando zpool clear. En este estado, las operaciones de E/S de la agrupación están bloqueadas, pero las operaciones de lectura podrían ser viables. Una agrupación se mantiene en estado wait hasta que se resuelve el problema del dispositivo.

  • continue: devuelve un error EIO a cualquier solicitud de E/S nueva, pero permite lecturas en cualquier otro dispositivo que esté en buen estado. Se bloqueará cualquier solicitud pendiente de ejecución en el disco. Después de volver a colocar o conectar el dispositivo, los errores se deben eliminar con el comando zpool clear.

  • panic: imprime un mensaje en la consola y genera un volcado de bloqueo del sistema.

free

Cadena 

N/D 

Valor de sólo lectura que identifica el número de bloques aún sin asignar dentro de la agrupación.

guid

Cadena 

N/D 

Propiedad de sólo lectura que detecta el identificador exclusivo de la agrupación.

health

Cadena 

N/D 

Propiedad de sólo lectura que identifica el estado actual de la agrupación y lo establece en ONLINE, DEGRADED, FAULTED, OFFLINE, REMOVED o UNAVAIL

listsnapshots

Cadena 

on

Controla si la información de instantánea que está asociada con esta agrupación se muestra con el comando zfs list. Si esta propiedad está inhabilitada, la información de la instantánea se puede mostrar con el comando zfs list -t snapshot.

size

Número 

N/D 

Propiedad de sólo lectura que identifica el tamaño total de la agrupación de almacenamiento.

version

Número 

N/D 

Identifica la versión actual en disco de la agrupación. El método preferido de actualizar agrupaciones se realiza con el comando zpool upgrade, aunque esta propiedad se puede utilizar si se necesita una versión predeterminada por cuestiones de compatibilidad retroactiva. Esta propiedad se puede establecer en cualquier número que esté entre 1 y la versión actual indicada por el comando zpool upgrade -v.

Consulta del estado de una agrupación de almacenamiento de ZFS

El comando zpool list ofrece diversos modos de solicitar información sobre el estado de la agrupación. La información disponible suele pertenecer a una de estas tres categorías: información básica de utilización, estadística de E/S y situación. En esta sección se abordan los tres tipos de información de agrupaciones de almacenamiento.

Visualización de información de agrupaciones de almacenamiento de ZFS

El comando zpool list es apto para mostrar información básica sobre agrupaciones.

Visualización de información relativa a todas las agrupaciones de almacenamiento o a uno concreto

Sin argumentos, el comando zpool list sólo muestra los siguientes datos para todas las agrupaciones del sistema:


# zpool list
NAME                    SIZE    ALLOC   FREE    CAP  HEALTH     ALTROOT
tank                   80.0G   22.3G   47.7G    28%  ONLINE     -
dozer                   1.2T    384G    816G    32%  ONLINE     -

La salida de este comando muestra lo siguientes datos:

NAME

El nombre de la agrupación.

SIZE

El tamaño total de la agrupación, igual a la suma del tamaño de todos los dispositivos virtuales de nivel superior.

ALLOC

La cantidad de espacio físico asignada a todos los conjuntos de datos y los metadatos internos. Esta cantidad es diferente de la cantidad de espacio en el disco según se indica en el nivel del sistema de archivos.

Para obtener más información sobre la especificación del espacio disponible en el sistema de archivos, consulte Cálculo del espacio de ZFS.

FREE

Cantidad de espacio sin asignar en la agrupación.

CAP (CAPACITY)

Cantidad de espacio utilizado, expresada como porcentaje del espacio total en el disco.

HEALTH

Estado actual de la agrupación.

Para obtener más información sobre la situación de la agrupación, consulte Cómo determinar el estado de las agrupaciones de almacenamiento de ZFS.

ALTROOT

Raíz alternativa de la agrupación, de haberla.

Para obtener más información sobre las agrupaciones raíz alternativas, consulte Uso de agrupaciones raíz de ZFS alternativas.

También puede reunir estadísticas para una agrupación determinada especificando el nombre de la agrupación. Por ejemplo:


# zpool list tank
NAME                    SIZE    ALLOC   FREE    CAP   HEALTH     ALTROOT
tank                   80.0G    22.3G   47.7G    28%  ONLINE     -

Visualización de estadísticas de una agrupación de almacenamiento específico

Las estadísticas específicas se pueden solicitar mediante la opción -o. Esta opción ofrece informes personalizados o un modo rápido de visualizar la información pertinente. Por ejemplo, para ver sólo el nombre y el tamaño de cada agrupación, utilice la sintaxis siguiente:


# zpool list -o name,size
NAME                    SIZE
tank                   80.0G
dozer                   1.2T

Los nombres de columna corresponden a las propiedades que se enumeran en Visualización de información relativa a todas las agrupaciones de almacenamiento o a uno concreto.

Salida de la secuencia de comandos de la agrupación de almacenamiento de ZFS

La salida predeterminada del comando zpool list está diseñada para mejorar la legibilidad; no es fácil de utilizar como parte de una secuencia de comandos shell. Para facilitar los usos de programación del comando, la opción -H es válida para suprimir encabezados de columna y separar los campos con tabuladores, en lugar de espacios. Por ejemplo, para solicitar una lista con todos los nombres de agrupaciones en el sistema debería usar esta sintaxis:


# zpool list -Ho name
tank
dozer

Aquí puede ver otro ejemplo:


# zpool list -H -o name,size
tank   80.0G
dozer  1.2T

Cómo mostrar el historial de comandos de la agrupación de almacenamiento de ZFS

ZFS registra automáticamente los comandos zfs y zpool que se ejecutan satisfactoriamente para modificar la información de estado de la agrupación. Esta información se puede mostrar mediante el comando zpool history.

Por ejemplo, la sintaxis siguiente muestra la salida del comando para la agrupación raíz:


# zpool history
History for 'rpool':
2010-05-11.10:18:54 zpool create -f -o failmode=continue -R /a -m legacy -o 
cachefile=/tmp/root/etc/zfs/zpool.cache rpool mirror c1t0d0s0 c1t1d0s0
2010-05-11.10:18:55 zfs set canmount=noauto rpool
2010-05-11.10:18:55 zfs set mountpoint=/rpool rpool
2010-05-11.10:18:56 zfs create -o mountpoint=legacy rpool/ROOT
2010-05-11.10:18:57 zfs create -b 8192 -V 2048m rpool/swap
2010-05-11.10:18:58 zfs create -b 131072 -V 1536m rpool/dump
2010-05-11.10:19:01 zfs create -o canmount=noauto rpool/ROOT/zfsBE
2010-05-11.10:19:02 zpool set bootfs=rpool/ROOT/zfsBE rpool
2010-05-11.10:19:02 zfs set mountpoint=/ rpool/ROOT/zfsBE
2010-05-11.10:19:03 zfs set canmount=on rpool
2010-05-11.10:19:04 zfs create -o mountpoint=/export rpool/export
2010-05-11.10:19:05 zfs create rpool/export/home
2010-05-11.11:11:10 zpool set bootfs=rpool rpool
2010-05-11.11:11:10 zpool set bootfs=rpool/ROOT/zfsBE rpool

Puede utilizar una salida similar en el sistema para identificar el conjunto exacto de comandos de ZFS que se han ejecutado para resolver una situación de error.

Este registro de historial presenta las características siguientes:

Para identificar el historial de comandos de una agrupación de almacenamiento específica, utilice una sintaxis similar a la siguiente:


# zpool history tank
History for 'tank':
2010-05-13.14:13:15 zpool create tank mirror c1t2d0 c1t3d0
2010-05-13.14:21:19 zfs create tank/snaps
2010-05-14.08:10:29 zfs create tank/ws01
2010-05-14.08:10:54 zfs snapshot tank/ws01@now
2010-05-14.08:11:05 zfs clone tank/ws01@now tank/ws01bugfix

Utilice la opción -l para ver el formato completo que incluye el nombre de usuario, el nombre de host y la zona en que se ha efectuado la operación. Por ejemplo:


# zpool history -l tank
History for 'tank':
2010-05-13.14:13:15 zpool create tank mirror c1t2d0 c1t3d0 [user root on neo]
2010-05-13.14:21:19 zfs create tank/snaps [user root on neo]
2010-05-14.08:10:29 zfs create tank/ws01 [user root on neo]
2010-05-14.08:10:54 zfs snapshot tank/ws01@now [user root on neo]
2010-05-14.08:11:05 zfs clone tank/ws01@now tank/ws01bugfix [user root on neo]

Utilice la opción -i para ver información de eventos internos válida para tareas de diagnóstico. Por ejemplo:


# zpool history -i tank
2010-05-13.14:13:15 zpool create -f tank mirror c1t2d0 c1t23d0
2010-05-13.14:13:45 [internal pool create txg:6] pool spa 19; zfs spa 19; zpl 4;...
2010-05-13.14:21:19 zfs create tank/snaps
2010-05-13.14:22:02 [internal replay_inc_sync txg:20451] dataset = 41
2010-05-13.14:25:25 [internal snapshot txg:20480] dataset = 52
2010-05-13.14:25:25 [internal destroy_begin_sync txg:20481] dataset = 41
2010-05-13.14:25:26 [internal destroy txg:20488] dataset = 41
2010-05-13.14:25:26 [internal reservation set txg:20488] 0 dataset = 0
2010-05-14.08:10:29 zfs create tank/ws01
2010-05-14.08:10:54 [internal snapshot txg:53992] dataset = 42
2010-05-14.08:10:54 zfs snapshot tank/ws01@now
2010-05-14.08:11:04 [internal create txg:53994] dataset = 58
2010-05-14.08:11:05 zfs clone tank/ws01@now tank/ws01bugfix

Visualización de estadísticas de E/S de agrupaciones de almacenamiento de ZFS

Para solicitar estadísticas de E/S relativas a agrupaciones o dispositivos virtuales específicos, utilice el comando zpool iostat. Similar al comando iostat, este comando puede mostrar una instantánea estática de toda la actividad de E/S, así como las estadísticas actualizadas para cada intervalo especificado. Se informa de las estadísticas siguientes:

alloc capacity

Cantidad de datos almacenados en la agrupación o el dispositivo. Esta cifra difiere de la cantidad de espacio disponible en los sistemas de archivos reales en una pequeña cantidad debido a detalles de implementación internos.

Para obtener más información sobre la diferencia entre el espacio de la agrupación y el del conjunto de datos, consulte Cálculo del espacio de ZFS.

free capacity

Cantidad de espacio en el disco disponible en la agrupación o dispositivo. Al igual que con la estadística used, esta cantidad difiere por un pequeño margen de la cantidad de espacio en el disco disponible para conjuntos de datos.

read operations

Número de operaciones de E/S de lectura enviadas a la agrupación o al dispositivo, incluidas las solicitudes de metadatos.

write operations

Número de operaciones de E/S de escritura enviadas a la agrupación o al dispositivo.

read bandwidth

Ancho de banda de todas las operaciones de lectura (incluidos los metadatos), expresado en unidades por segundo.

write bandwidth

Ancho de banda de todas las operaciones de escritura, expresadas en unidades por segundo.

Lista de estadísticas de E/S de todas las agrupaciones

Sin opciones, el comando zpool iostat muestra las estadísticas acumuladas desde el inicio de todas las agrupaciones del sistema. Por ejemplo:


# zpool iostat
               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
rpool       6.05G  61.9G      0      0    786    107
tank        31.3G  36.7G      4      1   296K  86.1K
----------  -----  -----  -----  -----  -----  -----

Como estas estadísticas se acumulan desde el inicio, el ancho de banda puede parecer bajo si la agrupación está relativamente inactiva. Para solicitar una vista más exacta del uso actual del ancho de banda, especifique un intervalo. Por ejemplo:


# zpool iostat tank 2
               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
tank        18.5G  49.5G      0    187      0  23.3M
tank        18.5G  49.5G      0    464      0  57.7M
tank        18.5G  49.5G      0    457      0  56.6M
tank        18.8G  49.2G      0    435      0  51.3M

En este ejemplo, el comando muestra las estadísticas de uso de la agrupación tank cada dos segundos hasta que se pulsa Ctrl-C. Otra opción consiste en especificar un parámetro count adicional con el que el comando se termina tras el número especificado de iteraciones. Por ejemplo, zpool iostat 2 3 imprimiría un resumen cada dos segundos para tres iteraciones, durante un total de seis segundos. Si sólo hay una agrupación, las estadísticas se muestran en líneas consecutivas. Si hay más de una agrupación, la línea de guiones adicional marca cada iteración para ofrecer una separación visual.

Lista de estadísticas de E/S de dispositivos virtuales

Además de las estadísticas de E/S de todas las agrupaciones, el comando zpool iostat puede mostrar estadísticas de E/S para dispositivos virtuales. Este comando se puede usar para identificar dispositivos anormalmente lentos o para observar la distribución de E/S generada por ZFS. Para solicitar toda la distribución de dispositivos virtuales, así como todas las estadísticas de E/S, utilice el comando zpool iostat -v. Por ejemplo:


# zpool iostat -v
               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
rpool       6.05G  61.9G      0      0    785    107
  mirror    6.05G  61.9G      0      0    785    107
    c1t0d0s0    -      -      0      0    578    109
    c1t1d0s0    -      -      0      0    595    109
----------  -----  -----  -----  -----  -----  -----
tank        36.5G  31.5G      4      1   295K   146K
  mirror    36.5G  31.5G    126     45  8.13M  4.01M
    c1t2d0      -      -      0      3   100K   386K
    c1t3d0      -      -      0      3   104K   386K
----------  -----  -----  -----  -----  -----  -----

Tenga en cuenta dos puntos importantes al visualizar estadísticas de E/S de dispositivos virtuales:

Puede utilizar el mismo conjunto de opciones (interval y count) al examinar estadísticas de dispositivos virtuales.

Cómo determinar el estado de las agrupaciones de almacenamiento de ZFS

ZFS ofrece un método integrado para examinar el estado de dispositivos y agrupaciones. La situación de una agrupación la determina el estado de todos sus dispositivos. Esta información sobre el estado se obtiene con el comando zpool status. Además, fmd informa de posibles errores en dispositivos y agrupaciones, que se muestran en la consola del sistema y en el archivo /var/adm/messages.

Esta sección describe cómo determinar el estado de agrupaciones y dispositivos. En este capítulo no se explica cómo reparar o recuperarse de agrupaciones cuyo estado es defectuoso. Si desea más información sobre cómo resolver problemas y recuperar datos, consulte el Capítulo 11Recuperación de agrupaciones y solución de problemas de Oracle Solaris ZFS.

Cada dispositivo puede tener uno de los estados siguientes:

ONLINE

El dispositivo o dispositivo virtual funciona normalmente. Quizá haya algunos errores transitorios, pero el dispositivo funciona.

DEGRADED

El dispositivo virtual ha sufrido un fallo pero sigue funcionando. Es el estado más habitual si un dispositivo RAID-Z o una duplicación pierden uno o más dispositivos constituyentes. La tolerancia a errores de la agrupación puede verse comprometida: un error posterior en otro dispositivo puede llegar a ser irrecuperable.

FAULTED

No se puede acceder al dispositivo o dispositivo virtual. Este estado suele denotar un error total del dispositivo, por ejemplo ZFS es incapaz de enviar o recibir datos del dispositivo. Si un dispositivo virtual de nivel superior se encuentra en este estado, no hay forma de acceder a la agrupación.

OFFLINE

El administrador ha dejado expresamente sin conexión el dispositivo

UNAVAIL

El dispositivo o dispositivo virtual no se puede abrir. En algunos casos, las agrupaciones con dispositivos en estado UNAVAIL se muestran en modo DEGRADED. Si un dispositivo virtual de nivel superior tiene estado UNAVAIL, la agrupación queda completamente inaccesible.

REMOVED

Se ha extraído físicamente el dispositivo mientras el sistema estaba ejecutándose. La detección de extracción de dispositivos depende del hardware y quizá no se admita en todas las plataformas.

El estado de una agrupación lo determina el estado de todos sus dispositivos virtuales de nivel superior. Si todos los dispositivos virtuales están ONLINE, la agrupación también está ONLINE. Si uno de los dispositivos virtuales tiene el estado DEGRADED o UNAVAIL, la agrupación también tiene el estado DEGRADED. Si un dispositivo virtual de nivel superior tiene el estado FAULTED u OFFLINE, la agrupación también tiene el estado FAULTED. Una agrupación con estado FAULTED es completamente inaccesible. La recuperación de datos no es factible hasta que los dispositivos necesarios se conectan o reparan. Una agrupación con estado DEGRADED sigue funcionando, pero quizá no obtenga el mismo nivel de redundancia o rendimiento de datos que si tuviera conexión.

Estado de la agrupación de almacenamiento básico

El modo más rápido de averiguar el estado de salud de agrupaciones consiste en usar el comando zpool status como se indica a continuación:


# zpool status -x
all pools are healthy

Si desea examinar una determinada agrupación, indique su nombre en la sintaxis de comando. Cualquier agrupación que no esté en estado ONLINE debe comprobarse para descartar problemas potenciales, tal como se explica en la sección siguiente.

Estado detallado

Puede solicitar un resumen de estado más detallado mediante la opción -v. Por ejemplo:


# zpool status -v tank
  pool: tank
 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: scrub completed after 0h0m with 0 errors on Wed Jan 20 15:13:59 2010
config:

        NAME        STATE     READ WRITE CKSUM
        tank        DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t1d0  UNAVAIL      0     0     0  cannot open

errors: No known data errors

Esta salida muestra la descripción completa de por qué la agrupación se encuentra en un estado determinado, incluida una descripción legible del problema y un vínculo a un artículo sobre la materia para obtener más información. Cada artículo técnico ofrece información actualizada sobre el mejor método de resolución del problema actual. El uso de la información de configuración detallada permite determinar el dispositivo dañado y la forma de reparar la agrupación.

En el ejemplo anterior, el dispositivo defectuoso se debe sustituir. Una vez reemplazado, utilice el comando zpool online para que el dispositivo se conecte de nuevo. Por ejemplo:


# zpool online tank c1t0d0
Bringing device c1t0d0 online
# zpool status -x
all pools are healthy

Si la propiedad autoreplace está activada, es posible que no sea necesario conectar el dispositivo reemplazado.

Si una agrupación tiene un dispositivo sin conexión, la salida del comando identifica la agrupación problemática. Por ejemplo:


# zpool status -x
  pool: tank
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
 scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 15:15:09 2010
config:

        NAME        STATE     READ WRITE CKSUM
        tank        DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t1d0  OFFLINE      0     0     0  48K resilvered

errors: No known data errors

Las columnas READ y WRITE ofrecen un recuento de errores de E/S producidos en el dispositivo; y la columna CKSUM ofrece un recuento de errores de suma de comprobación del dispositivo que no pueden corregirse. Ambos recuentos de errores indican un error potencial del dispositivo y las pertinentes acciones correctivas. Si se informa de que un dispositivo virtual de nivel superior tiene de errores distintos de cero, quizá ya no se pueda acceder a algunas porciones de datos.

El campo errors: identifica cualquier error de datos conocido.

En la salida del ejemplo anterior, el dispositivo que no está conectado no provoca errores de datos.

Para obtener más información sobre diagnósticos y reparaciones de datos y agrupaciones defectuosos, consulte el Capítulo 11Recuperación de agrupaciones y solución de problemas de Oracle Solaris ZFS.

Migración de agrupaciones de almacenamiento de ZFS

En ocasiones puede ser preciso mover una agrupación de almacenamiento de un sistema a otro. Para hacerlo, los dispositivos de almacenamiento se deben desconectar del sistema original y volver a conectar en el de destino. Esta tarea se debe efectuar mediante el recableado físico de los dispositivos o mediante dispositivos con varios puertos como los de una SAN. ZFS permite exportar la agrupación de un sistema e importarla al de destino, incluso si los sistemas tienen un orden diferente de almacenamiento de una secuencia de datos en la memoria. Si desea información sobre cómo repetir o migrar sistemas de archivos entre distintas agrupaciones de almacenamiento que podrían estar en equipos distintos, consulte Envío y recepción de datos ZFS.

Preparación para la migración de agrupaciones de almacenamiento de ZFS

Las agrupaciones de almacenamiento se deben exportar para indicar que están preparadas para la migración. Esta operación purga cualquier dato no escrito en el disco, escribe datos en el disco para indicar que la exportación se ha realizado y elimina del sistema cualquier información de la agrupación.

Si no exporta la agrupación, sino que elimina manualmente los discos, aún es posible importar la agrupación resultante en otro sistema. Sin embargo, podría perder los últimos segundos de transacciones de datos, con lo cual la agrupación aparece como defectuosa en el sistema original debido a que los dispositivos ya no están presentes. De forma predeterminada, el sistema de destino es incapaz de importar una agrupación que no se ha exportado explícitamente. Esta condición es necesaria para impedir la importación accidental de una agrupación activa con almacenamiento conectado a la red que todavía se utilice en otro sistema.

Exportación de una agrupación de almacenamiento de ZFS

Si desea exportar una agrupación, utilice el comando zpool export. Por ejemplo:


# zpool export tank

Antes de continuar, el comando intenta desmontar cualquier sistema de archivos montado en la agrupación. Si alguno de los sistemas de archivos no consigue desmontarse, puede forzar el desmontaje mediante la opción -f. Por ejemplo:


# zpool export tank
cannot unmount '/export/home/eschrock': Device busy
# zpool export -f tank

Tras ejecutar este comando, la agrupación tank deja de estar visible en el sistema.

Si al exportar hay dispositivos no disponibles, no se pueden especificar como exportados correctamente. Si uno de estos dispositivos se conecta más adelante a un sistema sin uno de los dispositivos en funcionamiento, aparece como "potencialmente activo".

Si los volúmenes de ZFS se utilizan en la agrupación, ésta no se puede exportar, ni siquiera con la opción -f. Para exportar una agrupación con un volumen de ZFS, antes debe comprobar que no esté activo ninguno de los consumidores del volumen.

Para obtener más información sobre los volúmenes de ZFS, consulte Volúmenes de ZFS.

Especificación de agrupaciones de almacenamiento disponibles para importar

Cuando la agrupación se haya eliminado del sistema (ya sea al exportar explícitamente o eliminar dispositivos de manera forzada), conecte los dispositivos al sistema de destino. ZFS puede controlar determinadas situaciones en que sólo algunos de los dispositivos están disponibles, pero una migración de agrupaciones correcta depende de la salud global de los dispositivos. Además, no es esencial que los dispositivos estén vinculados bajo el mismo nombre de dispositivo. ZFS detecta cualquier dispositivo que se haya movido o al que se haya cambiado el nombre, y ajusta la configuración en consonancia. Para detectar las agrupaciones disponibles, ejecute el comando zpool import sin opciones. Por ejemplo:


# zpool import
 pool: tank
    id: 11809215114195894163
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        tank        ONLINE
          mirror-0  ONLINE
            c1t0d0  ONLINE
            c1t1d0  ONLINE

En este ejemplo, la agrupación tank está disponible para importarla al sistema de destino. Cada agrupación está identificada mediante un nombre, así como un identificador numérico exclusivo. Si hay varias agrupaciones para importar con el mismo nombre, puede utilizar el identificador numérico para diferenciarlas.

De forma parecida a la salida del comando zpool status, la salida zpool import incluye un vínculo a un artículo divulgativo con la información más actualizada sobre procedimientos de resolución de un problema que impide la importación de una agrupación. En este caso, el usuario puede forzar la importación de una agrupación. Sin embargo, importar una agrupación que utiliza otro sistema en una red de almacenamiento puede dañar datos y generar avisos graves del sistema, puesto que ambos sistemas intentan escribir en el mismo almacenamiento. Si algunos dispositivos de la agrupación no están disponibles pero hay suficiente redundancia para tener una agrupación utilizable, la agrupación mostrará el estado DEGRADED. Por ejemplo:


# zpool import
  pool: tank
    id: 11809215114195894163
 state: DEGRADED
status: One or more devices are missing from the system.
action: The pool can be imported despite missing or damaged devices.  The
        fault tolerance of the pool may be compromised if imported.
   see: http://www.sun.com/msg/ZFS-8000-2Q
config:

        NAME        STATE     READ WRITE CKSUM
        tank        DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            c1t0d0  UNAVAIL      0     0     0  cannot open
            c1t3d0  ONLINE       0     0     0

En este ejemplo, el primer disco está dañado o no se encuentra, aunque aún puede importar la agrupación porque todavía se puede acceder a los datos reflejados. Si faltan muchos dispositivos o hay demasiados defectuosos, la agrupación no se puede importar. Por ejemplo:


# zpool import
  pool: dozer
    id: 9784486589352144634
 state: FAULTED
action: The pool cannot be imported. Attach the missing
        devices and try again.
   see: http://www.sun.com/msg/ZFS-8000-6X
config:
        raidz1-0       FAULTED
          c1t0d0       ONLINE
          c1t1d0       FAULTED
          c1t2d0       ONLINE
          c1t3d0       FAULTED

En este ejemplo faltan dos discos de un dispositivo virtual RAID-Z. Eso significa que no hay suficientes datos redundantes disponibles para reconstruir la agrupación. En algunos casos no hay suficientes dispositivos para determinar la configuración completa. En este caso, ZFS desconoce los demás dispositivos que formaban parte de la agrupación, aunque ZFS proporciona todos los datos posibles relativos a la situación. Por ejemplo:


# zpool import
pool: dozer
    id: 9784486589352144634
 state: FAULTED
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
        devices and try again.
   see: http://www.sun.com/msg/ZFS-8000-6X
config:
        dozer          FAULTED   missing device
          raidz1-0     ONLINE
            c1t0d0     ONLINE
            c1t1d0     ONLINE
            c1t2d0     ONLINE
            c1t3d0     ONLINE
Additional devices are known to be part of this pool, though their
exact configuration cannot be determined.

Importación de agrupaciones de almacenamiento de ZFS de directorios alternativos

De modo predeterminado, el comando zpool import sólo busca dispositivos en el directorio /dev/dsk. Si los dispositivos existen en otro directorio, o si utiliza agrupaciones de las que se ha hecho copia de seguridad mediante archivos, utilice la opción -d para buscar en directorios alternativos. Por ejemplo:


# zpool create dozer mirror /file/a /file/b
# zpool export dozer
# zpool import -d /file
  pool: dozer
    id: 7318163511366751416
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        dozer        ONLINE
          mirror-0   ONLINE
            /file/a  ONLINE
            /file/b  ONLINE
# zpool import -d /file dozer

Si los dispositivos están en varios directorios, puede especificar múltiples opciones de -d.

Importación de agrupaciones de almacenamiento de ZFS

Tras identificar una agrupación para importarla, debe especificar el nombre de la agrupación o su identificador numérico como argumento en el comando zpool import. Por ejemplo:


# zpool import tank

Si hay varias agrupaciones con el mismo nombre, indique la agrupación que desea importar mediante el identificador numérico. Por ejemplo:


# zpool import
  pool: dozer
    id: 2704475622193776801
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        dozer       ONLINE
          c1t9d0    ONLINE

  pool: dozer
    id: 6223921996155991199
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        dozer       ONLINE
          c1t8d0    ONLINE
# zpool import dozer
cannot import 'dozer': more than one matching pool
import by numeric ID instead
# zpool import 6223921996155991199

Si el nombre de la agrupación entra en conflicto con un nombre de agrupación que ya existe, puede importarlo con otro nombre. Por ejemplo:


# zpool import dozer zeepool

Este comando importa la agrupación exportada dozer con el nombre nuevo zeepool.

Si la agrupación no se ha exportado correctamente, ZFS solicita que el indicador -f impida la importación accidental de una agrupación que otro sistema todavía está usando. Por ejemplo:


# zpool import dozer
cannot import 'dozer': pool may be in use on another system
use '-f' to import anyway
# zpool import -f dozer

Las agrupaciones también se pueden importar en una raíz alternativa mediante la opción -R. Si desea más información sobre otras agrupaciones raíz, consulte Uso de agrupaciones raíz de ZFS alternativas.

Recuperación de agrupaciones de almacenamiento de ZFS destruidas

El comando zpool import -D es apto para recuperar una agrupación de almacenamiento que se haya destruido. Por ejemplo:


# zpool destroy tank
# zpool import -D
  pool: tank
    id: 5154272182900538157
 state: ONLINE (DESTROYED)
action: The pool can be imported using its name or numeric identifier.
config:

        tank        ONLINE
          mirror-0  ONLINE
            c1t0d0  ONLINE
            c1t1d0  ONLINE

En esta salida zpool import, puede identificar la agrupación tank como la destruida debido a la siguiente información de estado:


state: ONLINE (DESTROYED)

Para recuperar la agrupación destruida, ejecute de nuevo el comando zpool import -D con la agrupación que se debe recuperar. Por ejemplo:


# zpool import -D tank
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:

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

errors: No known data errors

La agrupación destruida se puede recuperar aunque uno de los dispositivos de esta agrupación sea defectuoso o no esté disponible, mediante la inclusión de la opción-f. En esta situación, debería importar la agrupación degradada y después intentar solucionar el error de dispositivo. Por ejemplo:


# zpool destroy dozer
# zpool import -D
pool: dozer
    id: 13643595538644303788
 state: DEGRADED (DESTROYED)
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
config:

        NAME         STATE     READ WRITE CKSUM
        dozer        DEGRADED     0     0     0
          raidz2-0   DEGRADED     0     0     0
            c2t8d0   ONLINE       0     0     0
            c2t9d0   ONLINE       0     0     0
            c2t10d0  ONLINE       0     0     0
            c2t11d0  UNAVAIL      0    35     1  cannot open
            c2t12d0  ONLINE       0     0     0

errors: No known data errors
# zpool import -Df dozer
# zpool status -x
  pool: dozer
 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: scrub completed after 0h0m with 0 errors on Thu Jan 21 15:38:48 2010
config:

        NAME         STATE     READ WRITE CKSUM
        dozer        DEGRADED     0     0     0
          raidz2-0   DEGRADED     0     0     0
            c2t8d0   ONLINE       0     0     0
            c2t9d0   ONLINE       0     0     0
            c2t10d0  ONLINE       0     0     0
            c2t11d0  UNAVAIL      0    37     0  cannot open
            c2t12d0  ONLINE       0     0     0

errors: No known data errors
# zpool online dozer c2t11d0
Bringing device c2t11d0 online
# zpool status -x
all pools are healthy

Actualización de agrupaciones de almacenamiento de ZFS

Si dispone de agrupaciones de almacenamiento de ZFS de una versión anterior (por ejemplo, Solaris 10 10/09) las agrupaciones pueden actualizarse con el comando zpool upgrade para poder aprovechar las funciones de las agrupaciones de la versión actual Asimismo, el comando zpool status se ha modificado para notificar a los usuarios que las agrupaciones están ejecutando versiones antiguas. Por ejemplo:


# zpool status
  pool: tank
 state: ONLINE
status: The pool is formatted using an older on-disk format.  The pool can
        still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
        pool will no longer be accessible on older software versions.
 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
            c1t1d0  ONLINE       0     0     0
errors: No known data errors

La sintaxis siguiente es válida para identificar información adicional sobre una versión concreta y compatible:


# zpool upgrade -v
This system is currently running ZFS pool version 22.

The following versions are supported:

VER  DESCRIPTION
---  --------------------------------------------------------
 1   Initial ZFS version
 2   Ditto blocks (replicated metadata)
 3   Hot spares and double parity RAID-Z
 4   zpool history
 5   Compression using the gzip algorithm
 6   bootfs pool property
 7   Separate intent log devices
 8   Delegated administration
 9   refquota and refreservation properties
 10  Cache devices
 11  Improved scrub performance
 12  Snapshot properties
 13  snapused property
 14  passthrough-x aclinherit
 15  user/group space accounting
 16  stmf property support
 17  Triple-parity RAID-Z
 18  Snapshot user holds
 19  Log device removal
 20  Compression using zle (zero-length encoding)
 21  Reserved
 22  Received properties

For more information on a particular version, including supported releases,
see the ZFS Administration Guide.

A continuación puede ejecutar el comando zpool upgrade para actualizar todas las agrupaciones. Por ejemplo:


# zpool upgrade -a

Nota –

Si moderniza la agrupación a una versión de ZFS posterior, no se podrá acceder a la agrupación en un sistema que ejecute una versión antigua de ZFS.