Konfigurer tynne klargjøringsvolumer i logisk volumstyring (LVM) - del IV


Logisk volumadministrasjon har flotte funksjoner som snapshots og Thin Provisioning. Tidligere i (Del – III) har vi sett hvordan man kan ta et øyeblikksbilde av det logiske volumet. Her i denne artikkelen skal vi se hvordan du konfigurerer tynne klargjøringsvolumer i LVM.

Hva er Thin Provisioning?

Thin Provisioning brukes i lvm for å lage virtuelle disker inne i en tynn pool. La oss anta at jeg har 15 GB lagringskapasitet på serveren min. Jeg har allerede 2 klienter som har 5 GB lagring hver. Du er den tredje klienten, du ba om 5 GB lagringsplass. Den gang brukte vi å tilby hele 5 GB (tykt volum), men du kan bruke 2 GB fra den 5 GB lagringen og 3 GB vil være gratis som du kan fylle opp senere.

Men det vi gjør i thin Provisioning er at vi bruker til å definere et tynt basseng inne i en av de store volumgruppene og definere de tynne volumene inne i det tynne bassenget. Så at alle filene du skriver vil bli lagret og lagringen din vises som 5 GB. Men hele 5 GB vil ikke tildele hele disken. Den samme prosessen vil bli gjort for andre kunder også. Som jeg sa er det 2 klienter og du er min 3. klient.

Så la oss anta hvor mye GB jeg har tildelt totalt for klienter? Totalt 15 GB var allerede fullført. Hvis noen kommer til meg og ber om 5 GB kan jeg gi? Svaret er "Ja", her i tynn Provisioning kan jeg gi 5GB for 4th Client selv om jeg har tildelt 15GB.

Advarsel: Fra 15 GB, hvis vi klargjør mer enn 15 GB, kalles det Over-provisioning.

Hvordan det fungerer? og hvordan gir vi lagring til nye kunder?

Jeg har gitt deg 5 GB, men du kan bare bruke 2 GB og andre 3 GB vil være gratis. I Thick Provisioning kan vi ikke gjøre dette, fordi det først vil tildele hele plassen selv.

I tynn provisjonering hvis jeg definerer 5 GB for deg, vil det ikke tildele hele diskplassen mens du definerer et volum, det vil vokse til 5 GB i henhold til dataskrivingen din, håper du har det! På samme måte som deg, vil ikke andre klienter også bruke hele volumene, så det vil være en mulighet til å legge til 5 GB til en ny klient, dette kalles over Provisioning.

Men det er obligatorisk å overvåke hver eneste volumvekst, hvis ikke vil det ende opp i en katastrofe. Mens overprovisionering gjøres hvis alle 4 klientene skriver dataene dårlig til disken, kan du møte et problem fordi det vil fylle opp dine 15 GB og flyte over for å få ned volumene.

Krav

  1. Lag disklagring med LVM i Linux – DEL 1
  2. Hvordan utvide/redusere LVM-er i Linux - Del II
  3. Hvordan lage/gjenopprette øyeblikksbilde av logisk volum i LVM – del III
Mitt serveroppsett
  1. Operativsystem – CentOS 6.5 med LVM-installasjon
  2. Server IP – 192.168.0.200

Trinn 1: Sett opp tynn basseng og volumer

La oss gjøre det praktisk hvordan du setter opp det tynne bassenget og de tynne volumene. Først trenger vi en stor størrelse på volumgruppen. Her lager jeg volumgruppe med 15 GB for demonstrasjonsformål. List opp volumgruppen ved å bruke kommandoen nedenfor.

vgcreate -s 32M vg_thin /dev/sdb1

Deretter kontrollerer du størrelsen på Logisk volumtilgjengelighet før du oppretter det tynne bassenget og volumene.

vgs
lvs

Vi kan se at det bare er standard logiske volumer for filsystemet, og swap er til stede i lvs-utgangen ovenfor.

Opprette et tynt basseng

For å lage en tynn pool for 15 GB i volumgruppe (vg_thin) bruk følgende kommando.

lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
  1. -L – Størrelse på volumgruppen
  2. –thinpool – For å lage en thinpool
  3. tp_tecmint_pool– Tynt bassengnavn
  4. vg_thin – Volumgruppenavnet der vi trenger for å opprette bassenget

For å få flere detaljer kan vi bruke kommandoen 'lvdisplay'.

lvdisplay vg_thin/tp_tecmint_pool

Her har vi ikke laget virtuelle tynne volumer i dette tynne bassenget. På bildet kan vi se allokerte bassengdata som viser 0,00 %.

