Το προφίλ μας στο Google Plus
0

Linux LVM: Επίπεδα αφαίρεσης, προς όφελός μας!

Το παρόν αποτελεί προαιρετικό συμπλήρωμα των δύο post γύρω από το Logical Volume Manager (LVM) του Linux, τα οποία δημοσιεύονται εδώ κι εδώ. Για όσους δεν είναι εξοικειωμένοι με την έννοια του storage virtualization γενικότερα και το LVM ειδικότερα, αποτελεί απαραίτητο ανάγνωσμα για την κατανόηση των βημάτων και τεχνικών που περιγράφονται στα δύο προαναφερθέντα post.

Η λογική του Logical Volume Manager γίνεται πολύ καλύτερα κατανοητή αν αρχίσουμε να σκεφτόμαστε μια στρατηγική αποθήκευσης η οποία ξετυλίγεται σε διαδοχικά επίπεδα. Αναλυτικότερα, ξεκινάμε από τους ίδιους τους φυσικούς δίσκους (πρώτο επίπεδο, κάτω) και προχωράμε σε ολοένα και πιο αφηρημένα επίπεδα οργάνωσης, φτάνοντας έως και τα mount points με τα filesystems τους (τελευταίο επίπεδο, πάνω).

Σχήμα 1: Η λογική του συστήματος LVM, σχηματικά.

Στο κατώτερο επίπεδο συναντάμε τους ίδιους τους δίσκους. Για τη συνέχεια υποθέτουμε ότι στον υπολογιστή υπάρχουν τέσσερις δίσκοι SATA, με device files τα /dev/sda, /dev/sdb, /dev/sdc και /dev/sdd.

Ένα επίπεδο πιο πάνω βρίσκονται τα partitions. Για λόγους απλότητας, στην περίπτωσή μας κάθε δίσκος έχει ακριβώς ένα partition με μέγεθος ακριβώς ίσο προς τη χωρητικότητά του. Έχουμε, λοιπόν, τέσσερα partitions με device files τα /dev/sda1, /dev/sdb1, /dev/sdc1 και /dev/sdd1.

Τώρα, για το LVM κάθε partition θεωρείται ως ένας φυσικός τόμος ή αλλιώς Physical Volume (PV). Ένα ή περισσότερα PVs συγκροτούν μια ομάδα τόμων ή αλλιώς Volume Group (VG). Σημειώστε ότι παρά το γεγονός ότι στο παράδειγμά μας υπάρχει μόνο ένα VG, γενικά μπορούμε να ‘χουμε περισσότερα! Κάθε VG έχει ένα όνομα και το δικό μας το ‘χουμε βαφτίσει datavg (ξέρουμε, πολύ πρωτότυπο).

Πατώντας πάνω στα Volume Groups το LVM δημιουργεί λογικούς τόμους. Κατά τα αναμενόμενα, αυτοί ονομάζονται Logical Volumes ή εν συντομία LVs. Μπορούμε να ‘χουμε όσα LVs επιθυμούμε, το καθένα με το δικό του device file. Στο παράδειγμά μας είναι δημιουργημένα τα /dev/datavg/videolv, /dev/datavg/audiolv, /dev/datavg/picslv και /dev/datavg/backuplv (παρατηρείστε ότι εξαιτίας της παρουσίας του VG με όνομα datavg, έχει ήδη δημιουργηθεί device file με όνομα /dev/datavg).

Στο ανώτερο επίπεδο οργάνωσης, κάθε LV διαμορφώνεται (φορμάρεται) σε κάποιο filesystem της επιλογής του διαχειριστή (π.χ., Ext3, Ext4, JFS κ.λπ.) και προσαρτάται κάτω από ένα mountpoint. Στα πλαίσια του παραδείγματός μας τα /dev/datavg/videolv, /dev/datavg/audiolv, /dev/datavg/picslv και /dev/datavg/backuplv είναι όλα διαμορφωμένα κατά Ext4 (φυσικά δεν χρειάζεται να ‘χουν όλα το ίδιο filesystem) και προσαρτώνται (mounted) κάτω από τους καταλόγους /mnt/video, /mnt/audio, /mnt/pics και /mnt/backup αντίστοιχα.

