Κατά την αναβάθμιση μιας παρουσίας VPS στο Vultr, το μέγεθος ενός συστήματος αρχείων Linux αλλάζει αυτόματα. Κατά την εκτέλεση του FreeBSD με το προηγμένο σύστημα αρχείων ZFS, απαιτείται κάποια χειρωνακτική εργασία. Αυτός ο οδηγός υποθέτει ότι ο λογαριασμός μας έχει μόλις αναβαθμιστεί ώστε να περιλαμβάνει περισσότερο χώρο αποθήκευσης και ακολουθεί τα βήματα αλλαγής μεγέθους ενός τόμου ZFS. Σε αυτό το παράδειγμα, υποθέτουμε μια εγκατάσταση του FreeBSD ή του TrueOS με το ZFS ως ριζικό σύστημα αρχείων. Αυτό το σεμινάριο θα πρέπει να λειτουργεί για παρόμοια λειτουργικά συστήματα, όπως το FreeNAS.
Αρχικά, θα πάρουμε μια ιδέα για το μέγεθος και τη διάταξη του σκληρού δίσκου. Από εδώ και πέρα, θα υποθέσουμε ότι ο σκληρός μας δίσκος είναι η συσκευή "vtbd0", ο πρώτος σκληρός δίσκος σε μια εγκατάσταση FreeBSD. Για να ανακαλύψουμε το μέγεθος και τη διάταξη του vtbd0, χρησιμοποιούμε την gpart
εντολή.
gpart show
Θα δούμε μια γραμμή που υποδεικνύει το μέγεθος της μονάδας και την κατάστασή της. Η κατάσταση που θα δούμε στο τέλος της πρώτης γραμμής μετά την αλλαγή μεγέθους της μονάδας δίσκου είναι "κατεστραμμένη". Μετά από αυτήν τη γραμμή κατάστασης, θα υπάρχουν τρεις γραμμές που θα μας λένε ποια διαμερίσματα υπάρχουν στη μονάδα δίσκου, ποια συστήματα αρχείων χρησιμοποιούνται και το μέγεθος κάθε διαμερίσματος. Το πρώτο διαμέρισμα πιθανότατα θα είναι ένα διαμέρισμα "BIOS-boot", το δεύτερο είναι ο τόμος ZFS και το τρίτο είναι συχνά χώρος ανταλλαγής. Αυτή είναι η διάταξη που θα υποθέσουμε για τους σκοπούς αυτού του παραδείγματος. Σε κάθε διαμέρισμα εκχωρείται ένας αριθμός ευρετηρίου. Σε αυτήν την περίπτωση, οι αριθμοί ευρετηρίου είναι "1" για το διαμέρισμα εκκίνησης του BIOS, "2" για τον τόμο ZFS και "3" για την εναλλαγή. Η διάταξη και οι αριθμοί ευρετηρίου ενδέχεται να διαφέρουν.
Το επόμενο πράγμα που πρέπει να κάνουμε είναι να ανακτήσουμε τη διάταξη της μονάδας δίσκου, ώστε να μην εμφανίζεται πλέον ως "κατεστραμμένη". Εκτελέστε την ακόλουθη εντολή:
gpart recover vtbd0
Θα πρέπει να δούμε αμέσως ένα μήνυμα που λέει "vtbd0 ανακτήθηκε". Ελέγξτε gpart show
ξανά την κατάσταση της μονάδας εκτελώντας ξανά. Το επόμενο βήμα είναι να χειριστείτε το διαμέρισμα swap. Εάν η κατάτμησή μας swap έρχεται μετά από τη συγκέντρωση ZFS στη μονάδα δίσκου, μπορεί να εμποδίσει τον αυξανόμενο όγκο ZFS. Θα κάνουμε swap εκτός σύνδεσης και θα αφαιρέσουμε το διαμέρισμα swap εκτελώντας:
swapoff -a
gpart delete -i 3 vtbd0
Αυτές οι εντολές απενεργοποιούν το swap space και διαγράφουν το διαμέρισμα "3" (το διαμέρισμα swap). Φροντίστε να εκτελέσετε gpart show
πριν την εκτέλεση gpart delete
για να βεβαιωθείτε ότι αφαιρείτε το σωστό διαμέρισμα.
Το επόμενο βήμα μας είναι να αλλάξουμε το μέγεθος του διαμερίσματος ZFS. Μπορούμε να ακολουθήσουμε μία από τις δύο προσεγγίσεις εδώ. Εάν αποφασίσουμε ότι δεν χρειαζόμαστε καθόλου χώρο ανταλλαγής, τότε μπορούμε να αναλάβουμε όλο τον ελεύθερο χώρο στη μονάδα δίσκου και να τον αντιστοιχίσουμε στο διαμέρισμα ZFS εκτελώντας:
gpart resize -i 2 vtbd0
Εναλλακτικά, αν θέλουμε να συνεχίσουμε να χρησιμοποιούμε swap space, τότε μπορούμε να τροποποιήσουμε λίγο την εντολή αλλαγής μεγέθους. Ας υποθέσουμε ότι το διαμέρισμα ZFS είναι αυτή τη στιγμή 10 GB και θέλουμε να αλλάξουμε το μέγεθός του στα 20 GB. Θα εκτελούσαμε:
gpart resize -i 2 -s 20g vtbd0
Η παράμετρος "-s 20g" λέει στο gpart να αλλάξει το μέγεθος του δεύτερου διαμερίσματος σε 20 GB. Μπορούμε να επιβεβαιώσουμε ότι αυτή η ενέργεια ολοκληρώθηκε με επιτυχία εκτελώντας gpart show
. Η gpart show
εντολή θα μας δείξει επίσης πόσος χώρος είναι διαθέσιμος στο τέλος της μονάδας δίσκου για ένα νέο διαμέρισμα ανταλλαγής.
Σε αυτό το σημείο, ελέγχοντας το μέγεθος του χώρου αποθήκευσης ZFS θα εξακολουθεί να εμφανίζεται το προηγούμενο μέγεθος.
zpool list
Για να πείτε στο σύστημα αρχείων να επεκταθεί και να αναλάβει ολόκληρο το δεύτερο διαμέρισμα της μονάδας δίσκου μας, εκτελέστε τα εξής:
zpool online -e tank vtbd0p2
Η παραπάνω εντολή αλλάζει το μέγεθος του χώρου αποθήκευσης ZFS που ονομάζεται "tank" και καταλαμβάνει ολόκληρο το δεύτερο διαμέρισμα του σκληρού δίσκου. Το "p2" στο τέλος της γραμμής υποδεικνύει ότι εργαζόμαστε με το δεύτερο διαμέρισμα και, εάν η διάταξη της μονάδας δίσκου σας είναι διαφορετική, ο αριθμός μετά το "p" θα πρέπει να ταιριάζει με τον δείκτη διαμερισμάτων ZFS. Θυμηθείτε, μπορείτε να εμφανίσετε το ευρετήριο διαμερισμάτων με gpart show
.
Σε αυτό το σημείο, έχουμε σχεδόν τελειώσει. Εάν δεν χρειάζεστε εναλλαγή χώρου, τότε η ρύθμιση έχει ολοκληρωθεί. Εκτελέστε zpool list
για να επιβεβαιώσετε ότι η πισίνα αποθήκευσης έχει το σωστό, μεγαλύτερο μέγεθος.
Διαφορετικά, έχετε αφήσει χώρο στο τέλος της μονάδας δίσκου για ένα διαμέρισμα ανταλλαγής. Μπορούμε να προσθέσουμε ξανά χώρο εναλλαγής εκτελώντας μερικές εντολές. Αρχικά, δημιουργούμε έναν νέο χώρο ανταλλαγής:
gpart add -t freebsd-swap -s 1g -i 3 vtbd0
Αυτή η εντολή δημιουργεί ένα διαμέρισμα swap μεγέθους 1 GB. Το νέο διαμέρισμα προστίθεται στον σκληρό μας δίσκο και δίνεται ο αριθμός ευρετηρίου "3". Η επόμενη κίνηση μας είναι να ενεργοποιήσουμε τον χώρο ανταλλαγής έτσι ώστε το λειτουργικό μας σύστημα να μπορεί να χρησιμοποιήσει το νέο διαμέρισμα.
swapon /dev/vtbd0p3
Για άλλη μια φορά, το "p3" στο τέλος της γραμμής υποδεικνύει ότι η κατάτμησή μας swap εκχωρήθηκε στο ευρετήριο "3". Εάν χρησιμοποιήσαμε διαφορετικό ευρετήριο, τότε ο αριθμός θα πρέπει να αλλάξει ώστε να αντικατοπτρίζει τον αριθμό ευρετηρίου ανταλλαγής στην έξοδο που δημιουργείται από gpart show
. Μπορούμε να επιβεβαιώσουμε ότι ο χώρος ανταλλαγής είναι ενεργοποιημένος και λειτουργεί εκτελώντας την εντολή:
swapctl -l -h
Αυτό θα δείξει ότι χρησιμοποιείται 1 GB χώρου ανταλλαγής.
Τέλος, μια λέξη προσοχής. Η κατάργηση/προσθήκη swap space αλλάζει την ετικέτα του διαμερίσματος swap. Αυτό σημαίνει ότι η καταχώριση ανταλλαγής στο /etc/fstab
αρχείο δεν θα θεωρείται πλέον έγκυρη. Επομένως, ο χώρος ανταλλαγής δεν θα ενεργοποιηθεί μετά την επανεκκίνηση του λειτουργικού συστήματος. Για να αποφύγετε αυτό το πρόβλημα, ανοίξτε το /etc/fstab
αρχείο και βρείτε τη γραμμή που προσαρτά το χώρο ανταλλαγής. Βεβαιωθείτε ότι η αρχή της γραμμής αναφέρει το διαμέρισμα που μόλις δημιουργήσαμε, /dev/vtbd0p3
, ως τη συσκευή ανταλλαγής.