diff options
Diffstat (limited to 'el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml')
-rw-r--r-- | el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml | 1353 |
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; 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; 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 Mbit/s - οι οποίες ξεπερνάνε κατά πολύ τις δυνατότητες μεταφοράς δεδομένων των - περισσότερων σκληρών δίσκων.</para> - - <para>Τα τρέχοντα μοντέλα σκληρών δίσκων μπορούν να μεταφέρουν δεδομένα - σειριακά με ταχύτητα μέχρι και 70 MB/s, αλλά η τιμή αυτή έχει μικρή - σημασία σε ένα περιβάλλον όπου πολλές ανεξάρτητες διεργασίες χρειάζονται - πρόσβαση στον ίδιο δίσκο. Σε τέτοιες περιπτώσεις, κάθε διεργασία μπορεί - να επιτύχει μόνο ένα μικρό ποσοστό της μέγιστης αυτής απόδοσης. Είναι - πιο ενδιαφέρον να δούμε το πρόβλημα από την πλευρά του υποσυστήματος - δίσκων: ο σημαντικός παράγοντας είναι ο φόρτος στον οποίο υποβάλλεται - το υποσύστημα κατά τη διάρκεια μιας μεταφοράς. Με άλλα λόγια, ο χρόνος - που παραμένουν απασχολημένοι οι δίσκοι εξαιτίας της μεταφοράς.</para> - - <para>Σε κάθε μεταφορά δεδομένων, ο δίσκος θα πρέπει πρώτα να τοποθετήσει - τις κεφαλές στο σωστό σημείο, να περιμένει να περάσει ο πρώτος τομέας - κάτω από την κεφαλή ανάγνωσης, και έπειτα να εκτελέσει τη μεταφορά. - Οι ενέργειες αυτές μπορούν να θεωρηθούν ατομικές: δεν έχει νόημα να - προσπαθήσουμε να τις διακόψουμε.</para> - - <para><anchor id="vinum-latency"/> Ας θεωρήσουμε μια τυπική μεταφορά - περίπου 10 kB. Η τρέχουσα γενιά δίσκων υψηλής απόδοσης μπορεί να - τοποθετήσει τις κεφαλές στη σωστή θέση σε περίπου 3.5 ms. Οι πιο - γρήγοροι δίσκοι έχουν ταχύτητα περιστροφής 15.000 στροφές το λεπτό, - έτσι ο μέσος χρόνος καθυστέρησης περιστροφής (μισή περιστροφή) είναι - 2 ms. Με 70 MB/s, η μεταφορά αυτή καθ' αυτή θα χρειαστεί - περίπου 150 μs, σχεδόν τίποτα σε σχέση με το χρόνο που - χρειάζεται για την τοποθέτηση της κεφαλής στο σωστό σημείο. - Στην περίπτωση αυτή, ο πραγματικός ρυθμός μεταφοράς πέφτει σε λίγο - περισσότερο από ένα 1 ΜΒ/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; &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 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 -> <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 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> |