Almacenamiento con Stratis en Linux

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Stratis es una nueva opción de almacenamiento en Linux RedHat 8 basada en pools. Un pool puede estar formado por uno o varios discos que podemos utilizar para crear filesystems y snapshots de los filesystems.

Si lo necesitamos, podemos aumentar el espacio disponible en el pool añadiendo un nuevo disco sin interrupción del servicio.

Instalación de Stratis en Linux RedHat 8 o en CentOS 8

Instalaremos los paquetes de Stratis con el siguiente comando:

[[email protected] ~]# dnf install -y stratisd stratis-cli

[[email protected] ~]# rpm -qa |grep -i stratis
stratisd-2.3.0-2.el8.x86_64
stratis-cli-2.3.0-3.el8.noarch
[[email protected] ~]#

Una vez instalado, procederemos a arrancar el servicio:



[[email protected] ~]# systemctl enable stratisd
[[email protected] ~]# systemctl start stratisd
[[email protected] ~]# systemctl status stratisd
● stratisd.service - Stratis daemon
   Loaded: loaded (/usr/lib/systemd/system/stratisd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2021-08-06 07:53:19 CEST; 2min 34s ago
     Docs: man:stratisd(8)
 Main PID: 988 (stratisd)
    Tasks: 1 (limit: 14088)
   Memory: 916.0K
   CGroup: /system.slice/stratisd.service
           └─988 /usr/libexec/stratisd --log-level debug

Aug 06 07:53:18 server1 systemd[1]: Starting Stratis daemon...
Aug 06 07:53:18 server1 stratisd[988]: [2021-08-06T05:53:18Z INFO  libstratis::stratis::run] stratis daemon version 2.3.0 started
Aug 06 07:53:18 server1 stratisd[988]: [2021-08-06T05:53:18Z INFO  libstratis::stratis::run] Using StratEngine
Aug 06 07:53:18 server1 stratisd[988]: [2021-08-06T05:53:18Z INFO  libstratis::engine::strat_engine::liminal::identify] Beginning initial search for Stratis block devices
Aug 06 07:53:18 server1 stratisd[988]: [2021-08-06T05:53:18Z INFO  libstratis::stratis::dbus_support] D-Bus API is available
Aug 06 07:53:19 server1 systemd[1]: Started Stratis daemon.
[[email protected] ~]# 

Creación de una estructura de almacenamiento con Stratis

Para este ejemplo, vamos a utilizar los dos discos que podemos ver a continuación:

Rebajas
Western Digital My Book Disco Duro Externo de Sobremesa de 6 TB ,3.5", USB 3.0, Negro
  • Connexion USB 3.0, compatible con USB 2.0
  • Hasta 8 TB de capacidad
Disk /dev/sdb: 1 GiB, 1073741824 bytes, 2097152 sectors
Disk /dev/sdc: 5 GiB, 5368709120 bytes, 10485760 sectors

Creación de un pool con Stratis

Lo primero que vamos a hacer va a ser crear el pool, que es la estructura básica de alamcenamiento sobre la que, posteriormente, crearemos tantos filesystems como queramos:

[[email protected] ~]# stratis pool create pooltest /dev/sdc
[[email protected] ~]# 

Añadir un nuevo disco al pool de Stratis

En este caso, solamente hemos añadido un disco. Si quisiéramos ampliar el pool con un nuevo disco, lo haríamos de la siguiente manera:

[[email protected] ~]# stratis pool add-data pooltest /dev/sdb
[[email protected] ~]# 

Ahora comprobamos el estado del pool:

[[email protected] ~]# stratis blockdev list 
Pool Name   Device Node   Physical Size   Tier
pooltest    /dev/sdb              1 GiB   Data
pooltest    /dev/sdc              5 GiB   Data
[[email protected] ~]# 

[[email protected] ~]# stratis pool list 
Name                     Total Physical   Properties
pooltest   6 GiB / 41.63 MiB / 5.96 GiB      ~Ca,~Cr
[[email protected] ~]# 

Si quisiéramos añadir un nuevo disco para utilizarlo como caché dentro de Stratis, el comando sería el siguiente:

stratis pool add-cache pooltest /dev/sdXXX

Creación de un filesystem XFS en Stratis

Ahora que tenemos el pool creado, podemos crear un filesystem para que podamos almacenar nuestros datos:

[[email protected] ~]# stratis filesystem create pooltest fstest
[[email protected] ~]# stratis filesystem list
Pool Name   Name     Used      Created             Device                         UUID                            
pooltest    fstest   546 MiB   Aug 06 2021 08:17   /dev/stratis/pooltest/fstest   66c99d677a8c42b0b31a5715fe253add
[[email protected] ~]# 

Configuramos fstab para montar nuestro filesystem de Stratis con el arranque del sistema y lo montamos:

[[email protected] ~]# tail -1 /etc/fstab 
/dev/stratis/pooltest/fstest /stratistest xfs	defaults,x-systemd.requires=stratisd.service 0 0
[[email protected] ~]# mount /stratistest/
[[email protected] ~]# df -hP /stratistest/
Filesystem                                                                                       Size  Used Avail Use% Mounted on
/dev/mapper/stratis-1-40bd108b659a4c9ebffe7f2abde8519d-thin-fs-66c99d677a8c42b0b31a5715fe253add  1.0T  7.2G 1017G   1% /stratistest
[[email protected] ~]# 

Comprobamos que podemos escribir correctamente en el filesystem:

[[email protected] ~]# cd /stratistest/
[[email protected] stratistest]# echo test > test.txt
[[email protected] stratistest]# ls -la
total 8
drwxr-xr-x   2 root root   22 Aug  6 08:24 .
dr-xr-xr-x. 22 root root 4096 Aug  6 08:18 ..
-rw-r--r--   1 root root    5 Aug  6 08:24 test.txt
[[email protected] stratistest]# 

Renombrar pools y filesystems de Stratis

Renombrar un pool de Stratis

[[email protected] ~]# stratis pool rename pooltest pooltest2
[[email protected] ~]# stratis pool list
Name                      Total Physical   Properties
pooltest2   6 GiB / 41.63 MiB / 5.96 GiB      ~Ca,~Cr
[[email protected] ~]# 

Renombrar un filesystems de Stratis

Tenemos que especificar el nombre del pool al que pertenece el filesystem, tal y como podemos observar a continuación:

[[email protected] ~]# stratis filesystem rename pooltest fstest fstest2
[[email protected] ~]# stratis filesystem list
Pool Name   Name      Used      Created             Device                          UUID                            
pooltest    fstest2   546 MiB   Aug 06 2021 08:17   /dev/stratis/pooltest/fstest2   66c99d677a8c42b0b31a5715fe253add
[[email protected] ~]# 

Eliminar el pool y el filesystem de Stratis

[[email protected] ~]# stratis filesystem destroy pooltest  fstest2
[[email protected] ~]# stratis pool destroy pooltest 
[[email protected] ~]# 

Mover datos de un disco de Stratis a otro

Stratis es un nuevo sistema almacenamiento de datos en Linux pero todavía no está lo suficientemente maduro para utilizarlo en entornos profesonales para realizar según que tareas.

Por ejemplo, si queremos mover datos de un disco a otro nuevo no es posible hacerlo todavía (en una migración de cabina, por ejemplo). En Stratis, todavía no existe el comando equivalente en LVM «pvmove».

Eliminar discos de un pool de Stratis

Esta función tampoco se ha implementado todavía en Stratis, lo que supone un problema, por ejemplo, en caso de avería hardware de un disco o si queremos eliminar uno por temas de costes.

Así se indica en la propia documentación oficial de RedHat: https://access.redhat.com/solutions/5041771

Until now as of RHEL8.0 and 8.1 there is no option to remove a block device from the stratis pool. There are commands to create Stratis Pool and destroy to delete the pool. However, removing a block device such as a disk or multipath LUN from the pool is not possible. This feature is not available as of now in RHEL 8

RedHat

To get this functionality a user will have to use either hardware RAID, software RAID, or LVM below Stratis.

RedHat

Seguro que RedHat no tardará en implementar estas mejoras.

Te podría interesar

VDO – Un sistema de almacenamiento con deduplicación y compresión de datos

Hosting SSD

¿Te ha gustado? Compártelo

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email
About Author

Contenido Relacionado

Artículos Recientes

Deja un comentario