Voorgesteld door Rode Hoed in RHEL 7.5 en later, VDO kort voor Virtuele Datum Optimizer is een technologie voor blokvirtualisatie die inline deduplicatie en compressie van gegevens op blokapparaatniveau biedt.
Het idee van deduplicatie is vrij eenvoudig: om kopieën van dubbele gegevens te verwijderen en er slechts één exemplaar over te houden. Wanneer een identiek bestand wordt toegevoegd aan een blokapparaat, wordt het gemarkeerd als een duplicaat en wordt in plaats daarvan naar het originele bestand verwezen. Door dit te doen, VDO helpt is om de ruimte van het blokvolume te besparen.
In deze tutorial leer je hoe je een VDO volume op een opslagapparaat op de RHEL 8 systeem.
Om te beginnen logt u in op uw server en werkt u uw RHEL de... gebruiken dnf commando.
$ sudo dnf-update -y.
Nadat de update van de pakketten en kernel is voltooid, gaat u verder en installeert u de VDO kernelmodules en afhankelijkheden met behulp van de opdracht.
$ sudo dnf installeer kmod-kvdo vdo.
Na een succesvolle installatie start, activeert en verifieert u de vdo demon.
$ sudo systemctl start vdo. $ sudo systemctl vdo inschakelen. $ sudo systemctl-status vdo.
Voordat u een maakt vdo volume, zorg er dan voor dat u een extra harde schijf op uw systeem heeft. In deze zelfstudie hebben we een extra volume toegevoegd xvdb
. Dit kan worden aangetoond door het uitvoeren van de lsblk-opdracht onderstaand.
$ lsblk.
Aan de output kun je duidelijk zien dat de tweede schijf een capaciteit heeft van 100 GB.
Nu zullen we een lege maken VDO volume aan /dev/xvdb
schijf.
$ sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G.
U zult de weergegeven fout tegenkomen.
Dit is een veelvoorkomende bug en de oplossing is om uw server eenvoudig opnieuw op te starten.
$ sudo opnieuw opstarten.
Bij de tweede proef wordt de opdracht uitgevoerd, waardoor een lege VDO volume op het apparaat /dev/xvdb
.
$ sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G.
Laten we de opdracht opsplitsen en de gebruikte optie bekijken:
De nieuwe VDO volume is aangemaakt op /dev/mapper/vdo1
gaan door de output die we in de vorige stap zagen. We kunnen de ls commando zoals getoond om bestandsrechten en eigendom te onderzoeken.
$ ls -l /dev/mapper/vdo1.
Gebruik voor het verkrijgen van meer inzichtelijke informatie de vdostats commando om statistieken op te halen over de grootte en het gebruik van het volume.
$ vdostats --hu.
De --hu
flag geeft de informatie weer in een voor mensen leesbaar formaat, d.w.z. een formaat dat veel gemakkelijker te lezen en te ontcijferen is. We kunnen attributen zoals de apparaatnaam, de grootte op de extra schijf, gebruikte en beschikbare ruimte als de %
gebruik.
Let er goed op dat de %
Opslaan wordt aangegeven als Niet van toepassing n.v.t).
Houd er ook rekening mee dat we al wat volumegebruik hebben 4.1G wat zich vertaalt naar 4% toch hebben we niets op de band geschreven. Waarom is dat? Dit komt omdat de universele deduplicatie al op de schijf is geschreven en dit is wat deduplicatie mogelijk maakt.
De vdostats commando kan worden gebruikt met de --uitgebreid
vlag om meer gedetailleerde informatie op te halen, zoals weergegeven:
$ sudo vdostats --verbose /dev/mapper/vdo1 | grep -B6 'besparingspercentage'
Wat u kunt zien, zijn in principe dezelfde gegevens als het vorige voorbeeld, maar in een ander formaat.
Nadat we voldoende inzichten van het volume hebben verkregen, moeten we het partitioneren en later een bestandssysteem maken zodat het als een normale schijf kan worden gebruikt.
Laten we een fysiek volume en volumegroep maken zoals weergegeven, voer de volgende opdrachten uit.
$ sudo pvcreate /dev/mapper/vdo1. $ sudo vgcreate vdo1vg /dev/mapper/vdo1.
Om de statistieken van de volumegroeprun weer te geven:
$ sudo vgweergave vdo1vg.
Nu gaan we 2 logische volumes van gelijke grootte maken, elk met een capaciteit van 50G.
$ sudo lvcreate -n vdo1v01 -L 50G vdo1vg. $ sudo lvcreate -n vdo1v02 -L 50G vdo1vg.
U kunt de statistieken van de nieuw gemaakte volumes later bekijken door de opdracht uit te voeren.
$ sudo lvs.
Gewoonlijk wordt, wanneer een bestandssysteem wordt gemaakt, een trimbewerking op het apparaat uitgevoerd. Dit is ongewenst in het geval van de VDO. Bij het formatteren met de mkfs commando, gebruik de -K
optie om het commando te instrueren om geen blokken weg te gooien tijdens het aanmaken van het bestandssysteem.
$ sudo mkfs.xfs -K /dev/vdo1vg/vdo1v01. $ sudo mkfs.xfs -K /dev/vdo1vg/vdo1v02.
Als u gebruik maakt van EXT$ bestandssysteem, gebruik de “-E nodiscard" Keuze.
Maak de koppelpunten voor het koppelen van de volumes:
$ sudo mkdir /data/v01. $ sudo mkdir /data/v02.
Monteer nu de bestandssystemen op hun aankoppelpunten zoals weergegeven.
$ sudo mount -o negeer /dev/vdo1vg/vdo1v01 /data/v01. $ sudo mount -o negeer /dev/vdo1vg/vdo1v02 /data/v02.
Wanneer u nu de VDO volume zult u merken dat de %
opslaan is veranderd in 99% wat best indrukwekkend is. Dit houdt in dat deduplicatie werkt zoals verwacht.
$ sudo vdostats --hu.
U kunt verder onderzoeken met behulp van de df -Th commando. In het onderste gedeelte zie je de bestandssystemen gemount op /data/v01
en /data/v02
respectievelijk.
$ df-hT.
In deze zelfstudie hebben we laten zien hoe u een VDO-volume kunt maken vanaf een extra opslagapparaat op RHEL 8. We gingen later door en demonstreerden hoe je meer volumes kunt maken en bestandssystemen van die volumes kunt maken.