Hvordan installere Stratis for å administrere lagdelt lokal lagring på RHEL 8


Stratis er en av de nye funksjonene som leveres med RHEL 8-distribusjon. Stratis er en lokal lagringsadministrasjonsløsning som fokuserer på enkelhet og forbedret brukervennlighet, samtidig som den gir tilgang til avanserte lagringsfunksjoner. Den bruker XFS-filsystemet og gir deg tilgang til avanserte lagringsfunksjoner som:

  • Tynn proviantering
  • Øyeblikksbilder av filsystemet
  • Tiering
  • Bassengbasert ledelse
  • Overvåkning

I utgangspunktet er Stratis et lagringsbasseng som er opprettet fra én eller flere lokale disker eller diskpartisjoner. Stratis hjelper en systemadministrator med å sette opp og administrere komplekse lagringskonfigurasjoner.

Før vi går videre, la oss ta en titt på noen av de tekniske termene du er nødt til å støte på mens vi går videre:

  • pool: En pool består av én eller flere blokkenheter. Den totale størrelsen på bassenget er lik summen av blokkenhetene.
  • blockdev: Som du kanskje har gjettet det, refererer dette til blokkeringsenheter som diskpartisjoner.
  • Filsystem: Et filsystem er et tynt klargjort lag som ikke kommer som en total fast størrelse. Filsystemets faktiske størrelse vokser etter hvert som data legges til. Stratis øker automatisk størrelsen på filsystemet når datastørrelsen nærmer seg den virtuelle størrelsen på filsystemet.

Blokker enheter som du kan bruke med Stratis inkluderer:

  1. LVM logiske volumer
  2. LUKS
  3. SSD-er (Solid State-stasjoner)
  4. Device Mapper Multipath
  5. iSCSI
  6. HDD-er (harddisker)
  7. mdraid
  8. NVMe-lagringsenheter

Programvarekomponenter av Stratis

Stratis tilbyr 2 programvareverktøy:

  • Stratis-cli: Dette er kommandolinjeverktøyet som leveres med Stratis.
  • Stratisd-demon: Dette er en demon som oppretter og administrerer blokkenheter og spiller en rolle i å tilby en DBUS API.

Hvordan installere Stratis på RHEL 8

Etter å ha sett på hva Stratis er og definert noen få terminologier. La oss nå installere og konfigurere StratisRHEL 8-distribusjon (fungerer også på CentOS 8).

Installer Stratis på RHEL 8

La oss se hvordan du kan installere StratisRHEL 8-systemet ditt, logge på som root-bruker og kjør kommandoen.

dnf install stratisd stratis-cli

For å finne mer informasjon om de installerte pakkene, kjør kommandoen.

rpm -qi stratisd stratis-cli

Etter vellykket installasjon av Stratis starter du tjenesten ved å kjøre kommandoen.

systemctl enable --now stratisd

For å sjekke statusen til Stratis, kjør kommandoen.

systemctl status stratisd

Lag en Stratis Pool

For å lage en Stratis-pool trenger du blokkenheter som ikke er i bruk eller montert. Det antas også at Stratisd-tjenesten er oppe og går. I tillegg må blokkeringsenhetene du skal bruke være minst 1 GB store.

På vårt RHEL 8-system har vi fire ekstra blokkenheter: /dev/xvdb, /dev/xvdc, /dev/ xvdd, /dev/xvde. For å vise blokkenhetene, kjør kommandoen lsblk.

lsblk

Ingen av disse blokkenhetene skal ha en partisjonstabell. Du kan bekrefte dette ved å bruke kommandoen.

blkid -p /dev/xvdb

Hvis du ikke får noen utgang, betyr det at blokkenhetene dine ikke har noen partisjonstabell på dem. Men i tilfelle det eksisterer en partisjonstabell, kan du tørke den ved å bruke kommandoen:

wipefs -a /<device-path>

Lag en Stratis Pool fra One Block Device

Du kan opprette en Stratis-pool fra en enkelt blokkenhet ved å bruke syntaksen.

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

For å lage en pool fra /dev/xvdb for eksempel, kjør kommandoen.

stratis pool create my_pool_1 /dev/xvdb

For å bekrefte den opprettede bassengkjøringen.

stratis pool list

Lag en Stratis-pool fra flere blokkenheter

For å opprette en pool fra flere enheter, bruk syntaksen nedenfor som viser alle enhetene på én linje.

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

For å lage en pool fra /dev/xvdc, /dev/xvdd og /dev/xvde kjør kommandoen.

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

Nok en gang, liste opp bassengene som er tilgjengelige ved å bruke kommandoen.

stratis pool list

På dette tidspunktet bør du ha 2 bassenger: my_pool_1 og my_pool_2.

Som du kan se ovenfor, er harddiskplassen som opptas av pool my_pool_2 tre ganger så stor som den første poolen som vi opprettet fra bare én blokkenhet med et minne på 10 GB.

Opprett et filsystem fra en pool

Etter å ha opprettet filsystemet ditt, kan du opprette et filsystem fra en av bassengene ved å bruke syntaksen.

stratis fs create <poolname> <filesystemname>

