- Beheer op basis van zwembaden
- Thin provisioning
- Momentopnamen van het bestandssysteem
- 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
- blockdev: Dit is een terminologie die verwijst naar blokapparaten.
- 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.
- 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:
- Stratisd-daemon: Een daemon waarmee een gebruiker blokapparaten kan beheren.
- 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 stratisdControleer 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:
- /dev/xvdb
- /dev/xvdc
- /dev/xvdd
- /dev/xvde
- /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 makenBijvoorbeeld om een pool te maken pool_1 van het blokapparaat /dev/xvdb rennen:
# stratis pool create pool_1 /dev/xvdbVoer 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 makenEen 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 poollijstOp 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 createOm bijvoorbeeld een bestandssysteem te maken fs_1 van pool_1 voer de opdracht uit:
# stratis fs maak pool_1 fs_1U 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-lijstOm 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 /opslagKoppel vervolgens het bestandssysteem
# mount /Stratis/pool_1/fs_1 /storage
Volg dezelfde procedure om het tweede bestandssysteem te mounten:
# mkdir /databaseKoppel het bestandssysteem:
# mount /stratis/pool_2/fs_2 /database
En tot slot voor het laatste bestandssysteem:
# mkdir /back-upKoppel 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-reloadKoppel 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-dataBijvoorbeeld om het blokvolume toe te voegen /dev/xvde naar pool_1 voer de opdracht uit:
# stratis pool add-data pool_1 /dev/xvdeControleer 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:
- Een momentopname van een bestandssysteem is gewoon een ander replicabestandssysteem.
- Je hoeft geen bestandssysteem te mounten om er een snapshot van te kunnen maken.
- Een snapshot-bestandssysteem kan het originele bestandssysteem overleven van waaruit het is gemaakt
Gebruik de syntaxis om een momentopname te maken:
# stratis fs momentopnameOm 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_1Dit duurt ongeveer 30 seconden.
Voer het volgende uit om het maken van de momentopname te bevestigen:
# stratis bestandssysteemlijstIn 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/Bijvoorbeeld in zwembad_2 terugkeren naar snapshot_2 ontkoppel het bestandssysteem fs_2
# umount /stratis/pool_2/fs_2Maak vervolgens een kopie van de momentopname van het oorspronkelijke bestandssysteem
# stratis bestandssysteem momentopnamesnapshot 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_mountpointDe momentopname verwijderen die is gemaakt in zwembad_2, ontkoppel het aankoppelpunt zoals weergegeven
# umount /databaseGa vervolgens verder en vernietig de momentopname:
# stratis bestandssysteem vernietigenDe opdracht zal zijn:
# stratis bestandssysteem vernietig pool_2 snapshot_2-2019-11-15Probeer 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/bestandssysteemBijvoorbeeld om het bestandssysteem te verwijderen fs_1 in pool_1, ontkoppel het eerst zoals weergegeven:
# umount /stratis/pool_1/fs_1Vernietig vervolgens het bestandssysteem met behulp van de onderstaande syntaxis:
# stratis bestandssysteem vernietig pool fsIn 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 /opslagVernietig vervolgens het bestandssysteem.
# stratis bestandssysteem vernietig pool_1 snapshot_1Nu 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/