Cómo instalar Stratis para administrar el almacenamiento local en capas en RHEL 8


Stratis es una de las nuevas características que se incluye con la distribución RHEL 8. Stratis es una solución de gestión de almacenamiento local que se centra en la simplicidad y la facilidad de uso mejorada y, al mismo tiempo, proporciona acceso a funciones de almacenamiento avanzadas. Utiliza el sistema de archivos XFS y le otorga acceso a capacidades de almacenamiento avanzadas como:

  • Aprovisionamiento ligero
  • Instantáneas del sistema de archivos
  • Clasificación
  • Gestión basada en grupos
  • Supervisión

Básicamente, Stratis es un grupo de almacenamiento que se crea a partir de uno o más discos locales o particiones de disco. Stratis ayuda al administrador del sistema a configurar y administrar configuraciones de almacenamiento complejas.

Antes de continuar, echemos un vistazo a algunos de los términos técnicos con los que seguramente se encontrará a medida que avanzamos:

  • grupo: un grupo se compone de uno o más dispositivos de bloque. El tamaño total del grupo es igual a la suma total de los dispositivos de bloque.
  • blockdev: como habrás adivinado, esto se refiere a dispositivos de bloque como particiones de disco.
  • Sistema de archivos: un sistema de archivos es una capa finamente aprovisionada que no tiene un tamaño fijo total. El tamaño real del sistema de archivos crece a medida que se agregan datos. Stratis aumenta automáticamente el tamaño del sistema de archivos a medida que el tamaño de los datos se acerca al tamaño virtual del sistema de archivos.

Los dispositivos de bloque que puede usar con Stratis incluyen:

  1. Volúmenes lógicos LVM
  2. LUKS
  3. SSD (unidades de estado sólido)
  4. Device Mapper Multipath
  5. iSCSI
  6. HDD (unidades de disco duro)
  7. mdraid
  8. dispositivos de almacenamiento NVMe

Stratis proporciona 2 utilidades de software:

  • Stratis-cli: esta es la herramienta de línea de comandos que se incluye con Stratis.
  • Demonio de Stratisd: este es un demonio que crea y administra dispositivos de bloque y juega un papel en la provisión de una API DBUS.

Cómo instalar Stratis en RHEL 8

Habiendo analizado lo que es Stratis y definido algunas terminologías. Ahora instalemos y configuremos Stratis en la distribución RHEL 8 (también funciona en CentOS 8).

Veamos cómo puede instalar Stratis en su sistema RHEL 8, iniciar sesión como usuario root y ejecutar el comando.

# dnf install stratisd stratis-cli

Para encontrar más información sobre los paquetes instalados, ejecute el comando.

# rpm -qi stratisd stratis-cli

Después de la instalación exitosa de Stratis, inicie el servicio ejecutando el comando.

# systemctl enable --now stratisd

Para verificar el estado de Stratis, ejecute el comando.

# systemctl status stratisd

Para crear un grupo de Stratis, necesita dispositivos de bloque que no estén en uso o montados. Además, se asume que el servicio Stratisd está en funcionamiento. Además, los dispositivos de bloque que va a utilizar deben tener al menos 1 GB de tamaño.

En nuestro sistema RHEL 8, tenemos cuatro dispositivos de bloque adicionales: /dev/xvdb , /dev/xvdc , /dev/xvdd , < código>/dev/xvde . Para mostrar los dispositivos de bloque, ejecute el comando lsblk.

# lsblk

Ninguno de estos dispositivos de bloque debe tener una tabla de particiones. Puede confirmar esto usando el comando.

# blkid -p /dev/xvdb

Si no obtiene salida, significa que sus dispositivos de bloque no tienen ninguna tabla de partición residente en ellos. Sin embargo, en el caso de que exista una tabla de particiones, puede borrarla usando el comando:

# wipefs -a /<device-path>

Puede crear un grupo de Stratis a partir de un dispositivo de bloque único utilizando la sintaxis.

# stratis pool create <pool-name> <block-device>

Por ejemplo, para crear un grupo desde /dev/xvdb ejecute el comando.

# stratis pool create my_pool_1 /dev/xvdb

Para confirmar la ejecución de la piscina creada.

# stratis pool list

Para crear un grupo a partir de varios dispositivos, use la sintaxis a continuación que enumera todos los dispositivos en una línea.

# stratis pool create <pool_name> device-1 device-2 device-n

Para crear un grupo desde /dev/xvdc , /dev/xvdd y /dev/xvde ejecute el comando.

# stratis pool create my_pool_2 /dev/xvdc /dev/xvdd/ /dev/xvde

Una vez más, enumere los grupos disponibles usando el comando.

# stratis pool list

En este punto, debería tener 2 grupos: my_pool_1 y my_pool_2.

Como puede ver arriba, el espacio en el disco duro ocupado por el grupo my_pool_2 es tres veces mayor que el del primer grupo que creamos a partir de un solo dispositivo de bloque con una memoria de 10GB.

Una vez creado su sistema de archivos, puede crear un sistema de archivos a partir de uno de los grupos utilizando la sintaxis.

# stratis fs create <poolname> <filesystemname>

Por ejemplo, para crear el sistema de archivos 1 y el sistema de archivos 2 desde my_pool_1 y my_pool_2, respectivamente, ejecute los comandos:

# stratis fs create my_pool_1 filesystem-1
# stratis fs create my_pool_2 filesystem-2

Para ver los sistemas de archivos recién creados, ejecute el comando.

# stratis fs list

