rode Hoed

Gelaagde lokale opslag beheren met Stratis op RHEL

Gelaagde lokale opslag beheren met Stratis op RHEL
Stratis is een opslagoplossing voor lokaal beheer door het RedHat-team, geïntroduceerd met RHEL 8, waarmee systeembeheerders geavanceerde opslagfuncties kunnen configureren, zoals:

  1. Beheer op basis van zwembaden
  2. Thin provisioning
  3. Momentopnamen van het bestandssysteem
  4. Toezicht houden

Stratisd is de daemon achter Stratis en helpt bij het configureren van opslagcomponenten onder het XFS-bestandssysteem en het device-mapper-subsysteem. Op dit moment ondersteunt Stratis LVM logische volumes, harde schijven, SSD's, NVMe, en ISCI's opslagapparaten.

Laten we nu een duik nemen en een paar basistermen bekijken

  1. blockdev: Dit is een terminologie die verwijst naar blokapparaten.
  2. Zwembad: Een pool kan uit één of meerdere blokapparaten bestaan. De grootte van een stratis-pool is gelijk aan de som van de blokapparaten waaruit de pool bestaat.
  3. Bestandssysteem: Een bestandssysteem is een dun ingerichte laag waarvan de omvang toeneemt naarmate er meer informatie of gegevens worden toegevoegd. De grootte van een bestandssysteem wordt automatisch opgeschaald door Stratis naarmate de gegevens bijna net zo groot worden als het virtuele bestandssysteem.

Stratis bestaat uit:

  1. Stratisd-daemon: Een daemon waarmee een gebruiker blokapparaten kan beheren.
  2. Stratis-cli: Een opdrachtregelprogramma dat bij Stratis . wordt geleverd.

Stratis installeren op RHEL 8

Nadat we Stratis kort hebben geïntroduceerd, wat het doet en zijn componenten, laten we Stratis nu installeren op RHEL 8

Om Stratis op RHEL 8 te installeren, logt u in als rootgebruiker en voert u de opdracht uit:

# dnf installeer stratisd stratis-cli

Typ y wanneer daarom wordt gevraagd om door te gaan met de installatie. Als alles goed is gegaan, zou je de onderstaande output moeten kunnen krijgen die bevestigt dat alles goed is gegaan.

Voer de volgende opdracht uit om de installatie van de stratis-pakketten te bevestigen:

# rpm -q stratisd stratis-cli

Stratis-service starten op RHEL 8

Voer de opdracht uit om de Stratis-service te starten:

# systemctl enable --now stratisd

Controleer vervolgens de status van Stratis door de opdracht uit te voeren:

# systemctl status stratisd

Uit de bovenstaande output kunnen we opmaken dat Stratis actief is.

Een Stratis-pool maken

Voordat u begint met het maken van een Stratis-pool, moet u ervoor zorgen dat de blokapparaten op uw systeem minimaal 1 GB hebben. Bovendien moeten deze apparaten ontkoppeld en inactief zijn. Bovendien moet de stratisd-daemon actief zijn. in onze opstelling zijn er naast de primaire partitie 5 blokapparaten:

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

U kunt een glimp opvangen van de bestaande blokapparaten door de opdracht uit te voeren:

# lsblk

Het is ook cruciaal om ervoor te zorgen dat de blokapparaten geen bestaande partitietabel hebben.

Bevestig dit met de syntaxis:

# blkid -p /

Bijvoorbeeld

# blkid -p /dev/xvdb

Geen uitvoer houdt in dat er geen partitietabel bestaat op de blokapparaten. Als er echter een partitietabel op een van de apparaten bestaat, kunt u de partitie wissen met de opdracht:

# wipefs -a /

Een Stratis-pool maken op basis van één blokapparaat

U kunt een Stratis-pool maken van een enkel blokapparaat met behulp van de syntaxis:

# stratis pool maken  

Bijvoorbeeld om een ​​pool te maken pool_1 van het blokapparaat  /dev/xvdb rennen:

# stratis pool create pool_1 /dev/xvdb

Voer het volgende uit om de gemaakte pool weer te geven:

# stratis poollijst

Uit de bovenstaande output kunnen we duidelijk zien dat een nieuwe pool, pool_1 Is gemaakt.

Maak een Stratis Pool van meerdere blokapparaten

Gebruik de onderstaande syntaxis om alle apparaten op één regel weer te geven om een ​​pool van meerdere apparaten te maken

# stratis pool maken

Een pool maken van /dev/xvdc en  /dev/xvdd voer de opdracht uit:

# stratis pool create pool_2 /dev/xvdc /dev/xvdd/

Maak nogmaals een lijst van de beschikbare pools met behulp van de opdracht:

# stratis poollijst

Op dit moment zou u 2 zwembaden moeten hebben:  pool_1 en pool_2

Uit de bovenstaande uitvoer kunnen we duidelijk opmerken dat pool_2 twee keer zo groot is als pool_1 omdat het twee blokapparaten omvat, die elk een fysiek volume van 10 GB hebben.

Een bestandssysteem maken vanuit een pool

