doc/el_GR.ISO8859-7/articles/gjournal-desktop/article.xml
2013-01-30 19:12:36 +00:00

771 lines
32 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="iso-8859-7"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
"../../../share/xml/freebsd45.dtd" [<!ENTITY iso-greek "ISO/IEC&nbsp;8859-7">
]>
<!--
Υλοποίηση του UFS Journaling σε ένα desktop υπολογιστή
The FreeBSD Greek Documentation Project
%SOURCE% en_US.ISO8859-1/articles/gjournal-desktop/article.xml
%SRCID% 1.5
-->
<article lang="el">
<articleinfo>
<title>Υλοποίηση του UFS Journaling σε ένα Desktop Υπολογιστή</title>
<author>
<firstname>Μανώλης</firstname>
<surname>Κιαγιάς</surname>
<affiliation>
<address><email>manolis@FreeBSD.org</email></address>
</affiliation>
</author>
<copyright>
<year>2008</year>
<holder role="mailto:manolis@FreeBSD.org">Μανώλης Κιαγιάς</holder>
</copyright>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<legalnotice id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.general;
</legalnotice>
<abstract>
<para>Ένα σύστημα αρχείων που διαθέτει δυνατότητα journaling,
χρησιμοποιεί ένα αρχείο καταγραφής (journal ή ημερολόγιο) στο οποίο
γίνονται αρχικά οι εγγραφές πριν καταχωρηθούν στο κανονικό σύστημα
αρχείων. Με τον τρόπο αυτό μπορεί να εξασφαλιστεί η ακεραιότητα του
συστήματος αρχείων στην περίπτωση κατάρρευσης ή απότομης διακοπής της
τροφοδοσίας του. Η χρήση του journaling διασφαλίζει την συνολική
ακεραιότητα του συστήματος αρχείων, αλλά δεν μπορεί να διασφαλίσει
ότι δεν θα έχουμε απώλεια δεδομένων σε μεμονωμένα αρχεία τα οποία
ήταν ενδεχομένως σε χρήση την ώρα της κατάρρευσης. Ένα πλεονέκτημα
του journaling είναι η ελαχιστοποίηση του χρόνου που απαιτείται για
τον έλεγχο του συστήματος αρχείων σε περίπτωση κακού τερματισμού. Το
σύστημα αρχείων UFS που χρησιμοποιείται από το &os; δεν διαθέτει δικό
του ενσωματωμένο journaling. Ωστόσο, το πλαίσιο λειτουργιών GEOM στο
&os;&nbsp;7.<replaceable>X</replaceable> παρέχει ένα νέο journal
class το οποίο δίνει αυτή τη δυνατότητα, και μάλιστα ανεξάρτητα από
το σύστημα αρχείων που χρησιμοποιείται. Στο άρθρο αυτό εξετάζουμε
πως μπορούμε να χρησιμοποιήσουμε το journaling σε ένα τυπικό desktop
μηχάνημα για εργασία γραφείου.</para>
</abstract>
</articleinfo>
<sect1 id="introduction">
<title>Εισαγωγή</title>
<para>Αν και οι περισσότεροι εξυπηρετητές που χρησιμοποιούνται σε
περιβάλλοντα παραγωγής είναι καλά προστατευμένοι από μη-αναμενόμενους
τερματισμούς, δεν συμβαίνει το ίδιο και με το συνηθισμένο desktop
μηχάνημα το οποίο βρίσκεται στα χέρια του τελικού χρήστη. Αυτό συνήθως
δεν προστατεύεται από διακοπές ρεύματος, ενώ δεν είναι και οι λίγες οι
περιπτώσεις που ο κακός τερματισμός οφείλεται σε λανθασμένο χειρισμό
του χρήστη (κατά λάθος πίεση του reset κ.α.). Στις περισσότερες από
αυτές τις περιπτώσεις, τα Soft Updates που χρησιμοποιεί το σύστημα
αρχείων UFS μπορούν να το προστατεύσουν αρκετά καλά, αν και μετά τον
προβληματικό τερματισμό απαιτείται συνήθως έλεγχος του συστήματος
αρχείων, ο οποίος ακόμα και όταν γίνεται στο παρασκήνιο, διαρκεί
αρκετό χρόνο. Σε σπάνιες περιπτώσεις, το σύστημα αρχείων μπορεί να
υποστεί ζημιά η οποία να χρειάζεται χειροκίνητη επέμβαση για να
διορθωθεί, ενώ είναι πιθανή και η απώλεια δεδομένων.</para>
<para>Η νέα δυνατότητα για journaling που παρέχεται από το GEOM μπορεί
να βοηθήσει ιδιαίτερα στις παραπάνω περιπτώσεις, ελαχιστοποιώντας το
χρόνο που απαιτείται για τον έλεγχο του συστήματος αρχείων και
εξασφαλίζοντας ότι το σύστημα θα επανέλθει πολύ σύντομα σε σταθερή
κατάσταση.</para>
<para>Το άρθρο αυτό περιγράφει μια διαδικασία για την υλοποίηση του UFS
journaling σε ένα τυπικό desktop PC (στο οποίο χρησιμοποιείται ένας
σκληρός δίσκος τόσο για το σύστημα όσο και για τα δεδομένα). Θα πρέπει
να ακολουθήσετε αυτές τις οδηγίες κατά τη διάρκεια μιας νέας
εγκατάστασης του &os;. Τα βήματα είναι αρκετά απλά και δεν απαιτούν
ιδιαίτερα πολύπλοκες εντολές.</para>
<para>Αφού διαβάσετε αυτό το άρθρο, θα ξέρετε:</para>
<itemizedlist>
<listitem>
<para>Πως να δεσμεύσετε κάποιο χώρο στο δίσκο για το journaling κατά
τη διάρκεια μιας νέας εγκατάστασης του &os;.</para>
</listitem>
<listitem>
<para>Πως να φορτώσετε και να ενεργοποιήσετε το άρθρωμα (module)
<literal>geom_journal</literal> (ή πως να ενσωματώσετε τη
λειτουργία του στον προσαρμοσμένο πυρήνα σας).</para>
</listitem>
<listitem>
<para>Πως να μετατρέψετε τα υπάρχοντα συστήματα αρχείων σας ώστε
να χρησιμοποιούν journaling, και τι παραμέτρους θα πρέπει να δώσετε
στο <filename>/etc/fstab</filename> ώστε να τα προσαρτήσετε.</para>
</listitem>
<listitem>
<para>Πως να ενεργοποιήσετε το journaling σε νέες (άδειες)
κατατμήσεις.</para>
</listitem>
<listitem>
<para>Πως να αντιμετωπίσετε προβλήματα που σχετίζονται με το
journaling.</para>
</listitem>
</itemizedlist>
<para>Πριν διαβάσετε αυτό το άρθρο, θα πρέπει:</para>
<itemizedlist>
<listitem>
<para>Να κατανοείτε βασικές έννοιες του &unix; και του &os;.</para>
</listitem>
<listitem>
<para>Να είστε εξοικειωμένος με τη διαδικασία εγκατάστασης του &os;
και το βοηθητικό πρόγραμμα
<application>sysinstall</application>.</para>
</listitem>
</itemizedlist>
<warning>
<para>Η διαδικασία που περιγράφεται εδώ, προορίζεται για χρήση σε νέες
εγκαταστάσεις, όπου δεν υπάρχουν ακόμα αποθηκευμένα δεδομένα χρήστη.
Αν και είναι δυνατόν να τροποποιήσετε και να επεκτείνετε τη
διαδικασία αυτή σε μηχανήματα που βρίσκονται ήδη σε κανονική χρήση,
θα πρέπει οπωσδήποτε να
<emphasis>πάρετε αντίγραφα ασφαλείας</emphasis> όλων των σημαντικών
δεδομένων πριν επιχειρήσετε οποιαδήποτε αλλαγή. Όταν κάνετε αλλαγές
στα συστήματα αρχείων και στις κατατμήσεις των δίσκων σε τέτοιο
επίπεδο, είναι πιθανόν να κάνετε λάθη τα οποία θα αποβούν μοιραία για
τα δεδομένα σας.</para>
</warning>
</sect1>
<sect1 id="understanding-journaling">
<title>Κατανόηση του Journaling στο &os;</title>
<para>Το journaling που παρέχεται από το GEOM στο
&os;&nbsp;7.<replaceable>X</replaceable> δεν
είναι προσανατολισμένο σε κάποιο συγκεκριμένο σύστημα αρχείων (όπως για
παράδειγμα συμβαίνει με το σύστημα αρχείων ext3 στο &linux;) αλλά
λειτουργεί σε επίπεδο block. Αν και αυτό σημαίνει ότι μπορεί να
χρησιμοποιηθεί σε διαφορετικά συστήματα αρχείων, για το
&os;&nbsp;7.0-RELEASE, είναι δυνατή η χρήση του μόνο στο UFS2.</para>
<para>Οι λειτουργίες journaling παρέχονται φορτώνοντας το άρθρωμα
<filename>geom_journal.ko</filename> στον πυρήνα (ή ενσωματώνοντας τη
λειτουργία του σε ένα προσαρμοσμένο πυρήνα) και χρησιμοποιώντας την
εντολή <command>gjournal</command> για τη ρύθμιση των συστημάτων
αρχείων. Η χρήση του journaling είναι γενικά θεμιτή σε μεγάλα
συστήματα αρχείων, όπως είναι το <filename>/usr</filename>. Θα
χρειαστεί ωστόσο να έχετε δεσμεύσει από πριν κάποιο ελεύθερο χώρο στο
δίσκο.</para>
<para>Όταν γίνεται χρήση του journaling σε ένα σύστημα αρχείων, απαιτείται
κάποιος ελεύθερος χώρος για να αποθηκεύονται τα δεδομένα του ημερολογίου
καταγραφής (journal). Ο χώρος του δίσκου που αποθηκεύονται τα
πραγματικά δεδομένα αναφέρεται ως <emphasis>παροχέας δεδομένων (data
provider)</emphasis>, ενώ ο χώρος στον οποίο αποθηκεύεται το ημερολόγιο
ονομάζεται <emphasis>παροχέας ημερολογίου (journal provider).</emphasis>
Σε περίπτωση που το journaling γίνεται σε σύστημα αρχείων το οποίο έχει
ήδη δεδομένα, οι δύο παροχείς πρέπει να βρίσκονται σε διαφορετικές
κατατμήσεις. Σε περίπτωση χρήσης journaling σε νέα κατάτμηση, έχετε την
επιλογή να χρησιμοποιήσετε τον ίδιο παροχέα και για τα δεδομένα και για
το ημερολόγιο. Σε κάθε περίπτωση, με τη χρήση της εντολής
<command>gjournal</command>, οι δύο παροχείς συνδυάζονται για να
δημιουργήσουν το τελικό σύστημα αρχείων που υποστηρίζει journaling.
Για παράδειγμα:</para>
<itemizedlist>
<listitem>
<para>Θέλετε να χρησιμοποιήσετε journaling στο σύστημα αρχείων
<filename>/usr</filename>, το οποίο βρίσκεται στο
<filename class="devicefile">/dev/ad0s1f</filename> (το σύστημα
αρχείων περιέχει ήδη δεδομένα).</para>
</listitem>
<listitem>
<para>Έχετε κρατήσει κάποιο κενό χώρο στο δίσκο, σε μια κατάτμηση
στο <filename class="devicefile">/dev/ad0s1g</filename>.</para>
</listitem>
<listitem>
<para>Με την χρήση της εντολής <command>gjournal</command>, θα
δημιουργηθεί μια νέα συσκευή, η
<filename class="devicefile">/dev/ad0s1f.journal</filename>, όπου
το <filename class="devicefile">/dev/ad0s1f</filename> θα είναι ο
παροχέας δεδομένων και το
<filename class="devicefile">/dev/ad0s1g</filename> θα είναι ο
παροχέας ημερολογίου. Η νέα αυτή συσκευή θα χρησιμοποιείται πλέον
για όλες τις εργασίες που θα εκτελούνται στο σύστημα αρχείων.</para>
</listitem>
</itemizedlist>
<para>Ο χώρος στο δίσκο που απαιτείται για το ημερολόγιο εξαρτάται από
τη χρήση του συστήματος αρχείων, και όχι από το μέγεθος του παροχέα
δεδομένων. Για παράδειγμα, σε ένα τυπικό μηχάνημα γραφείου, θα είναι
αρκετό να χρησιμοποιήσετε 1&nbsp;GB για τον παροχέα ημερολογίου του
συστήματος αρχείων <filename>/usr</filename>, ενώ σε ένα μηχάνημα το
οποίο χρησιμοποιείται σε εργασίες όπου οι εγγραφές στο δίσκο είναι πολύ
συχνές και μεγάλες σε μέγεθος (π.χ. επεξεργασία video) θα χρειαστείτε
περισσότερο χώρο. Σε περίπτωση που ο χώρος που έχει δεσμευθεί για το
ημερολόγιο εξαντληθεί πριν γίνει δυνατή η εγγραφή δεδομένων στο
κανονικό σύστημα αρχείων, το σύστημα θα καταρρεύσει με kernel
panic.</para>
<note>
<para>Τα μεγέθη που προτείνονται εδώ για τον παροχέα ημερολογίου,
είναι απίθανο να προκαλέσουν πρόβλημα σε τυπική χρήση γραφείου
(περιήγηση στο διαδίκτυο, επεξεργασία κειμένου, αναπαραγωγή
πολυμέσων). Αν ωστόσο το είδος της εργασίας σας περιλαμβάνει έντονη
χρήση του σκληρού δίσκου, μπορείτε να χρησιμοποιήσετε τον ακόλουθο
κανόνα για τη μεγαλύτερη δυνατή αξιοπιστία: όλη η μνήμη RAM του
συστήματος σας πρέπει να χωράει στο 30% του χώρου του ημερολογίου.
Για παράδειγμα, αν το σύστημα σας έχει 1&nbsp;GB RAM, θα πρέπει να
δημιουργήσετε ημερολόγιο μεγέθους περίπου 3.3&nbsp;GB.
(Πολλαπλασιάστε το μέγεθος της RAM με το 3.3 για να βρείτε το μέγεθος
του ημερολογίου.)</para>
</note>
<para>Για περισσότερες πληροφορίες σχετικά με το journaling, παρακαλούμε
διαβάστε τη σελίδα manual του &man.gjournal.8;.</para>
</sect1>
<sect1 id="reserve-space">
<title>Βήματα Κατά την Εγκατάσταση του &os;</title>
<sect2>
<title>Δέσμευση Χώρου στο Δίσκο για το Journaling</title>
<para>Ένα τυπικό desktop μηχάνημα, έχει συνήθως ένα σκληρό δίσκο στον
οποίο αποθηκεύονται τόσο το λειτουργικό όσο και τα δεδομένα του
χρήστη. Συνήθως, οι προεπιλεγμένες κατατμήσεις που δημιουργούνται
από το <application>sysinstall</application> είναι περίπου σωστές:
Ένα desktop μηχάνημα δεν χρειάζεται μεγάλη κατάτμηση
<filename>/var</filename>, ενώ το μεγαλύτερο μέρος του ελεύθερου
χώρου αποδίδεται στο <filename>/usr</filename>, αφού στους
υποκαταλόγους του αποθηκεύονται τα δεδομένα του χρήστη και γίνονται
και οι εγκαταστάσεις του λογισμικού.</para>
<para>Χρησιμοποιώντας τις προεπιλεγμένες κατατμήσεις (αυτές που
δημιουργεί ο επεξεργαστής <application>Disklabel</application> όταν
πιέσετε το <keycap>A</keycap>), δεν μένει καθόλου ελεύθερος χώρος.
Ωστόσο κάθε κατάτμηση στην οποία θέλετε να χρησιμοποιήσετε
journaling, χρειάζεται ακόμα μία για την αποθήκευση του ημερολογίου.
Καθώς η κατάτμηση <filename>/usr</filename> είναι η μεγαλύτερη, το
πλέον λογικό είναι να την μικρύνουμε ελαφρά ώστε να εξασφαλίσουμε το
χώρο που απαιτείται για το journaling.</para>
<para>Στο παράδειγμα μας, χρησιμοποιείται ένας δίσκος μεγέθους
80&nbsp;GB. Στην ακόλουθη εικόνα φαίνονται οι προεπιλεγμένες
κατατμήσεις όπως δημιουργούνται από τον επεξεργαστή
<application>Disklabel</application> κατά την εγκατάσταση:</para>
<mediaobject>
<imageobject>
<imagedata fileref="disklabel1.png"/>
</imageobject>
</mediaobject>
<para>Αν τα παραπάνω μεγέθη είναι περίπου τα επιθυμητά για την
εγκατάσταση σας, είναι αρκετά εύκολο να ρυθμιστούν ώστε να γίνει
δυνατή η χρήση του journaling. Απλώς χρησιμοποιήστε τα
πλήκτρα με τα βελάκια για να
μετακινήσετε την μπάρα επιλογής στην κατάτμηση
<filename>/usr</filename> και πιέστε το <keycap>D</keycap> για να
την διαγράψετε.</para>
<para>Τώρα, μετακινήστε την μπάρα επιλογής στο όνομα του σκληρού δίσκου
στο άνω μέρος της οθόνης, και πιέστε <keycap>C</keycap> για να
δημιουργήσετε μια νέα κατάτμηση για το <filename>/usr</filename>.
Η νέα αυτή κατάτμηση θα πρέπει να είναι μικρότερη κατά 1&nbsp;GB
(αν έχετε σκοπό να χρησιμοποιήσετε journaling μόνο στο
<filename>/usr</filename>), ή κατά 2&nbsp;GB (αν έχετε σκοπό να
χρησιμοποιήσετε journaling τόσο στο <filename>/usr</filename> όσο και
στο <filename>/var</filename>). Στο διάλογο που θα εμφανιστεί,
επιλέξτε να δημιουργήσετε σύστημα αρχείων (file system) και γράψτε
<filename>/usr</filename> ως το σημείο προσάρτησης
(mount point).</para>
<note>
<para>Είναι αναγκαία η χρήση journaling στην κατάτμηση
<filename>/var</filename> partition; Φυσιολογικά, το journaling έχει
νόημα μόνο σε αρκετά μεγάλες κατατμήσεις. Δεν πρόκειται ωστόσο να
δημιουργηθεί κάποιο πρόβλημα αν χρησιμοποιήσετε journaling στο
<filename>/var</filename>. Αν η χρήση του συγκεκριμένου συστήματος
αρχείων είναι μικρή (το οποίο είναι και το πιθανότερο σε ένα
dekstop μηχάνημα) ίσως είναι καλή ιδέα να χρησιμοποιήσετε λιγότερο
χώρο στο δίσκο για το ημερολόγιο του.</para>
<para>Στο παράδειγμα μας, θα ενεργοποιήσουμε το journaling τόσο στο
<filename>/usr</filename> όσο και στο <filename>/var</filename>.
Μπορείτε φυσικά να προσαρμόσετε αυτή τη διαδικασία σύμφωνα με τις
ανάγκες σας.</para>
</note>
<para>Για να απλοποιήσουμε, όσο είναι δυνατόν, τη διαδικασία, θα
χρησιμοποιήσουμε το <application>sysinstall</application> για να
δημιουργήσουμε τις κατατμήσεις που απαιτούνται για το journaling.
Ωστόσο, κατά τη διάρκεια της εγκατάστασης, το
<application>sysinstall</application> επιμένει να ρωτάει για σημεία
προσάρτησης σε κάθε κατάτμηση που δημιουργείται. Στο σημείο αυτό,
δεν υπάρχουν σημεία προσάρτησης για τις κατατμήσεις μας, και στην
πραγματικότητα <emphasis>δεν τα χρειαζόμαστε καν</emphasis>. Οι
κατατμήσεις που χρησιμοποιούνται για τα ημερολόγια, δεν προσαρτώνται
κάπου.</para>
<para>Για να αποφύγουμε αυτά τα προβλήματα με το
<application>sysinstall</application>, θα δημιουργήσουμε αυτές τις
κατατμήσεις ως χώρο swap. Στο swap δεν γίνεται ποτέ προσάρτηση,
ενώ και το <application>sysinstall</application> δεν έχει κανένα
πρόβλημα να δημιουργήσει όσες τέτοιες κατατμήσεις χρειαζόμαστε. Μετά
την πρώτη εκκίνηση, θα πρέπει ωστόσο να επεξεργαστούμε το αρχείο
<filename>/etc/fstab</filename> και να αφαιρέσουμε τις έξτρα
καταχωρήσεις swap που δημιουργήθηκαν κατά την εγκατάσταση.</para>
<para>Για να δημιουργήσετε τους χώρους swap, χρησιμοποιήστε πάλι τα
πλήκτρα με τα βελάκια για να
μετακινήσετε την μπάρα επιλογής στο άνω μέρος της οθόνης του
επεξεργαστή <application>Disklabel</application>, έτσι ώστε να είναι
επιλεγμένο το όνομα του σκληρού δίσκου. Κατόπιν, πιέστε
<keycap>N</keycap>, δώστε το επιθυμητό μέγεθος
(<replaceable>1024M</replaceable>), και επιλέξτε
<quote>swap space</quote> από το μενού που εμφανίζεται. Επαναλάβετε
για κάθε ημερολόγιο που επιθυμείτε να δημιουργήσετε. Στο παράδειγμα
μας, δημιουργούμε δύο κατατμήσεις στις οποίες θα αποθηκεύονται τα
ημερολόγια των <filename>/usr</filename> και
<filename>/var</filename>. Το τελικό αποτέλεσμα φαίνεται στην
παρακάτω εικόνα:</para>
<mediaobject>
<imageobject>
<imagedata fileref="disklabel2.png"/>
</imageobject>
</mediaobject>
<para>Μόλις ολοκληρώσετε τη δημιουργία των κατατμήσεων, σας συνιστούμε
να σημειώσετε τα ονόματα τους και τα σημεία προσάρτησης για να τα
έχετε πρόχειρα κατά τη φάση των ρυθμίσεων. Με τον τρόπο αυτό θα
αποφύγετε τυχόν λάθη που μπορεί να καταστρέψουν την εγκατάσταση σας.
Ο παρακάτω πίνακας δείχνει τις σημειώσεις μας για το παράδειγμα
μας:</para>
<table pgwide="1">
<title>Κατατμήσεις και Ημερολόγια</title>
<tgroup cols="3">
<thead>
<row>
<entry>Κατάτμηση</entry>
<entry>Σημείο Προσάρτησης</entry>
<entry>Ημερολόγιο</entry>
</row>
</thead>
<tbody>
<row>
<entry>ad0s1d</entry>
<entry>/var</entry>
<entry>ad0s1h</entry>
</row>
<row>
<entry>ad0s1f</entry>
<entry>/usr</entry>
<entry>ad0s1g</entry>
</row>
</tbody>
</tgroup>
</table>
<para>Συνεχίστε την εγκατάσταση όπως συνήθως. Σας συνιστούμε ωστόσο να
μην εγκαταστήσετε εφαρμογές (πακέτα) μέχρι να ολοκληρώσετε τη
διαδικασία του journaling.</para>
</sect2>
<sect2 id="first-boot">
<title>Πρώτη Εκκίνηση</title>
<para>Το σύστημα σας θα ξεκινήσει φυσιολογικά, αλλά θα χρειαστεί να
επεξεργαστείτε το <filename>/etc/fstab</filename> και να διαγράψετε
τις καταχωρήσεις για τις κατατμήσεις swap που θα χρησιμοποιηθούν στα
ημερολόγια. Φυσιολογικά, η κατάτμηση που χρησιμοποιείται ως κανονικό
swap τελειώνει με το γράμμα <quote>b</quote> (π.χ. ad0s1b στο
παράδειγμα μας). Διαγράψτε όλες τις άλλες καταχωρήσεις για το swap
και επανεκκινήστε το σύστημα σας, ώστε να σταματήσει το &os; να τις
χρησιμοποιεί.</para>
<para>Μόλις το σύστημα εκκινήσει ξανά, θα είμαστε έτοιμοι να ρυθμίσουμε
το journaling.</para>
</sect2>
</sect1>
<sect1 id="configure-journal">
<title>Ρύθμιση του Journaling</title>
<sect2 id="running-gjournal">
<title>Εκτέλεση της Εντολής <command>gjournal</command></title>
<para>Έχοντας προετοιμάσει όλες τις απαραίτητες κατατμήσεις, είναι
σχετικά απλό να ρυθμίσουμε το journaling. Θα πρέπει να μεταβούμε σε
κατάσταση ενός χρήστη, για το λόγο αυτό εισέλθετε στο σύστημα ως
<username>root</username> και γράψτε:</para>
<screen>&prompt.root; <userinput>shutdown now</userinput></screen>
<para>Πιέστε <keycap>Enter</keycap> για να βγείτε στο προεπιλεγμένο
κέλυφος. Θα πρέπει να αποπροσαρτήσουμε τις κατατμήσεις στις οποίες
θα γίνει το journaling, στο παράδειγμα μας τις
<filename>/usr</filename> και <filename>/var</filename>:</para>
<screen>&prompt.root; <userinput>umount /usr /var</userinput></screen>
<para>Φορτώστε το άρθρωμα του πυρήνα που απαιτείται για το
journaling:</para>
<screen>&prompt.root; <userinput>gjournal load</userinput></screen>
<para>Χρησιμοποιήστε τώρα τις σημειώσεις σας για να καθορίσετε
ποια κατάτμηση χρησιμοποιείται για κάθε ημερολόγιο. Στο
παράδειγμα μας, το <filename>/usr</filename> βρίσκεται στο
<filename class="devicefile">ad0s1f</filename> και το ημερολόγιο του
θα είναι στο <filename class="devicefile">ad0s1g</filename>, ενώ το
<filename>/var</filename> είναι στο
<filename class="devicefile">ad0s1d</filename> και το ημερολόγιο του
θα είναι στο <filename class="devicefile">ad0s1h</filename>. Θα
χρειαστείτε τις παρακάτω εντολές:</para>
<screen>&prompt.root; <userinput>gjournal label ad0s1f ad0s1g</userinput>
GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
&prompt.root; <userinput>gjournal label ad0s1d ad0s1h</userinput>
GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.</screen>
<note>
<para>Αν ο τελευταίος τομέας κάποιας από τις κατατμήσεις είναι σε
χρήση, η εντολή <command>gjournal</command> θα σας επιστρέψει ένα
μήνυμα λάθους. Θα πρέπει να εκτελέσετε την εντολή χρησιμοποιώντας
την παράμετρο <option>-f</option> με την οποία θα υποχρεώσετε την
επανεγγραφή του τομέα, π.χ.:</para>
<screen>&prompt.root; <userinput>gjournal label -f ad0s1d ad0s1h</userinput></screen>
<para>Μια που πρόκειται για νέα εγκατάσταση, είναι μάλλον απίθανο
να προκαλέσετε κάποιο πρόβλημα.</para></note>
<para>Στο σημείο αυτό δημιουργούνται δύο νέες συσκευές, οι
<filename class="devicefile">ad0s1d.journal</filename> και
<filename class="devicefile">ad0s1f.journal</filename>. Αυτές
αντιπροσωπεύουν τις κατατμήσεις
<filename>/var</filename> και <filename>/usr</filename>
που θα πρέπει να προσαρτήσουμε. Πριν τις προσαρτήσουμε ωστόσο,
θα πρέπει να θέσουμε την επιλογή journal και να αναιρέσουμε την
επιλογή Soft Updates:</para>
<screen>&prompt.root; <userinput>tunefs -J enable -n disable ad0s1d.journal</userinput>
tunefs: gjournal set
tunefs: soft updates cleared
&prompt.root; <userinput>tunefs -J enable -n disable ad0s1f.journal</userinput>
tunefs: gjournal set
tunefs: soft updates cleared</screen>
<para>Προσαρτήστε τώρα χειροκίνητα τις νέες συσκευές στα αντίστοιχα
σημεία προσάρτησης (σημειώστε ότι μπορούμε πλέον να χρησιμοποιήσουμε
την επιλογή <option>async</option> κατά την προσάρτηση):</para>
<screen>&prompt.root; <userinput>mount -o async /dev/ad0s1d.journal /var</userinput>
&prompt.root; <userinput>mount -o async /dev/ad0s1f.journal /usr</userinput></screen>
<para>Επεξεργαστείτε το αρχείο <filename>/etc/fstab</filename> και
ανανεώστε τις καταχωρήσεις για τις κατατμήσεις
<filename>/usr</filename> και <filename>/var</filename>:</para>
<programlisting>/dev/ad0s1f.journal /usr ufs rw,async 2 2
/dev/ad0s1d.journal /var ufs rw,async 2 2</programlisting>
<warning>
<para>Βεβαιωθείτε ότι οι παραπάνω καταχωρήσεις είναι σωστές,
διαφορετικά θα έχετε πρόβλημα να εκκινήσετε κανονικά στην επόμενη
επανεκκίνηση του συστήματος σας.</para>
</warning>
<para>Τέλος, επεξεργαστείτε το αρχείο
<filename>/boot/loader.conf</filename> και προσθέστε την ακόλουθη
γραμμή ώστε να φορτώνεται το άρθρωμα &man.gjournal.8; σε κάθε
εκκίνηση:</para>
<programlisting>geom_journal_load="YES"</programlisting>
<para>Συγχαρητήρια! Το σύστημα σας είναι τώρα έτοιμο για journaling.
Μπορείτε να γράψετε <userinput>exit</userinput> για να επιστρέψετε
στην κανονική λειτουργία (πολλαπλών χρηστών) ή να επανεκκινήσετε το
σύστημα σας (συνίσταται) για να ελέγξετε τις ρυθμίσεις σας. Κατά την
εκκίνηση, θα δείτε μηνύματα όπως το παρακάτω:</para>
<screen>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.</screen>
<para>Μετά από ένα προβληματικό τερματισμό θα δείτε μηνύματα όπως το
παρακάτω:</para>
<screen>GEOM_JOURNAL: Journal ad0s1d consistent.</screen>
<para>Αυτό συνήθως σημαίνει ότι το &man.gjournal.8; χρησιμοποίησε τις
πληροφορίες του ημερολογίου για να επιστρέψει το σύστημα αρχείων
σε σταθερή κατάσταση.</para>
</sect2>
<sect2 id="gjournal-new">
<title>Χρήση του Journaling σε Νέες Κατατμήσεις</title>
<para>Αν και η παραπάνω διαδικασία είναι απαραίτητη για να
χρησιμοποιήσετε journaling σε κατατμήσεις που έχουν ήδη δεδομένα, η
αντίστοιχη διαδικασία για νέες κατατμήσεις είναι πιο απλή. Στην
περίπτωση αυτή, μπορεί να χρησιμοποιηθεί ο ίδιος παροχέας τόσο για
τα δεδομένα όσο και για το ημερολόγιο. Για παράδειγμα, υποθέστε ότι
έχετε προσθέσει ένα νέο δίσκο και έχετε δημιουργήσει την κατάτμηση
<filename class="devicefile">/dev/ad1s1d</filename>. Η δημιουργία του
ημερολογίου είναι αρκετά απλή και φαίνεται παρακάτω:</para>
<screen>&prompt.root; <userinput>gjournal label ad1s1d</userinput></screen>
<para>Το προεπιλεγμένο μέγεθος του ημερολογίου είναι 1&nbsp;GB.
Μπορείτε ωστόσο να το ρυθμίσετε χρησιμοποιώντας την επιλογή
<option>-s</option>. Μπορείτε να δώσετε τιμές σε bytes, ή να βάλετε
μετά την τιμή ένα από τα γράμματα <literal>K</literal>,
<literal>M</literal> ή <literal>G</literal> για να δηλώσετε
Kilobytes, Megabytes ή Gigabytes αντίστοιχα. Σημειώστε ότι η εντολή
<command>gjournal</command>, δεν θα σας επιτρέψει να δημιουργήσετε
ημερολόγιο που να είναι ακατάλληλο λόγω μικρού μεγέθους.</para>
<para>Για παράδειγμα, για να δημιουργήσετε ένα ημερολόγιο μεγέθους
2&nbsp;GB, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:</para>
<screen>&prompt.root; <userinput>gjournal label -s 2G ad1s1d</userinput></screen>
<para>Μπορείτε έπειτα να δημιουργήσετε ένα σύστημα αρχείων στη νέα σας
κατάτμηση, και ταυτόχρονα να ενεργοποιήσετε το journaling,
χρησιμοποιώντας την επιλογή <option>-J</option>:</para>
<screen>&prompt.root; <userinput>newfs -J /dev/ad1s1d.journal</userinput></screen>
</sect2>
<sect2 id="configure-kernel">
<title>Ενσωμάτωση του Journaling σε Προσαρμοσμένο Πυρήνα</title>
<para>Αν δεν θέλετε να φορτώσετε το <literal>geom_journal</literal> ως
άρθρωμα, μπορείτε να ενσωματώσετε τις λειτουργίες του στον
προσαρμοσμένο πυρήνα σας. Επεξεργαστείτε το αρχείο ρυθμίσεων του
πυρήνα, και βεβαιωθείτε ότι περιλαμβάνει τις ακόλουθες δύο
γραμμές:</para>
<programlisting>options UFS_GJOURNAL # Σημείωση: η επιλογή αυτή υπάρχει στο GENERIC
options GEOM_JOURNAL # Θα πρέπει να προσθέσετε αυτή τη γραμμή</programlisting>
<para>Μεταγλωττίστε και επανεγκαταστήστε τον πυρήνα σας χρησιμοποιώντας
τις σχετικές
<ulink url="&url.books.handbook;/kernelconfig.html">οδηγίες στο Εγχειρίδιο του &os;.</ulink></para>
<para>Μην ξεχάσετε να αφαιρέσετε την αντίστοιχη καταχώρηση
<quote>load</quote> από το αρχείο
<filename>/boot/loader.conf</filename> αν την είχατε χρησιμοποιήσει
προηγουμένως.</para>
</sect2>
</sect1>
<sect1 id="troubleshooting-gjournal">
<title>Αντιμετώπιση Προβλημάτων</title>
<para>Το ακόλουθο τμήμα καλύπτει συχνές ερωτήσεις σχετικά με προβλήματα
που μπορείτε να συναντήσετε στην υλοποίηση του jounaling.</para>
<qandaset>
<qandaentry>
<question id="kernel-panic">
<para>Κατά τη διάρκεια έντονης χρήσης του δίσκου, το σύστημα μου
σταματάει με kernel panic. Υπάρχει περίπτωση αυτό να σχετίζεται
με το journaling;</para>
</question>
<answer>
<para>Είναι πιθανό το ημερολόγιο να γεμίζει πριν προλάβουν τα
προηγούμενα δεδομένα του να μεταφερθούν στο σύστημα αρχείων. Θα
πρέπει να θυμάστε ότι το μέγεθος του ημερολογίου δεν εξαρτάται
από το μέγεθος του παροχέα δεδομένων, αλλά από το φόρτο εργασίας
του. Αν η δραστηριότητα του δίσκου σας είναι υψηλή, θα
χρειαστείτε μεγαλύτερο μέγεθος για την κατάτμηση του
ημερολογίου. Δείτε τη σχετική σημείωση στην ενότητα <link
linkend="understanding-journaling">Κατανόηση του Journaling</link>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="unable-boot">
<para>Έκανα κάποιο λάθος στις ρυθμίσεις, και δεν μπορώ πλέον να
ξεκινήσω κανονικά το σύστημα μου. Υπάρχει τρόπος να το
διορθώσω;</para>
</question>
<answer>
<para>Πιθανόν ξεχάσατε να προσθέσετε (ή έχετε κάνει λάθος) την
καταχώρηση στο <filename>/boot/loader.conf</filename>, ή ίσως
υπάρχει λάθος στο αρχείο <filename>/etc/fstab</filename>. Τα
λάθη αυτά συνήθως διορθώνονται εύκολα.
Πιέστε <keycap>Enter</keycap> για να ξεκινήσετε το προεπιλεγμένο
κέλυφος λειτουργίας ενός χρήστη. Μετά εντοπίστε την πηγή του
προβλήματος:</para>
<screen>&prompt.root; <userinput>cat /boot/loader.conf</userinput></screen>
<para>Αν λείπει ή υπάρχει λάθος στην καταχώρηση
<literal>geom_journal_load</literal>, οι αντίστοιχες συσκευές
δεν δημιουργούνται καν. Μπορείτε να φορτώσετε το άρθρωμα
χειροκίνητα, να προσαρτήσετε όλες τις κατατμήσεις, και να
συνεχίσετε με την κανονική εκκίνηση:</para>
<screen>&prompt.root; <userinput>gjournal load</userinput>
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.
&prompt.root; <userinput>mount -a</userinput>
&prompt.root; <userinput>exit</userinput>
<emphasis>(η εκκίνηση συνεχίζεται)</emphasis></screen>
<para>Αν ωστόσο η καταχώρηση αυτή είναι σωστή, ρίξτε μια ματιά
στο αρχείο <filename>/etc/fstab</filename>. Το πιο πιθανό είναι
να βρείτε ότι κάποια καταχώρηση λείπει, ή είναι λάθος.
Στην περίπτωση αυτή, προσαρτήστε χειροκίνητα όλες τις κατατμήσεις
και συνεχίστε την εκκίνηση κανονικά.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="remove-journaling">
<para>Μπορώ να καταργήσω το journaling και να επιστρέψω στο
κανονικό σύστημα αρχείων με τα Soft Updates;</para>
</question>
<answer>
<para>Βέβαια. Χρησιμοποιήστε την ακόλουθη διαδικασία η οποία
αναιρεί τις αλλαγές. Μπορείτε έπειτα να χρησιμοποιήσετε τις
κατατμήσεις των ημερολογίων για άλλο σκοπό, εφόσον το
επιθυμείτε.</para>
<para>Εισέλθετε ως <username>root</username> και μεταβείτε σε
κατάσταση ενός χρήστη:</para>
<screen>&prompt.root; <userinput>shutdown now</userinput></screen>
<para>Αποπροσαρτήστε τις κατατμήσεις που χρησιμοποιούν
journaling:</para>
<screen>&prompt.root; <userinput>umount /usr /var</userinput></screen>
<para>Συγχρονίστε τα ημερολόγια:</para>
<screen>&prompt.root; <userinput>gjournal sync</userinput></screen>
<para>Σταματήστε τους παροχείς ημερολογίου:</para>
<screen>&prompt.root; <userinput>gjournal stop ad0s1d.journal</userinput>
&prompt.root; <userinput>gjournal stop ad0s1f.journal</userinput></screen>
<para>Διαγράψτε τα metadata του journaling από όλες τις συσκευές
που χρησιμοποιήσατε:</para>
<screen>&prompt.root; <userinput>gjournal clear ad0s1d</userinput>
&prompt.root; <userinput>gjournal clear ad0s1f</userinput>
&prompt.root; <userinput>gjournal clear ad0s1g</userinput>
&prompt.root; <userinput>gjournal clear ad0s1h</userinput></screen>
<para>Αναιρέστε την επιλογή του journaling, και θέστε ξανά την
επιλογή για Soft Updates:</para>
<screen>&prompt.root; <userinput>tunefs -J disable -n enable ad0s1d</userinput>
tunefs: gjournal cleared
tunefs: soft updates set
&prompt.root; <userinput>tunefs-J disable -n enable ad0s1f</userinput>
tunefs: gjournal cleared
tunefs: soft updates set</screen>
<para>Προσαρτήστε χειροκίνητα τις κανονικές κατατμήσεις:</para>
<screen>&prompt.root; <userinput>mount -o rw /dev/ad0s1d /var</userinput>
&prompt.root; <userinput>mount -o rw /dev/ad0s1f /usr</userinput></screen>
<para>Επεξεργαστείτε το <filename>/etc/fstab</filename> και
επαναφέρατε τις προηγούμενες ρυθμίσεις:</para>
<programlisting>/dev/ad0s1f /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw 2 2</programlisting>
<para>Τέλος, επεξεργαστείτε το αρχείο
<filename>/boot/loader.conf</filename>, αφαιρέστε την καταχώρηση
που φορτώνει το άρθρωμα <literal>geom_journal</literal> και
επανεκκινήστε το σύστημα σας.</para>
</answer>
</qandaentry>
</qandaset>
</sect1>
<sect1 id="further-reading">
<title>Επιπλέον Πληροφορίες</title>
<para>Το journaling είναι μια σχετικά νέα δυνατότητα του &os;, και έτσι
δεν είναι ακόμα καλά τεκμηριωμένη. Ίσως όμως να βρείτε χρήσιμες
πληροφορίες στις παρακάτω αναφορές:</para>
<itemizedlist>
<listitem>
<para>Υπάρχει ένα <ulink url="&url.books.handbook;/geom-gjournal.html">νέο τμήμα για το journaling</ulink>
στο Εγχειρίδιο του &os;.</para>
</listitem>
<listitem>
<para><ulink url="http://lists.freebsd.org/pipermail/freebsd-current/2006-June/064043.html">Αυτή η δημοσίευση</ulink> στη λίστα
&a.current.name; από τον δημιουργό του &man.gjournal.8;, &a.pjd;.</para>
</listitem>
<listitem>
<para><ulink url="http://lists.freebsd.org/pipermail/freebsd-questions/2008-April/173501.html">Αυτή η δημοσίευση</ulink> στη λίστα
&a.questions.name; από τον &a.ivoras;.</para>
</listitem>
<listitem>
<para>Οι σελίδες manual του &man.gjournal.8; και &man.geom.8;.</para>
</listitem>
</itemizedlist>
</sect1>
</article>