Ricerca nel sito web

Come installare Stratis per gestire l'archiviazione locale a più livelli su RHEL 8


Stratis è una delle nuove funzionalità fornite con la distribuzione RHEL 8. Stratis è una soluzione di gestione dello storage locale che si concentra sulla semplicità e sul miglioramento dell'usabilità, fornendo allo stesso tempo l'accesso a funzionalità di storage avanzate. Utilizza il file system XFS e ti garantisce l'accesso a funzionalità di archiviazione avanzate come:

  • Provisioning sottile
  • Istantanee del file system
  • Classificazione
  • Gestione basata sul pool
  • Monitoraggio

Fondamentalmente, Stratis è uno storage pool creato da uno o più dischi locali o partizioni del disco. Stratis aiuta un amministratore di sistema a impostare e gestire configurazioni di archiviazione complesse.

Prima di procedere oltre, diamo un'occhiata ad alcuni dei termini tecnici in cui ti imbatterai man mano che procediamo:

  • pool: un pool è composto da uno o più dispositivi a blocchi. La dimensione totale del pool è pari alla somma totale dei dispositivi a blocchi.
  • blockdev: come avrai intuito, questo si riferisce a dispositivi a blocchi come le partizioni del disco.
  • Filesystem: un filesystem è uno strato con provisioning limitato che non ha una dimensione fissa totale. La dimensione effettiva del filesystem aumenta man mano che vengono aggiunti dati. Stratis aumenta automaticamente la dimensione del file system man mano che la dimensione dei dati si avvicina alla dimensione virtuale del file system.

I dispositivi a blocco che puoi utilizzare con Stratis includono:

  1. Volumi logici LVM
  2. LUKS
  3. SSD (unità a stato solido)
  4. Multipercorso del mapping dei dispositivi
  5. iSCSI
  6. HDD (dischi rigidi)
  7. mdraid
  8. Dispositivi di archiviazione NVMe

Componenti software di Stratis

Stratis fornisce 2 utilità software:

  • Stratis-cli: questo è lo strumento da riga di comando fornito con Stratis.
  • Daemon Stratisd: questo è un demone che crea e gestisce dispositivi a blocchi e svolge un ruolo nel fornire un'API DBUS.

Come installare Stratis su RHEL 8

Dopo aver visto cos'è Stratis e definito alcune terminologie. Installiamo e configuriamo ora Stratis sulla distribuzione RHEL 8 (funziona anche su CentOS 8).

Installa Stratis su RHEL 8

Vediamo come installare Stratis sul tuo sistema RHEL 8, accedi come utente root ed esegui il comando.

dnf install stratisd stratis-cli

Per trovare ulteriori informazioni sui pacchetti installati eseguire il comando.

rpm -qi stratisd stratis-cli

Dopo aver installato con successo Stratis, avvia il servizio eseguendo il comando.

systemctl enable --now stratisd

Per verificare lo stato di Stratis, esegui il comando.

systemctl status stratisd

Crea un pool Stratis

Per creare un pool Stratis sono necessari i dispositivi a blocchi che non sono in uso o montati. Inoltre, si presuppone che il servizio Stratisd sia attivo e funzionante. Inoltre, i dispositivi a blocchi che utilizzerai devono avere una dimensione minima di 1 GB.

Sul nostro sistema RHEL 8, abbiamo quattro dispositivi a blocchi aggiuntivi: /dev/xvdb, /dev/xvdc, /dev/ xvdd, /dev/xvde. Per visualizzare i dispositivi a blocchi, eseguire il comando lsblk.

lsblk

Nessuno di questi dispositivi a blocchi dovrebbe avere una tabella delle partizioni. Puoi confermarlo usando il comando.

blkid -p /dev/xvdb

Se non ottieni alcun output, significa che i tuoi dispositivi a blocchi non hanno alcuna tabella delle partizioni residente su di essi. Tuttavia, nel caso in cui esista una tabella delle partizioni, puoi cancellarla utilizzando il comando:

wipefs -a /<device-path>

Crea un pool Stratis da un dispositivo a blocco

Puoi creare un pool Stratis da un dispositivo a blocco singolo utilizzando la sintassi.

stratis pool create <pool-name> <block-device>

Ad esempio, per creare un pool da /dev/xvdb esegui il comando.

stratis pool create my_pool_1 /dev/xvdb

Per confermare la corsa in piscina creata.

stratis pool list

Crea un pool Stratis da più dispositivi a blocchi

Per creare un pool da più dispositivi, utilizzare la sintassi seguente che elenca tutti i dispositivi su un'unica riga.

stratis pool create <pool_name> device-1 device-2 device-n

Per creare un pool da /dev/xvdc, /dev/xvdd e /dev/xvde esegui il comando.

stratis pool create my_pool_2 /dev/xvdc /dev/xvdd/ /dev/xvde

Ancora una volta, elenca i pool disponibili utilizzando il comando.

stratis pool list

A questo punto, dovresti avere 2 pool: my_pool_1 e my_pool_2.

Come puoi vedere sopra, lo spazio su disco occupato dal pool my_pool_2 è tre volte quello del primo pool che abbiamo creato da un solo dispositivo a blocchi con una memoria di 10GB.

Creare un filesystem da un pool

Dopo aver creato il tuo filesystem, puoi creare un filesystem da uno dei pool utilizzando la sintassi.

stratis fs create <poolname> <filesystemname>

Ad esempio, per creare filesystem-1 e filesystem-2 rispettivamente da my_pool_1 e my_pool_2 esegui i comandi:

