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:
Funciones de repetición de una agrupación de almacenamiento de ZFS
Creación y destrucción de agrupaciones de almacenamiento de ZFS
Administración de dispositivos en agrupaciones de almacenamiento de ZFS
Administración de propiedades de agrupaciones de almacenamiento de ZFS
Consulta del estado de una agrupación de almacenamiento de ZFS
Las secciones siguientes ofrecen información detallada sobre estos componentes de agrupación de almacenamiento:
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:
c1t0d0
/dev/dsk/c1t0d0
/dev/foo/disk
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:
Si crea una configuración de ZFS sobre unidades LUN a partir de matrices RAID de hardware, debe comprender la relación entre las características de redundancia de ZFS y las de redundancia ofrecidas por la matriz. Determinadas configuraciones pueden dar una redundancia y un rendimiento adecuados, pero otras quizá no lo hagan.
Puede crear dispositivos lógicos para ZFS mediante volúmenes presentados por administradores de volúmenes basados en software como Solaris Volume Manager (SVM) o Veritas Volume Manager (VxVM). Sin embargo, estas configuraciones no se recomiendan. Aunque ZFS funcione correctamente en estos dispositivos, podría presentar un rendimiento no del todo satisfactorio.
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.
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 |
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.
ZFS proporciona redundancia de datos y propiedades de autocorrección en configuraciones reflejadas y RAID-Z.
Datos de recuperación automática en una configuración redundante
Reparto dinámico de discos en bandas en una agrupación 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.
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
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.
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
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:
Cuatro discos que utilicen reparto dinámico de discos en bandas
Una configuración de RAID-Z de cuatro vías
Dos reflejos de dos vías que utilicen reparto dinámico de discos en bandas
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.
Las secciones siguientes describen distintas situaciones de creación y destrucción de agrupaciones de almacenamiento de ZFS:
Visualización de información de dispositivos virtuales de agrupaciones de almacenamiento
Administración de errores de creación de agrupaciones de almacenamiento de ZFS
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.
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.
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.
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:
Agregar otro conjunto de discos de nivel superior adicional (vdev) a una configuración reflejada existente. Para obtener más información, consulte Adición de dispositivos a una agrupación de almacenamiento.
Conectar discos adicionales a una configuración reflejada. Conectar discos adicionales a una configuración no repetida para crear una configuración reflejada. Para obtener más información, consulte Conexión y desconexión de dispositivos en una agrupación de almacenamiento.
Reemplazar uno o varios discos de una configuración reflejada existente si los discos de sustitución son mayores o iguales que el dispositivo que se va a reemplazar. Para obtener más información, consulte Sustitución de dispositivos en una agrupación de almacenamiento.
Desconectar un disco de una configuración reflejada si los demás dispositivos proporcionan a la configuración la redundancia necesaria. Para obtener más información, consulte Conexión y desconexión de dispositivos en una agrupación de almacenamiento.
División de una configuración reflejada mediante la desconexión de uno de los discos para crear una agrupación nueva idéntica. Para obtener más información, consulte Creación de una nueva agrupación mediante la división de una agrupación de almacenamiento de ZFS reflejada.
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.
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:
Los discos utilizados para la agrupación raíz deben tener una etiqueta VTOC (SMI) y la agrupación se debe crear con segmentos de discos.
La agrupación raíz debe crearse como configuración reflejada o una configuración de un solo disco. No se pueden agregar discos adicionales para crear varios dispositivos virtuales reflejados de nivel superior mediante el comando zpool add, pero se puede ampliar un dispositivo virtual reflejado mediante el comando zpool attach.
No se admite una configuración RAID-Z o repartida.
Una agrupación raíz no puede tener un dispositivo de registro independiente.
Si intenta utilizar una configuración no admitida para una agrupación raíz, verá mensajes similares a éstos:
ERROR: ZFS pool <pool-name> does not support boot environments |
# zpool add -f rpool log c0t6d0s0 cannot add to 'rpool': root pool can not have multiple vdevs or separate logs |
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.
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:
Agregar a una configuración RAID-Z existente otro conjunto de discos para un dispositivo virtual de nivel superior. Para obtener más información, consulte Adición de dispositivos a una agrupación de almacenamiento.
Reemplazar uno o varios discos de una configuración RAID-Z existente si los discos de sustitución son mayores o iguales que el dispositivo que se va a reemplazar. Para obtener más información, consulte Sustitución de dispositivos en una agrupación de almacenamiento.
Actualmente no se permiten las siguientes operaciones en una configuración RAID-Z:
Conectar un disco adicional a una configuración de RAID-Z.
Suprimir un disco de una configuración de RAID-Z, excepto cuando se trate de un disco que se sustituye por un disco de reserva.
No puede quitarse de una configuración de RAID-Z un dispositivo que no sea de registro o caché. Para esta función se presenta un RFE.
Para obtener más información sobre una configuración de RAID-Z, consulte Configuración de agrupaciones de almacenamiento RAID-Z.
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.
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é:
El uso de dispositivos caché optimiza el rendimiento con cargas de trabajo de lectura aleatorias de contenido principalmente estático.
La capacidad y las lecturas se pueden supervisar mediante el comando zpool iostat.
Se pueden añadir varios dispositivos caché cuando se crea la agrupación. Asimismo se pueden añadir y eliminar después de crearse la agrupación. Para obtener más información, consulte el Ejemplo 4–4.
Los dispositivos caché no se pueden reflejar ni pueden formar parte de una configuración de RAID-Z.
Si se encuentra un error de lectura en un dispositivo caché, la E/S de lectura se vuelve a enviar al dispositivo de agrupación de almacenamiento original, que puede formar parte de una configuración de RAID-Z o reflejada. El contenido de los dispositivos caché se considera volátil, de forma similar a otras memorias caché del sistema.
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 |
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.
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:
El disco o uno de sus segmentos contiene un sistema de archivos que está montado. Para corregir este error, utilice el comando umount.
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.
El disco se utiliza como dispositivo de volcado dedicado para el sistema. Para corregir este error, utilice el comando dumpadm.
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:
El disco contiene un sistema de archivos conocido, aunque no está montado y no parece que se utilice.
El disco es parte de un volumen de Solaris Volume Manager.
El disco se utiliza como entorno de inicio alternativo para Actualización automática de Oracle Solaris.
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.
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.
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.
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.
Para destruir agrupaciones se utiliza el comando zpool destroy. Este comando destruye la agrupación aunque contenga conjuntos de datos montados.
# zpool destroy tank |
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.
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.
La mayor parte de la información básica relacionada con los dispositivos se puede consultar en Componentes de una agrupación de almacenamiento de ZFS. Después de crear una agrupación, puede efectuar diversas tareas para administrar los dispositivos físicos en ella.
Conexión y desconexión de dispositivos en una agrupación de almacenamiento
Dispositivos con conexión y sin conexión en una agrupación de almacenamiento
Borrado de errores de dispositivo de agrupación de almacenamiento
Sustitución de dispositivos en una agrupación de almacenamiento
Designación de repuestos en marcha en la agrupación de almacenamiento
Puede agregar espacio en el disco a una agrupación de forma dinámica, incorporando un nuevo dispositivo virtual de nivel superior. Este espacio está inmediatamente disponible para todos los conjuntos de datos de la agrupación. Para agregar un dispositivo virtual a una agrupación, utilice el comando zpool add. Por ejemplo:
# zpool add zeepool mirror c2t1d0 c2t2d0 |
El formato para especificar dispositivos virtuales es el mismo que para el comando zpool create. Los dispositivos se comprueban para determinar si se utilizan y el comando no puede cambiar el nivel de redundancia sin la opción -f. El comando también es compatible con la opción -n de manera que puede ejecutar un ensayo. Por ejemplo:
# zpool add -n zeepool mirror c3t1d0 c3t2d0 would update 'zeepool' to the following configuration: zeepool mirror c1t0d0 c1t1d0 mirror c2t1d0 c2t2d0 mirror c3t1d0 c3t2d0 |
La sintaxis de este comando agregaría dispositivos reflejados c3t1d0 y c3t2d0 a la configuración existente de la agrupación zeepool.
Para obtener más información sobre cómo validar dispositivos virtuales, consulte Detección de dispositivos en uso.
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 |
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 |
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 |
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é.
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.
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.
También se puede convertir una agrupación de almacenamiento no redundante en una redundante mediante el comando zpool attach. Por ejemplo:
# zpool create tank c0t1d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach tank c0t1d0 c1t1d0 # zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 14:28:23 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 73.5K resilvered errors: No known data errors |
Puede utilizar el comando zpool detach para desconectar un dispositivo de una agrupación de almacenamiento reflejada. Por ejemplo:
# zpool detach zeepool c2t1d0 |
Pero esta operación fallará si no hay ninguna otra réplica válida de los datos. Por ejemplo:
# zpool detach newpool c1t2d0 cannot detach c1t2d0: only applicable to mirror and replacing vdevs |
Una agrupación de almacenamiento de ZFS reflejada se puede clonar fácilmente como copia de seguridad de agrupación mediante el comando zpool split.
Actualmente, esta función no puede utilizarse para dividir una agrupación raíz reflejada.
Puede utilizar el comando zpool 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:
Esta función no está disponible para una configuración RAIDZ o una agrupación no redundante de varios discos.
Antes de intentar una operación zpool split, no debería haber activas operaciones de aplicación ni datos.
Es importante tener discos que respondan al comando de vaciado de caché de escritura del disco, en lugar de pasarlo por alto.
Una agrupación no se puede dividir si la actualización de duplicación está en curso.
La división de una agrupación reflejada es óptima cuando se compone de dos o tres discos y el último es la agrupación original utilizada para crear la nueva. Luego puede usar el comando zpool attach para volver a crear la agrupación de almacenamiento original reflejada o convertir la agrupación recién creada en agrupación de almacenamiento reflejada. De momento no existe la posibilidad de usar esta función para crear una agrupación reflejada nueva a partir de una agrupación reflejada existente.
Si la agrupación ya existente es un reflejo de tres vías, la nueva agrupación contendrá un disco después de la operación de división. Si la agrupación ya existente es un reflejo de dos vías de dos discos, el resultado son dos agrupaciones no redundantes de dos discos. Tendrá que vincular dos discos adicionales con el fin de convertir las agrupaciones no redundantes en agrupaciones reflejadas.
Una buena forma de mantener los datos redundantes durante una operación de división consiste en dividir una agrupación de almacenamiento reflejada compuesta de tres discos de forma que la agrupación original se componga de dos discos reflejados después de la operación de división.
En el ejemplo siguiente se divide una agrupación de almacenamiento reflejada denominada trinity, con tres discos, c1t0d0, c1t2d0 y c1t3d0. Las dos agrupaciones resultantes son la agrupación reflejada trinity, con los discos c1t0d0 y c1t2d0, y la nueva agrupación denominada neo, con el disco c1t3d0. Cada agrupación tiene el mismo contenido.
# zpool status trinity pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors # zpool split trinity neo # zpool import neo # zpool status trinity neo pool: neo state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM neo ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors |
ZFS permite que los dispositivos individuales queden sin conexión o con conexión. Cuando el hardware no es fiable o no funciona adecuadamente, ZFS continúa con la lectura o la escritura de datos en el dispositivo, suponiendo que la condición es sólo temporal. Si no es temporal, es posible indicar a ZFS que termine la conexión del dispositivo para que éste se pase por alto. ZFS no envía solicitudes a un dispositivo sin conexión.
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.
Puede terminar la conexión de un dispositivo mediante el comando zpool offline. El dispositivo se puede especificar mediante la ruta o un nombre abreviado, si el dispositivo es un disco. Por ejemplo:
# zpool offline tank c1t0d0 bringing device c1t0d0 offline |
Tenga en cuenta los puntos siguientes al desconectar un dispositivo:
Una agrupación no se puede desconectar si genera errores. Por ejemplo, no puede desconectar dos dispositivos de una configuración raidz1, ni tampoco puede desconectar un dispositivo virtual de nivel superior.
# zpool offline tank c1t0d0 cannot offline c1t0d0: no valid replicas |
De modo predeterminado, el estado OFFLINE es persistente. El dispositivo permanece sin conexión cuando el sistema se reinicia.
Para desconectar temporalmente un dispositivo, utilice la opción zpool offline -t. Por ejemplo:
# zpool offline -t tank c1t0d0 bringing device 'c1t0d0' offline |
Cuando el sistema se reinicia, este dispositivo vuelve automáticamente al estado ONLINE.
Si un dispositivo se queda sin conexión, no se desconecta de la agrupación de almacenamiento. Si intenta utilizar el dispositivo sin conexión en otra agrupación, incluso después de que la agrupación original se haya destruido, aparece en pantalla un mensaje similar al siguiente:
device is part of exported or potentially active ZFS pool. Please see zpool(1M) |
Si desea utilizar el dispositivo sin conexión en otra agrupación de almacenamiento después de destruir la agrupación de almacenamiento original, conecte el dispositivo y destruya la agrupación de almacenamiento original.
Otra forma de utilizar un dispositivo de otra agrupación de almacenamiento a la vez que se mantiene la agrupación de almacenamiento original consiste en sustituir el dispositivo de la agrupación de almacenamiento original por otro equivalente. Para obtener información sobre la sustitución de dispositivos, consulte Sustitución de dispositivos en una agrupación de almacenamiento.
Los dispositivos sin conexión aparecen con el estado OFFLINE al consultar el estado de la agrupación. Para obtener información sobre cómo saber el estado de la agrupación, consulte Consulta del estado de una agrupación de almacenamiento de ZFS.
Para obtener más información sobre la situación del dispositivo, consulte Cómo determinar el estado de las agrupaciones de almacenamiento de ZFS.
Si se anula la conexión de un dispositivo, se puede restablecer mediante el comando zpool online. Por ejemplo:
# zpool online tank c1t0d0 bringing device c1t0d0 online |
Si se conecta un dispositivo, los datos escritos en la agrupación se vuelven a sincronizar con el dispositivo que acaba de quedar disponible. Para sustituir un disco no se puede utilizar un dispositivo con conexión. Si desconecta un dispositivo, reemplaza el dispositivo e intenta conectarlo, queda en estado de error.
Si intenta conectar un dispositivo defectuoso, aparece un mensaje similar al siguiente:
# zpool online tank c1t0d0 warning: device 'c1t0d0' onlined, but remains in faulted state use 'zpool replace' to replace devices that are no longer present |
También puede que vea el mensaje de disco defectuoso en la consola o escrito en el archivo /var/adm/messages. Por ejemplo:
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device. |
Para obtener más información sobre cómo reemplazar un dispositivo defectuoso, consulte Resolución de un dispositivo que no se encuentra.
Puede utilizar el comando zpool online -e para 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 |
Si un dispositivo pierde la conexión por un fallo que hace que los errores aparezcan en la salida de zpool status, los recuentos de errores se pueden borrar con el comando zpool clear.
Si se especifica sin argumentos, este comando borra todos los errores de dispositivo de la agrupación. Por ejemplo:
# zpool clear tank |
Si se especifican uno o más dispositivos, este comando sólo borra errores asociados con los dispositivos especificados. Por ejemplo:
# zpool clear tank c1t0d0 |
Para obtener más información sobre cómo borrar errores de zpool, consulte Supresión de errores transitorios.
Puede reemplazar un dispositivo en una agrupación de almacenamiento mediante el comando zpool replace.
Si se reemplaza físicamente un dispositivo por otro en la misma ubicación de una agrupación redundante, puede que sólo haga falta identificar el dispositivo sustituido. 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:
Si es preciso, desconecte el dispositivo con el comando zpool offline.
Retire el disco que se debe reemplazar.
Inserte el disco nuevo.
Ejecute el comando zpool replace. Por ejemplo:
# zpool replace tank c1t1d0 |
Conecte el disco mediante el comando zpool online.
En 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:
Si la propiedad de agrupación autoreplace se configura como habilitada (on), se aplicará formato y sustitución a cualquier dispositivo que se encuentre en la misma ubicación física que un dispositivo previamente perteneciente a la ubicación. No es necesario que utilice el comando zpool replace cuando esta propiedad está habilitada. Es posible que no todos los tipos de hardware dispongan de esta función.
El tamaño del dispositivo de sustitución debe ser igual o mayor que el disco más pequeño en una configuración de RAID-Z o reflejada.
Cuando se agrega a una agrupación un dispositivo de sustitución mayor que el dispositivo al que va a sustituir, no se amplía automáticamente a su tamaño máximo. El valor de la propiedad autoexpand determina si una LUN de sustitución se amplía a su tamaño máximo cuando el disco se agrega a la agrupación. De manera predeterminada, la propiedad autoexpand está habilitada. Se puede habilitar esta propiedad para ampliar el tamaño de LUN antes o después de agregar a la agrupación la LUN mayor.
En el ejemplo siguiente, se sustituyen dos discos de 16 GB de una agrupación reflejado por dos discos de 72 GB. La propiedad autoexpand está habilitada tras las sustituciones de disco para ampliar el tamaño de LUN.
# zpool create pool mirror c1t16d0 c1t17d0 # zpool status pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t16d0 ONLINE 0 0 0 c1t17d0 ONLINE 0 0 0 zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 76.5K 16.7G 0% ONLINE - # zpool replace pool c1t16d0 c1t1d0 # zpool replace pool c1t17d0 c1t2d0 # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 88.5K 16.7G 0% ONLINE - # zpool set autoexpand=on pool # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 68.2G 117K 68.2G 0% ONLINE - |
La sustitución de muchos discos en una agrupación de gran tamaño tarda mucho en realizarse debido al proceso de actualizar la duplicación de los datos en los discos nuevos. Además, es recomendable ejecutar el comando zpool scrub entre sustituciones de discos, para asegurarse de que los dispositivos de sustitución estén operativos y que los datos se escriban correctamente.
Si se ha sustituido automáticamente un disco fallido con un repuesto en marcha, es posible que sea necesario desconectar el repuesto después de sustituir el disco fallido. Para obtener información sobre cómo desconectar un repuesto en marcha, consulte Activación y desactivación de repuestos en marcha en la agrupación de almacenamiento.
Para obtener más información sobre cómo reemplazar dispositivos, consulte Resolución de un dispositivo que no se encuentra y Sustitución o reparación de un dispositivo dañado.
La función de repuesto en marcha permite identificar discos que se podrían utilizar para sustituir un dispositivo defectuoso o en estado "faulted" en una o más agrupaciones de almacenamiento. Si un dispositivo se designa como repuesto en marcha, significa que no es un dispositivo activo en una agrupación. Ahora bien, si un dispositivo activo falla, el repuesto en marcha sustituye automáticamente al defectuoso.
Los dispositivos se pueden designar como repuestos en marcha de los modos siguientes:
Cuando se crea la agrupación con el comando zpool create.
Después de crear la agrupación con el comando zpool add.
Los dispositivos de repuestos en marcha se pueden compartir entre varias agrupaciones, pero no si las agrupaciones están en distintos sistemas.
El ejemplo siguiente muestra cómo designar dispositivos como repuestos en marcha cuando se crea la agrupación:
# zpool create trinity mirror c1t1d0 c2t1d0 spare c1t2d0 c2t2d0 # zpool status trinity pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c1t2d0 AVAIL c2t2d0 AVAIL errors: No known data errors |
El ejemplo siguiente muestra cómo designar repuestos en marcha agregándolos a una agrupación después de crearla:
# zpool add neo spare c5t3d0 c6t3d0 # zpool status neo pool: neo state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM neo ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c3t3d0 ONLINE 0 0 0 c4t3d0 ONLINE 0 0 0 spares c5t3d0 AVAIL c6t3d0 AVAIL errors: No known data errors |
Los repuestos en marcha se pueden suprimir de una agrupación de almacenamiento mediante el comando zpool remove. Por ejemplo:
# zpool remove zeepool c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c1t3d0 AVAIL errors: No known data errors |
No se puede suprimir un repuesto en marcha si se está utilizando en una agrupación de almacenamiento.
Tenga en cuenta lo siguiente al utilizar repuestos en marcha de ZFS:
Actualmente, el comando zpool remove sólo es apto para eliminar repuestos en marcha, dispositivos caché y dispositivos de registro.
Para agregar un disco como repuesto en marcha, el repuesto en marcha debe ser igual o mayor que el disco más grande de la agrupación. Se puede agregar un disco de repuesto de tamaño inferior. Ahora bien, al activar ese disco de repuesto de tamaño inferior, de forma automática o con el comando zpool replace, la operación falla y genera un mensaje de error parecido al siguiente:
cannot replace disk3 with disk4: device is too small |
Los repuestos en marcha se activan de los modos siguientes:
Sustitución manual: sustituya un dispositivo incorrecto en una agrupación de almacenamiento con un repuesto en marcha mediante el comando zpool replace.
Sustitución automática: cuando se detecta un error, un agente FMA examina la agrupación para ver si dispone de repuestos en marcha. Si es así, sustituye el dispositivo con errores por un repuesto en marcha.
Si falla un repuesto en marcha que está en uso, el agente FMA quita el repuesto y cancela la sustitución. El agente intenta sustituir el dispositivo por otro repuesto en marcha, si lo hay. Esta función está limitada por el hecho de que el motor de diagnóstico ZFS sólo emite errores cuando un dispositivo desaparece del sistema.
Si sustituye físicamente un dispositivo defectuoso con un repuesto activo, puede reactivar el original, pero debe desactivar el dispositivo reemplazado mediante el comando zpool detach para desconectar el repuesto. Si configura la propiedad de agrupación autoreplace como habilitada (on), el repuesto se desconecta automáticamente y vuelve a la agrupación de repuestos cuando se inserta el dispositivo nuevo y se completa la operación de conexión.
Puede sustituir manualmente un dispositivo con un repuesto en marcha mediante el comando zpool replace. Consulte el Ejemplo 4–8.
Un dispositivo con errores se sustituye automáticamente si hay un repuesto en marcha. Por ejemplo:
# zpool status -x pool: zeepool state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: resilver completed after 0h0m with 0 errors on Mon Jan 11 10:20:35 2010 config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 DEGRADED 0 0 0 c2t1d0 UNAVAIL 0 0 0 cannot open c2t3d0 ONLINE 0 0 0 88.5K resilvered spares c2t3d0 INUSE currently in use errors: No known data errors |
Actualmente se puede desactivar un repuesto en marcha de las siguientes maneras:
Eliminando el repuesto de la agrupación de almacenamiento.
Desconectando el repuesto después de la sustitución de un disco fallido. Consulte el Ejemplo 4–9.
Cambiando el repuesto de forma temporal o permanente. Consulte el Ejemplo 4–10.
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 |
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 |
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 |
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 |
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:
|
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. |
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
Visualización de estadísticas de E/S de agrupaciones de almacenamiento de ZFS
Cómo determinar el estado de las agrupaciones de almacenamiento de ZFS
El comando zpool list es apto para mostrar información básica sobre agrupaciones.
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:
El nombre de la agrupación.
El tamaño total de la agrupación, igual a la suma del tamaño de todos los dispositivos virtuales de nivel superior.
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.
Cantidad de espacio sin asignar en la agrupación.
Cantidad de espacio utilizado, expresada como porcentaje del espacio total en el disco.
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.
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 - |
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.
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 |
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:
El registro no se puede inhabilitar.
El registro se mantiene de forma persistente en el disco, lo que significa que se guarda en los reinicios del sistema.
El registro se implementa como búfer de anillo. El tamaño mínimo es de 128 KB. El tamaño máximo es de 32 MB.
En agrupaciones pequeñas, el tamaño máximo se restringe al 1% del tamaño de la agrupación, donde el tamaño se determina al crear agrupaciones.
El registro no requiere administración; eso significa que no es necesario ajustar el tamaño del registro ni cambiar la ubicación del registro.
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 |
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:
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.
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.
Número de operaciones de E/S de lectura enviadas a la agrupación o al dispositivo, incluidas las solicitudes de metadatos.
Número de operaciones de E/S de escritura enviadas a la agrupación o al dispositivo.
Ancho de banda de todas las operaciones de lectura (incluidos los metadatos), expresado en unidades por segundo.
Ancho de banda de todas las operaciones de escritura, expresadas en unidades por segundo.
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.
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:
En primer lugar, las estadísticas de uso del espacio en el disco sólo están disponibles para dispositivos virtuales de nivel superior. El modo en que el espacio en el disco se asigna entre el reflejo y los dispositivos virtuales RAID-Z es específico de la implementación y es difícil de expresar en un solo número.
Segundo, los números quizá no se agreguen exactamente como cabría esperar. En concreto, las operaciones en dispositivos reflejados y RAID-Z no serán exactamente iguales. Esta diferencia se aprecia sobre todo inmediatamente después de crear una agrupación, puesto que una cantidad significativa de E/S se efectúa directamente en los discos como parte de la creación de agrupaciones y no se tiene en cuenta en el nivel del reflejo. Con el tiempo se igualan estos números. Pero esta simetría se puede ver afectada si hay dispositivos defectuosos, averiados o desconectados.
Puede utilizar el mismo conjunto de opciones (interval y count) al examinar estadísticas de dispositivos virtuales.
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:
El dispositivo o dispositivo virtual funciona normalmente. Quizá haya algunos errores transitorios, pero el dispositivo funciona.
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.
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.
El administrador ha dejado expresamente sin conexión el dispositivo
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.
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.
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.
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.
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
Especificación de agrupaciones de almacenamiento disponibles para importar
Importación de agrupaciones de almacenamiento de ZFS de directorios alternativos
Recuperación de agrupaciones de almacenamiento de ZFS destruidas
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.
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.
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. |
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.
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.
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 |
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 |
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.