Gestión de sistemas de archivos ZFS en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Diciembre de 2014
 
 

Creación de grupos de almacenamiento de ZFS

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

Creación de un grupo de almacenamiento básico

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

# zpool create tank c1t0d0 c1t1d0

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

Creación de una agrupación de almacenamiento reflejado

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

# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0

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

Para obtener más información sobre las configuraciones reflejadas recomendadas, consulte Chapter 11, Prácticas de ZFS recomendadas por Oracle Solaris.

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

No se puede eliminar directamente de una agrupación de almacenamiento reflejada un dispositivo que no sea una reserva, un dispositivo de log o un dispositivo de caché.

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

Tenga en cuenta las siguientes requisitos de configuración de la agrupación raíz:

  • En Oracle Solaris, los discos utilizados para la agrupación raíz se instalan con una etiqueta EFI (GPT) en un sistema basado en x86 o un sistema SPARC admitido con firmware compatible con GPT, o se aplica una etiqueta SMI (VTOC) en un sistema basado en SPARC sin firmware compatible con GPT. El instalador aplica una etiqueta EFI (GPT), si es posible, y si necesita volver a crear una agrupación raíz ZFS después de la instalación, puede utilizar el siguiente comando para aplicar la etiqueta de disco EFI (GPT) y la información de inicio correcta:

    # zpool create -B rpool2 c1t0d0
  • 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 log independiente.

  • Si intenta utilizar una configuración no admitida para una agrupación raíz, verá mensajes similares a los siguientes:

    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 obtener más información sobre cómo instalar e iniciar un sistema de archivos raíz ZFS, consulte Chapter 4, Gestión de componentes de la agrupación raíz ZFS.

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

Una agrupación de RAID-Z de paridad sencilla se crea del mismo modo que una agrupación reflejada, excepto que se utiliza la palabra clave raidz o raidz1 en lugar de mirror. El siguiente ejemplo muestra cómo crear una agrupación con un único dispositivo 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 RAID-Z de paridad doble o triple con 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 c8t0d0
# 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
c8t0d0      ONLINE       0     0     0
errors: No known data errors

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

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

  • Conectar un disco adicional a una configuración de RAID-Z.

  • Desconectar un disco de una configuración de RAID-Z, excepto cuando se desconecta un disco que se sustituye por un disco de repuesto o cuando se necesita desconectar un disco de repuesto.

  • No se puede eliminar directamente de una configuración de RAID-Z un dispositivo que no sea de log 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 grupos de almacenamiento RAID-Z.

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

El log de intenciones de ZFS (ZIL) se proporciona para satisfacer los requisitos de POSIX para transacciones síncronas. Por ejemplo, las bases de datos precisan con frecuencia que sus transacciones se encuentren en dispositivos de almacenamiento estables al volver de una llamada del sistema. NFS y otras aplicaciones también pueden usar fsync() para asegurar la estabilidad de los datos.

De manera predeterminada, ZIL se asigna desde bloques en la agrupación principal. Sin embargo, el rendimiento puede mejorar si se usan dispositivos de log independientes, por ejemplo, NVRAM o un disco dedicado.

Para saber si es apropiado configurar un dispositivo de log de ZFS se deben tener en cuenta los puntos siguientes:

  • Los dispositivos de log para el log de intentos ZFS no están relacionados con los archivos log de la base de datos.

  • Cualquier mejora en el rendimiento que haya al implementar un dispositivo de log independiente está sujeta al tipo de dispositivo, la configuración de hardware de la aplicación y la carga de trabajo de la aplicación. Para obtener información preliminar sobre el rendimiento, consulte este blog:

    http://blogs.oracle.com/perrin/entry/slog_blog_or_blogging_on

  • Los dispositivos de log pueden ser reflejados o sin reflejar, pero RAID-Z no es válido para dispositivos de log.

  • Si no se refleja un dispositivo de log independiente y falla el dispositivo que contiene el log, el log que se almacena vuelve a la agrupación de almacenamiento.

  • Los dispositivos de log se pueden agregar, reemplazar, eliminar, vincular, desvincular, importar y exportar como parte de la agrupación de almacenamiento de mayor tamaño.

  • Puede vincular un dispositivo de log a uno ya creado para crear un dispositivo de log reflejado. Esta operación es idéntica a la de vincular un dispositivo en una agrupación de almacenamiento sin reflejar.

  • El tamaño mínimo de un dispositivo de log es el mismo que el de cada dispositivo en una agrupación, es decir, 64 MB. La cantidad de datos en reproducción que se puede almacenar en un dispositivo de log es relativamente pequeña. Los bloques de log se liberan si se ejecuta la transacción de log (llamada del sistema).

  • El tamaño máximo de un dispositivo de log debe ser aproximadamente la mitad de la memoria física, ya que es la cantidad máxima de datos de reproducción potenciales que se pueden almacenar. Por ejemplo, si un dispositivo tiene una memoria física de 16 GB, el dispositivo de log debería tener como máximo 8 GB.

