Conceptos y tutoriales de ZFS

Conceptos y tutoriales de ZFS

ZFS: conceptos y tutoriales

En su búsqueda de la integridad de datos, el uso de OpenZFS es inevitable. De hecho, sería bastante desafortunado si está utilizando algo más que ZFS para almacenar sus valiosos datos. Sin embargo, mucha gente es reacia a probarlo. La razón es que un sistema de archivos de grado empresarial con una amplia gama de características integradas en él, ZFS debe ser difícil de usar y administrar. Nada puede estar más lejos de la verdad. Usar ZFS es tan fácil como es. Con un puñado de terminologías, e incluso menos comandos, está listo para usar ZFS en cualquier lugar, desde la empresa hasta su hogar/oficina NAS.

En palabras de los creadores de ZFS: “Queremos que agregar almacenamiento a su sistema sea tan fácil como agregar nuevos palitos RAM."

Veremos más adelante cómo se hace eso. Usaré FreeBSD 11.1 Para realizar las pruebas a continuación, los comandos y la arquitectura subyacente son similares para todas las distribuciones de Linux que admiten OpenZFS.

Toda la pila ZFS se puede colocar en las siguientes capas:

  • Proveedores de almacenamiento: discos giratorios o SSDS
  • VDEVS - Agrupación de proveedores de almacenamiento en varias configuraciones de RAID
  • ZPOOLS - Agregación de VDEV en un solo grupo de almacenamiento
  • Z -Filesystems: conjuntos de datos con características geniales como compresión y reserva.

ZPOOL CREA

Para empezar, comencemos con una configuración de donde tenemos seis discos de 20 GB Ada [1-6]

$ ls -al /dev /Ada?

El Ada0 es donde está instalado el sistema operativo. El resto se utilizará para esta demostración.

Los nombres de sus discos pueden diferir según el tipo de interfaz que se utiliza. Los ejemplos típicos incluyen: DA0, ADA0, ACD0 y cd. Mirando por dentro/desarrollote dará una idea de lo que está disponible.

A zpool se crea por ZPOOL CREA dominio:

$ ZPOOL Crear nuestro Firstzpool Ada1 ADA2 ADA3
# Y luego ejecute el siguiente comando:
$ ZPOOL ESTADO

Veremos una salida ordenada que nos da información detallada sobre el grupo:

Este es el zpool más simple sin redundancia o tolerancia a fallas ... cada disco es su propio VDEV.

Sin embargo, aún obtendrá todas las sumas de cheques de ZFS para cada bloque de datos que se almacena, por lo que al menos puede detectar si los datos que almacenó se están dañados.

Sistemas de archivos, un.k.Un conjunto de datos, ahora se pueden crear en la parte superior de este grupo de la siguiente manera:

$ ZFS Crear nuestro Firstzpool/DataSet1

Ahora, usa tu familiar DF -H comando o ejecutar:

Lista de $ ZFS

Para ver las propiedades de su sistema de archivos recién creado:

Observe cómo todo el espacio ofrecido por los tres discos (VDEV) está disponible para el sistema de archivos. Esto será cierto para todos los sistemas de archivos que cree en el grupo a menos que especifiquemos lo contrario.

Si desea agregar un nuevo disco (VDEV), ADA4, Puedes hacerlo ejecutando:

$ zpool Agregar nuestro Firstzpool Ada4

Ahora, si ve el estado de su sistema de archivos

El tamaño disponible ahora ha crecido sin ninguna molestia adicional de hacer crecer la partición o hacer una copia de seguridad y restaurar los datos en el sistema de archivos.


Dispositivos virtuales - VDEVS

Los VDEV son los bloques de construcción de un Zpool, la mayor parte de la redundancia y el rendimiento depende de la forma en que sus discos se agrupan en estos, llamados VDEVS . Veamos algunos de los tipos más importantes de VDEV:

1. Raid 0 o rayas

Cada disco actúa como su propio VDEV. No hay redundancia de datos, y los datos se distribuyen en todos los discos. También conocido como rayas. El fracaso de un solo disco significaría que todo el zpool se hace inutilizable. El almacenamiento utilizable es igual a la suma de todos los dispositivos de almacenamiento disponibles.

