Come gestire l'archiviazione locale a strati con Stratis su RHEL 8

Come gestire l'archiviazione locale a strati con Stratis su RHEL 8
Stratis è una soluzione di archiviazione di gestione locale del team Redhat introdotto con RHEL 8 che consente agli amministratori di sistema di configurare funzionalità di archiviazione avanzata come:
  1. Gestione basata su piscina
  2. Thin provisioning
  3. Inapshot del file system
  4. Monitoraggio

Stratisd è il daemon dietro Stratis e aiuta a configurare i componenti di archiviazione con il filesystem del filesystem XFS e del dispositivo. Al momento, Stratis supporta Volumi logici LVM, dischi fissi, SSD, Nvme, E Iscis dispositivi di memoria.

Ora, facciamo un tuffo e guardiamo alcuni termini chiave di base

  1. blockdev: Questa è una terminologia che si riferisce ai dispositivi di blocco.
  2. Piscina: Un pool può comprendere un singolo o più dispositivi a blocchi. La dimensione di una piscina di Stratis sarà equivalente alla somma dei dispositivi a blocchi che costituiscono il pool.
  3. Filesystem: Un filesystem è un livello sottilmente provocato dalla cui dimensione cresce man mano che vengono aggiunte ulteriori informazioni o dati. La dimensione di un filesystem viene ridimensionata automaticamente da Stratis man mano che i dati crescono quasi alla dimensione del file system virtuale.

Stratis è costituito da:

  1. Daemon Stratisd: Un demone che consente a un utente di gestire i dispositivi di blocco.
  2. Stratis-cli: Un'utilità della linea di comando che viene fornita con Stratis.

Installazione di Stratis su RHEL 8

Avendo brevemente introdotto Stratis, cosa fa e i suoi componenti, ora installiamo Stratis su RHEL 8

Per installare Stratis su RHEL 8, accedere come utente root ed eseguire il comando:

# DNF Installa Stratisd Stratis-cli

Quando richiesto, digitare Y per procedere con l'installazione. Se tutto è andato bene, dovresti essere in grado di ottenere l'output sotto che conferma che tutto è andato bene.

Per confermare l'installazione dei pacchetti Stratis, eseguire il comando:

# rpm -q stratisd stratis -cli

Avvio del servizio Stratis su RHEL 8

Per avviare il servizio Stratis, eseguire il comando:

# SystemCtl Abilita -NOW STRATISD

Quindi, verificare lo stato di Stratis, eseguendo il comando:

# SystemCtl Stato Stratisd

Dall'output sopra, possiamo osservare che Stratis è attiva e funzionante.

Creare una piscina di Stratis

Prima di iniziare con la creazione di un pool di stratis, assicurarsi che i dispositivi di blocco sul sistema abbiano un minimo di 1 GB. Inoltre, questi dispositivi devono essere non montati e inattivi. Inoltre, il demone Stratisd deve essere in esecuzione. Nella nostra configurazione, ci sono 5 dispositivi a blocchi oltre alla partizione primaria:

  1. /dev/xvdb
  2. /dev/xvdc
  3. /dev/xvdd
  4. /dev/xvde
  5. /dev/xvdf

Puoi dare un'occhiata ai dispositivi di blocco esistenti eseguendo il comando:

# LSBLK

Inoltre, è fondamentale garantire che i dispositivi di blocco non abbiano una tabella di partizione esistente.

Conferma questo usando la sintassi:

# blkid -p /

Per esempio

# blkid -p /dev /xvdb

Nessun output implica che non esiste alcuna tabella di partizione sui dispositivi di blocco. Tuttavia, nel caso in cui una tabella di partizione esista su uno dei dispositivi, è possibile spazzare via la partizione usando il comando:

# wipefs -a /

Creazione di un pool di Stratis da un dispositivo a blocchi

È possibile creare un pool di Stratis da un dispositivo a blocco singolo utilizzando la sintassi:

# pool di stratis crea

Ad esempio per creare un pool pool_1 Dal dispositivo di blocco /dev/xvdb correre:

# Stratis Pool Crea pool_1 /dev /xvdb

Per elencare il pool creato, eseguire:

# Elenco del pool di Stratis

Dall'output sopra, possiamo chiaramente vedere che un nuovo pool, pool_1 è stato creato.

Crea un pool di Stratis da più dispositivi a blocchi

Per creare un pool da più dispositivi, utilizzare la sintassi seguente elencando tutti i dispositivi su una riga

# pool di stratis crea

Per creare una piscina da /dev/xvdc E /dev/xvdd Esegui il comando:

# Stratis pool crea pool_2/dev/xvdc/dev/xvdd/

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

# Elenco del pool di Stratis

A questo punto, dovresti avere 2 piscine: pool_1 e pool_2