Puede crear un dispositivo de log 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 log reflejados:

# zpool create datap mirror c0t5000C500335F95E3d0 c0t5000C500335F907Fd0 \
   mirror c0t5000C500335BD117d0 c0t5000C500335DC60Fd0 \
   log mirror c0t5000C500335E106Bd0 c0t5000C500335FC3E7d0

# 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
      c0t5000C500335F95E3d0  ONLINE       0      0      0
      c0t5000C500335F907Fd0  ONLINE       0      0      0
   mirror-1                  ONLINE       0      0      0
      c0t5000C500335BD117d0  ONLINE       0      0      0
      c0t5000C500335DC60Fd0  ONLINE       0      0      0
   logs
   mirror-2                  ONLINE       0      0      0
      c0t5000C500335E106Bd0  ONLINE       0      0      0
      c0t5000C500335FC3E7d0  ONLINE       0      0      0

errors: No known data errors

Para obtener información sobre la recuperación de un error en un dispositivo de log, consulte el Example 10–2.

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

Los dispositivos de caché ofrecen un nivel adicional de grabación de datos en caché entre la memoria principal y el disco. El uso de dispositivos caché optimiza el rendimiento con cargas de trabajo de lectura aleatorias de contenido principalmente estático.

Puede crear una agrupación de almacenamiento con dispositivos para guardar en caché 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

Tras agregar los dispositivos de la caché, gradualmente se llenan con contenido de la memoria principal. Según el tamaño del dispositivo de la caché, puede llevar más de una hora en llenarse. La capacidad y las lecturas se pueden supervisar con el comando zpool iostat del modo siguiente:

# zpool iostat -v pool 5

Los dispositivos caché se pueden agregar o quitar de una agrupación después de crearse dicha agrupación.

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 agregar varios dispositivos caché cuando se crea la agrupación. Asimismo se pueden agregar y eliminar después de crearse la agrupación. Para obtener más información, consulte el Example 3–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.

Precauciones para la creación de grupos de almacenamiento

Revise las precauciones siguientes al crear y gestionar grupos de almacenamiento de ZFS.

  • No vuelva a crear particiones o etiquetar discos que forman parte de una agrupación de almacenamiento existente. Si intenta volver a crear la partición o etiquetar un disco de la agrupación raíz, es posible que tenga que volver a instalar el sistema operativo.

  • No cree un grupo de almacenamiento que contenga componentes de otra agrupación de almacenamiento, como archivos o volúmenes. Se pueden producir bloqueos en esta configuración no admitida.

  • Una agrupación creada con un único segmento o disco no tiene redundancia y tiene riesgo de pérdida de datos. Una agrupación creada con varios segmentos pero sin redundancia también tiene riesgo de pérdida de datos. Una agrupación creada con varios segmentos entre discos resulta más difícil de administrar que una agrupación creada con discos completos.

  • Una agrupación que no se haya creado con redundancia de ZFS (RAID-Z o reflejo) solo puede generar informes de las incoherencias de datos. No puede reparar incoherencias de datos.

  • Aunque una agrupación creada con redundancia de ZFS puede ayudar a reducir el tiempo de inactividad debido a fallos de hardware, no es inmune a fallos de hardware, fallos de energía o cables desconectados. Asegúrese de que se realicen copias de seguridad de los datos de forma regular. Es importante realizar copias de seguridad de rutina de los datos de la agrupación en hardware de grado no empresarial.

  • Una agrupación no se puede compartir entre sistemas. El ZFS no es un sistema de archivos de clúster.