Vanuit een van de eerder gemaakte Stratis-pools kunt u een bestandssysteem maken met behulp van de onderstaande syntaxis:

# stratis fs create  

Om bijvoorbeeld een bestandssysteem te maken fs_1 van pool_1 voer de opdracht uit:

# stratis fs maak pool_1 fs_1

U kunt ook meer dan 1 bestandssysteem maken vanuit één pool. In de tweede pool zullen we 2 bestandssystemen maken: 

fs_2 
&fs_3
# stratis fs create pool_2 fs_2
# stratis fs create pool_2 fs_3

Voer nu uit om de nieuwe bestandssystemen weer te geven:

# stratis fs-lijst

Om bestandssystemen in een bepaalde pool weer te geven, gebruikt u de syntaxis

# stratis fs-lijst

Om bijvoorbeeld de bestandssystemen in pool_1 te bekijken, voert u de opdracht uit:

# stratis fs lijst pool_1

Voor pool_2 uitvoeren:

# stratis fs lijst pool_2

Zoals verwacht hebben we 2 bestandssystemen in de tweede pool.

Op dit punt, het uitvoeren van de  lsblk commando zal een uitvoer opleveren die vergelijkbaar is met die hieronder:

Hoe een Stratis-bestandssysteem te mounten

Om toegang te krijgen tot de bestandssystemen, moeten we ze eerst mounten. De eerste stap is het maken van aankoppelpunten voor elk van de bestandssystemen. Dit is samengevat in de onderstaande tabel

Bestandssysteem Koppelpunt
fs_1 /opslag
fs_2 /database
fs_3 /back-up

Maak dus het eerste koppelpunt voor het bestandssysteem in pool_1

# mkdir /opslag

Koppel vervolgens het bestandssysteem

# mount /Stratis/pool_1/fs_1  /storage

Volg dezelfde procedure om het tweede bestandssysteem te mounten:

# mkdir /database

Koppel het bestandssysteem:

# mount /stratis/pool_2/fs_2  /database

En tot slot voor het laatste bestandssysteem:

# mkdir /back-up

Koppel het bestandssysteem:

# mount /stratis/pool_2/fs_3  /backup

U kunt het bestaan ​​van de aankoppelpunten bevestigen met de opdracht:

# df -Th | grep stratis

Maak stratis-bestandssystemen persistent

De bestandssystemen die we zojuist hebben gemaakt, overleven een herstart niet. Om ze persistent te maken, moeten we ze toevoegen aan de /etc/fstab het dossier.

Laten we eerst de UUID van de bestandssystemen ophalen zoals getoond

# 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  /opslag
xfs standaard 0 0" | sudo tee -a /etc/fstab
# echo "UUID=ddfa4252-a9d6-4c10-8981-e7dbd56450ee  /database
xfs standaard 0 0" | sudo tee -a /etc/fstab
# echo "UUID=512bc0b7-182e-46ed-9fbd-d5be4d055fcf /back-up
xfs standaard 0 0" | sudo tee -a /etc/fstab

U kunt de toevoeging van de bestandssystemen aan de /etc/fstab zoals getoond:

Voer de opdracht uit om de wijzigingen door te voeren in het effect op het systeem:

# systemctl daemon-reload

Koppel vervolgens alle bestandssystemen

# mount -a

Een blokapparaat toevoegen aan een Stratis-pool

Voer de volgende opdracht uit om een ​​blokapparaat aan een bestaande Stratis-pool toe te voegen:

# stratis pool add-data

Bijvoorbeeld om het blokvolume toe te voegen  /dev/xvde naar  pool_1 voer de opdracht uit:

# stratis pool add-data pool_1 /dev/xvde

Controleer nu de maat van  pool_1

# stratis poollijst

Zoals waargenomen, de grootte van pool_1 is verdubbeld als gevolg van het toegevoegde blokapparaat.

Een Stratis-snapshot maken

Een stratis-bestandssysteem is een exacte kopie of replica van een ander Stratis-bestandssysteem. Het bevat dezelfde inhoud als het originele bestandssysteem. Een snapshot kan later echter worden gewijzigd en er zullen daarna verschillen bestaan ​​tussen de snapshot en het originele bestandssysteem.

Hier zijn een paar dingen die u ook moet weten:

  1. Een momentopname van een bestandssysteem is gewoon een ander replicabestandssysteem.
  2. Je hoeft geen bestandssysteem te mounten om er een snapshot van te kunnen maken.
  3. Een snapshot-bestandssysteem kan het originele bestandssysteem overleven van waaruit het is gemaakt

Gebruik de syntaxis om een ​​momentopname te maken:

# stratis fs momentopname

Om bijvoorbeeld een momentopname te maken met de naam snapshot_1 in pool_1 voer de opdracht uit

# stratis fs snapshot pool_1 fs_1 snapshot_1

Dit duurt ongeveer 30 seconden.

Voer het volgende uit om het maken van de momentopname te bevestigen:

# stratis bestandssysteemlijst

In dit geval is de opdracht:

# stratis bestandssysteem lijst pool_1

