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:

  • Thin provisioning
  • File system snapshots
  • Tiering
  • Pool-based management
  • Monitoring

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:

  • pool: A pool is made up of one or more block devices. The total size of the pool is equal to the sum total of the block devices.
  • blockdev: As you might have guessed it this refers to block devices such as disk partitions.
  • Filesystem: A filesystem is a thinly provisioned layer which does not come as a total fixed size. The filesystem’s actual size grows as data is added. Stratis automatically grows the size of the filesystem as data size nears the virtual size of the file system.

Los dispositivos de bloque que puede usar con Stratis incluyen:

  1. LVM Logical Volumes
  2. LUKS
  3. SSDs (Solid State Drives)
  4. Device Mapper Multipath
  5. iSCSI
  6. HDDs (Hard Disk Drives)
  7. mdraid
  8. NVMe storage devices

Stratis proporciona 2 utilidades de software:

  • Stratis-cli: This is the command-line tool that ships with Stratis.
  • Stratisd daemon: This is a daemon that creates and manages block devices and plays a role in providing a DBUS API.

Cómo instalar Stratis en RHEL 8

Habiendo analizado lo que es Stratis y definido algunas terminologías. Instalemos y configuremos ahora 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 raíz 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 supone 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 desde un dispositivo de un solo bloque usando 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 disco duro ocupado por el grupo my_pool_2 es u200bu200btres veces mayor que el del primer grupo que creamos a partir de un solo dispositivo de bloque con una memoria de 10 GB.

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 ha sido 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 utilizando 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. Destruye 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.