- Gestione basata su pool
- Provisioning sottile
- Istantanee del file system
- Monitoraggio
Stratisd è il demone dietro Stratis e aiuta nella configurazione dei componenti di archiviazione nel filesystem XFS e nel sottosistema di mappatura dei dispositivi. Al momento Stratis supporta Volumi logici LVM, dischi fissi, SSD, NVMe, e ISCI dispositivi di memoria.
Ora, facciamo un tuffo e diamo un'occhiata ad alcuni termini chiave di base
- blockdev: Questa è una terminologia che si riferisce ai dispositivi a blocchi.
- Piscina: Un pool può comprendere uno o più dispositivi a blocchi. La dimensione di una piscina in stratis sarà equivalente alla somma dei dispositivi a blocchi che compongono la piscina.
- File system: un filesystem è un livello di provisioning ridotto le cui dimensioni crescono man mano che vengono aggiunte più informazioni o dati. La dimensione di un file system viene scalata automaticamente da Stratis man mano che i dati crescono quasi fino alla dimensione del file system virtuale.
Stratis è costituito da:
- demone Stratisd: un demone che consente a un utente di gestire i dispositivi a blocchi.
- Strati-cli: Un'utilità da riga di comando fornita con Stratis.
Installazione di Stratis su RHEL 8
Dopo aver presentato brevemente Stratis, cosa fa e i suoi componenti, installiamo ora Stratis su RHEL 8
Per installare Stratis su RHEL 8, accedi come utente root ed esegui il comando:
# dnf install stratisd stratis-cli
Quando richiesto, digita y per procedere con l'installazione. Se tutto è andato bene, dovresti essere in grado di ottenere l'output di seguito 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 enable --now stratisdSuccessivamente, verifica lo stato di Stratis, eseguendo il comando:
# systemctl status stratisd
Dall'output sopra, possiamo osservare che Stratis è attivo e funzionante.
Creare una piscina Stratis
Prima di iniziare con la creazione di un pool Stratis, assicurati che i dispositivi a blocchi sul tuo sistema abbiano un minimo di 1 GB. Inoltre, questi dispositivi devono essere smontati e inattivi. Inoltre, il demone stratisd deve essere in esecuzione. nella nostra configurazione, ci sono 5 dispositivi a blocchi oltre alla partizione primaria:
- /dev/xvdb
- /dev/xvdc
- /dev/xvdd
- /dev/xvde
- /dev/xvdf
Puoi dare un'occhiata ai dispositivi a blocchi esistenti eseguendo il comando:
# lsblk
Inoltre, è fondamentale assicurarsi che i dispositivi a blocchi non dispongano di una tabella delle partizioni esistente.
Confermalo utilizzando la sintassi:
# blkid -p /Per esempio
# blkid -p /dev/xvdb
Nessun output implica che non esiste una tabella delle partizioni sui dispositivi a blocchi. Tuttavia, nel caso in cui esista una tabella delle partizioni su uno dei dispositivi, è possibile cancellare la partizione utilizzando il comando:
# wipef -a /Creazione di un pool Stratis da un dispositivo a blocchi
È possibile creare un pool Stratis da un dispositivo a blocco singolo utilizzando la sintassi:
# piscina stratis createAd esempio per creare una piscina piscina_1 dal dispositivo di blocco /dev/xvdb correre:
# stratis pool create pool_1 /dev/xvdbPer elencare il pool creato, eseguire:
# lista piscine stratis
Dall'output sopra, possiamo vedere chiaramente che un nuovo pool, piscina_1 è stato creato.
Crea un pool Stratis da più dispositivi a blocchi
Per creare un pool da più dispositivi, usa la sintassi di seguito che elenca tutti i dispositivi su una riga
# piscina stratis createPer creare una piscina da /dev/xvdc e /dev/xvdd eseguire il comando:
# stratis pool create pool_2 /dev/xvdc /dev/xvdd/Ancora una volta, elenca i pool disponibili utilizzando il comando:
# lista piscine stratisA questo punto dovresti avere 2 pool: piscina_1 e piscina_2
Dall'output sopra, possiamo chiaramente notare che pool_2 è il doppio 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 creati in precedenza, è possibile creare un filesystem utilizzando la sintassi seguente:
# stratis fs createAd esempio, per creare un file system fs_1 a partire dal piscina_1 eseguire il comando:
# stratis fs create pool_1 fs_1Inoltre, puoi creare più di 1 file system da un pool. Nel secondo pool, creeremo 2 file system:
fs_2&fs_3
# stratis fs create pool_2 fs_2
# stratis fs create pool_2 fs_3
Ora, per visualizzare i nuovi filesystem, esegui:
# lista fs strati
Per elencare i filesystem in un dato pool, usa la sintassi
# lista stratis fsAd esempio, per visualizzare i file system esistenti in pool_1, eseguire il comando:
# stratis fs list pool_1
Per l'esecuzione pool_2:
# stratis fs list pool_2
Come previsto, abbiamo 2 filesystem nel secondo pool.
A questo punto, eseguendo il lsblk comando produrrà un output simile a quello seguente:
Come montare un filesystem Stratis
Per accedere ai filesystem, dobbiamo prima di tutto montarli. Il primo passo sarà creare punti di montaggio per ciascuno dei filesystem. Questo è riassunto nella tabella seguente
File system | Punto di montaggio |
fs_1 | /Conservazione |
fs_2 | /Banca dati |
fs_3 | /backup |
Quindi, crea il primo punto di montaggio per il filesystem in piscina_1
# mkdir /storageQuindi, monta il file system
# mount /Stratis/pool_1/fs_1 /storage
Per montare il secondo filesystem, segui la stessa procedura:
# mkdir /databaseMontare il file system:
# mount /stratis/pool_2/fs_2 /database
E infine per l'ultimo filesystem:
# mkdir /backupMontare il file system:
# mount /stratis/pool_2/fs_3 /backup
Puoi confermare l'esistenza dei punti di montaggio usando il comando:
# df -Th | grep strati
Rendi persistenti i filesystem stratis
I filesystem che abbiamo appena creato non sopravviveranno al riavvio. Per renderli persistenti, dobbiamo aggiungerli al /etc/fstab file.
Per prima cosa, 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 defaults 0 0" | sudo tee -a /etc/fstab
# echo "UUID=ddfa4252-a9d6-4c10-8981-e7dbd56450ee /database
xfs defaults 0 0" | sudo tee -a /etc/fstab
# echo "UUID=512bc0b7-182e-46ed-9fbd-d5be4d055fcf /backup
xfs defaults 0 0" | sudo tee -a /etc/fstab
È possibile confermare l'aggiunta dei filesystem al /etc/fstab come mostrato:
Affinché le modifiche abbiano effetto sul sistema, eseguire il comando:
# systemctl daemon-reloadQuindi monta tutti i file system
# mount -a
Aggiunta di un dispositivo a blocchi a un pool Stratis
Per aggiungere un dispositivo a blocchi a un pool Stratis esistente, eseguire il comando:
# dati aggiuntivi piscina stratisAd esempio per aggiungere il volume del blocco /dev/xvde per piscina_1 eseguire il comando:
# pool di dati aggiuntivi pool stratis_1 /dev/xvdeOra controlla la dimensione di piscina_1
# lista piscine stratis
Come osservato, la dimensione di piscina_1 è raddoppiato a causa del dispositivo di blocco aggiunto.
Creazione di un'istantanea Stratis
Un filesystem Stratis è una copia esatta o replica di un altro filesystem Stratis. Contiene lo stesso contenuto del file system originale. Tuttavia, un'istantanea può essere modificata in seguito e da allora in poi esisteranno differenze tra l'istantanea e il filesystem originale.
Ecco alcune cose che dovresti sapere anche:
- Un'istantanea di un file system è semplicemente un altro file system di replica.
- Non è necessario montare un filesystem per poter creare un'istantanea da esso from.
- Un filesystem snapshot può sopravvivere al filesystem originale da cui è stato creato
Per creare uno snapshot, usa la sintassi:
# istantanea stratis fsAd esempio, per creare uno snapshot chiamato istantanea_1 nel piscina_1 eseguire il comando
# stratis fs snapshot pool_1 fs_1 snapshot_1Ci vorranno circa 30 secondi.
Per confermare la creazione dello snapshot, esegui:
# lista del filesystem stratisIn questo caso il comando sarà:
# elenco filesystem stratis pool_1
Inoltre, puoi aggiungere l'attributo data (-$(data +%Y-%m-%d) per identificare facilmente quando è stata creata l'istantanea. Creiamo un'altra istantanea usando il secondo pool.
# pool snapshot stratis fs_2 fs_2 snapshot_2-$(data +%Y-%m-%d)Per elencare l'istantanea Stratis appena creata emettere il comando:
# lista del filesystem stratis pool_2
Dall'output sopra, possiamo vedere un'istantanea creata in piscina_2 con un cartellino della data.
Come ripristinare un'istantanea precedente utilizzando un filesystem
Per ripristinare uno snapshot precedente utilizzando un filesystem, devi prima smontare e distruggere il filesystem originale.
# smonta /strati/Ad esempio, in piscina_2 tornare a istantanea_2 smontare il file system fs_2
# umount /stratis/pool_2/fs_2Quindi, crea una copia dello snapshot dal filesystem originale
# snapshot del filesystem stratissnapshot fs-mountpoint
Il comando sarà:
# snapshot del filesystem stratis pool_2 snapshot_2-2019-11-15 database
Infine, monta 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 uno snapshot Stratis, prima di tutto smonta lo snapshot.
# smonta /snapshot_mountpointPer rimuovere l'istantanea creata in piscina_2, smontare il punto di montaggio come mostrato
# smonta /databaseQuindi, procedi e distruggi l'istantanea:
# distruzione del filesystem stratisIl comando sarà:
# Il filesystem stratis distrugge pool_2 snapshot_2-2019-11-15Ora prova a elencare i filesystem in pool_2. Noterai che l'istantanea è ora sparita.
# lista del filesystem stratis pool_2
Rimozione di un filesystem Stratis
Per sbarazzarsi di un filesystem, smontare prima il filesystem usando la sintassi seguente:
# umount /stratis/pool/filesystemAd esempio per rimuovere il filesystem fs_1 nel piscina_1, prima smontalo come mostrato:
# umount /stratis/pool_1/fs_1Quindi, distruggi il file system utilizzando la sintassi seguente:
# Il filesystem stratis distrugge il pool fsNel nostro scenario, il comando sarà:
# Il filesystem stratis distrugge pool_1 fs_1
Per confermare che il file system è stato rimosso correttamente, esegui il comando:
# elenco filesystem stratis pool_1
Come puoi osservare, il filesystem non esiste più.
Rimozione di un pool Stratis
Infine, vediamo come rimuovere un pool Stratis.
Per rimuovere un pool stratis, è necessario smontare e distruggere qualsiasi filesystem e snapshot nel pool come abbiamo visto nei precedenti sottoargomenti.
Poiché è rimasto uno snapshot su pool_1, lo rimuoveremo prima rimuovendo il punto di montaggio associato allo snapshot
# smonta /archiviazioneQuindi, distruggi il file system.
# filesystem stratis distrugge pool_1 snapshot_1Con lo snapshot ora rimosso, rimuovi pool_1 utilizzando il comando
# piscina stratis distruggi piscina_1
Ora elenca le piscine disponibili:
# lista piscine stratis
Rimuovere piscina_2 , elenchiamo prima i filesystem
# lista del filesystem stratis pool_2
Smonta e distruggi i filesystem come mostrato
# umount /stratis/pool_2/fs_3# Il filesystem stratis distrugge pool_2 fs_3
# Il filesystem stratis distrugge il database pool_2
Quindi, distruggi il pool ed elenca i pool
# piscina stratis distruggi piscina_2# lista piscine stratis
Perfetto ! tutte le piscine sono sparite ora. Siamo tornati al punto di partenza ! Puoi confermare ancora una volta elencando i dispositivi di blocco usando il comando:
e come puoi usarlo per gestire i dispositivi a blocchi, creare istantanee, filesystem e pool e anche rimuoverli. I tuoi pensieri e feedback sono i benvenuti.
Riferimenti:
- https://accesso.cappello rosso.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_file_systems/managing-layered-local-storage-with-stratis_managing-file-systems
- https://www.tecnica.com/install-stratis-to-manage-layered-local-storage-on-rhel/