Postavljanje tankih volumena za dodjelu u upravljanju logičkim volumenom (LVM) - dio IV


Upravljanje logičkim volumenom ima sjajne značajke kao što su snimke i Thin Provisioning. Prethodno smo u (Dio – III) vidjeli kako snimiti logički volumen. Ovdje u ovom članku ćemo vidjeti kako postaviti tanke volumene za dodjelu u LVM.

Što je Thin Provisioning?

Thin Provisioning koristi se u lvm-u za stvaranje virtualnih diskova unutar tankog skupa. Pretpostavimo da imam 15 GB kapaciteta za pohranu na svom poslužitelju. Već imam 2 klijenta koji imaju po 5 GB prostora za pohranu. Vi ste treći klijent, tražili ste 5 GB prostora za pohranu. U to vrijeme koristili smo se za pružanje cijelih 5 GB (debeli volumen), ali možete koristiti 2 GB iz tih 5 GB pohrane, a 3 GB će biti besplatno koje možete popuniti kasnije.

Ali ono što radimo u tankom opskrbljivanju jest da definiramo tanki skup unutar jedne od velikih grupa volumena i definiramo tanke volumene unutar tog tankog skupa. Dakle, sve datoteke koje napišete bit će pohranjene, a vaša će pohrana biti prikazana kao 5 GB. Ali punih 5 GB neće dodijeliti cijeli disk. Isti postupak će se provesti i za druge klijente. Kao što sam rekao, postoje 2 klijenta, a ti si moj treći klijent.

Dakle, pretpostavimo koliko sam ukupno GB dodijelio klijentima? Ukupno 15 GB je već dovršeno, ako mi netko dođe i traži 5 GB, mogu li dati? Odgovor je "Da", ovdje u tankom pružanju mogu dati 5 GB za 4. klijenta iako sam dodijelio 15 GB.

Upozorenje: Od 15 GB, ako dodjeljujemo više od 15 GB, to se zove prekomjerno dodjeljivanje.

Kako radi? i Kako osiguravamo pohranu novim klijentima?

Dao sam vam 5 GB, ali možete koristiti samo 2 GB, a ostalih 3 GB bit će besplatno. U Thick Provisioningu to ne možemo učiniti, jer će prvo sam dodijeliti cijeli prostor.

U tankom opskrbljivanju ako definiram 5 GB za vas, neće dodijeliti cijeli prostor na disku dok definira volumen, porast će do 5 GB prema vašim zapisima podataka, nadam se da ste shvatili! Isto kao i vi, ni drugi klijenti neće koristiti pune količine pa će postojati prilika za dodavanje 5 GB novom klijentu. To se zove prekoračenje.

Ali obavezno je pratiti svaki rast volumena, u protivnom će završiti katastrofom. Dok se over Provisioning vrši ako sva 4 klijenta loše zapisuju podatke na disk, možete se suočiti s problemom jer će popuniti vaših 15 GB i preliti se da bi se smanjili volumeni.

Zahtjevi

  1. Napravite pohranu na disku pomoću LVM-a u Linuxu – 1. DIO
  2. Kako proširiti/smanjiti LVM u Linuxu – dio II
  3. Kako stvoriti/vratiti snimku logičkog volumena u LVM – dio III
Moje postavke poslužitelja
  1. Operativni sustav – CentOS 6.5 s LVM instalacijom
  2. IP poslužitelja – 192.168.0.200

Korak 1: Postavite Thin Pool i Volumes

Učinimo to praktično kako postaviti tanki bazen i tanke volumene. Prvo trebamo veliku veličinu grupe volumena. Ovdje stvaram grupu volumena s 15 GB u svrhu demonstracije. Sada navedite grupu volumena koristeći donju naredbu.

vgcreate -s 32M vg_thin /dev/sdb1

Zatim provjerite dostupnost veličine logičkog volumena prije stvaranja tankog skupa i volumena.

vgs
lvs

Vidimo da postoje samo zadani logički volumeni za datotečni sustav i swap je prisutan u gornjem lvs izlazu.

Stvaranje tankog bazena

Za stvaranje tankog skupa za 15 GB u grupi volumena (vg_thin) koristite sljedeću naredbu.

lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
  1. -L – Veličina grupe volumena
  2. –thinpool – Za stvaranje tankog bazena
  3. tp_tecmint_pool– Naziv tankog bazena
  4. vg_thin – Naziv grupe volumena u kojoj trebamo stvoriti skup

Za više detalja možemo koristiti naredbu 'lvdisplay'.

lvdisplay vg_thin/tp_tecmint_pool