El primer Zpool que creamos en la sección anterior es una RAID 0 o una matriz de almacenamiento a rayas.

2. Raid 1 o espejo

Los datos se reflejan entre nortedisco. La capacidad real del VDEV está limitada por la capacidad cruda del disco más pequeño en ese norte-matriz de disco. Los datos se reflejan entre norte discos, esto significa que puede resistir la falla de N-1 disco.

Para crear una matriz reflejada, use el espejo de palabras clave:

$ zpool Crear espejo de tanque Ada1 ADA2 ADA3

Los datos escritos a tanque Zpool se reflejará entre estos tres discos y el almacenamiento real disponible es igual al tamaño del disco más pequeño, que en este caso es de aproximadamente 20 GB.

En el futuro, es posible que desee agregar más discos a este grupo, y hay dos cosas posibles que puede hacer. Por ejemplo, zpool tanque Tiene tres discos que reflejan los datos como un solo VDEV Mirror-0:

Es posible que desee agregar un disco adicional, digamos ADA4, para reflejar los mismos datos. Esto se puede hacer ejecutando el comando:

$ zpool adjunta tanque Ada1 Ada4

Esto agregaría un disco adicional al VDEV que ya tiene el disco Ada1 en él, pero no aumenta el almacenamiento disponible.

Del mismo modo, puede separar los unidades de un espejo corriendo:

$ zpool separa el tanque Ada4

Por otro lado, es posible que desee agregar un VDEV adicional para aumentar la capacidad de Zpool. Eso se puede hacer usando el comando ZPOOL ADD:

$ zpool Agregar espejo de tanque Ada4 ADA5 ADA6


La configuración anterior permitiría que los datos se rayan a través de VDEVS Mirror-0 y Mirror-1. Puede perder 2 discos por VDEV, en este caso, y sus datos aún estarán intactos. El espacio utilizable total aumenta a 40 GB.

3. RAID-Z1, RAID-Z2 y RAID-Z3

Si un VDEV es de tipo RAID-Z1, debe usar al menos 3 discos y el VDEV puede tolerar la desaparición de uno solo de esos discos. Las configuraciones de RAID-Z no permiten conectar discos directamente a un VDEV. Pero puede agregar más VDEV, usando Añadir zpool, tal que la capacidad de la piscina puede seguir aumentando.

RAID-Z2 requeriría al menos 4 discos por VDEV y puede tolerar hasta 2 falla en el disco y si el tercer disco falla antes de que se reemplacen los 2 discos, sus valiosos datos se pierden. Lo mismo sigue para RAID-Z3, que requiere al menos 5 discos por VDEV, con hasta 3 discos de tolerancia a la falla antes de que la recuperación quede desesperada.

Creemos una piscina RAID-Z1 y la cultivemos:

$ zpool Crear tanque RAIDZ1 ADA1 ADA2 ADA3

La piscina está utilizando tres discos de 20 GB que ponen 40 GB disponibles para el usuario.

Agregar otro VDEV requeriría 3 discos adicionales:

$ zpool Agregar tanque RAIDZ1 ADA4 ADA5 ADA6


El total de datos utilizables ahora es de 80 GB y puede perder hasta 2 discos (uno de cada VDEV) y aún tiene la esperanza de recuperación.

Conclusión

Ahora sabe lo suficiente sobre ZFS para importar todos sus datos con confianza. Desde aquí, puede buscar otras características que proporciona ZFS, como usar NVMES de alta velocidad para cachés de lectura y escritura, utilizando compresión incorporada para sus conjuntos de datos y en lugar de sentirse abrumado por todas las opciones disponibles, solo busque lo que necesita para su caso de uso particular.

Mientras tanto, hay algunos consejos más útiles sobre la elección del hardware que debe seguir:

  1. Nunca use nunca hardware RAID-Controller con ZFS.
  2. Se recomienda el error de corrección de RAM (ECC), pero no es obligatorio
  3. La función de deduplicación de datos consume mucha memoria, usa compresión en su lugar.
  4. La redundancia de datos no es una alternativa para la copia de seguridad. Tener varias copias de seguridad, almacenar esas copias de seguridad con ZFS!