Ρύθμιση Thin Provisioning Volumes in Logical Volume Management (LVM) - Μέρος IV


Η λογική διαχείριση όγκου έχει εξαιρετικά χαρακτηριστικά, όπως στιγμιότυπα και Thin Provisioning. Προηγουμένως στο (Μέρος – ΙΙΙ) είδαμε πώς να φωτογραφίσετε τον λογικό τόμο. Εδώ σε αυτό το άρθρο, θα δούμε πώς να ρυθμίσετε λεπτούς τόμους παροχής στο LVM.

Τι είναι η Thin Provisioning;

Το Thin Provisioning χρησιμοποιείται στο lvm για τη δημιουργία εικονικών δίσκων μέσα σε μια λεπτή πισίνα. Ας υποθέσουμε ότι έχω χωρητικότητα αποθήκευσης 15 GB στον διακομιστή μου. Έχω ήδη 2 πελάτες που έχουν αποθηκευτικό χώρο 5 GB ο καθένας. Είστε ο τρίτος πελάτης, ζητήσατε 5 GB αποθηκευτικού χώρου. Τότε χρησιμοποιούμε για να παρέχουμε ολόκληρο το 5 GB (Παχύς όγκος), αλλά μπορείτε να χρησιμοποιήσετε 2 GB από αυτόν τον αποθηκευτικό χώρο 5 GB και τα 3 GB θα είναι δωρεάν τα οποία μπορείτε να τα γεμίσετε αργότερα.

Αλλά αυτό που κάνουμε στο Thin Provisioning είναι ότι χρησιμοποιούμε για να ορίσουμε μια λεπτή πισίνα μέσα σε μία από τις μεγάλες ομάδες τόμων και να ορίσουμε τους λεπτούς όγκους μέσα σε αυτήν τη λεπτή πισίνα. Έτσι, ότι όσα αρχεία γράψετε θα αποθηκευτούν και ο αποθηκευτικός σας χώρος θα εμφανίζεται ως 5 GB. Αλλά τα πλήρη 5 GB δεν θα εκχωρήσουν ολόκληρο τον δίσκο. Η ίδια διαδικασία θα γίνει και για άλλους πελάτες. Όπως είπα υπάρχουν 2 πελάτες και είσαι ο 3ος πελάτης μου.

Λοιπόν, ας υποθέσουμε πόσα συνολικά GB έχω εκχωρήσει για πελάτες; Συνολικά τα 15 GB έχουν ήδη συμπληρωθεί, αν κάποιος έρθει σε μένα και ζητήσει 5 GB μπορώ να δώσω; Η απάντηση είναι "Ναι", εδώ στο Thin Provisioning μπορώ να δώσω 5 GB για τον 4ο πελάτη, παρόλο που έχω εκχωρήσει 15 GB.

Προειδοποίηση: Από 15 GB, εάν παρέχουμε περισσότερα από 15 GB ονομάζεται Υπερπαροχή.

Πως δουλεύει? και Πώς παρέχουμε χώρο αποθήκευσης σε νέους πελάτες;

Σας παρείχα 5 GB, αλλά μπορείτε να χρησιμοποιήσετε μόνο 2 GB και άλλα 3 GB θα είναι δωρεάν. Στο Thick Provisioning δεν μπορούμε να το κάνουμε αυτό, γιατί θα διαθέσει ολόκληρο τον χώρο στην αρχή μόνος του.

Στο Thin Provisioning, αν ορίζω 5 GB για εσάς, δεν θα εκχωρηθεί ολόκληρος ο χώρος στο δίσκο κατά τον καθορισμό ενός όγκου, θα αυξηθεί στα 5 GB σύμφωνα με τα δεδομένα σας, ελπίζω να το καταλάβατε! όπως και εσείς, και άλλοι πελάτες δεν θα χρησιμοποιήσουν τους πλήρεις τόμους, επομένως θα υπάρχει η ευκαιρία να προσθέσετε 5 GB σε έναν νέο πελάτη. Αυτό ονομάζεται over Provisioning.

Αλλά είναι υποχρεωτικό να παρακολουθείται κάθε αύξηση όγκου, αν όχι, θα καταλήξει σε καταστροφή. Ενώ γίνεται η over Provisioning, εάν και οι 4 πελάτες γράψουν τα δεδομένα άσχημα στο δίσκο, μπορεί να αντιμετωπίσετε ένα πρόβλημα επειδή θα γεμίσει τα 15 GB σας και θα υπερχειλίσει για να μειωθούν οι τόμοι.

Απαιτήσεις

  1. Δημιουργήστε χώρο αποθήκευσης δίσκου με LVM σε Linux – ΜΕΡΟΣ 1
  2. Πώς να επεκτείνετε/Μειώσετε τα LVM στο Linux – Μέρος II
  3. Πώς να δημιουργήσετε/επαναφέρετε στιγμιότυπο του λογικού τόμου στο LVM – Μέρος III
