LFCS: Πώς να διαχειριστείτε και να δημιουργήσετε LVM χρησιμοποιώντας εντολές vgcreate, lvcreate και lveextend - Μέρος 11


Λόγω των αλλαγών στις απαιτήσεις των εξετάσεων LFCS που ισχύουν Φεβ. 2, 2016προσθέτουμε τα απαραίτητα θέματα και στη σειρά LFCE.

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

Η Λογική Διαχείριση τόμων (γνωστή και ως LVM), η οποία έχει γίνει προεπιλογή για την εγκατάσταση των περισσότερων (αν όχι όλων) διανομών Linux, έχει πολλά πλεονεκτήματα σε σχέση με την παραδοσιακή διαχείριση διαμερισμάτων. Ίσως το πιο ξεχωριστό χαρακτηριστικό του LVM είναι ότι επιτρέπει στις λογικές διαιρέσεις να αλλάζουν μέγεθος (μείωση ή αύξηση) κατά βούληση χωρίς μεγάλη ταλαιπωρία.

Η δομή του LVM αποτελείται από:

  1. Ένας ή περισσότεροι ολόκληροι σκληροί δίσκοι ή διαμερίσματα έχουν διαμορφωθεί ως φυσικοί τόμοι (PV).
  2. Μια ομάδα τόμων (VG) δημιουργείται χρησιμοποιώντας έναν ή περισσότερους φυσικούς τόμους. Μπορείτε να σκεφτείτε μια ομάδα τόμου ως μια ενιαία μονάδα αποθήκευσης.
  3. Πολλοί λογικοί τόμοι μπορούν στη συνέχεια να δημιουργηθούν σε μια ομάδα τόμων. Κάθε λογικός τόμος είναι κάπως ισοδύναμος με ένα παραδοσιακό διαμέρισμα – με το πλεονέκτημα ότι μπορεί να αλλάξει το μέγεθός του κατά βούληση, όπως αναφέραμε προηγουμένως.

Σε αυτό το άρθρο θα χρησιμοποιήσουμε τρεις δίσκους 8 GB ο καθένας (/dev/sdb, /dev/sdc και /dev /sdd) για τη δημιουργία τριών φυσικών τόμων. Μπορείτε είτε να δημιουργήσετε τα φωτοβολταϊκά απευθείας στο επάνω μέρος της συσκευής είτε να τα χωρίσετε πρώτα.

Αν και επιλέξαμε να ακολουθήσουμε την πρώτη μέθοδο, εάν αποφασίσετε να ακολουθήσετε τη δεύτερη (όπως εξηγείται στο Μέρος 4 – Δημιουργία κατατμήσεων και συστημάτων αρχείων σε Linux αυτής της σειράς) φροντίστε να διαμορφώσετε κάθε διαμέρισμα ως τύπου 8e.

Δημιουργία φυσικών τόμων, ομάδων τόμων και λογικών τόμων

Για να δημιουργήσετε φυσικούς τόμους πάνω από τα /dev/sdb, /dev/sdc και /dev/sdd, κάντε τα εξής:

# pvcreate /dev/sdb /dev/sdc /dev/sdd

Μπορείτε να απαριθμήσετε τα πρόσφατα δημιουργημένα Φ/Β με:

# pvs

και λάβετε αναλυτικές πληροφορίες για κάθε Φ/Β με:

# pvdisplay /dev/sdX

(όπου X είναι b, c ή d)

Εάν παραλείψετε το /dev/sdX ως παράμετρο, θα λάβετε πληροφορίες για όλα τα Φ/Β.

Για να δημιουργήσετε μια ομάδα τόμων με το όνομα vg00 χρησιμοποιώντας τα /dev/sdb και /dev/sdc (θα αποθηκεύσουμε το /dev/sdd για αργότερα για να απεικονιστεί η δυνατότητα προσθήκης άλλων συσκευών για επέκταση της χωρητικότητας αποθήκευσης όταν χρειάζεται):

# vgcreate vg00 /dev/sdb /dev/sdc

Όπως συνέβη με τους φυσικούς τόμους, μπορείτε επίσης να δείτε πληροφορίες σχετικά με αυτήν την ομάδα τόμων εκδίδοντας:

# vgdisplay vg00

Εφόσον το vg00 έχει διαμορφωθεί με δύο δίσκους 8 GB, θα εμφανίζεται ως μία μονάδα 16 GB:

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

Για παράδειγμα, ας δημιουργήσουμε δύο LV με το όνομα vol_projects (10 GB) και vol_backups (υπόλοιπο χώρος), τα οποία μπορούμε να χρησιμοποιήσουμε αργότερα για να αποθηκεύσουμε την τεκμηρίωση του έργου και αντίγραφα ασφαλείας του συστήματος, αντίστοιχα.

Η επιλογή -n χρησιμοποιείται για να υποδείξει ένα όνομα για το LV, ενώ το -L ορίζει ένα σταθερό μέγεθος και το -l (πεζό L) είναι χρησιμοποιείται για να υποδείξει ένα ποσοστό του υπολειπόμενου χώρου στο δοχείο VG.

# lvcreate -n vol_projects -L 10G vg00
# lvcreate -n vol_backups -l 100%FREE vg00

Όπως και πριν, μπορείτε να δείτε τη λίστα των LV και τις βασικές πληροφορίες με:

# lvs

και λεπτομερείς πληροφορίες με

# lvdisplay