For å lage for eksempel filsystem-1 og filsystem-2 fra henholdsvis my_pool_1 og my_pool_2, kjør kommandoer:

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

For å se de nyopprettede filsystemene, kjør kommandoen.

stratis fs list

For å begrense resultatene av et filsystem til ett basseng, kjør kommandoen:

stratis fs list <poolname>

For å sjekke filsystemet i my_pool_2, kjør for eksempel kommandoen.

stratis fs list my_pool_2

Nå, hvis du kjører lsblk-kommandoen, bør utgangen være noe lik prøveutgangen nedenfor.

lsblk

Montering av et Stratis-filsystem

Vi skal nå montere de eksisterende filsystemene for å få tilgang til dem. Lag først monteringspunktene.

For filsystemet i det første bassenget, kjør kommandoen:

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

For det andre filsystemet i det andre bassenget, kjør kommandoen.

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

For å bekrefte eksistensen av de gjeldende monteringspunktene, kjør df-kommandoen:

df -Th | grep  stratis

Perfekt! Vi kan tydelig se at monteringspunktene våre er tilstede.

Monter vedvarende Stratis-filsystemer

Monteringspunktene som vi nettopp har laget kan ikke overleve en omstart. For å gjøre dem vedvarende, skaff først UUID for hvert av filsystemene:

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

Fortsett nå og kopier UUID-ene og monteringspunktalternativene til /etc/fstab som vist.

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

For at systemet skal registrere den nye konfigurasjonen, kjør kommandoen:

systemctl daemon-reload

Monter filsystemene for å bekrefte at konfigurasjonen fungerer som forventet.

mount /data
mount /block

Fjerne et Stratis-filsystem

For å fjerne et filsystem, må du først og fremst avmontere filsystemet som vist.

umount /mount-point

I dette tilfellet skal vi ha.

umount /data

For å ødelegge filsystemet, bruk syntaksen:

stratis filesystem destroy <poolname> <filesystem-name>

Så vi skal ha:

stratis filesystem destroy my_pool_1 filesystem-1

For å bekrefte fjerningen av filsystemet, utfør kommandoen.

stratis filesystem list my_pool_1

Fra utdataene kan vi tydelig se at filsystemet knyttet til my_pool_1 er slettet.

Legge til en disk i en eksisterende Stratis-pool

Du kan legge til en disk i et eksisterende basseng ved å bruke kommandoen:

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

For for eksempel å legge til en ekstra disk /dev/xvdf, til my_pool_1, kjør kommandoen:

stratis pool add-data my_pool_1 /dev/xvdf

Legg merke til at størrelsen på my_pool_1 har dobbel størrelse etter å ha lagt til det ekstra volumet.

Lag Stratis-øyeblikksbilder

Et øyeblikksbilde er en tynt klargjort lesing og skriver en kopi av et filsystem på et gitt tidspunkt.

For å lage et øyeblikksbilde, kjør kommandoen:

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

I dette tilfellet vil kommandoen være:

stratis fs snapshot my_pool_2 filesystem-2 mysnapshot

Du kan legge til dataattributtet -$ (dato +%Y-%m-%d) til øyeblikksbildet og legge til dato-taggen som vist på skjermbildet nedenfor.

For å bekrefte opprettelsen av øyeblikksbildet, kjør kommandoen:

stratis filesystem list <poolname>

I dette tilfellet vil kommandoen være:

stratis filesystem list my_pool_2

Gå tilbake til et tidligere øyeblikksbilde ved hjelp av et filsystem

For å tilbakestille et Stratis-filsystem til et tidligere opprettet øyeblikksbilde, må du først avmontere og ødelegge det originale filsystemet.

umount /stratis/<poolname>/filesystem

I vårt scenario vil dette være.


umount /stratis/my_pool_2/filesystem-2

Lag deretter en kopi av øyeblikksbildet ved å bruke det originale filsystemet:

stratis filesystem snapshot <poolname> filesystem-snapshot filesystem

Kommandoen vil være:

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

Monter til slutt øyeblikksbildet.

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

Fjerne et Stratis Snapshot

For å fjerne øyeblikksbildet, demonter først øyeblikksbildet.

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

Fortsett deretter og ødelegge øyeblikksbildet:

stratis filesystem destroy my_pool_2 mysnapshot-2019-10-24

Fjerne en Stratis Pool

For å fjerne et Stratis-basseng, følg de enkle trinnene nedenfor.

1. List opp filsystemene som finnes i bassenget.

stratis filesystem list <poolname>

2. Deretter avmonterer du alle filsystemene i bassenget.

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

3. Ødelegg filsystemene.

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

4. Og bli kvitt bassenget.

stratis pool destroy poolname

I dette tilfellet vil syntaksen være.

stratis pool destroy my_pool_2

Du kan verifisere bassenglisten på nytt.

stratis pool list

Til slutt fjerner du oppføringene i /etc/fstab for filsystemene.

Vi har kommet til slutten av guiden. I denne opplæringen belyser vi hvordan du kan installere og bruke Stratis til å administrere lagdelt lokal lagring på RHEL. Vi håper du fant det nyttig. Gi det en sjanse og fortell oss hvordan det gikk.