Η εγκατάσταση του διακομιστή μου
  1. Λειτουργικό σύστημα – CentOS 6.5 με εγκατάσταση LVM
  2. IP διακομιστή – 192.168.0.200

Βήμα 1: Ρυθμίστε τη λεπτή πισίνα και τους όγκους

Ας το κάνουμε πρακτικά πώς να ρυθμίσουμε τη λεπτή πισίνα και τους λεπτούς όγκους. Πρώτα χρειαζόμαστε ένα μεγάλο μέγεθος ομάδας όγκου. Εδώ δημιουργώ ομάδα τόμου με 15 GB για λόγους επίδειξης. Τώρα, παραθέστε την ομάδα τόμου χρησιμοποιώντας την παρακάτω εντολή.

vgcreate -s 32M vg_thin /dev/sdb1

Στη συνέχεια, ελέγξτε για το μέγεθος της διαθεσιμότητας Logical volume, πριν δημιουργήσετε τη λεπτή πισίνα και τους τόμους.

vgs
lvs

Μπορούμε να δούμε ότι υπάρχουν μόνο προεπιλεγμένοι λογικοί τόμοι για το σύστημα αρχείων και η ανταλλαγή είναι παρούσα στην παραπάνω έξοδο lvs.

Δημιουργία λεπτής πισίνας

Για να δημιουργήσετε ένα Thin pool για 15 GB σε ομάδα τόμου (vg_thin) χρησιμοποιήστε την ακόλουθη εντολή.

lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
  1. -L – Μέγεθος ομάδας τόμων
  2. –thinpool – Για να δημιουργήσετε ένα thinpool
  3. tp_tecmint_pool– Λεπτό όνομα πισίνας
  4. vg_thin – Όνομα ομάδας τόμου όπου χρειαζόμασταν για να δημιουργήσουμε το pool

Για περισσότερες λεπτομέρειες μπορούμε να χρησιμοποιήσουμε την εντολή ‘lvdisplay’.

lvdisplay vg_thin/tp_tecmint_pool

Εδώ δεν έχουμε δημιουργήσει εικονικούς λεπτούς τόμους σε αυτήν τη λεπτή πισίνα. Στην εικόνα μπορούμε να δούμε Δεδομένα εκχωρημένου χώρου συγκέντρωσης που δείχνουν 0,00%.

Δημιουργία λεπτών όγκων

Τώρα μπορούμε να ορίσουμε λεπτούς όγκους μέσα στη λεπτή πισίνα με τη βοήθεια της εντολής «lvcreate» με την επιλογή -V (Εικονική).

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

Έχω δημιουργήσει έναν Thin εικονικό τόμο με το όνομα thin_vol_client1 μέσα στο tp_tecmint_pool στην ομάδα τόμων vg_thin μου. Τώρα, απαριθμήστε τους λογικούς τόμους χρησιμοποιώντας την παρακάτω εντολή.

lvs 

Μόλις τώρα, δημιουργήσαμε τον λεπτό όγκο παραπάνω, γι' αυτό δεν υπάρχουν δεδομένα που να δείχνουν π.χ. 0,00%M.

Ωραία, επιτρέψτε μου να δημιουργήσω 2 ακόμη Λεπτούς τόμους για άλλους 2 πελάτες. Εδώ μπορείτε να δείτε τώρα ότι υπάρχουν 3 λεπτοί τόμοι που δημιουργήθηκαν κάτω από την πισίνα (tp_tecmint_pool). Έτσι, από αυτό το σημείο, καταλάβαμε ότι έχω χρησιμοποιήσει και τα 15GB πισίνα.

Δημιουργία συστήματος αρχείων

Τώρα, δημιουργήστε σημεία προσάρτησης και προσαρτήστε αυτούς τους τρεις λεπτούς τόμους και αντιγράψτε μερικά αρχεία σε αυτά χρησιμοποιώντας τις παρακάτω εντολές.

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

Καταχωρίστε τους καταλόγους που δημιουργήθηκαν.

ls -l /mnt/

Δημιουργήστε το σύστημα αρχείων για αυτούς τους λεπτούς τόμους που δημιουργήθηκαν χρησιμοποιώντας την εντολή «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

Τοποθετήστε και τους τρεις τόμους πελάτη στο δημιουργημένο σημείο προσάρτησης χρησιμοποιώντας την εντολή "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/

Καταχωρίστε τα σημεία προσάρτησης χρησιμοποιώντας την εντολή «df».

df -h

Εδώ, μπορούμε να δούμε και τους 3 τόμους πελατών έχουν προσαρτηθεί και επομένως μόνο 3% των δεδομένων χρησιμοποιούνται σε κάθε τόμο πελατών. Λοιπόν, ας προσθέσουμε μερικά ακόμη αρχεία και στα 3 σημεία προσάρτησης από την επιφάνεια εργασίας μου για να γεμίσουμε λίγο χώρο.

