4. Ρύθμιση του Journaling
Προηγ |  | Επόμενο

## 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.

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

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

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

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