stratis fs create my_pool_1 filesystem-1
stratis fs create my_pool_2 filesystem-2

Per visualizzare i filesystem appena creati, esegui il comando.

stratis fs list

Per restringere i risultati di un file system a un pool, esegui il comando:

stratis fs list <poolname>

Ad esempio, per controllare il filesystem in my_pool_2 esegui il comando.

stratis fs list my_pool_2

Ora, se esegui il comando lsblk, l'output dovrebbe essere in qualche modo simile all'output di esempio riportato di seguito.

lsblk

Montaggio di un filesystem Stratis

Ora monteremo i filesystem esistenti per potervi accedere. Innanzitutto, crea i punti di montaggio.

Per il filesystem nel primo pool, esegui il comando:

mkdir /data
mount /stratis/my_pool_1/filesystem-1 /data

Per il secondo filesystem nel secondo pool, esegui il comando.

mkdir /block
mount /stratis/my_pool_2/filesystem-2 /block

Per verificare l'esistenza dei punti di montaggio correnti eseguire il comando df:

df -Th | grep  stratis

Perfetto! Possiamo vedere chiaramente che i nostri punti di montaggio sono presenti.

Monta persistentemente i filesystem Stratis

I punti di montaggio appena creati non possono sopravvivere al riavvio. Per renderli persistenti, ottieni prima l'UUID di ciascuno dei filesystem:

blkid -p /stratis/my_pool_1/filesystem-1
blkid -p /stratis/my_pool_2/filesystem-2

Ora procedi e copia le opzioni dell'UUID e del punto di montaggio su /etc/fstab come mostrato.

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

Affinché il sistema possa registrare la nuova configurazione eseguire il comando:

systemctl daemon-reload

Per verificare che la configurazione funzioni come previsto, montare i filesystem.

mount /data
mount /block

Rimozione di un filesystem Stratis

Per rimuovere un filesystem è necessario, prima di tutto, smontare il filesystem come mostrato.

umount /mount-point

In questo caso, avremo.

umount /data

Per distruggere il filesystem, utilizzare la sintassi:

stratis filesystem destroy <poolname> <filesystem-name>

Quindi, avremo:

stratis filesystem destroy my_pool_1 filesystem-1

Per confermare la rimozione del filesystem, impartire il comando.

stratis filesystem list my_pool_1

Dall'output, possiamo vedere chiaramente che il filesystem associato a my_pool_1 è stato eliminato.

Aggiunta di un disco a un pool Stratis esistente

Puoi aggiungere un disco a un pool esistente utilizzando il comando:

stratis pool add-data <poolname> /<devicepath>

Ad esempio, per aggiungere un disco aggiuntivo /dev/xvdf a my_pool_1, esegui il comando:

stratis pool add-data my_pool_1 /dev/xvdf

Tieni presente che la dimensione di my_pool_1 è raddoppiata dopo aver aggiunto il volume extra.

Crea istantanee Stratis

Uno snapshot è una lettura con provisioning ridotto e scrive una copia di un file system in un determinato momento.

Per creare uno snapshot, esegui il comando:

stratis fs snapshot <poolname> <fsname> <snapshotname>

In questo caso il comando sarà:

stratis fs snapshot my_pool_2 filesystem-2 mysnapshot

Puoi aggiungere l'attributo dati -$ (date +%Y-%m-%d) all'istantanea e aggiungere il tag data come mostrato nello screenshot seguente.

Per verificare la creazione dello snapshot eseguire il comando:

stratis filesystem list <poolname>

In questo caso il comando sarà:

stratis filesystem list my_pool_2

Ripristino di un'istantanea precedente utilizzando un file system

Per ripristinare un filesystem Stratis su uno snapshot creato in precedenza, innanzitutto smontare e distruggere il filesystem originale.

umount /stratis/<poolname>/filesystem

Nel nostro scenario, questo sarà.


umount /stratis/my_pool_2/filesystem-2

Quindi crea una copia dello snapshot utilizzando il file system originale:

stratis filesystem snapshot <poolname> filesystem-snapshot filesystem

Il comando sarà:

stratis filesystem snapshot my_pool_2 mysnapshot-2019-10-24 block

Infine, monta lo snapshot.

mount /stratis/my-pool/my-fs mount-point

Rimozione di un'istantanea Stratis

Per rimuovere lo snapshot, smontare innanzitutto lo snapshot.

unmount /stratis/my_pool_2/mysnapshot-2019-10-24

Successivamente, procedi e distruggi lo snapshot:

stratis filesystem destroy my_pool_2 mysnapshot-2019-10-24

Rimozione di un pool Stratis

Per rimuovere un pool Stratis, seguire i semplici passaggi seguenti.

1. Elenca i file system esistenti nel pool.

stratis filesystem list <poolname>

2. Successivamente, smonta tutti i file system nel pool.

umount /stratis//filesystem-1
umount /stratis//filesystem-2
umount /stratis//filesystem-3

3. Distruggi i file system.

stratis filesystem destroy <poolname> fs-1 fs-2

4. E poi sbarazzati della piscina.

stratis pool destroy poolname

In questo caso, la sintassi sarà.

stratis pool destroy my_pool_2

È possibile verificare nuovamente l'elenco dei pool.

stratis pool list

Infine, rimuovi le voci in /etc/fstab per i filesystem.

Siamo arrivati alla fine della guida. In questo tutorial facciamo luce su come installare e utilizzare Stratis per gestire l'archiviazione locale a più livelli su RHEL. Ci auguriamo che tu lo abbia trovato utile. Provatelo e fateci sapere come è andata.