Podešavanje tankih volumena za proviziju u upravljanju logičkim volumenom (LVM) - dio IV
Upravljanje logičkim volumenom ima sjajne karakteristike kao što su snimke i Thin Provisioning. Prethodno u (Dio – III) vidjeli smo kako snimiti logički volumen. Ovdje u ovom članku ćemo vidjeti kako postaviti tanke volumene za proviziju u LVM-u.
Šta je Thin Provisioning?
Thin Provisioning se koristi u lvm-u za kreiranje virtualnih diskova unutar tankog bazena. Pretpostavimo da imam 15 GB kapaciteta pohrane na svom serveru. 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. Tada smo koristili za pružanje čitavih 5 GB (debeli volumen), ali možete koristiti 2 GB iz tih 5 GB prostora za pohranu i 3 GB će biti besplatno koje možete popuniti kasnije.
Ali ono što radimo u tankom obezbjeđivanju je da definiramo tanki skup unutar jedne od velikih grupa volumena i definiramo tanke volumene unutar tog tankog bazena. Dakle, sve datoteke koje napišete će biti pohranjene i vaša pohrana će biti prikazana kao 5 GB. Ali punih 5 GB neće dodijeliti cijeli disk. Isti proces će biti urađen i za ostale klijente. Kao što sam rekao, postoje 2 klijenta, a vi ste moj treći klijent.
Dakle, pretpostavimo koliko sam ukupno GB dodijelio za klijente? Totalno 15GB je već završeno, ako neko dođe kod mene i traži 5GB mogu li dati? Odgovor je „Da“, ovdje u tankom Provisioningu mogu dati 5GB za 4. klijenta iako sam dodijelio 15GB.
Upozorenje: Od 15GB, ako obezbjeđujemo više od 15GB, to se zove Over Provisioning.
Kako radi? i Kako obezbjeđujemo skladištenje novim klijentima?
Dao sam vam 5GB, ali možete koristiti samo 2GB, a ostala 3GB će biti besplatna. U Thick Provisioning ne možemo to učiniti, jer će ono prvo sam dodijeliti cijeli prostor.
U tankom Provisioningu, ako vam definiram 5 GB, neće dodijeliti cijeli prostor na disku dok definirate volumen, već će narasti do 5 GB u skladu s vašim zapisom podataka, Nadam se da ste ga dobili! Isto kao i vi, ni drugi klijenti neće koristiti pune volumene tako da će postojati šansa za dodavanje 5 GB novom klijentu, to se zove preko Provisioning.
Ali obavezno je pratiti svaki rast obima, ako ne, završit će katastrofom. Dok je prekomjerno obezbjeđivanje obavljeno ako sva 4 klijenta loše zapišu podatke na disk, možda ćete se suočiti s problemom jer će popuniti vaših 15 GB i preliti se kako biste ispustili volumene.
Zahtjevi
- Kreirajte pohranu na disku sa LVM-om u Linuxu – 1. DIO
- Kako proširiti/smanjiti LVM-ove u Linuxu – II dio
- Kako napraviti/vratiti snimak logičkog volumena u LVM – dio III
My Server Setup
- Operativni sistem – CentOS 6.5 sa LVM instalacijom
- IP servera – 192.168.0.200
Korak 1: Postavite Thin Pool i Volumes
Učinimo to praktično kako postaviti tanki bazen i tanke volumene. Prvo nam je potrebna velika grupa Volume. Ovdje kreiram Volume grupu sa 15 GB u svrhu demonstracije. Sada navedite grupu volumena koristeći donju naredbu.
vgcreate -s 32M vg_thin /dev/sdb1
Zatim provjerite veličinu dostupnosti logičkog volumena prije kreiranja tankog bazena i volumena.
vgs
lvs
Možemo vidjeti da postoje samo zadani logički volumeni za sistem datoteka i swap je prisutan u gornjem lvs izlazu.
Kreiranje tankog bazena
Da kreirate Thin pool za 15 GB u grupi volumena (vg_thin) koristite sljedeću naredbu.
lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
- -L – Veličina grupe volumena
- –thinpool – Za kreiranje tankog skupa
- tp_tecmint_pool– Ime tankog bazena
- vg_thin – Ime grupe volumena u kojoj smo trebali da kreiramo bazen
Za više detalja možemo koristiti naredbu 'lvdisplay'.
lvdisplay vg_thin/tp_tecmint_pool
Ovdje nismo kreirali virtualne tanke volumene u ovom tankom skupu. Na slici možemo vidjeti podatke o dodijeljenom bazenu koji pokazuju 0,00%.
Kreiranje 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
Napravio sam Thin virtuelni volumen sa imenom thin_vol_client1 unutar tp_tecmint_pool u mojoj vg_thin grupi volumena. Sada navedite logičke volumene koristeći donju naredbu.
lvs
Upravo smo kreirali gornju tanku zapreminu, zato nema podataka koji pokazuju, tj. 0,00%M.
Dobro, dozvolite mi da kreiram još 2 tanka volumena za druga 2 klijenta. Ovdje možete vidjeti sada postoje 3 tanka volumena kreirana ispod bazena (tp_tecmint_pool). Dakle, od ove tačke smo saznali da sam iskoristio sav bazen od 15 GB.
Kreiranje sistema datoteka
Sada kreirajte tačke montiranja i montirajte ova tri tanka volumena i kopirajte neke datoteke u njih koristeći naredbe ispod.
mkdir -p /mnt/client1 /mnt/client2 /mnt/client3
Navedite kreirane direktorije.
ls -l /mnt/
Kreirajte sistem datoteka za ove kreirane tanke volumene koristeći naredbu '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 klijentska volumena na kreiranu tačku montiranja pomoću naredbe '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 tačke montiranja pomoću naredbe 'df'.
df -h
Ovdje možemo vidjeti da su sva 3 klijentska volumena montirana i stoga se samo 3% podataka koristi u svakom volumenu klijenta. Dakle, dodajmo još fajlova na sve 3 tačke montiranja sa moje radne površine da popunimo malo prostora.
Sada navedite tačku montiranja i pogledajte prostor koji se koristi u svakom tankom volumenu i navedite tanki bazen da vidite veličinu korištenu u bazenu.
df -h
lvdisplay vg_thin/tp_tecmint_pool
Gornja naredba pokazuje tri pinte za montiranje zajedno sa njihovim veličinama u procentima.
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, možemo vidjeti da je samo 30% podataka napisano u potpunosti. Ovo je ukupan iznos od tri klijentska virtualna volumena.
Over Provisioning
Sada mi je došao 4. klijent i tražio 5 GB prostora za pohranu. Mogu li dati? Jer sam već dao 15GB Pool za 3 klijenta. Da li je moguće dati 5GB više drugom klijentu? Da, moguće je dati. Ovo je kada koristimo Over Provisioning, što znači da daje prostor više od onoga što imam.
Dozvolite mi da kreiram 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 15GB veličine u bazenu, ali sam napravio 4 volumena unutar tankog bazena do 20GB. Ako sva četiri klijenta počnu upisivati podatke u svoje volumene kako bi popunili tempo, tada ćemo se suočiti s kritičnom situacijom, ako ne, neće biti problema.
Sada sam kreirao sistem datoteka u thin_vol_client4, zatim montirao pod /mnt/client4 i kopirao neke fajlove u njega.
lvs
Na gornjoj slici možemo vidjeti da je ukupna iskorištena veličina u novokreiranom klijentu 4 do 89,34% i veličina tankog bazena kao 59,19% iskorištena. Ako svi ovi korisnici ne pišu loše na tom će biti bez prelivanja, ispusti. Da bismo izbjegli prelijevanje, moramo povećati veličinu tankog bazena.
Važno: Thin-pools su samo logički volumen, tako da ako trebamo proširiti veličinu tankog-pool-a, možemo koristiti istu naredbu kao što smo mi koristili za logičke volumene proširiti, ali ne možemo smanjiti veličinu tankog skupa.
lvextend
Ovdje možemo vidjeti kako proširiti logički tanki bazen (tp_tecmint_pool).
lvextend -L +15G /dev/vg_thin/tp_tecmint_pool
Zatim navedite veličinu tankog bazena.
lvs
Ranije je naša veličina tp_tecmint_pool bila 15 GB i 4 tanka volumena što je bilo više od Provisiona za 20 GB. Sada se proširio na 30 GB, tako da je naše prekomjerno obezbjeđivanje normalizirano i tanki volumeni su bez prelivanja, pada. Na ovaj način možete dodati još više tankih volumena u bazen.
Ovdje smo vidjeli kako kreirati tanki skup koristeći veliku grupu volumena i kreirati tanke volumene unutar tankog skupa koristeći Over-Provisioning i proširivanje bazena. U sljedećem članku ćemo vidjeti kako postaviti lvm Striping.