Bovendien kunt u het datumkenmerk (-$(datum +%Y-%m-%d) om gemakkelijk te identificeren wanneer de momentopname is gemaakt. Laten we nog een snapshot maken met behulp van de tweede pool.

# stratis fs snapshot pool_2 fs_2 snapshot_2-$(date +%Y-%m-%d)

Voer de opdracht uit om de nieuw gemaakte Stratis-snapshot weer te geven:

# stratis bestandssysteem lijst pool_2

Uit de bovenstaande uitvoer kunnen we een momentopname zien die is gemaakt in zwembad_2 met een datumlabel.

Hoe terug te keren naar een eerdere momentopname met behulp van een bestandssysteem

Om terug te keren naar een eerdere momentopname met behulp van een bestandssysteem, moet u eerst het oorspronkelijke bestandssysteem ontkoppelen en vernietigen.

# umount /stratis//bestandssysteem

Bijvoorbeeld in  zwembad_2  terugkeren naar snapshot_2 ontkoppel het bestandssysteem fs_2

# umount /stratis/pool_2/fs_2

Maak vervolgens een kopie van de momentopname van het oorspronkelijke bestandssysteem

# stratis bestandssysteem momentopname
snapshot fs-mountpoint

De opdracht zal zijn:

# stratis bestandssysteem snapshot pool_2 snapshot_2-2019-11-15 database

Koppel ten slotte de snapshot met behulp van het aankoppelpunt van het bestandssysteem

# mount /stratis/pool_2/fs_2 /database

Een Stratis-momentopname verwijderen

Om een ​​Stratis-snapshot te verwijderen, ontkoppelt u eerst de snapshot.

# umount /snapshot_mountpoint

De momentopname verwijderen die is gemaakt in zwembad_2, ontkoppel het aankoppelpunt zoals weergegeven

# umount /database

Ga vervolgens verder en vernietig de momentopname:

# stratis bestandssysteem vernietigen

De opdracht zal zijn:

# stratis bestandssysteem vernietig pool_2 snapshot_2-2019-11-15

Probeer nu de bestandssystemen op te sommen in pool_2. U zult merken dat de momentopname nu weg is.

# stratis bestandssysteem lijst pool_2

Een Stratis-bestandssysteem verwijderen

Om van een bestandssysteem af te komen, moet u eerst het bestandssysteem ontkoppelen met behulp van de onderstaande syntaxis:

# umount /stratis/pool/bestandssysteem

Bijvoorbeeld om het bestandssysteem te verwijderen fs_1 in pool_1, ontkoppel het eerst zoals weergegeven:

# umount /stratis/pool_1/fs_1

Vernietig vervolgens het bestandssysteem met behulp van de onderstaande syntaxis:

# stratis bestandssysteem vernietig pool fs

In ons scenario is de opdracht:

# stratis bestandssysteem vernietig pool_1 fs_1

Voer de opdracht uit om te bevestigen dat het bestandssysteem met succes is verwijderd:

# stratis bestandssysteem lijst pool_1

Zoals je kunt zien, bestaat het bestandssysteem niet meer.

Een Stratis-pool verwijderen

Laten we ten slotte eens kijken hoe u een Stratis-pool kunt verwijderen.

Om een ​​stratis-pool te verwijderen, moet u alle bestandssystemen en snapshots in de pool ontkoppelen en vernietigen, zoals we in de vorige subonderwerpen zagen.

Aangezien er nog een momentopname is op pool_1, gaan we deze eerst verwijderen door eerst het koppelpunt te verwijderen dat aan de momentopname is gekoppeld

# umount /opslag

Vernietig vervolgens het bestandssysteem.

# stratis bestandssysteem vernietig pool_1 snapshot_1

Nu de momentopname is verwijderd,  verwijdert u pool_1  met de opdracht

# stratis pool vernietig pool_1

Maak nu een lijst van de beschikbare zwembaden:

# stratis poollijst

Verwijderen zwembad_2 , laten we eerst de bestandssystemen opsommen

# stratis bestandssysteem lijst pool_2

Ontkoppel en vernietig de bestandssystemen zoals getoond

# umount /stratis/pool_2/fs_3
# stratis bestandssysteem vernietig pool_2 fs_3
# stratis bestandssysteem vernietig pool_2 database

Vernietig vervolgens het zwembad en maak een lijst van de zwembaden

# stratis pool vernietig pool_2
# stratis poollijst

Perfect ! alle zwembaden zijn nu weg. We zijn teruggegaan naar waar we begonnen ! U kunt nogmaals bevestigen door de vergrendelingsapparaten op te sommen met de opdracht:

en hoe je het kunt gebruiken om blokapparaten te beheren, snapshots, bestandssystemen en pools te maken en ze ook te verwijderen. Uw mening en feedback zijn van harte welkom.

Referenties:

  • https://toegang.rode Hoed.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_file_systems/managing-layered-local-storage-with-stratis_managing-file-systems
  • https://www.tecmin.com/install-stratis-to-manage-layered-local-storage-on-rhel/
Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...
Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...