Έχοντας προετοιμάσει όλες τις απαραίτητες κατατμήσεις, είναι σχετικά απλό να ρυθμίσουμε το 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) χρησιμοποίησε τις πληροφορίες του ημερολογίου για να επιστρέψει το σύστημα αρχείων σε σταθερή κατάσταση.
Αν και η παραπάνω διαδικασία είναι απαραίτητη για να χρησιμοποιήσετε 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
Αν δεν θέλετε να φορτώσετε το 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>.