aboutsummaryrefslogtreecommitdiff
path: root/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml')
-rw-r--r--el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml1353
1 files changed, 0 insertions, 1353 deletions
diff --git a/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml b/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml
deleted file mode 100644
index c035d5ad15..0000000000
--- a/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml
+++ /dev/null
@@ -1,1353 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7" standalone="no"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Ο Διαχειριστής Τόμων Vinum
-
- Γράφτηκε από τον:
- Greg Lehey (grog at lemis dot com)
-
- Ενσωματώθηκε στο Εγχειρίδιο του FreeBSD από τους:
- Hiten Pandya <hmp@FreeBSD.org>
- Tom Rhodes <trhodes@FreeBSD.org>
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/vinum/chapter.sgml
- %SRCID% 38826
-
--->
-
-<chapter id="vinum-vinum">
- <chapterinfo>
- <authorgroup>
- <author>
- <firstname>Greg</firstname>
- <surname>Lehey</surname>
- <contrib>Αρχική συνεισφορά του </contrib>
- </author>
- </authorgroup>
- </chapterinfo>
-
- <title>Ο Διαχειριστής Τόμων Vinum</title>
-
- <sect1 id="vinum-synopsis">
- <title>Σύνοψη</title>
-
- <para>Οτιδήποτε δίσκους και αν έχετε, πάντα υπάρχουν πιθανά
- προβλήματα:</para>
-
- <itemizedlist>
- <listitem>
- <para>Μπορεί να είναι πολύ μικροί.</para>
- </listitem>
-
- <listitem>
- <para>Μπορεί να είναι πολύ αργοί.</para>
- </listitem>
-
- <listitem>
- <para>Μπορεί να μην είναι αρκετά αξιόπιστοι.</para>
- </listitem>
- </itemizedlist>
-
- <para>Για τα προβλήματα αυτά, έχουν προταθεί και υλοποιηθεί διάφορες
- λύσεις. Ένας συχνά χρησιμοποιούμενος τρόπος προστασίας, είναι με την
- χρήση πολλαπλών και ορισμένες φορές περιττών (redundant) δίσκων. Εκτός
- από την υποστήριξη που παρέχεται για συσκευές (κάρτες και ελεγκτές)
- hardware RAID, το βασικό σύστημα του &os; περιλαμβάνει το διαχειριστή
- τόμων (volume manager) Vinum, ένα πρόγραμμα οδήγησης τύπου
- μπλοκ το οποίο υλοποιεί εικονικούς δίσκους.
- Το <emphasis>Vinum</emphasis> αποκαλείται και
- <emphasis>Διαχειριστής Τόμων</emphasis>, και είναι ένας οδηγός
- εικονικών δίσκων που αντιμετωπίζει τα παραπάνω τρία προβλήματα.
- Το Vinum παρέχει καλύτερη ευελιξία, απόδοση και αξιοπιστία σε σχέση με
- τα παραδοσιακά συστήματα αποθήκευσης, και υλοποιεί τα μοντέλα RAID-0,
- RAID-1 και RAID-5, τόσο μεμονωμένα, όσο και σε συνδυασμό μεταξύ
- τους.</para>
-
- <para>Το κεφάλαιο αυτό παρέχει μια επισκόπηση των πιθανών προβλημάτων των
- παραδοσιακών συστημάτων αποθήκευσης, και μια εισαγωγή στο Διαχειριστή
- Τόμων Vinum.</para>
-
- <note>
- <para>Ξεκινώντας από το &os;&nbsp;5 και μετά, το Vinum ξαναγράφτηκε
- ώστε να ενσωματωθεί στην αρχιτεκτονική GEOM (<xref linkend="GEOM"/>),
- διατηρώντας ωστόσο τις αρχικές ιδέες, ορολογία, και τη μορφή των
- μετα-δεδομένων (metadata) που αποθηκεύονται στον δίσκο.
- Η νέα αυτή εκδοχή ονομάζεται <emphasis>gvinum</emphasis> (από το
- <emphasis>GEOM vinum</emphasis>). Το ακόλουθο κείμενο αναφέρεται
- συνήθως στο <emphasis>Vinum</emphasis> ως αφηρημένη έννοια, άσχετα με
- τις λεπτομέρειες της υλοποίησης. Όλες οι εντολές θα πρέπει τώρα να
- καλούνται με τη χρήση της <command>gvinum</command>,
- το άρθρωμα πυρήνα (kernel module) έχει μετονομαστεί σε
- <filename>geom_vinum.ko</filename> από <filename>vinum.ko</filename>,
- και όλα τα αρχεία συσκευών βρίσκονται στον κατάλογο
- <filename class="directory">/dev/gvinum</filename> αντί για
- <filename class="directory">/dev/vinum</filename>. Από το
- &os;&nbsp;6 και μετά, η παλιά υλοποίηση του Vinum δεν περιλαμβάνεται
- πλέον στο βασικό σύστημα.</para>
- </note>
- </sect1>
-
- <sect1 id="vinum-intro">
- <title>Οι Δίσκοι Είναι Πολύ Μικροί</title>
-
- <indexterm><primary>Vinum</primary></indexterm>
- <indexterm><primary>RAID</primary>
- <secondary>software</secondary></indexterm>
-
- <para>Οι δίσκοι γίνονται ολοένα και μεγαλύτεροι, αλλά με τον ίδιο ρυθμό
- αυξάνονται επίσης και οι απαιτήσεις μας σε αποθηκευτικό χώρο. Πολλές
- φορές θα βρεθείτε σε θέση να χρειάζεστε ένα σύστημα αρχείων μεγαλύτερο
- από τους δίσκους που έχετε διαθέσιμους. Σίγουρα το πρόβλημα αυτό δεν
- είναι τόσο έντονο όσο πριν δέκα χρόνια, αλλά εξακολουθεί να υπάρχει.
- Μερικά συστήματα επιλύουν αυτό το πρόβλημα, δημιουργώντας μια εικονική
- συσκευή που αποθηκεύει τα δεδομένα σε ένα αριθμό διακριτών
- δίσκων.</para>
- </sect1>
-
- <sect1 id="vinum-access-bottlenecks">
- <title>Καθυστερήσεις Πρόσβασης</title>
-
- <para>Στα μοντέρνα συστήματα, υπάρχει συχνά ανάγκη πρόσβασης δεδομένων
- από πολλές διεργασίες ταυτόχρονα. Για παράδειγμα, μεγάλοι εξυπηρετητές
- FTP ή HTTP μπορεί να έχουν ανά πάσα στιγμή χιλιάδες ταυτόχρονες
- εξωτερικές συνδέσεις και να διαθέτουν πολλαπλές διεπαφές 100&nbsp;Mbit/s
- οι οποίες ξεπερνάνε κατά πολύ τις δυνατότητες μεταφοράς δεδομένων των
- περισσότερων σκληρών δίσκων.</para>
-
- <para>Τα τρέχοντα μοντέλα σκληρών δίσκων μπορούν να μεταφέρουν δεδομένα
- σειριακά με ταχύτητα μέχρι και 70&nbsp;MB/s, αλλά η τιμή αυτή έχει μικρή
- σημασία σε ένα περιβάλλον όπου πολλές ανεξάρτητες διεργασίες χρειάζονται
- πρόσβαση στον ίδιο δίσκο. Σε τέτοιες περιπτώσεις, κάθε διεργασία μπορεί
- να επιτύχει μόνο ένα μικρό ποσοστό της μέγιστης αυτής απόδοσης. Είναι
- πιο ενδιαφέρον να δούμε το πρόβλημα από την πλευρά του υποσυστήματος
- δίσκων: ο σημαντικός παράγοντας είναι ο φόρτος στον οποίο υποβάλλεται
- το υποσύστημα κατά τη διάρκεια μιας μεταφοράς. Με άλλα λόγια, ο χρόνος
- που παραμένουν απασχολημένοι οι δίσκοι εξαιτίας της μεταφοράς.</para>
-
- <para>Σε κάθε μεταφορά δεδομένων, ο δίσκος θα πρέπει πρώτα να τοποθετήσει
- τις κεφαλές στο σωστό σημείο, να περιμένει να περάσει ο πρώτος τομέας
- κάτω από την κεφαλή ανάγνωσης, και έπειτα να εκτελέσει τη μεταφορά.
- Οι ενέργειες αυτές μπορούν να θεωρηθούν ατομικές: δεν έχει νόημα να
- προσπαθήσουμε να τις διακόψουμε.</para>
-
- <para><anchor id="vinum-latency"/> Ας θεωρήσουμε μια τυπική μεταφορά
- περίπου 10&nbsp;kB. Η τρέχουσα γενιά δίσκων υψηλής απόδοσης μπορεί να
- τοποθετήσει τις κεφαλές στη σωστή θέση σε περίπου 3.5&nbsp;ms. Οι πιο
- γρήγοροι δίσκοι έχουν ταχύτητα περιστροφής 15.000 στροφές το λεπτό,
- έτσι ο μέσος χρόνος καθυστέρησης περιστροφής (μισή περιστροφή) είναι
- 2&nbsp;ms. Με 70&nbsp;MB/s, η μεταφορά αυτή καθ' αυτή θα χρειαστεί
- περίπου 150&nbsp;&mu;s, σχεδόν τίποτα σε σχέση με το χρόνο που
- χρειάζεται για την τοποθέτηση της κεφαλής στο σωστό σημείο.
- Στην περίπτωση αυτή, ο πραγματικός ρυθμός μεταφοράς πέφτει σε λίγο
- περισσότερο από ένα 1&nbsp;ΜΒ/s και είναι εμφανές ότι εξαρτάται σε
- μεγάλο βαθμό από το μέγεθος των δεδομένων που μεταφέρονται.</para>
-
- <para>Η παραδοσιακή και προφανής λύση σε αυτό το πρόβλημα, είναι να
- προσθέσουμε <quote>περισσότερους δίσκους</quote>: αντί να
- χρησιμοποιήσουμε ένα μεγάλο δίσκο, να βάλουμε πολλούς μικρότερους με
- τον ίδιο τελικό αποθηκευτικό χώρο. Κάθε δίσκος έχει δυνατότητα να
- μετακινεί τις κεφαλές και να μεταφέρει δεδομένα ανεξάρτητα από τους
- άλλους, έτσι η πραγματική διαμεταγωγή αυξάνει αναλογικά με το πλήθος
- των δίσκων που χρησιμοποιούνται.</para>
-
- <para>Η πραγματική αύξηση της διαμεταγωγής είναι φυσικά μικρότερη από το
- πλήθος των δίσκων που χρησιμοποιούνται: αν και κάθε δίσκος είναι ικανός
- να μεταφέρει δεδομένα παράλληλα με τους άλλους, δεν υπάρχει τρόπος να
- εξασφαλίσουμε ότι οι αιτήσεις μεταφοράς κατανέμονται ομοιόμορφα σε όλους
- τους δίσκους. Είναι αναπόφευκτο ότι το φορτίο σε ένα δίσκο θα είναι
- μεγαλύτερο από το φορτίο σε κάποιο άλλο.</para>
-
- <indexterm>
- <primary>disk concatenation</primary>
- </indexterm>
- <indexterm>
- <primary>Vinum</primary>
- <secondary>concatenation</secondary>
- </indexterm>
-
- <para>Η ομοιομορφία κατανομής του φορτίου στους δίσκους, εξαρτάται σε
- μεγάλο βαθμό από τον τρόπο που έχουν μοιραστεί τα δεδομένα σε αυτούς.
- Στην παρακάτω συζήτηση, είναι βολικό να σκεφτόμαστε τον αποθηκευτικό
- χώρο ενός δίσκου ως ένα μεγάλο αριθμό από τομείς στους οποίους έχουμε
- πρόσβαση με βάση ένα αριθμό, ακριβώς όπως οι σελίδες σε ένα βιβλίο.
- Η πιο προφανής μέθοδος είναι να χωρίσουμε τον εικονικό δίσκο σε ομάδες
- από συνεχόμενους τομείς, όπου καθεμία έχει το μέγεθος του πραγματικού
- ανεξάρτητου φυσικού δίσκου, και να τις αποθηκεύσουμε με αυτό τον τρόπο,
- περίπου σαν να παίρναμε ένα μεγάλο βιβλίο και να το χωρίζαμε σε
- μικρότερους τόμους. Η μέθοδος αυτή ονομάζεται
- <emphasis>συνένωση (concatenation)</emphasis> και έχει το πλεονέκτημα
- ότι δεν απαιτεί τα μεγέθη των δίσκων να έχουν κάποια σχέση μεταξύ τους.
- Λειτουργεί πολύ καλά όταν η πρόσβαση στον εικονικό δίσκο είναι
- ομοιόμορφα κατανεμημένη σε όλη την περιοχή διευθύνσεων του. Όταν η
- πρόσβαση συγκεντρώνεται σε μια μικρότερη περιοχή, η βελτίωση είναι
- μικρότερη. Το <xref linkend="vinum-concat"/> δείχνει την ακολουθία με
- την οποία γίνεται η κατανομή των θέσεων αποθήκευσης όταν
- χρησιμοποιείται η συνένωση.</para>
-
- <para>
- <figure id="vinum-concat">
- <title>Οργάνωση Συνένωσης</title>
- <graphic fileref="vinum/vinum-concat"/>
- </figure>
- </para>
-
- <indexterm>
- <primary>disk striping</primary>
- </indexterm>
- <indexterm>
- <primary>Vinum</primary>
- <secondary>striping</secondary>
- </indexterm>
- <indexterm>
- <primary>RAID</primary>
- </indexterm>
-
- <para>Ένας εναλλακτικός τρόπος αποθήκευσης, είναι να χωριστεί η περιοχή
- διευθύνσεων σε μικρότερα τμήματα ίσου μεγέθους τα οποία να αποθηκεύονται
- σειριακά σε διαφορετικές συσκευές. Για παράδειγμα, οι πρώτοι 256 τομείς
- μπορεί να είναι αποθηκευμένοι στον πρώτο δίσκο, οι επόμενοι 256 στον
- επόμενο δίσκο, κ.ο.κ. Μετά την χρήση και του τελευταίου δίσκου,
- η διαδικασία επαναλαμβάνεται μέχρι να γεμίσουν όλοι οι δίσκοι. Αυτή
- η μέθοδος ονομάζεται <emphasis>striping</emphasis> ή
- <acronym>RAID-0</acronym>.
-
- <footnote>
- <para>Το <acronym>RAID</acronym> σημαίνει <emphasis>Redundant
- Array of Inexpensive Disks</emphasis> και παρέχει διάφορες μορφές
- ανοχής σε σφάλματα, αν και στην παραπάνω χρήση ο όρος είναι
- κάπως παραπλανητικός: το <acronym>RAID-0</acronym> δεν παρέχει καμιά
- τέτοια προστασία δεδομένων.</para>
- </footnote>
-
- Το striping απαιτεί κάπως περισσότερη προσπάθεια για τον εντοπισμό των
- δεδομένων και μπορεί να προκαλέσει μεγαλύτερο φορτίο I/O όταν μια
- μεταφορά κατανέμεται σε πολλαπλούς δίσκους, αλλά από την άλλη
- επιτυγχάνει μεγαλύτερο σταθερό φορτίο σε κάθε δίσκο.
- Το <xref linkend="vinum-striped"/> δείχνει τη σειρά με την οποία
- χρησιμοποιούνται οι μονάδες αποθήκευσης σε μια οργάνωση τύπου
- stripe.</para>
-
- <para>
- <figure id="vinum-striped">
- <title>Striped Organization</title>
- <graphic fileref="vinum/vinum-striped"/>
- </figure>
- </para>
- </sect1>
-
- <sect1 id="vinum-data-integrity">
- <title>Ακεραιότητα Δεδομένων</title>
-
- <para>Το τελευταίο πρόβλημα με την τρέχουσα τεχνολογία δίσκων, είναι
- η αναξιοπιστία τους. Αν και τα τελευταία χρόνια η αξιοπιστία των
- δίσκων έχει αυξηθεί σημαντικά, εξακολουθούν να είναι το εξάρτημα με
- το μεγαλύτερο ρυθμό αποτυχίας στους εξυπηρετητές. Όταν αποτύχει ένας
- δίσκος, τα αποτελέσματα μπορεί να είναι καταστροφικά: η αντικατάσταση
- ενός χαλασμένου δίσκου και η αντιγραφή των δεδομένων στο νέο μπορεί
- να διαρκέσει μέρες.</para>
-
- <indexterm>
- <primary>disk mirroring</primary>
- </indexterm>
- <indexterm>
- <primary>Vinum</primary>
- <secondary>mirroring</secondary>
- </indexterm>
- <indexterm>
- <primary>RAID-1</primary>
- </indexterm>
-
- <para>Ο παραδοσιακός τρόπος αντιμετώπισης αυτού του προβλήματος είναι το
- <emphasis>mirroring</emphasis> (καθρεπτισμός), η διατήρηση δηλαδή δύο
- αντιγράφων των δεδομένων σε διαφορετικούς δίσκους. Με την εφεύρεση των
- διάφορων επιπέδων <acronym>RAID</acronym>, η τεχνική αυτή έγινε επίσης
- γνωστή με την ονομασία <acronym>RAID επιπέδου 1</acronym> ή απλώς
- <acronym>RAID-1</acronym>. Κάθε εγγραφή στον τόμο γίνεται και στους
- δύο δίσκους. Η ανάγνωση μπορεί να γίνει από οποιοδήποτε δίσκο, έτσι
- αν ένας από τους δύο αποτύχει, τα δεδομένα εξακολουθούν να είναι
- διαθέσιμα στον άλλο.</para>
-
- <para>Το mirroring έχει δύο προβλήματα:</para>
-
- <itemizedlist>
- <listitem>
- <para>Το κόστος. Απαιτεί διπλάσιο κόστος από οποιαδήποτε λύση δεν
- προσφέρει αυτή τη λειτουργία.</para>
- </listitem>
-
- <listitem>
- <para>Τη μείωση της απόδοσης. Οι εγγραφές πρέπει να
- γίνονται και στους δύο δίσκους, καταναλώνοντας έτσι το διπλάσιο
- εύρος ζώνης σε σχέση με ένα τόμο που δεν χρησιμοποιεί mirror.
- Η ανάγνωση δεν υποφέρει από το ίδιο πρόβλημα. Μάλιστα φαίνεται
- να είναι και γρηγορότερη.</para>
- </listitem>
- </itemizedlist>
-
- <para><indexterm><primary>RAID-5</primary></indexterm>Μια εναλλακτική
- λύση είναι το <emphasis>parity</emphasis> (ισοτιμία), το οποίο
- υλοποιείται στα επίπεδα 2, 3, 4 και 5 του <acronym>RAID</acronym>.
- Από τα επίπεδα αυτά, το <acronym>RAID-5</acronym> είναι το πιο
- ενδιαφέρον. Ο τρόπος που υλοποιείται στο Vinum, είναι μια παραλλαγή
- της οργάνωσης δεδομένων που χρησιμοποιείται στο stripe, με τη διαφορά
- ότι ένα μπλοκ από κάθε stripe χρησιμοποιείται για να αποθηκεύει την
- ισοτιμία ενός άλλου μπλοκ. Στο Vinum, μια συστοιχία
- <acronym>RAID-5</acronym>, είναι παρόμοια με μια συστοιχία stripe,
- εκτός από το γεγονός ότι υλοποιεί <acronym>RAID-5</acronym> καθώς κάθε
- stripe περιέχει και μπλοκ ισοτιμίας. Η τοποθεσία του μπλοκ ισοτιμίας,
- αλλάζει από το ένα stripe στο επόμενο, κάτι που απαιτείται από το
- <acronym>RAID-5</acronym>. Οι αριθμοί στα μπλοκ δεδομένων αναφέρονται
- στη σχετική αρίθμηση τους.</para>
-
- <para>
- <figure id="vinum-raid5-org">
- <title>RAID-5 Organization</title>
- <graphic fileref="vinum/vinum-raid5-org"/>
- </figure>
- </para>
-
- <para>Σε σύγκριση με το mirror, το <acronym>RAID-5</acronym> έχει το
- πλεονέκτημα να απαιτεί σημαντικά λιγότερο χώρο αποθήκευσης. Η ταχύτητα
- ανάγνωσης είναι ίδια με το stripe, αλλά η εγγραφή είναι σημαντικά πιο
- αργή, περίπου το 25% της απόδοσης κατά την ανάγνωση. Αν ένας δίσκος
- χαλάσει, η συστοιχία εξακολουθεί να λειτουργεί σε ελαττωμένη (degraded)
- κατάσταση: η ανάγνωση από τους δίσκους που λειτουργούν κανονικά
- συνεχίζεται απροβλημάτιστα, αλλά η ανάγνωση δεδομένων που βρίσκονταν
- στον προβληματικό δίσκο πρέπει να επαναϋπολογιστεί με βάση τα
- αντίστοιχα μπλοκ ισοτιμίας που βρίσκονται σε όλους τους άλλους
- δίσκους.</para>
- </sect1>
-
- <sect1 id="vinum-objects">
- <title>Αντικείμενα του Vinum</title>
-
- <para>Για την αντιμετώπιση των παραπάνω προβλημάτων, το Vinum υλοποιεί μια
- ιεραρχία αντικειμένων τεσσάρων επιπέδων:</para>
-
- <itemizedlist>
- <listitem>
- <para>Το πλέον ορατό αντικείμενο είναι ο εικονικός δίσκος, ο οποίος
- καλείται και <emphasis>τόμος (volume)</emphasis>. Οι τόμοι έχουν
- ουσιαστικά τις ίδιες ιδιότητες με ένα δίσκο του &unix;, αν και
- υπάρχουν κάποιες μικρές διαφορές. Δεν υπάρχουν περιορισμοί όσο
- αφορά το μέγεθος τους.</para>
- </listitem>
-
- <listitem>
- <para>Οι τόμοι αποτελούνται από <emphasis>plex</emphasis>, και κάθε
- ένα από αυτά αντιπροσωπεύει το συνολικό χώρο διευθύνσεων ενός
- τόμου. Αυτό το επίπεδο στην ιεραρχία παρέχει τη δυνατότητα
- redundancy. Μπορείτε να σκεφτείτε τα plex ως μεμονωμένους δίσκους
- σε μια συστοιχία mirror, όπου κάθε ένα περιέχει τα ίδια
- δεδομένα.</para>
- </listitem>
-
- <listitem>
- <para>Καθώς το Vinum υπάρχει μέσα στο πλαίσιο λειτουργιών του &unix;
- που χρησιμοποιείται για την αποθήκευση σε δίσκους, θα μπορούσε
- να χρησιμοποιήσει τις κατατμήσεις του &unix; ως το δομικό στοιχείο
- για τη δημιουργία των plex. Στην πραγματικότητα, η λογική αυτή
- αποδεικνύεται ιδιαίτερα περιοριστική: οι δίσκοι στο &unix; μπορούν
- να έχουν περιορισμένο αριθμό κατατμήσεων. Αντίθετα, το Vinum
- υποδιαιρεί μια μόνο κατάτμηση του &unix;
- (τον <emphasis>οδηγό</emphasis>) σε συνεχόμενες περιοχές που
- καλούνται <emphasis>υποδίσκοι (subdisks)</emphasis>. Οι υποδίσκοι
- χρησιμοποιούνται ως τα δομικά στοιχεία για τα plex.</para>
- </listitem>
-
- <listitem>
- <para>Οι υποδίσκοι βρίσκονται σε <emphasis>οδηγούς</emphasis> Vinum,
- που τη δεδομένη στιγμή είναι κατατμήσεις του &unix;. Οι οδηγοί του
- Vinum μπορούν να περιέχουν οποιοδήποτε αριθμό από υποδίσκους. Με
- εξαίρεση μια μικρή περιοχή στην αρχή του δίσκου (η οποία
- χρησιμοποιείται για την αποθήκευση δεδομένων ρύθμισης και
- κατάστασης) όλος ο υπόλοιπος οδηγός είναι διαθέσιμος για αποθήκευση
- δεδομένων.</para>
- </listitem>
- </itemizedlist>
-
- <para>Οι παρακάτω ενότητες περιγράφουν τον τρόπο με τον οποίο αυτά τα
- αντικείμενα παρέχουν την λειτουργικότητα που απαιτείται από το
- Vinum.</para>
-
- <sect2>
- <title>Μέγεθος Τόμου</title>
-
- <para>Τα plex μπορούν να περιλαμβάνουν πολλαπλούς υποδίσκους, που
- κατανέμονται σε όλους τους οδηγούς του Vinum. Σαν αποτέλεσμα, το
- μέγεθος ενός συγκεκριμένου δίσκου δεν περιορίζει το μέγεθος ούτε του
- plex, ούτε του τόμου.</para>
- </sect2>
-
- <sect2>
- <title>Πλεονάζουσα (Redundant) Αποθήκευση Δεδομένων</title>
-
- <para>Το Vinum υλοποιεί το mirroring προσαρτώντας πολλαπλά plex σε
- ένα τόμο. Κάθε plex είναι μια αναπαράσταση των δεδομένων ενός τόμου.
- Ένας τόμος μπορεί να περιέχει μεταξύ ενός και οκτώ plex.</para>
-
- <para>Αν και ένα plex αντιπροσωπεύει τα πλήρη δεδομένα ενός τόμου,
- είναι πιθανόν κάποια μέρη της αναπαράστασης να λείπουν από το φυσικό
- μέσο, είτε επειδή έχει σχεδιαστεί με αυτό το τρόπο (αν δεν έχει
- οριστεί υποδίσκος για κάποια τμήματα του plex) ή από πρόβλημα (ως
- αποτέλεσμα της αποτυχίας κάποιου δίσκου). Όσο υπάρχει τουλάχιστον
- ένα plex που μπορεί να παρέχει τα δεδομένα για την πλήρη περιοχή
- διευθύνσεων του τόμου, ο τόμος είναι πλήρως λειτουργικός.</para>
- </sect2>
-
- <sect2>
- <title>Θέματα Απόδοσης</title>
-
- <para>Το Vinum υλοποιεί τόσο συνένωση όσο και striping σε επίπεδο
- plex:</para>
-
- <itemizedlist>
- <listitem>
- <para>Ένα <emphasis>plex συνένωσης (concatenated)</emphasis>
- χρησιμοποιεί την περιοχή διευθύνσεων κάθε υποδίσκου με τη
- σειρά.</para>
- </listitem>
-
- <listitem>
- <para>Ένα <emphasis>striped plex</emphasis> γράφει τα δεδομένα
- σε λωρίδες (stripes) που κατανέμονται σε κάθε υποδίσκο. Όλοι οι
- υποδίσκοι πρέπει να έχουν το ίδιο μέγεθος και πρέπει να υπάρχουν
- τουλάχιστον δύο υποδίσκοι, για να ξεχωρίζουν σε σχέση με το plex
- συνένωσης.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Είδη Οργάνωσης Plex</title>
-
- <para>Η έκδοση του Vinum που παρέχεται με το &os;&nbsp;&rel.current;
- υλοποιεί δύο είδη plex:</para>
-
- <itemizedlist>
- <listitem>
- <para>Τα plex συνένωσης προσφέρουν τη μεγαλύτερη ευελιξία: μπορούν
- να περιέχουν οποιοδήποτε αριθμό υποδίσκων, και οι υποδίσκοι αυτοί
- μπορεί να είναι διαφορετικού μεγέθους. Το plex μπορεί να
- επεκταθεί προσθέτοντας περισσότερους υποδίσκους. Χρειάζονται
- λιγότερο χρόνο <acronym>CPU</acronym> σε σχέση με τα stripes, αν
- και η διαφορά στη χρήση της <acronym>CPU</acronym> δεν είναι
- μετρήσιμη. Από την άλλη μεριά, είναι πιο επιρρεπή σε
- μη-ισορροπημένη λειτουργία, όπου ένας δίσκος είναι πολύ ενεργός
- και οι υπόλοιποι αδρανούν.</para>
- </listitem>
-
- <listitem>
- <para>Το μεγαλύτερο πλεονέκτημα των stripes
- (<acronym>RAID-0</acronym>), είναι ότι έχουν πιο ισορροπημένη
- λειτουργία: επιλέγοντας το σωστό μέγεθος λωρίδας (περίπου
- 256&nbsp;kB), μπορείτε να εξισορροπήσετε το φορτίο σε κάθε δίσκο
- του plex. Τα μειονεκτήματα αυτής της μεθόδου είναι (ελαφρά) πιο
- πολύπλοκος κώδικας και περιορισμοί στους υποδίσκους: πρέπει όλοι
- να είναι το ίδιο μέγεθος και η επέκταση ενός plex με προσθήκη
- περισσότερων δίσκων είναι τόσο πολύπλοκη που τη δεδομένη στιγμή
- το Vinum δεν την υλοποιεί. Το Vinum επίσης επιβάλλει ένα ακόμα
- απλοϊκό περιορισμό: ένα plex τύπου stripe πρέπει να διαθέτει
- υποχρεωτικά δύο τουλάχιστον υποδίσκους, διαφορετικά είναι
- αδύνατο να το ξεχωρίσουμε από ένα plex συνένωσης.</para>
- </listitem>
- </itemizedlist>
-
- <para>Ο <xref linkend="vinum-comparison"/> δείχνει περιληπτικά τα
- πλεονεκτήματα και μειονεκτήματα κάθε είδους οργάνωσης plex.</para>
-
- <table id="vinum-comparison" frame="none">
- <title>Είδη Οργάνωσης Vinum Plex</title>
- <tgroup cols="5">
- <thead>
- <row>
- <entry>Τύπος plex</entry>
- <entry>Ελάχιστο πλήθος υποδίσκων</entry>
- <entry>Δυνατότητα προσθήκης υποδίσκων</entry>
- <entry>Οι υποδίσκοι πρέπει να είναι ίδιου μεγέθους</entry>
- <entry>Εφαρμογή</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>συνένωσης (concatenated)</entry>
- <entry>1</entry>
- <entry>ναι</entry>
- <entry>όχι</entry>
- <entry>Αποθήκευση μεγάλου όγκου δεδομένων με μέγιστη ευελιξία
- στον τρόπο κατανομής και μέτρια απόδοση.</entry>
- </row>
-
- <row>
- <entry>striped</entry>
- <entry>2</entry>
- <entry>όχι</entry>
- <entry>ναι</entry>
- <entry>Υψηλή απόδοση σε συνδυασμό με πολύ καλές ταχύτητες σε
- καταστάσεις πολλαπλής πρόσβασης.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect2>
- </sect1>
-
- <sect1 id="vinum-examples">
- <title>Μερικά Παραδείγματα</title>
-
- <para>Το Vinum διατηρεί μια
- <emphasis>βάση δεδομένων με τις ρυθμίσεις του</emphasis> η οποία
- περιγράφει τα αντικείμενα τα οποία γνωρίζει ένα συγκεκριμένο σύστημα.
- Αρχικά, ο χρήστης δημιουργεί αυτή τη βάση δεδομένων από ένα ή
- περισσότερα αρχεία ρυθμίσεων, με την βοήθεια του προγράμματος
- &man.gvinum.8;. Το vinum αποθηκεύει ένα αντίγραφο της βάσης
- δεδομένων σε κάθε slice του δίσκου (που το Vinum αποκαλεί
- <emphasis>συσκευή</emphasis>) που βρίσκεται υπό τον έλεγχο του.
- Η βάση δεδομένων ανανεώνεται σε κάθε αλλαγή κατάστασης, ώστε
- όλα τα αντικείμενα του Vinum να επανέρχονται στη σωστή κατάσταση μετά
- από μια επανεκκίνηση.</para>
-
- <sect2>
- <title>Το Αρχείο Ρυθμίσεων</title>
-
- <para>Το αρχείο ρυθμίσεων περιγράφει τα μεμονωμένα αντικείμενα του
- Vinum. Ο ορισμός για ένα απλό τόμο μπορεί να μοιάζει με τον
- παρακάτω:</para>
-
- <programlisting>
- drive a device /dev/da3h
- volume myvol
- plex org concat
- sd length 512m drive a</programlisting>
-
- <para>Αυτό το αρχείο περιγράφει τέσσερα αντικείμενα του Vinum:</para>
-
- <itemizedlist>
- <listitem>
- <para>Η γραμμή <emphasis>drive</emphasis> περιγράφει μια κατάτμηση
- δίσκου (<emphasis>οδηγού</emphasis>) και τη θέση της σε σχέση με
- το φυσικό δίσκο. Δίνεται σε αυτή το συμβολικό όνομα
- <emphasis>a</emphasis>. Αυτός ο διαχωρισμός των συμβολικών από
- τα πραγματικά ονόματα συσκευών, μας επιτρέπει να μεταφέρουμε
- δίσκους από μια θέση σε μια άλλη χωρίς να προκληθεί
- σύγχυση.</para>
- </listitem>
-
- <listitem>
- <para>Η γραμμή <emphasis>volume</emphasis> περιγράφει ένα τόμο.
- Το μόνο απαιτούμενο χαρακτηριστικό εδώ είναι το όνομα, στην
- περίπτωση μας <emphasis>myvol</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Η γραμμή <emphasis>plex</emphasis> ορίζει ένα plex.
- Η μόνη απαραίτητη παράμετρος είναι το είδος της οργάνωσης, στη
- συγκεκριμένη περίπτωση το <emphasis>concat</emphasis>. Δεν
- είναι απαραίτητο να δοθεί όνομα: το σύστημα παράγει αυτόματα
- ένα όνομα χρησιμοποιώντας το όνομα του τόμου και την κατάληξη
- <emphasis>.p</emphasis><emphasis>x</emphasis>, όπου το
- <emphasis>x</emphasis> είναι ο αριθμός του plex στον τόμο. Έτσι,
- αυτό το plex θα καλείται <emphasis>myvol.p0</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Η γραμμή <emphasis>sd</emphasis> περιγράφει ένα υποδίσκο.
- Οι ελάχιστες απαιτούμενες προδιαγραφές είναι το όνομα ενός
- δίσκου στον οποίο θα αποθηκευτεί, και το μήκος του υποδίσκου.
- Όπως συμβαίνει και με τα plex, δεν απαιτείται όνομα:
- το σύστημα αποδίδει ονόματα αυτόματα, χρησιμοποιώντας ως σημείο
- εκκίνησης το όνομα του plex και προσθέτοντας την κατάληξη
- <emphasis>.s</emphasis><emphasis>x</emphasis>, όπου το
- <emphasis>x</emphasis> είναι ο αριθμός του υποδίσκου στο plex.
- Έτσι, το Vinum δίνει σε αυτόν τον υποδίσκο το όνομα
- <emphasis>myvol.p0.s0</emphasis>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Μετά την επεξεργασία αυτού του αρχείου, το &man.gvinum.8; παράγει
- την ακόλουθη έξοδο:</para>
-
- <programlisting width="97">
- &prompt.root; gvinum -&gt; <userinput>create config1</userinput>
- Configuration summary
- Drives: 1 (4 configured)
- Volumes: 1 (4 configured)
- Plexes: 1 (8 configured)
- Subdisks: 1 (16 configured)
-
- D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%)
-
- V myvol State: up Plexes: 1 Size: 512 MB
-
- P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
-
- S myvol.p0.s0 State: up PO: 0 B Size: 512 MB</programlisting>
-
- <para>Η παραπάνω έξοδος χρησιμοποιεί τη μορφή συντομευμένης λίστας του
- &man.gvinum.8;. Η γραφική απεικόνιση φαίνεται στο <xref
- linkend="vinum-simple-vol"/>.</para>
-
- <para>
- <figure id="vinum-simple-vol">
- <title>Ένας Απλός Τόμος Vinum</title>
- <graphic fileref="vinum/vinum-simple-vol"/>
- </figure>
- </para>
-
- <para>Στο σχήμα αυτό (καθώς και σε αυτά που ακολουθούν) υπάρχει η
- αναπαράσταση ενός τόμου που περιέχει τα plex, τα οποία με τη
- σειρά τους περιέχουν τους υποδίσκους. Σε αυτό το απλουστευμένο
- παράδειγμα, ο τόμος περιέχει ένα plex και το plex περιέχει ένα
- υποδίσκο.</para>
-
- <para>Ο τόμος αυτός δεν έχει κάποιο συγκεκριμένο
- πλεονέκτημα σε σχέση με μια συμβατική κατάτμηση δίσκου. Περιέχει
- ένα μόνο plex, άρα δεν έχει κάποια ικανότητα ανοχής σφαλμάτων.
- Το plex περιέχει επίσης ένα υποδίσκο, και έτσι δεν υπάρχει διαφορά
- στην κατανομή χώρου σε σχέση με μια συμβατική κατάτμηση. Στις
- επόμενες ενότητες θα δείξουμε διαφορετικές και πιο ενδιαφέρουσες
- μεθόδους ρύθμισης.</para>
- </sect2>
-
- <sect2>
- <title>Αυξημένη Αξιοπιστία: Mirroring</title>
-
- <para>Η αξιοπιστία ενός τόμου μπορεί να αυξηθεί μέσω του mirroring
- (καθρεπτισμού). Όταν σχεδιάζετε ένα τόμο στον οποίο θα γίνει
- mirroring, είναι σημαντικό να εξασφαλίσετε ότι οι υποδίσκοι σε κάθε
- plex είναι σε διαφορετικούς οδηγούς, ώστε η αποτυχία ενός δίσκου να
- μην προκαλέσει παύση λειτουργίας και στα δύο plex. Το παρακάτω
- παράδειγμα δείχνει πως μπορεί να γίνει mirroring ενός τόμου:</para>
-
- <programlisting>
- drive b device /dev/da4h
- volume mirror
- plex org concat
- sd length 512m drive a
- plex org concat
- sd length 512m drive b</programlisting>
-
- <para>Στο παράδειγμα αυτό, δεν ήταν απαραίτητο να καθοριστεί ξανά ο
- οδηγός <emphasis>a</emphasis>, καθώς το Vinum διαθέτει ήδη τις
- αντίστοιχες καταχωρίσεις στη βάση δεδομένων με τις ρυθμίσεις του.
- Μετά την επεξεργασία των παραπάνω ορισμών, η ρύθμιση μοιάζει με
- την παρακάτω:</para>
-
- <programlisting width="97">
- Drives: 2 (4 configured)
- Volumes: 2 (4 configured)
- Plexes: 3 (8 configured)
- Subdisks: 3 (16 configured)
-
- D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%)
- D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%)
-
- V myvol State: up Plexes: 1 Size: 512 MB
- V mirror State: up Plexes: 2 Size: 512 MB
-
- P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
- P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
- P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
-
- S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
- S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
- S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB</programlisting>
-
- <para>Το <xref linkend="vinum-mirrored-vol"/> αναπαριστά αυτή τη δομή
- γραφικά.</para>
-
- <para>
- <figure id="vinum-mirrored-vol">
- <title>Ένας Mirrored Τόμος Vinum </title>
- <graphic fileref="vinum/vinum-mirrored-vol"/>
- </figure>
- </para>
-
- <para>Στο παράδειγμα αυτό, κάθε plex περιέχει την πλήρη περιοχή
- διευθύνσεων, μεγέθους 512&nbsp;MB. Όπως και στο προηγούμενο
- παράδειγμα, κάθε plex περιέχει ένα μοναδικό υποδίσκο.</para>
- </sect2>
-
- <sect2>
- <title>Βελτιστοποιώντας την Απόδοση</title>
-
- <para>Ο mirrored τόμος του προηγούμενου παραδείγματος παρουσιάζει
- μεγαλύτερη ανοχή σφαλμάτων σε σχέση με ένα τόμο που δεν χρησιμοποιεί
- mirror, αλλά η απόδοση του είναι μικρότερη: κάθε εγγραφή στον
- τόμο πρέπει να γίνεται και στους δύο δίσκους, χρησιμοποιώντας έτσι
- μεγαλύτερο ποσοστό του διαθέσιμου εύρους ζώνης. Οι απαιτήσεις που
- ενδεχομένως έχουμε για απόδοση, απαιτούν διαφορετική προσέγγιση:
- αντί να χρησιμοποιήσουμε mirror, μπορούμε να δημιουργήσουμε λωρίδες
- αποθήκευσης (stripes) σε όσο το δυνατόν περισσότερους δίσκους.
- Η παρακάτω ρύθμιση δείχνει ένα τόμο στον οποίο το plex έχει γίνει
- stripe σε τέσσερις δίσκους:</para>
-
- <programlisting>
- drive c device /dev/da5h
- drive d device /dev/da6h
- volume stripe
- plex org striped 512k
- sd length 128m drive a
- sd length 128m drive b
- sd length 128m drive c
- sd length 128m drive d</programlisting>
-
- <para>Όπως και προηγουμένως, δεν χρειάζεται να ορίσουμε ξανά τους
- δίσκους που είναι ήδη γνωστοί στο Vinum. Μετά την επεξεργασία του
- παραπάνω ορισμού, η ρύθμιση θα μοιάζει με την παρακάτω:</para>
-
- <programlisting width="92">
- Drives: 4 (4 configured)
- Volumes: 3 (4 configured)
- Plexes: 4 (8 configured)
- Subdisks: 7 (16 configured)
-
- D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%)
- D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%)
- D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%)
- D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%)
-
- V myvol State: up Plexes: 1 Size: 512 MB
- V mirror State: up Plexes: 2 Size: 512 MB
- V striped State: up Plexes: 1 Size: 512 MB
-
- P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
- P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
- P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
- P striped.p1 State: up Subdisks: 1 Size: 512 MB
-
- S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
- S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
- S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB
- S striped.p0.s0 State: up PO: 0 B Size: 128 MB
- S striped.p0.s1 State: up PO: 512 kB Size: 128 MB
- S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB
- S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB</programlisting>
-
- <para>
- <figure id="vinum-striped-vol">
- <title>Ένας Striped Τόμος Vinum</title>
- <graphic fileref="vinum/vinum-striped-vol"/>
- </figure>
- </para>
-
- <para>Αυτός ο τόμος αναπαρίσταται γραφικά στο
- <xref linkend="vinum-striped-vol"/>. Η απόχρωση της λωρίδας
- αντιπροσωπεύει τη θέση της μέσα στην περιοχή διευθύνσεων του plex:
- οι ανοιχτόχρωμες λωρίδες είναι οι πρώτες, οι σκουρόχρωμες είναι οι
- τελευταίες.</para>
- </sect2>
-
- <sect2>
- <title>Αξιοπιστία και Απόδοση</title>
-
- <para><anchor id="vinum-resilience"/>Με το κατάλληλο υλικό, είναι δυνατόν
- να δημιουργηθούν τόμοι οι οποίοι να παρουσιάζουν τόσο μεγάλη ανοχή
- σε σφάλματα, όσο και αυξημένη απόδοση σε σχέση με τις τυποποιημένες
- κατατμήσεις του &unix;. Ένα τυπικό αρχείο ρυθμίσεων θα μοιάζει με το
- παρακάτω:</para>
-
- <programlisting>
- volume raid10
- plex org striped 512k
- sd length 102480k drive a
- sd length 102480k drive b
- sd length 102480k drive c
- sd length 102480k drive d
- sd length 102480k drive e
- plex org striped 512k
- sd length 102480k drive c
- sd length 102480k drive d
- sd length 102480k drive e
- sd length 102480k drive a
- sd length 102480k drive b</programlisting>
-
- <para>Οι υποδίσκοι του δεύτερου plex έχουν μετατεθεί κατά δύο οδηγούς
- σε σχέση με αυτούς του πρώτου plex: αυτό εξασφαλίζει ότι οι εγγραφές
- δεν γίνονται στους ίδιους υποδίσκους, ακόμα και αν μια μεταφορά
- χρησιμοποιεί και τους δύο δίσκους.</para>
-
- <para>Το <xref linkend="vinum-raid10-vol"/> αναπαριστά γραφικά τη δομή
- αυτού του τόμου.</para>
-
- <para>
- <figure id="vinum-raid10-vol">
- <title>Ένας Mirrored και Striped Τόμος του Vinum</title>
- <graphic fileref="vinum/vinum-raid10-vol"/>
- </figure>
- </para>
- </sect2>
- </sect1>
-
- <sect1 id="vinum-object-naming">
- <title>Ονομασία Αντικειμένων</title>
-
- <para>Όπως περιγράψαμε παραπάνω, το Vinum αποδίδει προεπιλεγμένα ονόματα
- σε plex και υποδίσκους, αν και υπάρχει η δυνατότητα να τα
- παρακάμψετε. Αυτό ωστόσο δεν συνίσταται: η εμπειρία που έχουμε από
- το διαχειριστή τόμων VERITAS (ο οποίος επιτρέπει ελεύθερη απόδοση
- ονομάτων στα αντικείμενα) έχει δείξει ότι αυτού του είδους η ευελιξία
- δεν προσφέρει σημαντικά πλεονεκτήματα, και μπορεί να προκαλέσει
- σύγχυση.</para>
-
- <para>Τα ονόματα μπορεί να περιέχουν οποιοδήποτε μη-κενό χαρακτήρα, αλλά
- συνίσταται να περιοριστείτε στη χρήση γραμμάτων, αριθμών και της κάτω
- παύλας. Τα ονόματα των τόμων, των plex και των υποδίσκων μπορεί να
- είναι μέχρι 64 χαρακτήρες, ενώ τα ονόματα των δίσκων μπορεί να είναι
- μέχρι 32 χαρακτήρες.</para>
-
- <para>Τα αρχεία συσκευών του Vinum δημιουργούνται στον κατάλογο
- <filename class="directory">/dev/gvinum</filename>. Με τις ρυθμίσεις
- που φαίνονται παραπάνω, το Vinum θα δημιουργήσει τα παρακάτω αρχεία
- συσκευών:</para>
-
- <itemizedlist>
- <listitem>
- <para>Καταχωρίσεις συσκευών για κάθε τόμο. Αυτές είναι και οι κύριες
- συσκευές που χρησιμοποιεί το Vinum. Με τις ρυθμίσεις που δείξαμε
- παραπάνω, θα έχουμε τις συσκευές:
- <filename class="devicefile">/dev/gvinum/myvol</filename>,
- <filename class="devicefile">/dev/gvinum/mirror</filename>,
- <filename class="devicefile">/dev/gvinum/striped</filename>,
- <filename class="devicefile">/dev/gvinum/raid5</filename> και
- <filename class="devicefile">/dev/gvinum/raid10</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Όλοι οι τόμοι διαθέτουν απευθείας καταχωρίσεις στον κατάλογο
- <filename class="directory">/dev/gvinum/</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Οι κατάλογοι
- <filename class="directory">/dev/gvinum/plex</filename> και
- <filename class="directory">/dev/gvinum/sd</filename>, που
- περιέχουν τα αρχεία συσκευών για κάθε plex και υποδίσκο
- αντίστοιχα.</para>
- </listitem>
- </itemizedlist>
-
- <para>Για παράδειγμα, θεωρήστε το παρακάτω αρχείο ρυθμίσεων:</para>
-
- <programlisting>
- drive drive1 device /dev/sd1h
- drive drive2 device /dev/sd2h
- drive drive3 device /dev/sd3h
- drive drive4 device /dev/sd4h
- volume s64 setupstate
- plex org striped 64k
- sd length 100m drive drive1
- sd length 100m drive drive2
- sd length 100m drive drive3
- sd length 100m drive drive4</programlisting>
-
- <para>Μετά την επεξεργασία αυτού του αρχείου, το &man.gvinum.8; θα
- δημιουργήσει την ακόλουθη δομή στον κατάλογο
- <filename class="directory">/dev/gvinum</filename>:</para>
-
- <programlisting>
- drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex
- crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64
- drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd
-
- /dev/vinum/plex:
- total 0
- crwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0
-
- /dev/vinum/sd:
- total 0
- crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0
- crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1
- crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2
- crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3</programlisting>
-
- <para>Αν και συνίσταται να μην δίνονται συγκεκριμένα ονόματα στα plex
- και τους υποδίσκους, θα πρέπει να δοθούν ονόματα στους δίσκους του
- Vinum. Με τον τρόπο αυτό, ο δίσκος αναγνωρίζεται αυτόματα ακόμα και
- αν αλλάξει θέση. Τα ονόματα των δίσκων μπορεί να έχουν μέγεθος μέχρι
- 32 χαρακτήρες.</para>
-
- <sect2>
- <title>Δημιουργία Συστημάτων Αρχείων</title>
-
- <para>Οι τόμοι δείχνουν όμοιοι με τους δίσκους όσο αφορά το σύστημα,
- με μια εξαίρεση. Αντίθετα με τους δίσκους του &unix;, το Vinum δεν
- δημιουργεί κατατμήσεις στους τόμους, και έτσι απουσιάζει από αυτούς
- ο αντίστοιχος πίνακας κατατμήσεων. Αυτό απαιτεί την τροποποίηση
- κάποιων βοηθητικών προγραμμάτων και ειδικότερα του &man.newfs.8;, το
- οποίο στις προηγούμενες υλοποιήσεις του προσπαθούσε να ερμηνεύσει
- το τελευταίο γράμμα ενός τόμου Vinum ως αναγνωριστικό της κατάτμησης.
- Για παράδειγμα, ένας κανονικός δίσκος μπορεί να έχει το όνομα
- <filename class="devicefile">/dev/ad0a</filename> ή
- <filename class="devicefile">/dev/da2h</filename>.
- Τα ονόματα αυτά αντιπροσωπεύουν την πρώτη κατάτμηση
- (<devicename>a</devicename>) στον πρώτο δίσκο IDE
- (<devicename>ad</devicename>) και την όγδοη κατάτμηση
- (<devicename>h</devicename>) στον τρίτο (2) SCSI δίσκο
- (<devicename>da</devicename>) αντίστοιχα. Σε αντίθεση, ένας τόμος
- του Vinum μπορεί να ονομάζεται <filename
- class="devicefile">/dev/gvinum/concat</filename>, το οποίο δεν
- έχει καμιά σχέση με όνομα κατάτμησης.</para>
-
- <para>Για να δημιουργήσετε ένα σύστημα αρχείων σε αυτό τον τόμο,
- χρησιμοποιήστε την &man.newfs.8;:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/gvinum/concat</userinput></screen>
- </sect2>
- </sect1>
-
- <sect1 id="vinum-config">
- <title>Ρύθμιση του Vinum</title>
-
- <para>Το Vinum δεν υπάρχει στον πυρήνα <filename>GENERIC</filename>.
- Είναι δυνατόν να δημιουργήσετε προσαρμοσμένο πυρήνα που να το περιέχει,
- αλλά δεν συνίσταται. Ο συνηθισμένος τρόπος να ξεκινήσετε το Vinum,
- είναι να το φορτώσετε ως άρθρωμα στον πυρήνα (<acronym>kld</acronym>).
- Δεν χρειάζεται καν να χρησιμοποιήσετε την &man.kldload.8; για το
- Vinum: όταν ξεκινήσετε το &man.gvinum.8;, θα γίνει έλεγχος για να
- διαπιστωθεί αν το άρθρωμα είναι φορτωμένο, και αν δεν είναι θα
- φορτωθεί αυτόματα.</para>
-
- <sect2>
- <title>Εκκίνηση</title>
-
- <para>Το Vinum αποθηκεύει τις πληροφορίες για τις ρυθμίσεις του στα
- slices των δίσκων, ουσιαστικά με τον ίδιο τρόπο που τις αποθηκεύει
- και στα αρχεία ρυθμίσεων. Όταν το Vinum διαβάζει τη βάση δεδομένων
- των ρυθμίσεων, μπορεί να αναγνωρίσει ένα αριθμό λέξεων που δεν
- επιτρέπεται να εμφανιστούν στα αρχεία ρυθμίσεων. Για παράδειγμα, οι
- ρυθμίσεις για κάποιο δίσκο μπορεί να περιέχουν το παρακάτω
- κείμενο:</para>
-
- <programlisting width="119">volume myvol state up
-volume bigraid state down
-plex name myvol.p0 state up org concat vol myvol
-plex name myvol.p1 state up org concat vol myvol
-plex name myvol.p2 state init org striped 512b vol myvol
-plex name bigraid.p0 state initializing org raid5 512b vol bigraid
-sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b
-sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b
-sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b
-sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b
-sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b
-sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b
-sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b
-sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b
-sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b
-sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b
-sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b
-sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b
-sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b</programlisting>
-
- <para>Οι προφανείς διαφορές εδώ, είναι η παρουσία συγκεκριμένων
- θέσεων και ονομάτων (και τα δύο είναι επιτρεπτά, αλλά γενικά δεν
- συνίσταται η χρήση τους) και οι πληροφορίες κατάστασης (που
- δεν είναι διαθέσιμες στο χρήστη). Το Vinum δεν αποθηκεύει
- πληροφορίες σχετικές με τους δίσκους στις ρυθμίσεις του: απλώς
- ανιχνεύει όλους τους δίσκους για κατατμήσεις που περιέχουν
- ετικέτα Vinum. Αυτό επιτρέπει στο Vinum να αναγνωρίσει τους δίσκους
- σωστά, ακόμα και αν τους έχει δοθεί διαφορετικό &unix;
- αναγνωριστικό (ID).</para>
-
- <sect3 id="vinum-rc-startup">
- <title>Αυτόματη Εκκίνηση</title>
-
- <para>Το <emphasis>Gvinum</emphasis> ξεκινάει πάντοτε αυτόματα
- μετά την φόρτωση του αρθρώματος μέσω του &man.loader.conf.5;.
- Για να φορτώσετε το άρθρωμα του <emphasis>Gvinum</emphasis> κατά
- την εκκίνηση, προσθέστε τη γραμμή
- <literal>geom_vinum_load="YES"</literal> στο αρχείο
- <filename>/boot/loader.conf</filename>.</para>
-
- <para>Όταν ξεκινάτε το Vinum με την εντολή
- <command>gvinum start</command>, το Vinum διαβάζει τη βάση
- δεδομένων ρυθμίσεων από έναν δίσκο που βρίσκεται υπό τον έλεγχο
- του. Κάτω από φυσιολογικές συνθήκες, κάθε δίσκος περιέχει ένα
- όμοιο αντίγραφο της βάσης, έτσι δεν έχει σημασία από ποιο δίσκο θα
- γίνει η ανάγνωση. Ωστόσο, μετά από κάποιο απότομο τερματισμό
- λειτουργίας, το Vinum θα πρέπει να καθορίσει ποιος δίσκος έχει το
- πιο πρόσφατο αντίγραφο και να διαβάσει από εκεί τις ρυθμίσεις.
- Μετά θα διορθώσει (αν χρειάζεται) τις ρυθμίσεις και στους
- υπόλοιπους δίσκους.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="vinum-root">
- <title>Χρήση του Vinum στο Ριζικό Σύστημα Αρχείων</title>
-
- <para>Σε ένα μηχάνημα στο οποίο έχει γίνει πλήρες mirror στα συστήματα
- αρχείων με τη χρήση του Vinum, είναι συνήθως επιθυμητό να γίνει mirror
- και στο ριζικό (root) σύστημα αρχείων. Η ρύθμιση αυτή δεν είναι
- τόσο απλή όσο σε ένα οποιοδήποτε σύστημα αρχείων, επειδή:</para>
-
- <itemizedlist>
- <listitem>
- <para>Το ριζικό σύστημα αρχείων πρέπει να είναι διαθέσιμο από πολύ
- νωρίς κατά τη διαδικασία εκκίνησης, έτσι είναι απαραίτητο οι
- υποδομές του Vinum να είναι επίσης διαθέσιμες την ίδια
- στιγμή.</para>
- </listitem>
-
- <listitem>
- <para>Ο τόμος που περιέχει το ριζικό σύστημα αρχείων περιέχει επίσης
- και τον κώδικα εκκίνησης (bootstrap) και τον πυρήνα, ο οποίος
- θα πρέπει να είναι προσβάσιμος από βασικά προγράμματα
- του συστήματος (π.χ. το BIOS σε μηχανήματα τύπου PC), τα οποία δεν
- γνωρίζουν και δεν μπορούν να μάθουν τις λεπτομέρειες υλοποίησης του
- Vinum.</para>
- </listitem>
- </itemizedlist>
-
- <para>Στις επόμενες ενότητες, ο όρος <quote>ριζικός τόμος</quote>
- χρησιμοποιείται γενικά για να περιγράψει τον τόμο του Vinum που
- περιέχει το ριζικό σύστημα αρχείων. Είναι γενικά καλή ιδέα να
- χρησιμοποιείται το όνομα <literal>"root"</literal> για αυτό τον τόμο,
- αλλά αυτό δεν αποτελεί τεχνική απαίτηση. Όλα τα παραδείγματα εντολών
- στις παρακάτω ενότητες χρησιμοποιούν την παραπάνω παραδοχή.</para>
-
- <sect2>
- <title>Εκκίνηση του Vinum Αρκετά Νωρίς για το Ριζικό Σύστημα
- Αρχείων</title>
-
- <para>Αυτό μπορεί να επιτευχθεί με διάφορους τρόπους:</para>
-
- <itemizedlist>
- <listitem>
- <para>Το Vinum πρέπει να είναι διαθέσιμο στο πυρήνα κατά την
- εκκίνηση. Για το λόγο αυτό, η μέθοδος αυτόματης εκκίνησης που
- περιγράψαμε στο <xref linkend="vinum-rc-startup"/> δεν μπορεί να
- χρησιμοποιηθεί σε αυτή την περίπτωση και η παράμετρος
- <literal>start_vinum</literal> <emphasis>δεν</emphasis> θα πρέπει
- να τεθεί όταν χρησιμοποιείται η παρακάτω διάταξη. Μια πιθανή
- επιλογή είναι να μεταγλωττίσετε στατικά το Vinum στον πυρήνα
- ώστε να είναι διαθέσιμο πάντα, αλλά αυτό συνήθως δεν είναι
- επιθυμητό. Υπάρχει μια ακόμα διαθέσιμη επιλογή, να ορίσετε να
- φορτώνεται το άρθρωμα του πυρήνα μέσω του
- <filename>/boot/loader</filename> (<xref
- linkend="boot-loader"/>) πριν την εκκίνηση του ίδιου του
- πυρήνα. Αυτό μπορεί να επιτευχθεί με τη γραμμή:</para>
-
- <programlisting>geom_vinum_load="YES"</programlisting>
-
- <para>στο αρχείο <filename>/boot/loader.conf</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Στο <emphasis>Gvinum</emphasis>, όλη η διαδικασία εκκίνησης
- γίνεται αυτόματα μετά την φόρτωση του αρθρώματος πυρήνα, έτσι
- η διαδικασία που περιγράψαμε παραπάνω είναι και η μόνη που
- απαιτείται.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Δημιουργία Ριζικού Τόμου Vinum με Δυνατότητα Πρόσβασης από τον
- Κώδικα Εκκίνησης (Bootstrap).</title>
-
- <para>Καθώς ο τρέχοντας κώδικας εκκίνησης του &os; έχει μέγεθος μόνο
- 7.5 KB, και είναι ήδη επιφορτισμένος με την ανάγνωση αρχείων (όπως το
- <filename>/boot/loader</filename>) από το σύστημα αρχείων UFS, είναι
- πρακτικά αδύνατο να γνωρίζει και τις απαιτούμενες εσωτερικές δομές
- του Vinum ώστε να μπορεί να ερμηνεύσει τις αντίστοιχες πληροφορίες
- ρύθμισης και να μάθει τις λεπτομέρειες του τόμου εκκίνησης. Για το
- λόγο αυτό, χρειάζεται να χρησιμοποιήσουμε κάποια τεχνάσματα ώστε να
- δώσουμε στον κώδικα εκκίνησης την ψευδαίσθηση ύπαρξης μιας κανονικής
- κατάτμησης <literal>"a"</literal> που να περιέχει το ριζικό σύστημα
- αρχείων.</para>
-
- <para>Για να καταστεί αυτό δυνατό, θα πρέπει να πληρούνται ταυτόχρονα
- όλες οι παρακάτω προϋποθέσεις όσο αφορά τον τόμο εκκίνησης:</para>
-
- <itemizedlist>
- <listitem>
- <para>Ο τόμος εκκίνησης δεν θα πρέπει να είναι stripe ή
- RAID-5.</para>
- </listitem>
-
- <listitem>
- <para>Ο τόμος εκκίνησης δεν θα πρέπει να περιέχει περισσότερους
- από ένα συνενωμένους υποδίσκους ανά plex.</para>
- </listitem>
- </itemizedlist>
-
- <para>Σημειώστε ότι είναι συνήθως επιθυμητό και δυνατό να υπάρχουν
- πολλαπλά plex, καθένα από τα οποία να είναι αντίγραφο του ριζικού
- συστήματος αρχείων. Η διαδικασία εκκίνησης θα χρησιμοποιήσει ωστόσο
- μόνο ένα από αυτά τα αντίγραφα για να βρει τον κώδικα εκκίνησης και
- όλα τα αρχεία, μέχρι να γίνει τελικά η προσάρτηση του ριζικού
- συστήματος αρχείων από τον ίδιο τον πυρήνα. Κάθε μοναδικός υποδίσκος
- μέσα σε αυτά τα plex, θα χρειαστεί να διαθέτει τη δική του
- ψευτο-κατάτμηση <literal>"a"</literal> ώστε η συσκευή να είναι
- εκκινήσιμη. Δεν είναι απαραίτητο κάθε μια από αυτές τις
- ψευτο-κατατμήσεις να βρίσκεται στην ίδια θέση μέσα στην συσκευή,
- σε σχέση με άλλες συσκευές που περιέχουν plex με ριζικό σύστημα
- αρχείων. Είναι όμως γενικά καλή ιδέα να δημιουργήσετε τους τόμους
- του Vinum με τέτοιο τρόπο, ώστε οι συσκευές mirror που προκύπτουν να
- είναι συμμετρικές για να αποφύγετε τη σύγχυση.</para>
-
- <para>Για να δημιουργηθούν αυτές οι τύπου <literal>"a"</literal>
- κατατμήσεις για κάθε συσκευή που θα περιέχει τμήματα του ριζικού
- τόμου, θα πρέπει να γίνουν τα ακόλουθα:</para>
-
- <procedure>
- <step>
- <para>Θα πρέπει να εξετάσετε τη θέση (την απόσταση από την αρχή της
- συσκευής) και το μέγεθος της συσκευής υποδίσκου η οποία θα είναι
- μέρος του ριζικού τόμου, χρησιμοποιώντας την εντολή:</para>
-
- <screen>&prompt.root; <userinput>gvinum l -rv root</userinput></screen>
-
- <para>Σημειώστε ότι στο Vinum οι θέσεις και τα μεγέθη μετρούνται
- σε bytes. Θα πρέπει να διαιρέσετε αυτούς τους αριθμούς με το 512
- για να βρείτε τους αριθμούς μπλοκ που θα χρησιμοποιήσετε στην
- εντολή <command>bsdlabel</command>.</para>
- </step>
-
- <step>
- <para>Εκτελέστε την εντολή:</para>
-
- <screen>&prompt.root; <userinput>bsdlabel -e <replaceable>devname</replaceable></userinput></screen>
-
- <para>για κάθε συσκευή που συμμετέχει στο ριζικό τόμο.
- Το <replaceable>devname</replaceable> θα πρέπει να είναι είτε το
- όνομα του δίσκου (για παράδειγμα <devicename>da0</devicename>)
- για δίσκους χωρίς slices (χωρίς δηλ. κατατμήσεις fdisk), ή το
- όνομα του slice (για παράδειγμα,
- <devicename>ad0s1</devicename>).</para>
-
- <para>Αν υπάρχει ήδη μια κατάτμηση <literal>"a"</literal> στη
- συσκευή (που πιθανώς περιέχει το ριζικό σύστημα αρχείων που ήταν
- σε χρήση πριν χρησιμοποιηθεί το Vinum), θα πρέπει να μετονομαστεί
- σε κάτι άλλο ώστε να εξακολουθεί να είναι προσβάσιμο
- (σε περίπτωση ανάγκης), αλλά δεν θα χρησιμοποιείται πλέον από
- προεπιλογή για την εκκίνηση του συστήματος. Σημειώστε ότι οι
- ενεργές κατατμήσεις (όπως για παράδειγμα ένα ριζικό σύστημα
- αρχείων το οποίο είναι ήδη προσαρτημένο) δεν μπορούν να
- μετονομαστούν. Θα πρέπει να εκτελέσετε την εντολή
- χρησιμοποιώντας την επιλογή <quote>Fixit</quote> του CD
- εγκατάστασης, ή να ακολουθήσετε μια διαδικασία δύο βημάτων
- (σε περίπτωση που έχετε mirror) ξεκινώντας από τον ένα δίσκο και
- μετονομάζοντας τον άλλο.</para>
-
- <para>Έπειτα θα πρέπει να προσθέσετε την απόσταση (offset, αν
- υπάρχει) της κατάτμησης Vinum αυτής της συσκευής, με την απόσταση
- του υποδίσκου του αντίστοιχου ριζικού τόμου της συσκευής. Η τιμή
- που θα προκύψει θα είναι η απόσταση (<literal>"offset"</literal>)
- για τη νέα κατάτμηση <literal>"a"</literal>. Μπορείτε να πάρετε
- αυτούσια την τιμή <literal>"size"</literal> για αυτή την κατάτμηση
- από τον υπολογισμό που κάνατε παραπάνω. Το
- <literal>"fstype"</literal> θα πρέπει να είναι
- <literal>4.2BSD</literal>. Οι τιμές των
- <literal>"fsize"</literal>, <literal>"bsize"</literal>,
- και <literal>"cpg"</literal> θα πρέπει να επιλεχθούν με τέτοιο
- τρόπο ώστε να ταιριάζουν με το πραγματικό σύστημα αρχείων, αν και
- δεν έχουν σημασία στη συγκεκριμένη περίπτωση.</para>
-
- <para>Με αυτό τον τρόπο, θα δημιουργηθεί μια νέα κατάτμηση
- <literal>"a"</literal> η οποία επικαλύπτει την κατάτμηση του
- Vinum σε αυτή τη συσκευή. Σημειώστε ότι η εντολή
- <command>bsdlabel</command> θα επιτρέψει αυτή την επικάλυψη μόνο
- αν η κατάτμηση του Vinum έχει επισημανθεί κατάλληλα με fstype
- <literal>"vinum"</literal>.</para>
- </step>
-
- <step>
- <para>Αυτό είναι όλο! Υπάρχει πλέον μια ψευτο-κατάτμηση
- <literal>"a"</literal> σε κάθε συσκευή η οποία έχει αντίγραφο του
- ριζικού τόμου. Συνίσταται να επαληθεύσετε ξανά το αποτέλεσμα,
- χρησιμοποιώντας μια εντολή όπως την παρακάτω:</para>
-
- <screen>&prompt.root; <userinput>fsck -n /dev/<replaceable>devname</replaceable>a</userinput></screen>
- </step>
- </procedure>
-
- <para>Θα πρέπει να θυμάστε ότι οι θέσεις των αρχείων που περιέχουν
- πληροφορίες ελέγχου πρέπει να είναι σχετικές ως προς το ριζικό
- σύστημα αρχείων που βρίσκεται στο τόμο του Vinum, και ο οποίος
- (κατά την δημιουργία καινούριου ριζικού τόμου Vinum) μπορεί να μην
- ταιριάζει με το ριζικό σύστημα αρχείων που είναι ενεργό τη δεδομένη
- στιγμή. Θα πρέπει ιδιαίτερα να φροντίσετε τα αρχεία
- <filename>/etc/fstab</filename> και
- <filename>/boot/loader.conf</filename>.</para>
-
- <para>Στην επόμενη επανεκκίνηση, ο κώδικας εκκίνησης θα πρέπει να
- εντοπίσει τις κατάλληλες πληροφορίες ελέγχου από το νέο (Vinum)
- ριζικό σύστημα αρχείων και να δράσει κατάλληλα. Στο τέλος της
- διαδικασίας αρχικοποίησης του πυρήνα, και μετά την αναγγελία όλων
- των συσκευών, το μήνυμα το οποίο δείχνει την επιτυχή λειτουργία
- του εγχειρήματος μοιάζει με το παρακάτω:</para>
-
- <screen>Mounting root from ufs:/dev/gvinum/root</screen>
- </sect2>
-
- <sect2>
- <title>Παράδειγμα Ρύθμισης Ριζικού Τόμου με Vinum</title>
-
- <para>Μετά την ρύθμιση του ριζικού τόμου με το Vinum, η έξοδος της
- εντολής <command>gvinum l -rv root</command> θα μοιάζει με την
- παρακάτω:</para>
-
- <screen>
-...
-Subdisk root.p0.s0:
- Size: 125829120 bytes (120 MB)
- State: up
- Plex root.p0 at offset 0 (0 B)
- Drive disk0 (/dev/da0h) at offset 135680 (132 kB)
-
-Subdisk root.p1.s0:
- Size: 125829120 bytes (120 MB)
- State: up
- Plex root.p1 at offset 0 (0 B)
- Drive disk1 (/dev/da1h) at offset 135680 (132 kB)
- </screen>
-
- <para>Οι τιμές που θα πρέπει να σημειώσετε είναι το
- <literal>135680</literal> για την απόσταση (offset σε σχέση με την
- κατάτμηση <filename class="devicefile">/dev/da0h</filename>). Αυτό
- μεταφράζεται σε 265 block των 512 byte για την εντολή
- <command>bsdlabel</command>. Παρόμοια, το μέγεθος του ριζικού τόμου
- είναι 245760 μπλοκ των 512 byte. Το <filename
- class="devicefile">/dev/da1h</filename>, το οποίο περιέχει το
- δεύτερο αντίγραφο του ριζικού τόμου, έχει συμμετρική ρύθμιση.</para>
-
- <para>Το bsdlabel για αυτές τις συσκευές θα μοιάζει με το
- παρακάτω:</para>
-
- <screen>
-...
-8 partitions:
-# size offset fstype [fsize bsize bps/cpg]
- a: 245760 281 4.2BSD 2048 16384 0 # (Cyl. 0*- 15*)
- c: 71771688 0 unused 0 0 # (Cyl. 0 - 4467*)
- h: 71771672 16 vinum # (Cyl. 0*- 4467*)</screen>
-
- <para>Μπορείτε να παρατηρήσετε ότι η παράμετρος
- <literal>"size"</literal> για την ψευτο-κατάτμηση
- <literal>"a"</literal> ταιριάζει με την τιμή που δείξαμε παραπάνω,
- ενώ η τιμή της παραμέτρου <literal>"offset"</literal> είναι το
- άθροισμα της απόστασης ανάμεσα στην κατάτμηση Vinum
- <literal>"h"</literal> και της απόστασης αυτής της κατάτμησης μέσα
- στη συσκευή (ή το slice). Πρόκειται για μια τυπική ρύθμιση που είναι
- απαραίτητη για να αποφευχθούν τα προβλήματα που περιγράφηκαν στο
- <xref linkend="vinum-root-panic"/>. Μπορείτε επίσης να δείτε ότι
- ολόκληρη η κατάτμηση <literal>"a"</literal> περιέχεται αυτούσια
- μέσα στην <literal>"h"</literal> η οποία και περιέχει όλες τις
- πληροφορίες Vinum της συσκευής.</para>
-
- <para>Σημειώστε ότι στο παραπάνω παράδειγμα η συσκευή χρησιμοποιείται
- εξ' ολοκλήρου από το Vinum, και δεν υπάρχει κάποιο κατάλοιπο ριζικής
- κατάτμησης από παλιότερη χρήση. Αυτό συμβαίνει επειδή πρόκειται για
- δίσκο που χρησιμοποιήθηκε από την αρχή ως μέρος ενός συστήματος
- Vinum.</para>
- </sect2>
-
- <sect2>
- <title>Αντιμετώπιση Προβλημάτων</title>
-
- <para>Σε περίπτωση προβλήματος, θα χρειαστείτε κάποια μέθοδο
- αντιμετώπισης. Η παρακάτω λίστα περιέχει μερικά από τα πιο
- συνηθισμένα προβλήματα και τις λύσεις τους.</para>
-
- <sect3>
- <title>Ο Κώδικας Εκκίνησης Φορτώνεται, Αλλά το Σύστημα δεν
- Εκκινεί</title>
-
- <para>Αν για οποιοδήποτε λόγο το σύστημα δεν συνεχίζει την εκκίνηση,
- θα πρέπει να διακόψετε την εκκίνηση μέσα στο χρονικό διάστημα των 10
- δευτερολέπτων που εμφανίζεται ο φορτωτής εκκίνησης, πιέζοντας το
- πλήκτρο <keycap>space</keycap>. Μπορείτε να εξετάσετε τις τιμές
- των μεταβλητών του φορτωτή
- (όπως η <literal>vinum.autostart</literal>), χρησιμοποιώντας την
- εντολή <command>show</command>, και να τις αλλάξετε με τις εντολές
- <command>set</command> ή <command>unset</command>.</para>
-
- <para>Αν το μοναδικό πρόβλημα ήταν η απουσία του αρθρώματος
- Vinum στη λίστα της αυτόματης φόρτωσης, αρκεί να δώσετε την
- εντολή <command>load geom_vinum</command>.</para>
-
- <para>Όταν είστε έτοιμος, η εκκίνηση μπορεί να συνεχιστεί με την
- εντολή <command>boot -as</command>. Οι επιλογές
- <option>-as</option> θα οδηγήσουν τον πυρήνα να ρωτήσει για το
- ριζικό σύστημα αρχείων που πρόκειται να προσαρτηθεί
- (<option>-a</option>), και η διαδικασία εκκίνησης θα σταματήσει σε
- κατάσταση ενός χρήστη (single user, λόγω της επιλογής
- <option>-s</option>), όπου η προσάρτηση του ριζικού συστήματος
- είναι μόνο για ανάγνωση. Με τον τρόπο αυτό, ακόμα και αν έχει
- προσαρτηθεί μόνο ένα plex ενός τόμου που αποτελείται από πολλά,
- δεν υπάρχει κίνδυνος να δημιουργηθεί ασυνέπεια δεδομένων μεταξύ
- των plex.</para>
-
- <para>Στην προτροπή που εμφανίζεται για το ριζικό σύστημα αρχείων που
- πρόκειται να προσαρτηθεί, μπορείτε να εισάγετε οποιαδήποτε
- συσκευή περιέχει ένα έγκυρο ριζικό σύστημα αρχείων. Αν το
- <filename>/etc/fstab</filename> έχει ρυθμιστεί σωστά, η προεπιλογή
- θα είναι κάτι σαν <literal>ufs:/dev/gvinum/root</literal>.
- Μια τυπική εναλλακτική τοποθεσία θα μπορούσε να είναι το
- <literal>ufs:da0d</literal>, μια υποθετική κατάτμηση
- που περιέχει το παλιό (πριν το Vinum) ριζικό σύστημα αρχείων.
- Αν πρόκειται να χρησιμοποιήσετε μια
- από τις τύπου <literal>"a"</literal> ψευτο-κατατμήσεις που είναι
- στην πραγματικότητα υποδίσκοι της ριζικής συσκευής του Vinum, θα
- πρέπει να είστε προσεκτικός, γιατί αν χρησιμοποιείτε mirror θα
- γίνει προσάρτηση μόνο του ενός τμήματος της συσκευής.
- Αν πρόκειται να προσαρτήσετε αυτή τη συσκευή αργότερα με
- δυνατότητα εγγραφής-ανάγνωσης, είναι απαραίτητο να αφαιρέσετε τα
- υπόλοιπα plex του ριζικού τόμου του Vinum, καθώς αυτά θα περιέχουν
- δεδομένα που δεν είναι σε συγχρονισμό με την κατάτμηση που έχετε
- ήδη προσαρτήσει.</para>
- </sect3>
-
- <sect3>
- <title>Φορτώνει Μόνο ο Βασικός Κώδικας Εκκίνησης</title>
-
- <para>Αν η φόρτωση του <filename>/boot/loader</filename> δεν είναι
- επιτυχής, αλλά ο βασικός κώδικας εκκίνησης (primary bootstrap)
- φορτώνεται (κάτι που μπορείτε να διαπιστώσετε ελέγχοντας αν
- εμφανίζεται μια παύλα στην πάνω αριστερή γωνία της οθόνης κατά το
- αρχικό στάδιο εκκίνησης), μπορείτε να προσπαθήσετε να διακόψετε
- τη βασική εκκίνηση σε αυτό το σημείο χρησιμοποιώντας το πλήκτρο
- <keycap>space</keycap>. Με αυτό τον τρόπο, η εκκίνηση θα
- σταματήσει στο στάδιο δύο (δείτε το <xref linkend="boot-boot1"/>).
- Μπορείτε εδώ να προσπαθήσετε να εκκινήσετε από μια εναλλακτική
- κατάτμηση, π.χ. την κατάτμηση που περιείχε το ριζικό σύστημα
- αρχείων που μετακινήσατε από το <literal>"a"</literal> όταν
- ξεκινήσατε να χρησιμοποιείτε το Vinum.</para>
- </sect3>
-
- <sect3 id="vinum-root-panic">
- <title>Δεν Γίνεται Καμιά Εκκίνηση, ο Κώδικας Εκκίνησης Προκαλεί
- Panic</title>
-
- <para>Αυτό μπορεί να συμβεί αν ο κώδικας εκκίνησης καταστραφεί
- από την εγκατάσταση του Vinum. Δυστυχώς, το Vinum την τρέχουσα
- στιγμή αφήνει μόνο 4 KB ελεύθερα στην αρχή της κατάτμησης του
- πριν αρχίσει να γράφει τις πληροφορίες της επικεφαλίδας του.
- Ωστόσο τα στάδια ένα και δύο καθώς και το bsdlabel που
- ενσωματώνεται ανάμεσα τους, χρειάζονται 8 KB. Έτσι, αν μια
- κατάτμηση Vinum ξεκίναγε στην θέση 0 μέσα σε ένα slice ή δίσκο που
- προορίζονταν για εκκίνηση, η εγκατάσταση του Vinum θα κατέστρεφε
- τον κώδικα εκκίνησης.</para>
-
- <para>Με τον ίδιο τρόπο, αν η παραπάνω κατάσταση επιδιορθωθεί για
- παράδειγμα ξεκινώντας από ένα CD <quote>Fixit</quote> και
- επανεγκαθιστώντας τον κώδικα εκκίνησης με τη βοήθεια της εντολής
- <command>bsdlabel -B</command> (όπως περιγράφεται στο <xref
- linkend="boot-boot1"/>), ο κώδικας εκκίνησης θα καταστρέψει την
- επικεφαλίδα του Vinum, το οποίο δεν θα μπορεί πλέον να εντοπίσει
- τους δίσκους του. Αν και το παραπάνω δεν καταστρέφει τα δεδομένα
- ρυθμίσεων ή τα πραγματικά δεδομένα που υπάρχουν στους τόμους (και
- η ανάκτηση τους είναι δυνατή αν δώσετε ξανά ακριβώς τις ίδιες
- ρυθμίσεις στο Vinum με τις αρχικές σας), η κατάσταση διορθώνεται
- αρκετά δύσκολα. Θα πρέπει να μετακινήσετε ολόκληρη την κατάτμηση
- του Vinum τουλάχιστον κατά 4 KB ώστε να μην υπάρχει σύγκρουση
- μεταξύ της επικεφαλίδας του Vinum και του κώδικα εκκίνησης.</para>
- </sect3>
- </sect2>
- </sect1>
-</chapter>