Zoeken op website

Thin Provisioning-volumes instellen in logisch volumebeheer (LVM) - Deel IV


Logisch volumebeheer heeft geweldige functies zoals snapshots en Thin Provisioning. Eerder in (Deel – III) hebben we gezien hoe we een snapshot van het logische volume kunnen maken. Hier in dit artikel gaan we zien hoe u thin Provisioning-volumes in LVM kunt instellen.

Wat is Thin Provisioning?

Thin Provisioning wordt in lvm gebruikt voor het maken van virtuele schijven in een thin pool. Laten we aannemen dat ik een opslagcapaciteit van 15 GB op mijn server heb. Ik heb al 2 klanten met elk 5 GB opslagruimte. U bent de derde klant en u heeft om 5 GB opslagruimte gevraagd. Destijds gebruikten we om de hele 5 GB (dik volume) te leveren, maar u kunt 2 GB van die opslag van 5 GB gebruiken en 3 GB is gratis en kunt u later aanvullen.

Maar wat we doen bij thin Provisioning is dat we een thin pool definiëren binnen een van de grote volumegroepen en de thin volumes binnen die thin pool definiëren. Zodat 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 heb toegewezen aan klanten? In totaal was er al 15 GB voltooid. Als iemand naar mij 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.

Hoe het werkt? en Hoe bieden we opslag aan nieuwe klanten?

Ik heb je 5 GB gegeven, maar je mag slechts 2 GB gebruiken en andere 3 GB zijn gratis. Bij Thick Provisioning kunnen we dit niet doen, omdat het in eerste instantie de hele ruimte zelf zal toewijzen.

Als ik bij thin Provisioning 5 GB voor je definieer, zal het niet de hele schijfruimte toewijzen terwijl ik een volume definieer, het zal groeien tot 5 GB volgens je gegevensschrijf, ik hoop dat je het hebt! Net als jij zullen ook andere clients niet de volledige volumes gebruiken, dus er is een kans om 5 GB toe te voegen aan een nieuwe client. Dit wordt via Provisioning genoemd.

Maar het is verplicht om elke volumegroei te monitoren, anders eindigt het in een ramp. Terwijl over-provisioning wordt uitgevoerd als alle vier de clients de gegevens slecht naar de schijf schrijven, kunt u een probleem tegenkomen omdat het uw 15 GB zal opvullen en overstromen om de volumes te laten vallen.

Vereisten

  1. Creëer schijfopslag met LVM in Linux – DEEL 1
  2. Hoe LVM's in Linux uit te breiden/verminderen - Deel II
  3. Hoe u een momentopname van een logisch volume in LVM kunt maken/herstellen – Deel III
Mijn serverconfiguratie
  1. Besturingssysteem – CentOS 6.5 met LVM-installatie
  2. Server-IP – 192.168.0.200

Stap 1: Thin Pool en volumes instellen

Laten we praktisch doen hoe we de thin pool en thin volumes moeten instellen. Eerst hebben we een grote volumegroep nodig. Hier maak ik een volumegroep met 15 GB voor demonstratiedoeleinden. Geef nu de volumegroep weer 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.

vgs
lvs

We kunnen zien dat er alleen standaard logische volumes zijn voor het bestandssysteem en dat swap aanwezig is in de bovenstaande lvs-uitvoer.

Een dun zwembad creëren

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
  1. -L – Grootte van volumegroep
  2. –thinpool – Om een thinpool te maken
  3. tp_tecmint_pool – Naam van de dunne pool
  4. vg_thin – Volumegroepnaam waar we de pool moeten maken

Voor meer details kunnen we het commando ‘lvdisplay’ gebruiken.

lvdisplay vg_thin/tp_tecmint_pool

Hier hebben we geen virtuele thin-volumes in deze thin-pool gecreëerd. In de afbeelding zien we de gegevens van de toegewezen pool met 0,00%.

Dunne volumes creëren

Nu kunnen we thin volumes binnen de thin 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 in de tp_tecmint_pool in mijn vg_thin volumegroep. Maak nu een lijst van de logische volumes met behulp van de onderstaande opdracht.

lvs 

Zojuist hebben we het bovenstaande dunne volume gecreëerd. Daarom zijn er geen gegevens die bijvoorbeeld 0,00%M weergeven.