Ovdje nismo stvorili virtualne tanke volumene u ovom tankom skupu. Na slici možemo vidjeti podatke o dodijeljenom skupu koji pokazuju 0,00%.

Stvaranje tankih volumena

Sada možemo definirati tanke volumene unutar tankog bazena uz pomoć naredbe 'lvcreate' s opcijom -V (Virtual).

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

Stvorio sam tanki virtualni volumen s nazivom thin_vol_client1 unutar tp_tecmint_pool u mojoj grupi volumena vg_thin. Sada navedite logičke volumene koristeći donju naredbu.

lvs 

Upravo smo sada stvorili tanki volumen iznad, zato nema podataka koji pokazuju npr. 0,00%M.

Dobro, dopusti mi da stvorim još 2 tanka volumena za druga 2 klijenta. Ovdje sada možete vidjeti 3 tanka volumena stvorena ispod skupa (tp_tecmint_pool). Dakle, od ove točke, došli smo do saznanja da sam iskoristio svih 15 GB bazena.

Stvaranje sustava datoteka

Sada stvorite točke montiranja i montirajte ova tri tanka volumena i kopirajte neke datoteke u njih pomoću donjih naredbi.

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

Navedite kreirane imenike.

ls -l /mnt/

Stvorite datotečni sustav za ove stvorene tanke jedinice pomoću naredbe '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

Montirajte sva tri volumena klijenta na stvorenu točku montiranja koristeći naredbu '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/

Navedite točke montiranja koristeći naredbu 'df'.

df -h

Ovdje možemo vidjeti da su sva 3 klijentska volumena montirana i stoga se samo 3% podataka koristi u svakom klijentskom volumenu. Dakle, dodajmo još neke datoteke na sve 3 točke montiranja s moje radne površine da popunimo malo prostora.

Sada navedite točku montiranja i pogledajte prostor koji se koristi u svakom tankom volumenu i navedite tanki skup da vidite veličinu koja se koristi u skupu.

df -h
lvdisplay vg_thin/tp_tecmint_pool

Gornja naredba prikazuje tri pinta za montiranje zajedno s njihovim veličinama u postocima.

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

Dok gledamo u tanki skup podataka, možemo vidjeti da je samo 30% podataka u potpunosti zapisano. Ovo je zbroj gornja tri virtualna volumena klijenata.

Over Provisioning

Sada mi je došao četvrti klijent i tražio 5 GB prostora za pohranu. Mogu li dati? Zato što sam već dao 15 GB Poola 3 klijenta. Je li moguće dati 5GB više drugom klijentu? Da, moguće je dati. Ovo je kada koristimo Over Provisioning, što znači davanje prostora više od onoga što imam.

Dopustite mi da stvorim 5 GB za 4. klijenta i provjerim veličinu.

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

Imam samo 15 GB veličine u skupu, ali sam stvorio 4 volumena unutar tankog skupa do 20 GB. Ako sva četiri klijenta počnu pisati podatke na svoje volumene kako bi popunili tempo, tada ćemo se suočiti s kritičnom situacijom, a ako ne, neće biti problema.

Sada sam stvorio datotečni sustav u thin_vol_client4, zatim montirao pod /mnt/client4 i kopirao neke datoteke u njega.

lvs

Na gornjoj slici možemo vidjeti da je ukupna korištena veličina u novostvorenom klijentu 4 do 89,34% i veličina tankog skupa kao 59,19%. Ako svi ti korisnici ne pišu loše na glasnoću, bit će bez preljeva, pada. Kako bismo izbjegli prelijevanje, moramo povećati veličinu tankog bazena.

Važno: tanki skupovi samo su logični volumen, pa ako trebamo proširiti veličinu tankog skupa, možemo koristiti istu naredbu kao što smo koristili jer se logički volumeni proširuju, ali ne možemo smanjiti veličinu tankog skupa.

lvextend

Ovdje možemo vidjeti kako proširiti logički tanki skup (tp_tecmint_pool).

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

Zatim navedite veličinu tankog bazena.

lvs

Ranije je naša tp_tecmint_pool veličina bila 15 GB i 4 tanka volumena što je bilo više od Provisiona za 20 GB. Sada je proširen na 30 GB tako da je naše prekomjerno pružanje normalizirano, a tanki volumeni nemaju preljeva, pada. Na ovaj način bazenu možete dodati sve više tankih volumena.

Ovdje smo vidjeli kako stvoriti tanki skup koristeći veliku grupu volumena i stvoriti tanke volumene unutar tankog skupa koristeći Over-Provisioning i proširenje skupa. U sljedećem članku ćemo vidjeti kako postaviti lvm striping.