Logisch volumebeheer heeft geweldige functies zoals snapshots en Thin Provisioning. Eerder in (Deel – III) hebben we gezien hoe we een snapshot kunnen maken van het logische volume. Hier in dit artikel zullen we zien hoe u thin Provisioning-volumes in LVM instelt.
Thin Provisioning wordt in lvm gebruikt voor het maken van virtuele schijven in een thin pool. Laten we aannemen dat ik een 15GB opslagcapaciteit in mijn server. Ik heb al 2 klanten die elk 5 GB opslagruimte hebben. U bent de derde klant, u heeft om 5GB opslagruimte gevraagd. Destijds gebruiken we om de hele 5 GB (dik volume) te leveren, maar u kunt 2 GB van die 5 GB opslagruimte gebruiken en 3 GB is gratis, die u later kunt opvullen.
Maar wat we bij thin provisioning doen, is dat we een thin pool definiëren binnen een van de grote volumegroepen en de thin volumes binnen die thin pool definiëren. Dus alle bestanden die u schrijft, worden opgeslagen en uw opslagruimte wordt weergegeven als 5 GB. Maar de volledige 5 GB zal niet de hele schijf toewijzen. Hetzelfde proces zal ook voor andere klanten worden uitgevoerd. Zoals ik al zei, er zijn 2 klanten en jij bent mijn 3e klant.
Laten we dus aannemen hoeveel GB ik in totaal aan klanten heb toegewezen? Totaal 15 GB was al ingevuld, als iemand naar me toe komt en om 5 GB vraagt, kan ik dat dan geven? Het antwoord is "Ja", hier in thin provisioning kan ik 5 GB geven voor de 4e client, ook al heb ik 15 GB toegewezen.
Waarschuwing: Vanaf 15 GB, als we meer dan 15 GB inrichten, wordt dit Overprovisioning genoemd.
Ik heb u 5 GB verstrekt, maar u mag slechts 2 GB gebruiken en de andere 3 GB is gratis. In Thick Provisioning kunnen we dit niet doen, omdat het in eerste instantie de hele ruimte zelf toewijst.
In Thin Provisioning, als ik 5 GB voor je definieer, zal het niet de hele schijfruimte toewijzen tijdens het definiëren van een volume, het zal groeien tot 5 GB volgens je gegevensschrijven, ik hoop dat je het hebt! hetzelfde als u, ook andere clients zullen niet de volledige volumes gebruiken, dus er is een kans om 5 GB toe te voegen aan een nieuwe client, dit wordt Provisioning genoemd.
Maar het is verplicht om elke volumegroei te monitoren, anders loopt het uit op een ramp. Terwijl over Provisioning wordt gedaan als alle 4 clients de gegevens slecht naar schijf schrijven, kunt u een probleem tegenkomen omdat het uw 15 GB zal vullen en overlopen om de volumes te laten vallen.
Laten we het praktisch doen om de dunne pool en dunne volumes in te stellen. Eerst hebben we een grote volumegroep nodig. Hier maak ik een Volumegroep met 15GB voor demonstratiedoeleinden. Maak nu een lijst van de volumegroep met behulp van de onderstaande opdracht.
# vgcreate -s 32M vg_thin /dev/sdb1.
Controleer vervolgens de grootte van de beschikbaarheid van logische volumes voordat u de thin pool en volumes maakt.
# vg. # lvs.
We kunnen zien dat er alleen standaard logische volumes zijn voor het bestandssysteem en dat swap aanwezig is in de bovenstaande lvs-uitvoer.
Gebruik de volgende opdracht om een Thin pool voor 15 GB in volumegroep (vg_thin) te maken.
# lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin.
Voor meer details kunnen we het commando 'lvdisplay' gebruiken.
# lvdisplay vg_thin/tp_tecmint_pool.
Hier hebben we geen virtuele thin volumes gemaakt in deze thin-pool. In de afbeelding kunnen we Toegewezen poolgegevens zien: 0.00%.
Nu kunnen we dunne volumes binnen de dunne pool definiëren met behulp van de opdracht 'lvcreate' met optie -V (virtueel).
# lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool.
Ik heb een Thin virtueel volume gemaakt met de naam thin_vol_client1 binnen in de tp_tecmint_pool in mijn vg_thin volume groep. Maak nu een lijst van de logische volumes met behulp van de onderstaande opdracht.
# lvs
Zojuist hebben we het dunne volume hierboven gemaakt, daarom zijn er geen gegevens die worden weergegeven, d.w.z. 0,00%M.
Prima, laat me creëren 2 meer Thin volumes voor andere 2 clients. Hier zie je nu dat er zijn 3 dunne volumes gemaakt onder het zwembad (tp_tecmint_pool). Dus vanaf dit punt kwamen we te weten dat ik de hele pool van 15 GB heb gebruikt.
Maak nu koppelpunten en koppel deze drie dunne volumes en kopieer er enkele bestanden in met behulp van onderstaande opdrachten.
# mkdir -p /mnt/client1 /mnt/client2 /mnt/client3.
Maak een lijst van de gemaakte mappen.
# ls -l /mnt/
Maak het bestandssysteem voor deze aangemaakte thin volumes met de opdracht 'mkfs'.
# mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3.
Koppel alle drie de clientvolumes aan het gemaakte koppelpunt met de opdracht 'mount'.
# mount /dev/vg_thin/thin_vol_client1 /mnt/client1/ && mount /dev/vg_thin/thin_vol_client2 /mnt/client2/ && mount /dev/vg_thin/thin_vol_client3 /mnt/client3/
Maak een lijst van de koppelpunten met de opdracht 'df'.
# df-h.
Hier kunnen we zien dat alle 3 de clientvolumes zijn aangekoppeld en daarom alleen 3% van gegevens worden gebruikt in elk klantenvolume. Laten we dus wat meer bestanden toevoegen aan alle 3 koppelpunten van mijn bureaublad om wat ruimte op te vullen.
Maak nu een lijst van het koppelpunt en bekijk de ruimte die in elke thin volumes wordt gebruikt en vermeld de thin pool om de grootte te zien die in de pool wordt gebruikt.
# df-h. # lvdisplay vg_thin/tp_tecmint_pool.
De bovenstaande opdracht toont de drie mount-pints samen met hun maten in percentage.
13% van de data gebruikt van 5 GB voor client1. 29% van de data gebruikt van 5 GB voor client2. 49% van de data gebruikt van 5 GB voor client3.
Terwijl we in de dunne poel kijken, kunnen we alleen zien 30% van de gegevens is volledig geschreven. Dit is het totaal van de drie virtuele volumes van de clients.
Nu de 4e klant kwam naar me toe en vroeg om 5 GB opslagruimte. Kan ik geven? Omdat ik al 15 GB Pool aan 3 clients had gegeven. Is het mogelijk om 5GB meer te geven aan een andere klant? Ja, het is mogelijk om te geven. Dit is wanneer we gebruiken Overprovisioning, wat betekent dat ik de ruimte meer geef dan ik heb.
Laat me 5 GB maken voor de 4e client en de grootte verifiëren.
# lvcreate -V 5G --thin -n thin_vol_client4 vg_thin/tp_tecmint_pool. # lvs.
Ik heb slechts 15 GB in pool, maar ik heb 4 volumes in thin-pool gemaakt tot 20 GB. Als alle vier de klanten gegevens naar hun volumes gaan schrijven om het tempo op te vullen, zullen we op dat moment te maken krijgen met kritieke situaties, zo niet, dan is er geen probleem.
Nu heb ik het bestandssysteem gemaakt in thin_vol_client4, vervolgens gemonteerd onder /mnt/client4 en kopieer er enkele bestanden in.
# lvs.
We kunnen in de bovenstaande afbeelding zien dat de totale gebruikte grootte in nieuw gemaakte client 4 tot en met 89.34% en grootte van dun zwembad als 59.19% gebruikt. Als al deze gebruikers niet slecht naar het volume schrijven, zal het vrij zijn van overflow, drop. Om de overloop te voorkomen, moeten we de maat van de dunne pool vergroten.
Belangrijk: Thin-pools zijn slechts een logisch volume, dus als we de grootte van thin-pools moeten uitbreiden, kunnen we hetzelfde commando als, we hebben gebruikt voor logische volumes uitbreiden, maar we kunnen de grootte van niet verkleinen dun zwembad.
# lvuitbreiden.
Hier kunnen we zien hoe de logische thin-pool (tp_tecmint_pool).
# lvextend -L +15G /dev/vg_thin/tp_tecmint_pool.
Geef vervolgens de grootte van de dunne pool op.
# lvs.
eerder onze tp_tecmint_pool grootte was 15 GB en 4 dunne volumes, wat meer was dan Provision door 20 GB. Nu is het uitgebreid tot 30 GB, dus onze overprovisioning is genormaliseerd en dunne volumes zijn vrij van overflow, drop. Zo kun je steeds meer dunne volumes aan het zwembad toevoegen.
Hier hebben we gezien hoe u een thin-pool kunt maken met behulp van een grote volumegroep en hoe u thin-volumes in een thin-pool kunt maken met behulp van overprovisioning en het uitbreiden van de pool. In het volgende artikel zullen we zien hoe je een lvm Striping instelt.