Υλοποίηση του UFS Journaling σε ένα Desktop Υπολογιστή
Προηγ |  | Επόμενο

# 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` αν την είχατε χρησιμοποιήσει προηγουμένως.

Προηγ | Αρχή | Επόμενο
Βήματα Κατά την Εγκατάσταση του FreeBSD |  | Αντιμετώπιση Προβλημάτων

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

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