Ας μεταφερθούμε για λίγο ένα επίπεδο οργάνωσης πιο κάτω, εκεί που κατοικούν τα Logical Volumes. Το άθροισμα των χωρητικοτήτων καθενός LV επιτρέπεται να ‘ναι μικρότερο της χωρητικότητας του Volume Group στο οποίο ανήκουν. Προκειμένου να κατανοήσουμε τη χρησιμότητα αυτής της δυνατότητας που προσφέρει το LVM, ας δούμε ένα συγκεκριμένο παράδειγμα. Υποθέστε ότι οι τέσσερις δίσκοι του fileserver μας έχουν χωρητικότητες 160GB (/dev/sda), 250GB (/dev/sdb), 400GB (/dev/sdc) και 1TB (/dev/sdd). Χωρίς να ‘μαστε υποχρεωμένοι, από επιλογή έχουμε δημιουργήσει ακριβώς ένα VG, το datavg, με χωρητικότητα το άθροισμα των χωρητικοτήτων όλων των φυσικών δίσκων, μ’ άλλα λόγια με χωρητικότητα 1,81TB. Όσον αφορά στα LVs, αποφασίσαμε ώστε αρχικά να ισχύει /dev/datavg/videolv = 600GB, /dev/datavg/audiolv = 60GB, /dev/datavg/picslv = 30GB και /dev/datavg/backuplv = 200GB.

Ώστε λοιπόν ξεκινάμε σκοπίμως συντηρητικά και προσφέρουμε στους χρήστες του fileserver αποθηκευτικό χώρο 890GB, έχοντας αφήσει στην άκρη 820GB. Στην πορεία του χρόνου κι αναλόγως των πραγματικών αναγκών θα ‘χουμε την ευχέρεια να μεγαλώνουμε -δυναμικά- ένα ή περισσότερα από τα LVs. Όταν κάποια στιγμή φτάσουμε στη μέγιστη επιτρεπτή χωρητικότητα του Volume Group -εν προκειμένω τα 1,81TB- θα μπορούμε ν’ αγοράσουμε νέο δίσκο ή νέους δίσκους, επομένως να προσθέσουμε επιπλέον PVs στο VG, ακολούθως να μεγεθύνουμε ένα ή περισσότερα LVs (από το ίδιο VG) κι έτσι να προσφέρουμε περισσότερο αποθηκευτικό χώρο στους χρήστες του fileserver! Μια άλλη πρακτική χρησιμότητα της συντηρητικής πολιτικής είναι ότι αφήνοντας ελεύθερο χώρο στο VG αργότερα θα μπορούμε εύκολα να του προσθέτουμε νέα LVs, ανάλογα με τις ανάγκες που θα προκύπτουν. Φανταστείτε, π.χ., ότι εξαιτίας κάποιων ευαίσθητων δεδομένων που θέλουμε να προστατεύσουμε όσο καλύτερα μπορούμε, προσθέτουμε ένα νέο LV το οποίο φορμάρουμε και κρυπτογραφούμε.

Εναλλακτικά, ανά πάσα στιγμή έχουμε δυνατότητα αντικατάστασης ενός μικρού PV (ουσιαστικά ενός μικρού δίσκου) μ’ ένα μεγαλύτερο PV (μ’ έναν μεγαλύτερο δίσκο). Έτσι, αποκτάμε ακόμα μεγαλύτερο VG και συνεπώς αφού μεγαλώσουμε ένα ή περισσότερα από τα LV του είμαστε σε θέση να προσφέρουμε περισσότερο αποθηκευτικό χώρο στους χρήστες του fileserver. Μόνη προϋπόθεση για την επιτυχή αντικατάσταση ενός PV μ’ ένα μεγαλύτερο είναι τα περιεχόμενά του να χωράνε σε άλλα PV.

Απ’ όλα τα προηγούμενα γίνεται φανερή η ευελιξία του συστήματος LVM, καθώς και οι τεράστιες δυνατότητες επέκτασης που προσφέρει. Ένα όμως θέμα που δεν θίξαμε είναι αυτό της ασφάλειας. Πράγματι, αν έχουμε ένα Volume Group με k στο πλήθος Physical Volumes (φυσικούς δίσκους), τότε η πιθανότητα να χάσουμε τα δεδομένα μας από αστοχία υλικού είναι k φορές μεγαλύτερη από την πιθανότητα να χτυπήσει ένας μόνο δίσκος. Ευτυχώς, το LVM υποστηρίζει την προσθήκη PVs τα οποία στην πραγματικότητα είναι συστοιχίες RAID 1!

Σχήμα 2: Ένας συνδυασμός RAID και LVM.

Περισσότερα για το πάντρεμα LVM και RAID1 μπορείτε να διαβάσετε εδώ. Εκεί παρατίθενται και παραδείγματα προχωρημένης χρήσης του συστήματος LVM. Όμως πριν απ’ αυτά σας συστήνουμε να διαβάσετε το post που δείχνει πώς χρησιμοποιούμε το LVM για τη δημιουργία ενός ενιαίου αποθηκευτικού χώρου, ο οποίος αρχικά αποτελείται από τρεις δίσκους διαφορετικής χωρητικότητας.

Δεν ξέρουμε για εσάς, αλλά εμείς όποτε ασχολούμαστε με το LVM η πώρωση αυξάνει κατακόρυφα. Σας ευχόμαστε να πάθετε κι εσείς το ίδιο :P

Σας άρεσε το άρθρο; Αν ναι, τι θα λέγατε για ένα tip στο PayPal;

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων