Ricerca nel sito web

Configurazione dei volumi di thin provisioning nella gestione dei volumi logici (LVM) - Parte IV


La gestione del volume logico ha ottime funzionalità come snapshot e thin provisioning. Precedentemente nella (Parte – III) abbiamo visto come eseguire lo snapshot del volume logico. Qui in questo articolo vedremo come impostare i volumi di thin provisioning in LVM.

Cos'è il thin provisioning?

Il thin provisioning viene utilizzato in lvm per creare dischi virtuali all'interno di un thin pool. Supponiamo che il mio server abbia una capacità di archiviazione di 15 GB. Ho già 2 clienti con 5 GB di spazio di archiviazione ciascuno. Sei il terzo cliente, hai chiesto 5 GB di spazio di archiviazione. Allora fornivamo tutti i 5 GB (volume spesso), ma puoi utilizzare 2 GB da quello spazio di archiviazione da 5 GB e 3 GB saranno gratuiti che potrai riempire in seguito.

Ma ciò che facciamo nel thin provisioning è definire un thin pool all'interno di uno dei gruppi di volumi di grandi dimensioni e definire i volumi thin all'interno di quel thin pool. Pertanto, qualunque file tu scriva verrà archiviato e la tua memoria verrà visualizzata come 5 GB. Ma i 5 GB completi non allocheranno l'intero disco. Lo stesso processo verrà eseguito anche per gli altri client. Come ho detto, ci sono 2 clienti e tu sei il mio terzo cliente.

Quindi, supponiamo quanti GB totali ho assegnato ai clienti? Sono già stati completati 15 GB in totale. Se qualcuno viene da me e mi chiede 5 GB, posso dargli? La risposta è "", qui nel thin Provisioning posso dare 5GB per il 4° Client anche se ho assegnato 15GB.

Attenzione: a partire da 15 GB, se stiamo effettuando il provisioning di più di 15 GB si parla di Over Provisioning.

Come funziona? e come forniamo spazio di archiviazione ai nuovi clienti?

Ti ho fornito 5 GB ma potresti utilizzare solo 2 GB e altri 3 GB saranno gratuiti. Nel Thick Provisioning non possiamo farlo, perché inizialmente assegnerà l'intero spazio.

Nel thin provisioning se definisco 5 GB per te non allocherà l'intero spazio su disco durante la definizione di un volume, crescerà fino a 5 GB in base alla scrittura dei dati, spero che tu abbia capito! proprio come te, anche gli altri client non utilizzeranno i volumi completi, quindi ci sarà la possibilità di aggiungere 5 GB a un nuovo client, questo si chiama over Provisioning.

Ma è obbligatorio monitorare ogni singola crescita dei volumi, altrimenti finirà in un disastro. Mentre viene eseguito un provisioning eccessivo se tutti e 4 i client scrivono male i dati sul disco, potresti riscontrare un problema perché riempirà i tuoi 15 GB e traboccherà per eliminare i volumi.

Requisiti

  1. Creare spazio di archiviazione su disco con LVM in Linux – PARTE 1
  2. Come estendere/ridurre gli LVM in Linux – Parte II
  3. Come creare/ripristinare un'istantanea del volume logico in LVM – Parte III
La mia configurazione del server
  1. Sistema operativo – CentOS 6.5 con installazione LVM
  2. IP del server – 192.168.0.200

Passaggio 1: impostare il thin pool e i volumi

Vediamo in pratica come impostare il thin pool e i volumi thin. Per prima cosa abbiamo bisogno di un gruppo di volumi di grandi dimensioni. Qui sto creando un gruppo di volumi con 15 GB a scopo dimostrativo. Ora elenca il gruppo di volumi utilizzando il comando seguente.

vgcreate -s 32M vg_thin /dev/sdb1

Successivamente, verificare la dimensione della disponibilità del volume logico, prima di creare il thin pool e i volumi.

vgs
lvs

Possiamo vedere che ci sono solo volumi logici predefiniti per il file system e lo swap è presente nell'output lvs sopra.

Creazione di una piscina sottile

Per creare un thin pool da 15 GB nel gruppo di volumi (vg_thin) utilizzare il comando seguente.

lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
  1. -L – Dimensione del gruppo di volumi
  2. –thinpool – Per creare un thinpool
  3. tp_tecmint_pool: nome del pool sottile
  4. vg_thin – Nome del gruppo di volumi in cui dobbiamo creare il pool

Per avere maggiori dettagli possiamo usare il comando 'lvdisplay'.

lvdisplay vg_thin/tp_tecmint_pool