Dall'output sopra, possiamo notare chiaramente che pool_2 è il doppio delle dimensioni di pool_1 perché comprende due dispositivi a blocchi, ognuno dei quali ha un volume fisico di 10 GB.

Creazione di un filesystem da un pool

Da uno dei pool Stratis precedentemente creati, è possibile creare un filesystem utilizzando la sintassi di seguito:

# Stratis fs crea

Ad esempio, per creare un file system fs_1 da pool_1 eseguire il comando:

# Stratis FS Crea Pool_1 FS_1

Inoltre, puoi creare più di 1 file system da un pool. Nel secondo pool, creeremo 2 file system:

fs_2
& fs_3
# Stratis FS Crea Pool_2 FS_2
# Stratis FS Crea Pool_2 FS_3

Ora, per visualizzare i nuovi filesystem, eseguire:

# Elenco FS Stratis

Per elencare i filesystem in un determinato pool, utilizzare la sintassi

# Elenco FS Stratis

Ad esempio, per visualizzare i file system esistenti in pool_1, eseguire il comando:

# Stratis FS Elenco Pool_1

Per pool_2 Run:

# Stratis FS Elenco Pool_2

Come previsto, abbiamo 2 filesystem nel secondo pool.

A questo punto, eseguendo il lsblk Il comando produrrà output simile a quello seguente:

Come montare un filesystem Stratis

Per accedere ai filesystem, dobbiamo, prima di tutto, montarli. Il primo passo sarà quello di creare punti di montaggio per ciascuno dei filesystem. Questo è riassunto nella tabella seguente

Filesystem Punto di montaggio
fs_1 /magazzinaggio
fs_2 /Banca dati
fs_3 /backup

Quindi, crea il primo punto di montaggio per il filesystem in pool_1

# mkdir /archiviazione

Successivamente, montare il file system

# Mount /Stratis /Pool_1 /FS_1 /Storage

Per montare il secondo system, seguire la stessa procedura:

# mkdir /database

Montare il file system:

# Mount /Stratis /pool_2 /fs_2 /database

E infine per l'ultimo filesystem:

# mkdir /backup

Montare il file system:

# Mount /Stratis /pool_2 /fs_3 /backup

È possibile confermare l'esistenza dei punti di montaggio usando il comando:

# df -th | Grep Stratis

Rendi persistenti i filesystem di Stratis

I filesystem che abbiamo appena creato non sopravviveranno a un riavvio. Per renderli persistenti, dobbiamo aggiungerli al /etc/fstab file.

Innanzitutto, recuperiamo l'UUID dei filesystem come mostrato

# blkid -p/stratis/pool_1/fs_1
# blkid -p/stratis/pool_2/fs_2
# blkid -p/stratis/pool_2/fs_3
# echo "uuid = 9161da55-6c4b-4761-9da9-1b3999945964 /Storage
XFS impostazione predefinita 0 0 "| sudo tee -a /etc /fstab
# echo "uuid = ddfa4252-a9d6-4c10-8981-e7dbd56450ee /database
XFS impostazione predefinita 0 0 "| sudo tee -a /etc /fstab
# echo "uuid = 512bc0b7-182e-46ed-9fbd-d5be4d055fcf /backup
XFS impostazione predefinita 0 0 "| sudo tee -a /etc /fstab

È possibile confermare l'aggiunta dei filesystem al file /etc/fstab come mostrato:

Per le modifiche ad avere effetto nell'effetto sul sistema, eseguire il comando:

# SystemCtl Daemon-Reload

Quindi montare tutti i file system

# Mount -a

Aggiunta di un dispositivo a blocchi a un pool di Stratis

Per aggiungere un dispositivo a blocchi a un pool Stratis esistente, eseguire il comando:

# Stratis Pool Add-Data

Ad esempio per aggiungere il volume del blocco /dev/xvde A pool_1 Esegui il comando:

# Stratis Pool Add-Data Pool_1 /Dev /XVDE

Ora controlla le dimensioni di pool_1

# Elenco del pool di Stratis

Come osservato, la dimensione di pool_1 è raddoppiato a seguito del dispositivo di blocco aggiunto.

Creazione di un'istantanea di Stratis

Un filesystem Stratis è una copia o una replica esatta di un altro filesystem Stratis. Contiene lo stesso contenuto del file system originale. Tuttavia, un'istantanea può successivamente essere modificata e successivamente esisterà differenze tra l'istantanea e il filesystem originale.

Ecco alcune cose che dovresti sapere anche:

  1. Un'istantanea di un file system è semplicemente un altro file system replica.
  2. Non è necessario montare un filesystem per poter crearne un'istantanea.
  3. Un filesystem snapshot può sopravvivere al filesystem originale da cui è stato creato

Per creare un'istantanea, utilizzare la sintassi:

