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:
Per risalire al blockdevice associato al pool
/dev/mapper/vd01 /vdo1 xfs defaults,x-systemd.requires=vdo.service 0 0
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.
Un Pool può essere esteso aggiungendo un altro block device.
# stratis pool add-data mypool /dev/sdc
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
Creaimo un file sytem associato al pool (che automaticamente è formattato a XFS)
# stratis fs create mypool myfs1
# stratis fs
# mkdir /myfs1
# mount /dev/stratis/mypool/myfs1 /myfs1
# 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.
# 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