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:
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