4 Ρύθμιση του Journaling

4.1 Εκτέλεση της Εντολής gjournal

Έχοντας προετοιμάσει όλες τις απαραίτητες κατατμήσεις, είναι σχετικά απλό να ρυθμίσουμε το journaling. Θα πρέπει να μεταβούμε σε κατάσταση ενός χρήστη, για το λόγο αυτό εισέλθετε στο σύστημα ως root και γράψτε:

# shutdown now

Πιέστε Enter για να βγείτε στο προεπιλεγμένο κέλυφος. Θα πρέπει να αποπροσαρτήσουμε τις κατατμήσεις στις οποίες θα γίνει το journaling, στο παράδειγμα μας τις /usr και /var:

# umount /usr /var

Φορτώστε το άρθρωμα του πυρήνα που απαιτείται για το journaling:

# gjournal load

Χρησιμοποιήστε τώρα τις σημειώσεις σας για να καθορίσετε ποια κατάτμηση χρησιμοποιείται για κάθε ημερολόγιο. Στο παράδειγμα μας, το /usr βρίσκεται στο ad0s1f και το ημερολόγιο του θα είναι στο ad0s1g, ενώ το /var είναι στο ad0s1d και το ημερολόγιο του θα είναι στο ad0s1h. Θα χρειαστείτε τις παρακάτω εντολές:

# gjournal label ad0s1f ad0s1g

GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.

# gjournal label ad0s1d ad0s1h

GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.

Σημείωση: Αν ο τελευταίος τομέας κάποιας από τις κατατμήσεις είναι σε χρήση, η εντολή gjournal θα σας επιστρέψει ένα μήνυμα λάθους. Θα πρέπει να εκτελέσετε την εντολή χρησιμοποιώντας την παράμετρο -f με την οποία θα υποχρεώσετε την επανεγγραφή του τομέα, π.χ.:

# gjournal label -f ad0s1d ad0s1h

Μια που πρόκειται για νέα εγκατάσταση, είναι μάλλον απίθανο να προκαλέσετε κάποιο πρόβλημα.

Στο σημείο αυτό δημιουργούνται δύο νέες συσκευές, οι ad0s1d.journal και ad0s1f.journal. Αυτές αντιπροσωπεύουν τις κατατμήσεις /var και /usr που θα πρέπει να προσαρτήσουμε. Πριν τις προσαρτήσουμε ωστόσο, θα πρέπει να θέσουμε την επιλογή journal και να αναιρέσουμε την επιλογή Soft Updates:

# tunefs -J enable -n disable ad0s1d.journal

tunefs: gjournal set
tunefs: soft updates cleared

# tunefs -J enable -n disable ad0s1f.journal

tunefs: gjournal set
tunefs: soft updates cleared

Προσαρτήστε τώρα χειροκίνητα τις νέες συσκευές στα αντίστοιχα σημεία προσάρτησης (σημειώστε ότι μπορούμε πλέον να χρησιμοποιήσουμε την επιλογή async κατά την προσάρτηση):

# mount -o async /dev/ad0s1d.journal /var
# mount -o async /dev/ad0s1f.journal /usr

Επεξεργαστείτε το αρχείο /etc/fstab και ανανεώστε τις καταχωρήσεις για τις κατατμήσεις /usr και /var:

/dev/ad0s1f.journal     /usr            ufs     rw,async      2       2
/dev/ad0s1d.journal     /var            ufs     rw,async      2       2

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

Τέλος, επεξεργαστείτε το αρχείο /boot/loader.conf και προσθέστε την ακόλουθη γραμμή ώστε να φορτώνεται το άρθρωμα gjournal(8) σε κάθε εκκίνηση:

geom_journal_load="YES"

Συγχαρητήρια! Το σύστημα σας είναι τώρα έτοιμο για journaling. Μπορείτε να γράψετε exit για να επιστρέψετε στην κανονική λειτουργία (πολλαπλών χρηστών) ή να επανεκκινήσετε το σύστημα σας (συνίσταται) για να ελέγξετε τις ρυθμίσεις σας. Κατά την εκκίνηση, θα δείτε μηνύματα όπως το παρακάτω:

ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150
GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.
GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
GEOM_JOURNAL: Journal ad0s1d clean.
GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
GEOM_JOURNAL: Journal ad0s1f clean.

Μετά από ένα προβληματικό τερματισμό θα δείτε μηνύματα όπως το παρακάτω:

GEOM_JOURNAL: Journal ad0s1d consistent.

Αυτό συνήθως σημαίνει ότι το gjournal(8) χρησιμοποίησε τις πληροφορίες του ημερολογίου για να επιστρέψει το σύστημα αρχείων σε σταθερή κατάσταση.

4.2 Χρήση του Journaling σε Νέες Κατατμήσεις

Αν και η παραπάνω διαδικασία είναι απαραίτητη για να χρησιμοποιήσετε journaling σε κατατμήσεις που έχουν ήδη δεδομένα, η αντίστοιχη διαδικασία για νέες κατατμήσεις είναι πιο απλή. Στην περίπτωση αυτή, μπορεί να χρησιμοποιηθεί ο ίδιος παροχέας τόσο για τα δεδομένα όσο και για το ημερολόγιο. Για παράδειγμα, υποθέστε ότι έχετε προσθέσει ένα νέο δίσκο και έχετε δημιουργήσει την κατάτμηση /dev/ad1s1d. Η δημιουργία του ημερολογίου είναι αρκετά απλή και φαίνεται παρακάτω:

# gjournal label ad1s1d

Το προεπιλεγμένο μέγεθος του ημερολογίου είναι 1 GB. Μπορείτε ωστόσο να το ρυθμίσετε χρησιμοποιώντας την επιλογή -s. Μπορείτε να δώσετε τιμές σε bytes, ή να βάλετε μετά την τιμή ένα από τα γράμματα K, M ή G για να δηλώσετε Kilobytes, Megabytes ή Gigabytes αντίστοιχα. Σημειώστε ότι η εντολή gjournal, δεν θα σας επιτρέψει να δημιουργήσετε ημερολόγιο που να είναι ακατάλληλο λόγω μικρού μεγέθους.

Για παράδειγμα, για να δημιουργήσετε ένα ημερολόγιο μεγέθους 2 GB, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

# gjournal label -s 2G ad1s1d

Μπορείτε έπειτα να δημιουργήσετε ένα σύστημα αρχείων στη νέα σας κατάτμηση, και ταυτόχρονα να ενεργοποιήσετε το journaling, χρησιμοποιώντας την επιλογή -J:

# newfs -J /dev/ad1s1d.journal

4.3 Ενσωμάτωση του Journaling σε Προσαρμοσμένο Πυρήνα

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

options UFS_GJOURNAL # Σημείωση: η επιλογή αυτή υπάρχει στο GENERIC

options GEOM_JOURNAL # Θα πρέπει να προσθέσετε αυτή τη γραμμή

Μεταγλωττίστε και επανεγκαταστήστε τον πυρήνα σας χρησιμοποιώντας τις σχετικές οδηγίες στο Εγχειρίδιο του FreeBSD.

Μην ξεχάσετε να αφαιρέσετε την αντίστοιχη καταχώρηση «load» από το αρχείο /boot/loader.conf αν την είχατε χρησιμοποιήσει προηγουμένως.

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.