Lage tynne volumer

Nå kan vi definere tynne volumer inne i det tynne bassenget ved hjelp av 'lvcreate'-kommandoen med alternativet -V (Virtual).

lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool

Jeg har laget et virtuelt tynt volum med navnet thin_vol_client1 inne i tp_tecmint_pool i min vg_thin volumgruppe. List nå de logiske volumene ved å bruke kommandoen nedenfor.

lvs 

Akkurat nå har vi laget det tynne volumet ovenfor, det er derfor det ikke er noen data som viser f.eks. 0,00 %M.

Greit, la meg lage 2 tynne volumer til for to andre klienter. Her kan du nå se at det er 3 tynne volumer opprettet under bassenget (tp_tecmint_pool). Så fra dette tidspunktet fikk vi vite at jeg har brukt hele 15 GB bassenget.

Oppretter filsystem

Lag nå monteringspunkter og monter disse tre tynne volumene og kopier noen filer i den ved å bruke kommandoene nedenfor.

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

List de opprettede katalogene.

ls -l /mnt/

Lag filsystemet for disse opprettede tynne volumene ved å bruke 'mkfs'-kommandoen.

mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3

Monter alle tre klientvolumene til det opprettede monteringspunktet ved å bruke 'mount'-kommandoen.

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/

List opp monteringspunktene ved å bruke 'df'-kommandoen.

df -h

Her kan vi se at alle de 3 klientvolumene er montert, og derfor brukes bare 3 % av data i alle klientvolumer. Så la oss legge til noen flere filer til alle 3 monteringspunktene fra skrivebordet mitt for å fylle opp litt plass.

List nå monteringspunktet og se plassen som brukes i hvert tynne volum, og skriv opp det tynne bassenget for å se størrelsen som brukes i bassenget.

df -h
lvdisplay vg_thin/tp_tecmint_pool

Kommandoen ovenfor viser de tre mount pints sammen med deres størrelser i prosent.

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

Når vi ser inn i det tynne bassenget, kan vi se at bare 30 % av dataene er skrevet fullstendig. Dette er totalt over tre virtuelle klientvolumer.

Over provisjonering

Nå kom den fjerde klienten til meg og ba om 5 GB lagringsplass. Kan jeg gi? Fordi jeg allerede hadde gitt 15 GB Pool til 3 klienter. Er det mulig å gi 5GB mer til en annen klient? Ja det er mulig å gi. Dette er når vi bruker Over-provisioning, som betyr å gi plassen mer enn det jeg har.

La meg lage 5 GB for den fjerde klienten og bekrefte størrelsen.

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

Jeg har bare 15 GB størrelse i bassenget, men jeg har laget 4 volumer i tynnbassenget opp til 20 GB. Hvis alle fire klientene begynner å skrive data til volumene sine for å fylle opp tempoet, vil vi på det tidspunktet møte en kritisk situasjon, hvis ikke vil det ikke være noe problem.

Nå har jeg opprettet filsystem i thin_vol_client4, deretter montert under /mnt/client4 og kopiert noen filer i det.

lvs

Vi kan se på bildet ovenfor at den totale brukte størrelsen i nyopprettet klient 4 opp til 89,34 % og størrelsen på tynn basseng som 59,19 % brukt. Hvis alle disse brukerne ikke skriver dårlig til volum, vil det være fritt for overløp, slipp. For å unngå overløp må vi utvide størrelsen på tynnbassenget.

Viktig: Thin-pools er bare et logisk volum, så hvis vi trenger å utvide størrelsen på thin-pool, kan vi bruke samme kommando som vi har brukt for logiske volumer utvide, men vi kan ikke redusere størrelsen på tynn-basseng.

lvextend

Her kan vi se hvordan vi utvider den logiske tynne poolen (tp_tecmint_pool).

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

List deretter opp størrelsen på tynnbassenget.

lvs

Tidligere var tp_tecmint_pool-størrelsen vår 15 GB og 4 tynne volumer som var over Provision med 20 GB. Nå er den utvidet til 30 GB, så vår overprovisionering har blitt normalisert og tynne volumer er fri for overløp, fall. På denne måten kan du legge til stadig flere tynne volumer til bassenget.

Her har vi sett hvordan du kan lage et tynt basseng ved å bruke en stor volumgruppe og lage tynne volumer inne i et tynt basseng ved å bruke Over-Provisioning og utvide bassenget. I den neste artikkelen vil vi se hvordan du setter opp en lvm Striping.