Para reducir los resultados de un sistema de archivos a un grupo, ejecute el comando:

# stratis fs list <poolname>

Por ejemplo, para verificar el sistema de archivos en my_pool_2, ejecute el comando.

# stratis fs list my_pool_2

Ahora, si ejecuta el comando lsblk, la salida debería ser algo similar a la salida de muestra a continuación.

# lsblk

Ahora vamos a montar los sistemas de archivos existentes para poder acceder a ellos. Primero, cree los puntos de montaje.

Para el sistema de archivos en el primer grupo, ejecute el comando:

# mkdir /data
# mount /stratis/my_pool_1/filesystem-1 /data

Para el segundo sistema de archivos en el segundo grupo, ejecute el comando.

# mkdir /block
# mount /stratis/my_pool_2/filesystem-2 /block

Para verificar la existencia de los puntos de montaje actuales, ejecute el comando df:

# df -Th | grep  stratis

¡Perfecto! Podemos ver claramente que nuestros puntos de montaje están presentes.

Los puntos de montaje que acabamos de crear no pueden sobrevivir a un reinicio. Para hacerlos persistentes, primero obtenga el UUID de cada uno de los sistemas de archivos:

# blkid -p /stratis/my_pool_1/filesystem-1
# blkid -p /stratis/my_pool_2/filesystem-2

Ahora proceda y copie el UUID y las opciones del punto de montaje en/etc/fstab como se muestra.

# echo "UUID=c632dcf5-3e23-46c8-82b6-b06a4cc9d6a7 /data xfs defaults 0 0" | sudo tee -a /etc/fstab
# echo "UUID=b485ce80-be18-4a06-8631-925132bbfd78 /block xfs defaults 0 0" | sudo tee -a /etc/fstab

Para que el sistema registre la nueva configuración, ejecute el comando:

# systemctl daemon-reload

Para verificar que la configuración funcione como se esperaba, monte los sistemas de archivos.

# mount /data
# mount /block

Para eliminar un sistema de archivos, primero debe desmontar el sistema de archivos como se muestra.

# umount /mount-point

En este caso, tendremos.

# umount /data

Para destruir el sistema de archivos, use la sintaxis:

# stratis filesystem destroy <poolname> <filesystem-name>

Entonces, tendremos:

# stratis filesystem destroy my_pool_1 filesystem-1

Para confirmar la eliminación del sistema de archivos, ejecute el comando.

# stratis filesystem list my_pool_1

En la salida, podemos ver claramente que el sistema de archivos asociado con my_pool_1 se ha eliminado.

Puede agregar un disco a un grupo existente usando el comando:

# stratis pool add-data <poolname> /<devicepath>

Por ejemplo, para agregar un disco adicional /dev/xvdf , a my_pool_1, ejecute el comando:

# stratis pool add-data my_pool_1 /dev/xvdf

Observe que el tamaño de my_pool_1 tiene el doble de tamaño después de agregar el volumen adicional.

Una instantánea es una lectura de aprovisionamiento fino y escribe una copia de un sistema de archivos en un momento dado.

Para crear una instantánea, ejecute el comando:

# stratis fs snapshot <poolname> <fsname> <snapshotname>

En este caso, el comando será:

# stratis fs snapshot my_pool_2 filesystem-2 mysnapshot

Puede agregar el atributo de datos - & # 36 (date +% Y-% m-% d) a la instantánea agregue la etiqueta de fecha como se muestra en la captura de pantalla a continuación.

Para verificar la creación de la instantánea, ejecute el comando:

# stratis filesystem list <poolname>

En este caso, el comando será:

# stratis filesystem list my_pool_2

Para revertir un sistema de archivos Stratis a una instantánea creada previamente, primero, desmonte y destruya el sistema de archivos original.

# umount /stratis/<poolname>/filesystem

En nuestro escenario, esto será.

# umount /stratis/my_pool_2/filesystem-2

Luego cree una copia de la instantánea usando el sistema de archivos original:

# stratis filesystem snapshot <poolname> filesystem-snapshot filesystem

El comando será:

# stratis filesystem snapshot my_pool_2 mysnapshot-2019-10-24 block

Finalmente, monte la instantánea.

# mount /stratis/my-pool/my-fs mount-point

Para eliminar la instantánea, primero, desmonte la instantánea.

# unmount /stratis/my_pool_2/mysnapshot-2019-10-24

A continuación, proceda y destruya la instantánea:

# stratis filesystem destroy my_pool_2 mysnapshot-2019-10-24

Para eliminar un grupo de Stratis, siga los sencillos pasos a continuación.

1. Enumere los sistemas de archivos que existen en el grupo.

# stratis filesystem list <poolname>

2. A continuación, desmonte todos los sistemas de archivos del grupo.

# umount /stratis//filesystem-1
# umount /stratis//filesystem-2
# umount /stratis//filesystem-3

3. Destruya los sistemas de archivos.

# stratis filesystem destroy <poolname> fs-1 fs-2

4. Y luego, deshazte de la piscina.

# stratis pool destroy poolname

En este caso, la sintaxis será.

# stratis pool destroy my_pool_2

Puede verificar la lista de grupos nuevamente.

# stratis pool list

Finalmente, elimine las entradas en/etc/fstab para los sistemas de archivos.

Hemos llegado al final de la guía. En este tutorial, arrojamos luz sobre cómo puede instalar y usar Stratis para administrar el almacenamiento local en capas en RHEL. Esperamos que le haya resultado útil. Pruébalo y cuéntanos cómo te fue.