Για να προβάλετε πληροφορίες για ένα μεμονωμένο LV, χρησιμοποιήστε το lvdisplay με τις παραμέτρους VG και LV, ως εξής:

# lvdisplay vg00/vol_projects

Στην παραπάνω εικόνα μπορούμε να δούμε ότι τα LV δημιουργήθηκαν ως συσκευές αποθήκευσης (ανατρέξτε στη γραμμή Διαδρομή LV). Προτού μπορέσει να χρησιμοποιηθεί κάθε λογικός τόμος, πρέπει να δημιουργήσουμε ένα σύστημα αρχείων από πάνω του.

Θα χρησιμοποιήσουμε το ext4 ως παράδειγμα εδώ, καθώς μας επιτρέπει τόσο να αυξήσουμε όσο και να μειώσουμε το μέγεθος κάθε LV (σε αντίθεση με το xfs που επιτρέπει μόνο την αύξηση του μεγέθους):

# mkfs.ext4 /dev/vg00/vol_projects
# mkfs.ext4 /dev/vg00/vol_backups

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

Αλλαγή μεγέθους λογικών τόμων και επέκταση ομάδων τόμων

Τώρα φανταστείτε το παρακάτω σενάριο. Αρχίζετε να εξαντλείτε χώρο στο vol_backups, ενώ έχετε άφθονο διαθέσιμο χώρο στο vol_projects. Λόγω της φύσης του LVM, μπορούμε εύκολα να μειώσουμε το μέγεθος του τελευταίου (ας πούμε 2,5 GB) και να το διαθέσουμε για το πρώτο, ενώ ταυτόχρονα αλλάξουμε το μέγεθος κάθε συστήματος αρχείων.

Ευτυχώς, αυτό είναι τόσο εύκολο όσο το να κάνεις:

# lvreduce -L -2.5G -r /dev/vg00/vol_projects
# lvextend -l +100%FREE -r /dev/vg00/vol_backups

Είναι σημαντικό να συμπεριλάβετε τα σημάδια μείον (-) ή συν (+) ενώ αλλάζετε το μέγεθος ενός λογικού τόμου. Διαφορετικά, ορίζετε ένα σταθερό μέγεθος για το LV αντί να το αλλάζετε.

Μπορεί να συμβεί να φτάσετε σε ένα σημείο όπου η αλλαγή μεγέθους των λογικών τόμων δεν μπορεί να λύσει πλέον τις ανάγκες αποθήκευσης και πρέπει να αγοράσετε μια επιπλέον συσκευή αποθήκευσης. Διατηρώντας το απλό, θα χρειαστείτε έναν άλλο δίσκο. Θα προσομοιώσουμε αυτήν την κατάσταση προσθέτοντας το υπόλοιπο PV από την αρχική μας εγκατάσταση (/dev/sdd).

Για να προσθέσετε το /dev/sdd στο vg00, κάντε

# vgextend vg00 /dev/sdd

Εάν εκτελέσετε το vgdisplay vg00 πριν και μετά την προηγούμενη εντολή, θα δείτε την αύξηση του μεγέθους του VG:

# vgdisplay vg00

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

Τοποθέτηση λογικών τόμων κατά την εκκίνηση και κατά παραγγελία

Φυσικά δεν θα είχε νόημα να δημιουργήσουμε λογικούς τόμους αν δεν πρόκειται να τους χρησιμοποιήσουμε πραγματικά! Για να προσδιορίσουμε καλύτερα έναν λογικό τόμο, θα χρειαστεί να μάθουμε ποιο είναι το UUID του (ένα μη μεταβαλλόμενο χαρακτηριστικό που προσδιορίζει μοναδικά μια διαμορφωμένη συσκευή αποθήκευσης).

Για να το κάνετε αυτό, χρησιμοποιήστε το blkid ακολουθούμενο από τη διαδρομή προς κάθε συσκευή:

# blkid /dev/vg00/vol_projects
# blkid /dev/vg00/vol_backups

Δημιουργήστε σημεία προσάρτησης για κάθε LV:

# mkdir /home/projects
# mkdir /home/backups

και εισαγάγετε τις αντίστοιχες καταχωρήσεις στο /etc/fstab (φροντίστε να χρησιμοποιήσετε τα UUID που έχετε αποκτήσει πριν):

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects	ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4	defaults 0 0

Στη συνέχεια, αποθηκεύστε τις αλλαγές και προσαρτήστε τα LV:

# mount -a
# mount | grep home

Όταν πρόκειται να χρησιμοποιήσετε πραγματικά τα LV, θα χρειαστεί να εκχωρήσετε τα κατάλληλα δικαιώματα ugo+rwx όπως εξηγείται στο Μέρος 8 – Διαχείριση χρηστών και ομάδων στο Linux αυτής της σειράς.

Περίληψη

Σε αυτό το άρθρο παρουσιάσαμε το Μέρος 6 – Δημιουργία και διαχείριση RAID σε Linux αυτής της σειράς), μπορείτε να απολαύσετε όχι μόνο επεκτασιμότητα (παρέχεται από την LVM) αλλά και πλεονασμό (προσφέρεται από το RAID).

Σε αυτόν τον τύπο εγκατάστασης, θα βρείτε συνήθως το LVM πάνω από το RAID, δηλαδή, διαμορφώστε πρώτα το RAID και μετά διαμορφώστε το LVM από πάνω του.

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