Qui non abbiamo creato volumi thin virtuali in questo thin pool. Nell'immagine possiamo vedere i dati del pool allocato che mostrano 0,00%.

Creazione di volumi sottili

Ora possiamo definire i volumi thin all'interno del thin pool con l'aiuto del comando "lvcreate" con l'opzione -V (virtuale).

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

Ho creato un volume virtuale Thin con il nome di thin_vol_client1 all'interno di tp_tecmint_pool nel mio gruppo di volumi vg_thin. Ora elenca i volumi logici utilizzando il comando seguente.

lvs 

Proprio ora, abbiamo creato il volume sottile sopra, ecco perché non ci sono dati che mostrano, ad esempio 0,00%M.

Bene, lasciami creare altri 2 volumi Thin per altri 2 client. Qui puoi vedere che ora ci sono 3 volumi thin creati nel pool (tp_tecmint_pool). Quindi, da questo punto, siamo venuti a sapere che ho utilizzato tutto il pool da 15 GB.

Creazione del file system

Ora crea punti di montaggio e monta questi tre volumi sottili e copia alcuni file al suo interno utilizzando i comandi seguenti.

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

Elenca le directory create.

ls -l /mnt/

Crea il file system per questi volumi thin creati utilizzando il comando "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

Montare tutti e tre i volumi client sul punto di montaggio creato utilizzando il comando "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/

Elenca i punti di montaggio utilizzando il comando "df".

df -h

Qui possiamo vedere che tutti e 3 i volumi client sono montati e quindi solo il 3% dei dati viene utilizzato in ogni volume client. Quindi, aggiungiamo altri file a tutti e 3 i punti di montaggio dal mio desktop per riempire un po' di spazio.

Ora elenca il punto di montaggio e visualizza lo spazio utilizzato in ogni volume thin ed elenca il thin pool per vedere la dimensione utilizzata nel pool.

df -h
lvdisplay vg_thin/tp_tecmint_pool

Il comando precedente mostra le tre pinte di montaggio insieme alle loro dimensioni in percentuale.

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

Osservando il thin pool possiamo vedere che solo il 30% dei dati è scritto totalmente. Questo è il totale dei volumi virtuali dei tre client sopra indicati.

Provisioning eccessivo

Ora il quarto cliente è venuto da me e mi ha chiesto 5 GB di spazio di archiviazione. Posso dare? Perché avevo già assegnato 15 GB di pool a 3 client. È possibile dare 5 GB in più a un altro client? Sì, è possibile donare. Questo è quando utilizziamo l'Over Provisioning, il che significa dare spazio in più rispetto a quello che ho.

Permettimi di creare 5 GB per il quarto client e verificare la dimensione.

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

Ho solo una dimensione di 15 GB nel pool, ma ho creato 4 volumi all'interno del thin pool fino a 20 GB. Se tutti e quattro i client iniziano a scrivere dati sui propri volumi per riempire il ritmo, in quel momento ci troveremo ad affrontare una situazione critica, altrimenti non ci saranno problemi.

Ora ho creato il file system in thin_vol_client4, quindi l'ho montato in /mnt/client4 e ho copiato alcuni file al suo interno.

lvs

Nell'immagine sopra possiamo vedere che la dimensione totale utilizzata nel client 4 appena creato arriva fino all'89,34% e la dimensione del thin pool utilizzata al 59,19%. Se tutti questi utenti non scrivono male sul volume, questo sarà libero da overflow, rilascialo. Per evitare l'overflow è necessario estendere la dimensione della piscina sottile.

Importante: i thin-pool sono solo un volume logico, quindi se abbiamo bisogno di estendere la dimensione del thin-pool possiamo usare lo stesso comando che abbiamo usato per i volumi logici si estendono, ma non possiamo ridurre la dimensione del thin-pool.

lvextend

Qui possiamo vedere come estendere il thin-pool logico (tp_tecmint_pool).

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

Successivamente, elenca le dimensioni della piscina sottile.

lvs

In precedenza la dimensione del nostro tp_tecmint_pool era di 15 GB e 4 volumi thin che superavano il provisioning di 20 GB. Ora è stato esteso a 30 GB, quindi il nostro overprovisioning è stato normalizzato e i volumi sottili sono esenti da overflow e cadute. In questo modo è possibile aggiungere alla piscina volumi sempre più sottili.

Qui abbiamo visto come creare un thin pool utilizzando un gruppo di volumi di grandi dimensioni e creare volumi thin all'interno di un thin pool utilizzando l'over-provisioning ed estendendo il pool. Nel prossimo articolo vedremo come impostare uno Striping lvm.