Τώρα αναφέρετε το σημείο τοποθέτησης και δείτε τον χώρο που χρησιμοποιείται σε κάθε λεπτό όγκο και αναφέρετε τη λεπτή πισίνα για να δείτε το μέγεθος που χρησιμοποιείται στην πισίνα.

df -h
lvdisplay vg_thin/tp_tecmint_pool

Η παραπάνω εντολή δείχνει, τα τρία pints mount μαζί με τα μεγέθη τους σε ποσοστό.

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

Ενώ εξετάζουμε το thin-pool, μπορούμε να δούμε μόνο 30% των δεδομένων είναι γραμμένα συνολικά. Αυτό είναι το σύνολο των παραπάνω από τρεις εικονικούς τόμους πελατών.

Υπερτροφοδότηση

Τώρα ο 4ος πελάτης ήρθε σε μένα και μου ζήτησε αποθηκευτικό χώρο 5 GB. Μπορώ να δώσω; Επειδή είχα ήδη δώσει 15GB Pool σε 3 πελάτες. Είναι δυνατόν να δώσω 5 GB περισσότερα σε άλλο πελάτη; Ναι είναι δυνατόν να δοθεί. Αυτό συμβαίνει όταν χρησιμοποιούμε το Over Provisioning, που σημαίνει ότι δίνουμε περισσότερο χώρο από αυτό που έχω.

Επιτρέψτε μου να δημιουργήσω 5 GB για τον 4ο πελάτη και να επαληθεύσω το μέγεθος.

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

Έχω μόνο 15 GB μέγεθος σε πισίνα, αλλά έχω δημιουργήσει 4 τόμους μέσα σε λεπτή πισίνα έως 20 GB. Εάν και οι τέσσερις πελάτες αρχίσουν να γράφουν δεδομένα στους τόμους τους για να γεμίσουν τον ρυθμό, εκείνη τη στιγμή, θα αντιμετωπίσουμε κρίσιμη κατάσταση, αν όχι δεν θα υπάρξει πρόβλημα.

Τώρα έχω δημιουργήσει σύστημα αρχείων στο thin_vol_client4, στη συνέχεια προσαρτώ στο /mnt/client4 και αντιγράφω ορισμένα αρχεία σε αυτό.

lvs

Μπορούμε να δούμε στην παραπάνω εικόνα, ότι το συνολικό χρησιμοποιούμενο μέγεθος στον νέο πελάτη 4 που δημιουργήθηκε έως και 89,34% και το μέγεθος της λεπτής ομάδας ως 59,19% που χρησιμοποιείται. Εάν όλοι αυτοί οι χρήστες δεν γράφουν άσχημα στον τόμο, θα είναι απαλλαγμένο από υπερχείλιση, πτώση. Για να αποφύγουμε την υπερχείλιση πρέπει να επεκτείνουμε το μέγεθος της λεπτής πισίνας.

Σημαντικό: Τα Thin-pools είναι απλώς ένας λογικός όγκος, οπότε αν χρειαστεί να επεκτείνουμε το μέγεθος του thin-pool, μπορούμε να χρησιμοποιήσουμε την ίδια εντολή όπως χρησιμοποιήσαμε για λογικούς όγκους εκτείνονται, αλλά δεν μπορούμε να μειώσουμε το μέγεθος της λεπτής πισίνας.

lvextend

Εδώ μπορούμε να δούμε πώς να επεκτείνουμε το λογικό thin-pool (tp_tecmint_pool).

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

Στη συνέχεια, αναφέρετε το μέγεθος της λεπτής πισίνας.

lvs

Νωρίτερα, το μέγεθος tp_tecmint_pool μας ήταν 15 GB και 4 λεπτοί τόμοι, ο οποίος υπερέβαινε το Provision κατά 20 GB. Τώρα έχει επεκταθεί στα 30 GB, επομένως η υπερπαροχή μας έχει κανονικοποιηθεί και οι λεπτοί όγκοι δεν έχουν υπερχείλιση, πτώση. Με αυτόν τον τρόπο μπορείτε να προσθέσετε όλο και πιο λεπτούς όγκους στην πισίνα.

Εδώ, είδαμε πώς να δημιουργήσετε μια λεπτή πισίνα χρησιμοποιώντας ένα μεγάλο μέγεθος ομάδας τόμων και να δημιουργήσετε λεπτούς όγκους μέσα σε μια λεπτή πισίνα χρησιμοποιώντας Υπερ-Προσφορά και επέκταση της πισίνας. Στο επόμενο άρθρο θα δούμε πώς να ρυθμίσετε ένα lvm Striping.