# Stratis FS Snapshot

Ad esempio, per creare un'istantanea chiamata Snapshot_1 In pool_1 Esegui il comando

# Stratis FS Snapshot Pool_1 FS_1 Snapshot_1

Questo richiederà circa 30 secondi.

Per confermare la creazione dell'istantanea, eseguire:

# Elenco del filesystem Stratis

In questo caso, il comando sarà:

# Elenco del filesystem Stratis Pool_1

Inoltre, è possibile aggiungere l'attributo della data (-$ (data +%y-%m-%d) per identificare facilmente quando è stata creata l'istantanea. Crea un'altra istantanea usando il secondo pool.

# Stratis FS Snapshot Pool_2 FS_2 Snapshot_2-$ (data +%y-%m-%d)

Per elencare il problema Stratis Stratis di recente creazione: il comando:

# Elenco del filesystem Stratis Pool_2

Dall'output sopra, possiamo vedere un'istantanea creata in pool_2 con un tag da appuntamento.

Come tornare a un'istantanea precedente utilizzando un filesystem

Per tornare a un'istantanea precedente utilizzando un filesystem, è necessario prima sconcertare e distruggere il filesystem originale.

# umount /stratis //filesystem

Ad esempio, in pool_2 per tornare a Snapshot_2 Smaffica il file system fs_2

# umount/stratis/pool_2/fs_2

Successivamente, crea una copia dell'istantanea dal filesystem originale

# istantanea del filesystem Stratis
Snapshot FS-Mountpoint

Il comando sarà:

# Stratis filesystem snapshot pool_2 snapshot_2-2019-11-15 database

Infine, montare l'istantanea utilizzando il punto di montaggio del file system

# Mount /Stratis /pool_2 /fs_2 /database

Rimozione di un'istantanea di Stratis

Per rimuovere un'istantanea di Stratis, prima di tutto, sconvolta l'istantanea.

# umount /snapshot_mountpoint

Per rimuovere l'istantanea creata in pool_2, Scongono il mountpoint come mostrato

# umount /database

Quindi, procedi e distruggi l'istantanea:

# Stratis Filesystem Distruggi

Il comando sarà:

# Stratis Filesystem Distruggi Pool_2 Snapshot_2-2019-11-15

Ora prova a elencare i filesystem in pool_2. Noterai che l'istantanea ora è sparita.

# Elenco del filesystem Stratis Pool_2

Rimozione di un filesystem Stratis

Per sbarazzarsi di un filesystem, prima sgraziare il filesystem utilizzando la sintassi di seguito:

# umount/stratis/pool/filesystem

Ad esempio per rimuovere il filesystem fs_1 In pool_1, Prima sconvolgerlo come mostrato:

# umount/stratis/pool_1/fs_1

Quindi, distruggi il file system usando la sintassi di seguito:

# Stratis Filesystem Distruggi il pool FS

Nel nostro scenario, il comando sarà:

# Stratis Filesystem Distruggi pool_1 fs_1

Per confermare che il file system è stato rimosso correttamente, eseguire il comando:

# Elenco del filesystem Stratis Pool_1

Come puoi osservare, il filesystem non esiste più.

Rimozione di una piscina Stratis

Infine, vediamo come puoi rimuovere un pool di stratis.

Per rimuovere un pool di Stratis, è necessario sconvolgere e distruggere qualsiasi filesystem e istantanea nel pool, come abbiamo visto nei precedenti argomenti secondari.

Dal momento che è rimasta un'istantanea su pool_1, rimuoviamo per la prima volta rimuovendo prima il punto di montaggio associato all'istantanea

# umount /archiviazione

Successivamente, distruggi il file system.

# Stratis filesystem distruggi pool_1 snapshot_1

Con l'istantanea ora rimossa, rimuovi pool_1 usando il comando

# Stratis Pool Distruggi Pool_1

Ora elenca i pool disponibili:

# Elenco del pool di Stratis

Rimuovere pool_2 , Prima elenchiamo i filesystems

# Elenco del filesystem Stratis Pool_2

Sconvolgere e distruggere i filesystem come mostrato

# umount/stratis/pool_2/fs_3
# Stratis Filesystem Distruggi pool_2 fs_3
# Stratis Filesystem Distruggi il database Pool_2

Quindi, distruggi la piscina ed elenca le piscine

# Stratis Pool Distruggi Pool_2
# Elenco del pool di Stratis

Perfetto ! Tutte le piscine sono sparite ora. Siamo tornati da dove abbiamo iniziato ! È possibile confermare ancora una volta elencando i dispositivi di blocco utilizzando il comando:

e come puoi usarlo per gestire i dispositivi di blocco, creare istantanee, filesystem e pool e rimuoverli anche. I tuoi pensieri e feedback sono i benvenuti.