STRATIS

Stratis è un volume manager file system  introdotto con rhel8.
Utilizza sotto un file system di tipo XFS. E' costruita su qualsiasi block device inclusi lvm device.

Ha le seguenti caratteristiche:
- thin provisioning - tecnologia che consiste nello spostare data blocks in posti contigui così da eliminare gli spazi vuoti
- snapshots
- cache tier
- programmatic Api
- monitoring and repair

Architettura:
1) blockdev
2) pool: è un insieme di blockdev come volum group
3) File system

Stratis crea un Pool a partire da uno o più block devices (blockdev) e poi crea una directory /dev/stratis/mypool per ogni pool.
La directory contiene dei link ai device che rappresentano i file system del pool.
Quindi un pool può contenere uno o più file system e il singolo file system sembra occupare esclusivamente l'intera dimensione del pool.

Installiamo il pacchetto e abilitamolo.
# yum install -y stratis-cli stratisd
Avviamo il servizio e abilitiamo lo start automatico al boot del sistema.
# systemctl enable --now stratisd

Installiamo le componenti
Creiamo il pool
# startis pool create mypool /dev/sdb 
oppure
startis pool create mypool /dev/sdc1 /dev/sdc2 


Per visaulizzare il pool usare il comando
# stratis pool

Creaimo un file sytem associato al pool (che automaticamente è formattato a XFS)
# stratis fs create mypool myfs1
# stratis fs


Creiamo la directory e montiamo manualmente il pool
# mkdir /myfs1
# mount /dev/stratis/mypool/myfs1 /myfs1

Per risalire al blockdevice associato al pool
# stratis blockdev list mypool


Con il comando lsblk vediamo sono stati creati diversi block device  sotto /dev/sdb e pertanto non si può montare stratis specificando i block device ma il valore UUID.


Estrarre  il valore UUID da
# blkid
e modifichiamo /etc/fstab per rendere consistente stratis.
UUID=xxxxx  /myfs1  xfs  defaults,x-systemd.requires=stratisd.service  0  0
Vedere "man vdo" per risalire alla stringa di sopra sostiuendo gli opportuni valori:
/dev/mapper/vd01 /vdo1 xfs     defaults,x-systemd.requires=vdo.service 0 0
  
echo "UUID=xxxxx  /myfs1  xfs  defaults,x-systemd.requires=stratisd.service  0  0" >> /etc/fstab


Effettuare il reboot del server per verificare che stratis sia montato ancora.

Il comando "df -h" visualizza una dimensione totale di 1TB di cui 7.2GB usata. Non sono dati realistici perchè stratis utilla il thin provisioning.


Per monitorare la dimensione reale del file system usare 
# stratis filesystem

Un Pool può essere esteso aggiungendo un altro block device. 
# stratis pool add-data mypool /dev/sdc

Verifica se è stato aggiunto il block device:
# stratis blockdev pool mypool


Rinominare un pool
# stratis pool rename mypool pool1

Verifica
#stratis pool list

Rinominare il file system myfs1

# stratis filesystem rename pool1 myfs1 fspool1



Uno snapshot è un file system che può essere montato e dopo la creazione può essere modificato e non è collegato al file system da cui è stato creato. I cambiamente sul file system originario non hanno effetto su quello nuovo creato con lo snapshot.

# stratis fs snapshot pool1 fspool1 fspool1-snapshot

All'interno del pool1 abbiamo due nuovi file system.


Montare il nuovo file system su una directory /myfs2
# mount /dev/stratis/pool1/fspool1-shanpshot /myfs2

Verifica, vediamo la lista dei block device
# lsblk


Per cancellare uno snapshot
# stratis filesytem destroy pool1 fspool1-snapshot

Per tornare al file system originale salvato con lo snapshot, occorre smontare il file system originale
# umount /myfs1
Cancellare il file system originale
# stratis filesystem destroy pool1 fspool1
Verifica
# stratis fs list


Caricare il file system dello snapshot sotto la directory /myfs1
# stratis filesystem snapshot pool1 fspool1-snapshot fspool1


# mount -a
Legge il file /etc/fstab
che contine UUID del block device originale.
Verificare che ci siano gli stessi file 
#cd /myfs1

A questo punto possiamo cancellare lo snapshot
# umount /myfs2
# stratis filesystem destroy pool1 fspool1-snapshot


Per cancellare un pool stratis 
cancellare il file system
# stratis filesystem destroy pool1 fspool1
cancellare il pool
# stratis pool destroy pool1


Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database