Goed, ik wil nog 2 Thin-volumes maken voor twee andere klanten. Hier kun je zien dat er 3 thin volumes zijn gemaakt onder de pool (tp_tecmint_pool). Dus vanaf dit punt kwamen we erachter dat ik de hele pool van 15 GB heb gebruikt.

Bestandssysteem maken

Maak nu koppelpunten en koppel deze drie dunne volumes en kopieer enkele bestanden erin met behulp van onderstaande opdrachten.

mkdir -p /mnt/client1 /mnt/client2 /mnt/client3

Maak een lijst van de aangemaakte mappen.

ls -l /mnt/

Maak het bestandssysteem voor deze gemaakte thin volumes met behulp van 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

Monteer alle drie de clientvolumes op het gemaakte koppelpunt met behulp van 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 behulp van de opdracht ‘df’.

df -h

Hier kunnen we zien dat alle drie de clientvolumes zijn gekoppeld en daarom wordt slechts 3% van de gegevens gebruikt in elk clientvolume. Laten we dus wat meer bestanden toevoegen aan alle drie de koppelpunten vanaf mijn bureaublad om wat ruimte op te vullen.

Geef nu het koppelpunt op en bekijk de ruimte die in elk thin volume 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-pinten samen met hun afmetingen in procenten.

13% of datas used out of 5GB for client1
29% of datas used out of 5GB for client2
49% of datas used out of 5GB for client3

Terwijl we in de dunne pool kijken, kunnen we zien dat slechts 30% van de gegevens volledig is geschreven. Dit is het totaal van de bovenstaande drie virtuele volumes van clients.

Over-provisioning

Nu kwam de 4e klant naar mij toe en vroeg om 5 GB opslagruimte. Kan ik geven? Omdat ik al 15GB Pool aan 3 klanten had gegeven. Is het mogelijk om 5GB meer aan een andere klant te geven? Ja, het is mogelijk om te geven. Dit is wanneer we Over Provisioning gebruiken, wat betekent dat ik de ruimte meer geef dan ik heb.

Laat me 5 GB aanmaken voor de vierde client en de grootte verifiëren.

lvcreate -V 5G --thin -n thin_vol_client4 vg_thin/tp_tecmint_pool
lvs

Ik heb slechts een grootte van 15 GB in de pool, maar ik heb 4 volumes gemaakt in een thin-pool van maximaal 20 GB. Als alle vier de klanten gegevens naar hun volumes gaan schrijven om het tempo op te voeren, zullen we op dat moment met een kritieke situatie te maken krijgen. Als dat niet het geval is, is er geen probleem.

Nu heb ik het bestandssysteem aangemaakt in thin_vol_client4, vervolgens aangekoppeld onder /mnt/client4 en daar enkele bestanden naar gekopieerd.

lvs

We kunnen in de bovenstaande afbeelding zien dat de totale gebruikte grootte in nieuw aangemaakte client 4 tot 89,34% bedraagt en de grootte van de thin pool 59,19% gebruikt. Als al deze gebruikers niet slecht naar volume schrijven, zal het vrij zijn van overflow, drop. Om overstroming te voorkomen, moeten we de grootte van de dunne poel vergroten.

Belangrijk: Thin-pools zijn slechts een logisch volume, dus als we de grootte van thin-pool moeten uitbreiden, kunnen we hetzelfde commando gebruiken als dat we hebben gebruikt want logische volumes breiden zich uit, maar we kunnen de omvang van de thin-pool niet verkleinen.

lvextend

Hier kunnen we zien hoe we de logische thin-pool (tp_tecmint_pool) kunnen uitbreiden.

lvextend -L +15G /dev/vg_thin/tp_tecmint_pool

Vermeld vervolgens de grootte van het dunne zwembad.

lvs

Eerder was onze tp_tecmint_pool-grootte 15 GB en 4 dunne volumes, wat 20 GB meer dan Provision was. Nu is dit uitgebreid tot 30 GB, dus onze overprovisioning is genormaliseerd en thin volumes zijn vrij van overflow en drop. Zo kun je steeds meer dunne volumes aan het zwembad toevoegen.

Hier hebben we gezien hoe we een thin-pool kunnen maken met behulp van een grote volumegroep en hoe we thin-volumes binnen een thin-pool kunnen maken met behulp van Over-Provisioning en hoe we de pool kunnen uitbreiden. In het volgende artikel zullen we zien hoe je een lvm Striping opzet.