From 10a6098336f1f43d14f000cc306288e569fb2cf4 Mon Sep 17 00:00:00 2001 From: Manolis Kiagias Date: Sat, 18 Jul 2009 10:51:02 +0000 Subject: [PATCH] Complete the Greek translation of Handbook's 'vinum' chapter Obtained from: FreeBSD Greek Documentation Project --- .../books/handbook/vinum/chapter.sgml | 1821 +++++++++-------- 1 file changed, 911 insertions(+), 910 deletions(-) diff --git a/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml b/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml index 030afb4a1c..e36015eace 100644 --- a/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml @@ -12,7 +12,7 @@ $FreeBSD$ %SOURCE% en_US.ISO8859-1/books/handbook/vinum/chapter.sgml - %SRCID% 1.1 + %SRCID% 1.47 --> @@ -22,7 +22,7 @@ Greg Lehey - Γράφτηκε αρχικά από τον + Αρχική συνεισφορά του @@ -31,126 +31,132 @@ Σύνοψη - + Οτιδήποτε δίσκους και αν έχετε, πάντα υπάρχουν πιθανά προβλήματα: - Μπορεί να είναι πολύ μικροί. + Μπορεί να είναι πολύ μικροί. - Μπορεί να είναι πολύ αργοί. + Μπορεί να είναι πολύ αργοί. - Μπορεί να μην είναι αρκετά αξιόπιστοι. + Μπορεί να μην είναι αρκετά αξιόπιστοι. - Για τα προβλήματα αυτά έχουν προταθεί και υλοποιηθεί διάφορες - λύσεις. Ένας συχνά χρησιμοποιούμενος τρόπος προστασίας, είναι με την - χρήση πολλαπλών και ορισμένες φορές περιττών (redundant) δίσκων. Εκτός + Για τα προβλήματα αυτά, έχουν προταθεί και υλοποιηθεί διάφορες + λύσεις. Ένας συχνά χρησιμοποιούμενος τρόπος προστασίας, είναι με την + χρήση πολλαπλών και ορισμένες φορές περιττών (redundant) δίσκων. Εκτός από την υποστήριξη που παρέχεται για συσκευές (κάρτες και ελεγκτές) - hardware RAID, το βασικό &os; σύστημα περιλαμβάνει το διαχειριστή τόμων - (volume manager) Vinum, ένα πρόγραμμα οδήγησης τύπου - μπλοκ το οποίο υλοποιεί εικονικούς δίσκους. To Vinum - αποκαλείται και Διαχειριστής Τόμων, - και είναι ένας οδηγός εικονικών δίσκων που αντιμετωπίζει τα παραπάνω - τρία προβλήματα. Το Vinum παρέχει καλύτερη ευελιξία, απόδοση και - αξιοπιστία σε σχέση με τα παραδοσιακά συστήματα αποθήκευσης, και - υλοποιεί τα μοντέλα RAID-0, RAID-1 και RAID-5 τόσο μεμονωμένα όσο και - σε συνδυασμό μεταξύ τους. + hardware RAID, το βασικό σύστημα του &os; περιλαμβάνει το διαχειριστή + τόμων (volume manager) Vinum, ένα πρόγραμμα οδήγησης τύπου + μπλοκ το οποίο υλοποιεί εικονικούς δίσκους. + Το Vinum αποκαλείται και + Διαχειριστής Τόμων, και είναι ένας οδηγός + εικονικών δίσκων που αντιμετωπίζει τα παραπάνω τρία προβλήματα. + Το Vinum παρέχει καλύτερη ευελιξία, απόδοση και αξιοπιστία σε σχέση με + τα παραδοσιακά συστήματα αποθήκευσης, και υλοποιεί τα μοντέλα RAID-0, + RAID-1 και RAID-5, τόσο μεμονωμένα, όσο και σε συνδυασμό μεταξύ + τους. Το κεφάλαιο αυτό παρέχει μια επισκόπηση των πιθανών προβλημάτων των παραδοσιακών συστημάτων αποθήκευσης, και μια εισαγωγή στο Διαχειριστή Τόμων Vinum. - Ξεκινώντας από το &os; 5 και μετά, το Vinum ξαναγράφτηκε ώστε να - ενσωματωθεί στην αρχιτεκτονική GEOM (), - διατηρώντας ωστόσο τις αρχικές ιδέες, ορολογία, και τη μορφή των - μετα-δεδομένων (metadata) που αποθηκεύονται στον δίσκο. + Ξεκινώντας από το &os; 5 και μετά, το Vinum ξαναγράφτηκε + ώστε να ενσωματωθεί στην αρχιτεκτονική GEOM (), + διατηρώντας ωστόσο τις αρχικές ιδέες, ορολογία, και τη μορφή των + μετα-δεδομένων (metadata) που αποθηκεύονται στον δίσκο. Η νέα αυτή εκδοχή ονομάζεται gvinum (από το - GEOM vinum). Το ακόλουθο κείμενο αναφέρεται - συνήθως στο Vinum ως αφηρημένη έννοια, άσχετα με - τις λεπτομέρειες της υλοποίησης. Όλες οι εντολές θα πρέπει τώρα να - καλούνται με τη χρήση της gvinum, το όνομα του - αρθρώματος πυρήνα (kernel module) έχει αλλαχθεί από - vinum.ko σε geom_vinum.ko, και όλα - τα αρχεία συσκευών βρίσκονται κάτω από το όνομα - /dev/gvinum αντί για /dev/vinum. - Από το &os; 6 και μετά, η παλιά υλοποίηση του Vinum δεν - περιλαμβάνεται πλέον στο βασικό σύστημα. + GEOM vinum). Το ακόλουθο κείμενο αναφέρεται + συνήθως στο Vinum ως αφηρημένη έννοια, άσχετα με + τις λεπτομέρειες της υλοποίησης. Όλες οι εντολές θα πρέπει τώρα να + καλούνται με τη χρήση της gvinum, + το άρθρωμα πυρήνα (kernel module) έχει μετονομαστεί σε + geom_vinum.ko από vinum.ko, + και όλα τα αρχεία συσκευών βρίσκονται στον κατάλογο + /dev/gvinum αντί για + /dev/vinum. Από το + &os; 6 και μετά, η παλιά υλοποίηση του Vinum δεν περιλαμβάνεται + πλέον στο βασικό σύστημα. - - Disks Are Too Small + Οι Δίσκοι Είναι Πολύ Μικροί Vinum RAID software - Disks are getting bigger, but so are data storage - requirements. Often you will find you want a file system that - is bigger than the disks you have available. Admittedly, this - problem is not as acute as it was ten years ago, but it still - exists. Some systems have solved this by creating an abstract - device which stores its data on a number of disks. + Οι δίσκοι γίνονται ολοένα και μεγαλύτεροι, αλλά με τον ίδιο ρυθμό + αυξάνονται επίσης και οι απαιτήσεις μας σε αποθηκευτικό χώρο. Πολλές + φορές θα βρεθείτε σε θέση να χρειάζεστε ένα σύστημα αρχείων μεγαλύτερο + από τους δίσκους που έχετε διαθέσιμους. Σίγουρα το πρόβλημα αυτό δεν + είναι τόσο έντονο όσο πριν δέκα χρόνια, αλλά εξακολουθεί να υπάρχει. + Μερικά συστήματα επιλύουν αυτό το πρόβλημα, δημιουργώντας μια εικονική + συσκευή που αποθηκεύει τα δεδομένα σε ένα αριθμό διακριτών + δίσκων. - Access Bottlenecks + Καθυστερήσεις Πρόσβασης - Modern systems frequently need to access data in a highly - concurrent manner. For example, large FTP or HTTP servers can - maintain thousands of concurrent sessions and have multiple - 100 Mbit/s connections to the outside world, well beyond - the sustained transfer rate of most disks. + Στα μοντέρνα συστήματα, υπάρχει συχνά ανάγκη πρόσβασης δεδομένων + από πολλές διεργασίες ταυτόχρονα. Για παράδειγμα, μεγάλοι εξυπηρετητές + FTP ή HTTP μπορεί να έχουν ανά πάσα στιγμή χιλιάδες ταυτόχρονες + εξωτερικές συνδέσεις και να διαθέτουν πολλαπλές διεπαφές 100 Mbit/s + οι οποίες ξεπερνάνε κατά πολύ τις δυνατότητες μεταφοράς δεδομένων των + περισσότερων σκληρών δίσκων. - Current disk drives can transfer data sequentially at up to - 70 MB/s, but this value is of little importance in an - environment where many independent processes access a drive, - where they may achieve only a fraction of these values. In such - cases it is more interesting to view the problem from the - viewpoint of the disk subsystem: the important parameter is the - load that a transfer places on the subsystem, in other words the - time for which a transfer occupies the drives involved in the - transfer. + Τα τρέχοντα μοντέλα σκληρών δίσκων μπορούν να μεταφέρουν δεδομένα + σειριακά με ταχύτητα μέχρι και 70 MB/s, αλλά η τιμή αυτή έχει μικρή + σημασία σε ένα περιβάλλον όπου πολλές ανεξάρτητες διεργασίες χρειάζονται + πρόσβαση στον ίδιο δίσκο. Σε τέτοιες περιπτώσεις, κάθε διεργασία μπορεί + να επιτύχει μόνο ένα μικρό ποσοστό της μέγιστης αυτής απόδοσης. Είναι + πιο ενδιαφέρον να δούμε το πρόβλημα από την πλευρά του υποσυστήματος + δίσκων: ο σημαντικός παράγοντας είναι ο φόρτος στον οποίο υποβάλλεται + το υποσύστημα κατά τη διάρκεια μιας μεταφοράς. Με άλλα λόγια, ο χρόνος + που παραμένουν απασχολημένοι οι δίσκοι εξαιτίας της μεταφοράς. - In any disk transfer, the drive must first position the - heads, wait for the first sector to pass under the read head, - and then perform the transfer. These actions can be considered - to be atomic: it does not make any sense to interrupt - them. + Σε κάθε μεταφορά δεδομένων, ο δίσκος θα πρέπει πρώτα να τοποθετήσει + τις κεφαλές στο σωστό σημείο, να περιμένει να περάσει ο πρώτος τομέας + κάτω από την κεφαλή ανάγνωσης, και έπειτα να εκτελέσει τη μεταφορά. + Οι ενέργειες αυτές μπορούν να θεωρηθούν ατομικές: δεν έχει νόημα να + προσπαθήσουμε να τις διακόψουμε. - Consider a typical transfer of - about 10 kB: the current generation of high-performance - disks can position the heads in an average of 3.5 ms. The - fastest drives spin at 15,000 rpm, so the average - rotational latency (half a revolution) is 2 ms. At - 70 MB/s, the transfer itself takes about 150 μs, - almost nothing compared to the positioning time. In such a - case, the effective transfer rate drops to a little over - 1 MB/s and is clearly highly dependent on the transfer - size. + Ας θεωρήσουμε μια τυπική μεταφορά + περίπου 10 kB. Η τρέχουσα γενιά δίσκων υψηλής απόδοσης μπορεί να + τοποθετήσει τις κεφαλές στη σωστή θέση σε περίπου 3.5 ms. Οι πιο + γρήγοροι δίσκοι έχουν ταχύτητα περιστροφής 15.000 στροφές το λεπτό, + έτσι ο μέσος χρόνος καθυστέρησης περιστροφής (μισή περιστροφή) είναι + 2 ms. Με 70 MB/s, η μεταφορά αυτή καθ' αυτή θα χρειαστεί + περίπου 150 μs, σχεδόν τίποτα σε σχέση με το χρόνο που + χρειάζεται για την τοποθέτηση της κεφαλής στο σωστό σημείο. + Στην περίπτωση αυτή, ο πραγματικός ρυθμός μεταφοράς πέφτει σε λίγο + περισσότερο από ένα 1 ΜΒ/s και είναι εμφανές ότι εξαρτάται σε + μεγάλο βαθμό από το μέγεθος των δεδομένων που μεταφέρονται. - The traditional and obvious solution to this bottleneck is - more spindles: rather than using one large disk, - it uses several smaller disks with the same aggregate storage - space. Each disk is capable of positioning and transferring - independently, so the effective throughput increases by a factor - close to the number of disks used. - + Η παραδοσιακή και προφανής λύση σε αυτό το πρόβλημα, είναι να + προσθέσουμε περισσότερους δίσκους: αντί να + χρησιμοποιήσουμε ένα μεγάλο δίσκο, να βάλουμε πολλούς μικρότερους με + τον ίδιο τελικό αποθηκευτικό χώρο. Κάθε δίσκος έχει δυνατότητα να + μετακινεί τις κεφαλές και να μεταφέρει δεδομένα ανεξάρτητα από τους + άλλους, έτσι η πραγματική διαμεταγωγή αυξάνει αναλογικά με το πλήθος + των δίσκων που χρησιμοποιούνται. - The exact throughput improvement is, of course, smaller than - the number of disks involved: although each drive is capable of - transferring in parallel, there is no way to ensure that the - requests are evenly distributed across the drives. Inevitably - the load on one drive will be higher than on another. + Η πραγματική αύξηση της διαμεταγωγής είναι φυσικά μικρότερη από το + πλήθος των δίσκων που χρησιμοποιούνται: αν και κάθε δίσκος είναι ικανός + να μεταφέρει δεδομένα παράλληλα με τους άλλους, δεν υπάρχει τρόπος να + εξασφαλίσουμε ότι οι αιτήσεις μεταφοράς κατανέμονται ομοιόμορφα σε όλους + τους δίσκους. Είναι αναπόφευκτο ότι το φορτίο σε ένα δίσκο θα είναι + μεγαλύτερο από το φορτίο σε κάποιο άλλο. disk concatenation @@ -160,27 +166,28 @@ concatenation - The evenness of the load on the disks is strongly dependent - on the way the data is shared across the drives. In the - following discussion, it is convenient to think of the disk - storage as a large number of data sectors which are addressable - by number, rather like the pages in a book. The most obvious - method is to divide the virtual disk into groups of consecutive - sectors the size of the individual physical disks and store them - in this manner, rather like taking a large book and tearing it - into smaller sections. This method is called - concatenation and has the advantage that - the disks are not required to have any specific size - relationships. It works well when the access to the virtual - disk is spread evenly about its address space. When access is - concentrated on a smaller area, the improvement is less marked. - illustrates the sequence in which - storage units are allocated in a concatenated - organization. + Η ομοιομορφία κατανομής του φορτίου στους δίσκους, εξαρτάται σε + μεγάλο βαθμό από τον τρόπο που έχουν μοιραστεί τα δεδομένα σε αυτούς. + Στην παρακάτω συζήτηση, είναι βολικό να σκεφτόμαστε τον αποθηκευτικό + χώρο ενός δίσκου ως ένα μεγάλο αριθμό από τομείς στους οποίους έχουμε + πρόσβαση με βάση ένα αριθμό, ακριβώς όπως οι σελίδες σε ένα βιβλίο. + Η πιο προφανής μέθοδος είναι να χωρίσουμε τον εικονικό δίσκο σε ομάδες + από συνεχόμενους τομείς, όπου καθεμία έχει το μέγεθος του πραγματικού + ανεξάρτητου φυσικού δίσκου, και να τις αποθηκεύσουμε με αυτό τον τρόπο, + περίπου σαν να παίρναμε ένα μεγάλο βιβλίο και να το χωρίζαμε σε + μικρότερους τόμους. Η μέθοδος αυτή ονομάζεται + συνένωση (concatenation) και έχει το πλεονέκτημα + ότι δεν απαιτεί τα μεγέθη των δίσκων να έχουν κάποια σχέση μεταξύ τους. + Λειτουργεί πολύ καλά όταν η πρόσβαση στον εικονικό δίσκο είναι + ομοιόμορφα κατανεμημένη σε όλη την περιοχή διευθύνσεων του. Όταν η + πρόσβαση συγκεντρώνεται σε μια μικρότερη περιοχή, η βελτίωση είναι + μικρότερη. Το δείχνει την ακολουθία με + την οποία γίνεται η κατανομή των θέσεων αποθήκευσης όταν + χρησιμοποιείται η συνένωση.
- Concatenated Organization + Οργάνωση Συνένωσης
@@ -196,300 +203,318 @@ RAID - An alternative mapping is to divide the address space into - smaller, equal-sized components and store them sequentially on - different devices. For example, the first 256 sectors may be - stored on the first disk, the next 256 sectors on the next disk - and so on. After filling the last disk, the process repeats - until the disks are full. This mapping is called - striping or RAID-0 + Ένας εναλλακτικός τρόπος αποθήκευσης, είναι να χωριστεί η περιοχή + διευθύνσεων σε μικρότερα τμήματα ίσου μεγέθους τα οποία να αποθηκεύονται + σειριακά σε διαφορετικές συσκευές. Για παράδειγμα, οι πρώτοι 256 τομείς + μπορεί να είναι αποθηκευμένοι στον πρώτο δίσκο, οι επόμενοι 256 στον + επόμενο δίσκο, κ.ο.κ. Μετά την χρήση και του τελευταίου δίσκου, + η διαδικασία επαναλαμβάνεται μέχρι να γεμίσουν όλοι οι δίσκοι. Αυτή + η μέθοδος ονομάζεται striping ή + RAID-0. - - RAID stands for Redundant - Array of Inexpensive Disks and offers various forms - of fault tolerance, though the latter term is somewhat - misleading: it provides no redundancy. . + + Το RAID σημαίνει Redundant + Array of Inexpensive Disks και παρέχει διάφορες μορφές + ανοχής σε σφάλματα, αν και στην παραπάνω χρήση ο όρος είναι + κάπως παραπλανητικός: το RAID-0 δεν παρέχει καμιά + τέτοια προστασία δεδομένων. + - Striping requires somewhat more effort to locate the data, and it - can cause additional I/O load where a transfer is spread over - multiple disks, but it can also provide a more constant load - across the disks. illustrates the - sequence in which storage units are allocated in a striped - organization. + Το striping απαιτεί κάπως περισσότερη προσπάθεια για τον εντοπισμό των + δεδομένων και μπορεί να προκαλέσει μεγαλύτερο φορτίο I/O όταν μια + μεταφορά κατανέμεται σε πολλαπλούς δίσκους, αλλά από την άλλη + επιτυγχάνει μεγαλύτερο σταθερό φορτίο σε κάθε δίσκο. + Το δείχνει τη σειρά με την οποία + χρησιμοποιούνται οι μονάδες αποθήκευσης σε μια οργάνωση τύπου + stripe.
- Striped Organization + Striped Organization
- Data Integrity + Ακεραιότητα Δεδομένων - The final problem with current disks is that they are - unreliable. Although disk drive reliability has increased - tremendously over the last few years, they are still the most - likely core component of a server to fail. When they do, the - results can be catastrophic: replacing a failed disk drive and - restoring data to it can take days. + Το τελευταίο πρόβλημα με την τρέχουσα τεχνολογία δίσκων, είναι + η αναξιοπιστία τους. Αν και τα τελευταία χρόνια η αξιοπιστία των + δίσκων έχει αυξηθεί σημαντικά, εξακολουθούν να είναι το εξάρτημα με + το μεγαλύτερο ρυθμό αποτυχίας στους εξυπηρετητές. Όταν αποτύχει ένας + δίσκος, τα αποτελέσματα μπορεί να είναι καταστροφικά: η αντικατάσταση + ενός χαλασμένου δίσκου και η αντιγραφή των δεδομένων στο νέο μπορεί + να διαρκέσει μέρες. - - disk mirroring - - - Vinum - mirroring - - - RAID-1 - - - The traditional way to approach this problem has been - mirroring, keeping two copies of the data - on different physical hardware. Since the advent of the - RAID levels, this technique has also been - called RAID level 1 or - RAID-1. Any write to the volume writes to - both locations; a read can be satisfied from either, so if one - drive fails, the data is still available on the other - drive. - - Mirroring has two problems: - - - - The price. It requires twice as much disk storage as - a non-redundant solution. - + + disk mirroring + + + Vinum + mirroring + + + RAID-1 + - - The performance impact. Writes must be performed to - both drives, so they take up twice the bandwidth of a - non-mirrored volume. Reads do not suffer from a - performance penalty: it even looks as if they are - faster. - - + Ο παραδοσιακός τρόπος αντιμετώπισης αυτού του προβλήματος είναι το + mirroring (καθρεπτισμός), η διατήρηση δηλαδή δύο + αντιγράφων των δεδομένων σε διαφορετικούς δίσκους. Με την εφεύρεση των + διάφορων επιπέδων RAID, η τεχνική αυτή έγινε επίσης + γνωστή με την ονομασία RAID επιπέδου 1 ή απλώς + RAID-1. Κάθε εγγραφή στον τόμο γίνεται και στους + δύο δίσκους. Η ανάγνωση μπορεί να γίνει από οποιοδήποτε δίσκο, έτσι + αν ένας από τους δύο αποτύχει, τα δεδομένα εξακολουθούν να είναι + διαθέσιμα στον άλλο. - RAID-5An - alternative solution is parity, - implemented in the RAID levels 2, 3, 4 and - 5. Of these, RAID-5 is the most - interesting. As implemented in Vinum, it is a variant on a - striped organization which dedicates one block of each stripe - to parity of the other blocks. As implemented by Vinum, a - RAID-5 plex is similar to a striped plex, - except that it implements RAID-5 by - including a parity block in each stripe. As required by - RAID-5, the location of this parity block - changes from one stripe to the next. The numbers in the data - blocks indicate the relative block numbers. + Το mirroring έχει δύο προβλήματα: - -
- RAID-5 Organization - -
-
+ + + Το κόστος. Απαιτεί διπλάσιο κόστος από οποιαδήποτε λύση δεν + προσφέρει αυτή τη λειτουργία. + - Compared to mirroring, RAID-5 has the - advantage of requiring significantly less storage space. Read - access is similar to that of striped organizations, but write - access is significantly slower, approximately 25% of the read - performance. If one drive fails, the array can continue to - operate in degraded mode: a read from one of the remaining - accessible drives continues normally, but a read from the - failed drive is recalculated from the corresponding block from - all the remaining drives. - + + Τη μείωση της απόδοσης. Οι εγγραφές πρέπει να + γίνονται και στους δύο δίσκους, καταναλώνοντας έτσι το διπλάσιο + εύρος ζώνης σε σχέση με ένα τόμο που δεν χρησιμοποιεί mirror. + Η ανάγνωση δεν υποφέρει από το ίδιο πρόβλημα. Μάλιστα φαίνεται + να είναι και γρηγορότερη. + + + + RAID-5Μια εναλλακτική + λύση είναι το parity (ισοτιμία), το οποίο + υλοποιείται στα επίπεδα 2, 3, 4 και 5 του RAID. + Από τα επίπεδα αυτά, το RAID-5 είναι το πιο + ενδιαφέρον. Ο τρόπος που υλοποιείται στο Vinum, είναι μια παραλλαγή + της οργάνωσης δεδομένων που χρησιμοποιείται στο stripe, με τη διαφορά + ότι ένα μπλοκ από κάθε stripe χρησιμοποιείται για να αποθηκεύει την + ισοτιμία ενός άλλου μπλοκ. Στο Vinum, μια συστοιχία + RAID-5, είναι παρόμοια με μια συστοιχία stripe, + εκτός από το γεγονός ότι υλοποιεί RAID-5 καθώς κάθε + stripe περιέχει και μπλοκ ισοτιμίας. Η τοποθεσία του μπλοκ ισοτιμίας, + αλλάζει από το ένα stripe στο επόμενο, κάτι που απαιτείται από το + RAID-5. Οι αριθμοί στα μπλοκ δεδομένων αναφέρονται + στη σχετική αρίθμηση τους. + + +
+ RAID-5 Organization + +
+
+ + Σε σύγκριση με το mirror, το RAID-5 έχει το + πλεονέκτημα να απαιτεί σημαντικά λιγότερο χώρο αποθήκευσης. Η ταχύτητα + ανάγνωσης είναι ίδια με το stripe, αλλά η εγγραφή είναι σημαντικά πιο + αργή, περίπου το 25% της απόδοσης κατά την ανάγνωση. Αν ένας δίσκος + χαλάσει, η συστοιχία εξακολουθεί να λειτουργεί σε ελαττωμένη (degraded) + κατάσταση: η ανάγνωση από τους δίσκους που λειτουργούν κανονικά + συνεχίζεται απροβλημάτιστα, αλλά η ανάγνωση δεδομένων που βρίσκονταν + στον προβληματικό δίσκο πρέπει να επαναϋπολογιστεί με βάση τα + αντίστοιχα μπλοκ ισοτιμίας που βρίσκονται σε όλους τους άλλους + δίσκους.
- Vinum Objects - In order to address these problems, Vinum implements a four-level - hierarchy of objects: + Αντικείμενα του Vinum + + Για την αντιμετώπιση των παραπάνω προβλημάτων, το Vinum υλοποιεί μια + ιεραρχία αντικειμένων τεσσάρων επιπέδων: + + + + Το πλέον ορατό αντικείμενο είναι ο εικονικός δίσκος, ο οποίος + καλείται και τόμος (volume). Οι τόμοι έχουν + ουσιαστικά τις ίδιες ιδιότητες με ένα δίσκο του &unix;, αν και + υπάρχουν κάποιες μικρές διαφορές. Δεν υπάρχουν περιορισμοί όσο + αφορά το μέγεθος τους. + + + + Οι τόμοι αποτελούνται από plex, και κάθε + ένα από αυτά αντιπροσωπεύει το συνολικό χώρο διευθύνσεων ενός + τόμου. Αυτό το επίπεδο στην ιεραρχία παρέχει τη δυνατότητα + redundancy. Μπορείτε να σκεφτείτε τα plex ως μεμονωμένους δίσκους + σε μια συστοιχία mirror, όπου κάθε ένα περιέχει τα ίδια + δεδομένα. + + + + Καθώς το Vinum υπάρχει μέσα στο πλαίσιο λειτουργιών του &unix; + που χρησιμοποιείται για την αποθήκευση σε δίσκους, θα μπορούσε + να χρησιμοποιήσει τις κατατμήσεις του &unix; ως το δομικό στοιχείο + για τη δημιουργία των plex. Στην πραγματικότητα, η λογική αυτή + αποδεικνύεται ιδιαίτερα περιοριστική: οι δίσκοι στο &unix; μπορούν + να έχουν περιορισμένο αριθμό κατατμήσεων. Αντίθετα, το Vinum + υποδιαιρεί μια μόνο κατάτμηση του &unix; + (τον οδηγό) σε συνεχόμενες περιοχές που + καλούνται υποδίσκοι (subdisks). Οι υποδίσκοι + χρησιμοποιούνται ως τα δομικά στοιχεία για τα plex. + + + + Οι υποδίσκοι βρίσκονται σε οδηγούς Vinum, + που τη δεδομένη στιγμή είναι κατατμήσεις του &unix;. Οι οδηγοί του + Vinum μπορούν να περιέχουν οποιοδήποτε αριθμό από υποδίσκους. Με + εξαίρεση μια μικρή περιοχή στην αρχή του δίσκου (η οποία + χρησιμοποιείται για την αποθήκευση δεδομένων ρύθμισης και + κατάστασης) όλος ο υπόλοιπος οδηγός είναι διαθέσιμος για αποθήκευση + δεδομένων. + + + + Οι παρακάτω ενότητες περιγράφουν τον τρόπο με τον οποίο αυτά τα + αντικείμενα παρέχουν την λειτουργικότητα που απαιτείται από το + Vinum. + + + Μέγεθος Τόμου + + Τα plex μπορούν να περιλαμβάνουν πολλαπλούς υποδίσκους, που + κατανέμονται σε όλους τους οδηγούς του Vinum. Σαν αποτέλεσμα, το + μέγεθος ενός συγκεκριμένου δίσκου δεν περιορίζει το μέγεθος ούτε του + plex, ούτε του τόμου. + + + + Πλεονάζουσα (Redundant) Αποθήκευση Δεδομένων + + Το Vinum υλοποιεί το mirroring προσαρτώντας πολλαπλά plex σε + ένα τόμο. Κάθε plex είναι μια αναπαράσταση των δεδομένων ενός τόμου. + Ένας τόμος μπορεί να περιέχει μεταξύ ενός και οκτώ plex. + + Αν και ένα plex αντιπροσωπεύει τα πλήρη δεδομένα ενός τόμου, + είναι πιθανόν κάποια μέρη της αναπαράστασης να λείπουν από το φυσικό + μέσο, είτε επειδή έχει σχεδιαστεί με αυτό το τρόπο (αν δεν έχει + οριστεί υποδίσκος για κάποια τμήματα του plex) ή από πρόβλημα (ως + αποτέλεσμα της αποτυχίας κάποιου δίσκου). Όσο υπάρχει τουλάχιστον + ένα plex που μπορεί να παρέχει τα δεδομένα για την πλήρη περιοχή + διευθύνσεων του τόμου, ο τόμος είναι πλήρως λειτουργικός. + + + + Θέματα Απόδοσης + + Το Vinum υλοποιεί τόσο συνένωση όσο και striping σε επίπεδο + plex: - The most visible object is the virtual disk, called a - volume. Volumes have essentially the same - properties as a &unix; disk drive, though there are some minor - differences. They have no size limitations. + Ένα plex συνένωσης (concatenated) + χρησιμοποιεί την περιοχή διευθύνσεων κάθε υποδίσκου με τη + σειρά. - Volumes are composed of plexes, - each of which represent the total address space of a - volume. This level in the hierarchy thus provides - redundancy. Think of plexes as individual disks in a - mirrored array, each containing the same data. - - - - Since Vinum exists within the &unix; disk storage - framework, it would be possible to use &unix; - partitions as the building block for multi-disk plexes, - but in fact this turns out to be too inflexible: - &unix; disks can have only a limited number of - partitions. Instead, Vinum subdivides a single - &unix; partition (the drive) - into contiguous areas called - subdisks, which it uses as building - blocks for plexes. - - - - Subdisks reside on Vinum drives, - currently &unix; partitions. Vinum drives can - contain any number of subdisks. With the exception of a - small area at the beginning of the drive, which is used - for storing configuration and state information, the - entire drive is available for data storage. - - - - The following sections describe the way these objects provide the - functionality required of Vinum. - - - Volume Size Considerations - - Plexes can include multiple subdisks spread over all - drives in the Vinum configuration. As a result, the size of - an individual drive does not limit the size of a plex, and - thus of a volume. - - - - Redundant Data Storage - Vinum implements mirroring by attaching multiple plexes to - a volume. Each plex is a representation of the data in a - volume. A volume may contain between one and eight - plexes. - - Although a plex represents the complete data of a volume, - it is possible for parts of the representation to be - physically missing, either by design (by not defining a - subdisk for parts of the plex) or by accident (as a result of - the failure of a drive). As long as at least one plex can - provide the data for the complete address range of the volume, - the volume is fully functional. - - - - Performance Issues - - Vinum implements both concatenation and striping at the - plex level: - - - - A concatenated plex uses the - address space of each subdisk in turn. - - - - A striped plex stripes the data - across each subdisk. The subdisks must all have the same - size, and there must be at least two subdisks in order to - distinguish it from a concatenated plex. + Ένα striped plex γράφει τα δεδομένα + σε λωρίδες (stripes) που κατανέμονται σε κάθε υποδίσκο. Όλοι οι + υποδίσκοι πρέπει να έχουν το ίδιο μέγεθος και πρέπει να υπάρχουν + τουλάχιστον δύο υποδίσκοι, για να ξεχωρίζουν σε σχέση με το plex + συνένωσης. - Which Plex Organization? - The version of Vinum supplied with FreeBSD &rel.current; implements - two kinds of plex: - + Είδη Οργάνωσης Plex + + Η έκδοση του Vinum που παρέχεται με το &os; &rel.current; + υλοποιεί δύο είδη plex: + - Concatenated plexes are the most flexible: they can - contain any number of subdisks, and the subdisks may be of - different length. The plex may be extended by adding - additional subdisks. They require less - CPU time than striped plexes, though - the difference in CPU overhead is not - measurable. On the other hand, they are most susceptible - to hot spots, where one disk is very active and others are - idle. - + Τα plex συνένωσης προσφέρουν τη μεγαλύτερη ευελιξία: μπορούν + να περιέχουν οποιοδήποτε αριθμό υποδίσκων, και οι υποδίσκοι αυτοί + μπορεί να είναι διαφορετικού μεγέθους. Το plex μπορεί να + επεκταθεί προσθέτοντας περισσότερους υποδίσκους. Χρειάζονται + λιγότερο χρόνο CPU σε σχέση με τα stripes, αν + και η διαφορά στη χρήση της CPU δεν είναι + μετρήσιμη. Από την άλλη μεριά, είναι πιο επιρρεπή σε + μη-ισορροπημένη λειτουργία, όπου ένας δίσκος είναι πολύ ενεργός + και οι υπόλοιποι αδρανούν. + - The greatest advantage of striped - (RAID-0) plexes is that they reduce hot - spots: by choosing an optimum sized stripe (about - 256 kB), you can even out the load on the component - drives. The disadvantages of this approach are - (fractionally) more complex code and restrictions on - subdisks: they must be all the same size, and extending a - plex by adding new subdisks is so complicated that Vinum - currently does not implement it. Vinum imposes an - additional, trivial restriction: a striped plex must have - at least two subdisks, since otherwise it is - indistinguishable from a concatenated plex. + Το μεγαλύτερο πλεονέκτημα των stripes + (RAID-0), είναι ότι έχουν πιο ισορροπημένη + λειτουργία: επιλέγοντας το σωστό μέγεθος λωρίδας (περίπου + 256 kB), μπορείτε να εξισορροπήσετε το φορτίο σε κάθε δίσκο + του plex. Τα μειονεκτήματα αυτής της μεθόδου είναι (ελαφρά) πιο + πολύπλοκος κώδικας και περιορισμοί στους υποδίσκους: πρέπει όλοι + να είναι το ίδιο μέγεθος και η επέκταση ενός plex με προσθήκη + περισσότερων δίσκων είναι τόσο πολύπλοκη που τη δεδομένη στιγμή + το Vinum δεν την υλοποιεί. Το Vinum επίσης επιβάλλει ένα ακόμα + απλοϊκό περιορισμό: ένα plex τύπου stripe πρέπει να διαθέτει + υποχρεωτικά δύο τουλάχιστον υποδίσκους, διαφορετικά είναι + αδύνατο να το ξεχωρίσουμε από ένα plex συνένωσης. - - summarizes the advantages - and disadvantages of each plex organization. - + + Ο δείχνει περιληπτικά τα + πλεονεκτήματα και μειονεκτήματα κάθε είδους οργάνωσης plex. + - Vinum Plex Organizations + Είδη Οργάνωσης Vinum Plex - Plex type - Minimum subdisks - Can add subdisks - Must be equal size - Application + Τύπος plex + Ελάχιστο πλήθος υποδίσκων + Δυνατότητα προσθήκης υποδίσκων + Οι υποδίσκοι πρέπει να είναι ίδιου μεγέθους + Εφαρμογή - concatenated + συνένωσης (concatenated) 1 - yes - no - Large data storage with maximum placement flexibility - and moderate performance + ναι + όχι + Αποθήκευση μεγάλου όγκου δεδομένων με μέγιστη ευελιξία + στον τρόπο κατανομής και μέτρια απόδοση. - + striped 2 - no - yes - High performance in combination with highly concurrent - access + όχι + ναι + Υψηλή απόδοση σε συνδυασμό με πολύ καλές ταχύτητες σε + καταστάσεις πολλαπλής πρόσβασης.
- - - Some Examples - Vinum maintains a configuration - database which describes the objects known to an - individual system. Initially, the user creates the - configuration database from one or more configuration files with - the aid of the &man.gvinum.8; utility program. Vinum stores a - copy of its configuration database on each disk slice (which - Vinum calls a device) under its control. - This database is updated on each state change, so that a restart - accurately restores the state of each Vinum object. - + + Μερικά Παραδείγματα + + Το Vinum διατηρεί μια + βάση δεδομένων με τις ρυθμίσεις του η οποία + περιγράφει τα αντικείμενα τα οποία γνωρίζει ένα συγκεκριμένο σύστημα. + Αρχικά, ο χρήστης δημιουργεί αυτή τη βάση δεδομένων από ένα ή + περισσότερα αρχεία ρυθμίσεων, με την βοήθεια του προγράμματος + &man.gvinum.8;. Το vinum αποθηκεύει ένα αντίγραφο της βάσης + δεδομένων σε κάθε slice του δίσκου (που το Vinum αποκαλεί + συσκευή) που βρίσκεται υπό τον έλεγχο του. + Η βάση δεδομένων ανανεώνεται σε κάθε αλλαγή κατάστασης, ώστε + όλα τα αντικείμενα του Vinum να επανέρχονται στη σωστή κατάσταση μετά + από μια επανεκκίνηση. + - The Configuration File - The configuration file describes individual Vinum objects. The - definition of a simple volume might be: + Το Αρχείο Ρυθμίσεων + + Το αρχείο ρυθμίσεων περιγράφει τα μεμονωμένα αντικείμενα του + Vinum. Ο ορισμός για ένα απλό τόμο μπορεί να μοιάζει με τον + παρακάτω: drive a device /dev/da3h @@ -497,52 +522,52 @@ plex org concat sd length 512m drive a - This file describes four Vinum objects: + Αυτό το αρχείο περιγράφει τέσσερα αντικείμενα του Vinum: - The drive line describes a disk - partition (drive) and its location - relative to the underlying hardware. It is given the - symbolic name a. This separation of - the symbolic names from the device names allows disks to - be moved from one location to another without - confusion. + Η γραμμή drive περιγράφει μια κατάτμηση + δίσκου (οδηγού) και τη θέση της σε σχέση με + το φυσικό δίσκο. Δίνεται σε αυτή το συμβολικό όνομα + a. Αυτός ο διαχωρισμός των συμβολικών από + τα πραγματικά ονόματα συσκευών, μας επιτρέπει να μεταφέρουμε + δίσκους από μια θέση σε μια άλλη χωρίς να προκληθεί + σύγχυση. - The volume line describes a volume. - The only required attribute is the name, in this case - myvol. + Η γραμμή volume περιγράφει ένα τόμο. + Το μόνο απαιτούμενο χαρακτηριστικό εδώ είναι το όνομα, στην + περίπτωση μας myvol. - The plex line defines a plex. - The only required parameter is the organization, in this - case concat. No name is necessary: - the system automatically generates a name from the volume - name by adding the suffix - .px, where - x is the number of the plex in the - volume. Thus this plex will be called - myvol.p0. + Η γραμμή plex ορίζει ένα plex. + Η μόνη απαραίτητη παράμετρος είναι το είδος της οργάνωσης, στη + συγκεκριμένη περίπτωση το concat. Δεν + είναι απαραίτητο να δοθεί όνομα: το σύστημα παράγει αυτόματα + ένα όνομα χρησιμοποιώντας το όνομα του τόμου και την κατάληξη + .px, όπου το + x είναι ο αριθμός του plex στον τόμο. Έτσι, + αυτό το plex θα καλείται myvol.p0. - The sd line describes a subdisk. - The minimum specifications are the name of a drive on - which to store it, and the length of the subdisk. As with - plexes, no name is necessary: the system automatically - assigns names derived from the plex name by adding the - suffix .sx, - where x is the number of the subdisk - in the plex. Thus Vinum gives this subdisk the name + Η γραμμή sd περιγράφει ένα υποδίσκο. + Οι ελάχιστες απαιτούμενες προδιαγραφές είναι το όνομα ενός + δίσκου στον οποίο θα αποθηκευτεί, και το μήκος του υποδίσκου. + Όπως συμβαίνει και με τα plex, δεν απαιτείται όνομα: + το σύστημα αποδίδει ονόματα αυτόματα, χρησιμοποιώντας ως σημείο + εκκίνησης το όνομα του plex και προσθέτοντας την κατάληξη + .sx, όπου το + x είναι ο αριθμός του υποδίσκου στο plex. + Έτσι, το Vinum δίνει σε αυτόν τον υποδίσκο το όνομα myvol.p0.s0. - After processing this file, &man.gvinum.8; produces the following - output: + Μετά την επεξεργασία αυτού του αρχείου, το &man.gvinum.8; παράγει + την ακόλουθη έξοδο: &prompt.root; gvinum -> create config1 @@ -551,47 +576,50 @@ 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 - This output shows the brief listing format of &man.gvinum.8;. It - is represented graphically in . + Η παραπάνω έξοδος χρησιμοποιεί τη μορφή συντομευμένης λίστας του + &man.gvinum.8;. Η γραφική απεικόνιση φαίνεται στο .
- A Simple Vinum Volume + Ένας Απλός Τόμος Vinum
- This figure, and the ones which follow, represent a - volume, which contains the plexes, which in turn contain the - subdisks. In this trivial example, the volume contains one - plex, and the plex contains one subdisk. + Στο σχήμα αυτό (καθώς και σε αυτά που ακολουθούν) υπάρχει η + αναπαράσταση ενός τόμου που περιέχει τα plex, τα οποία με τη + σειρά τους περιέχουν τους υποδίσκους. Σε αυτό το απλουστευμένο + παράδειγμα, ο τόμος περιέχει ένα plex και το plex περιέχει ένα + υποδίσκο. - This particular volume has no specific advantage over a - conventional disk partition. It contains a single plex, so it - is not redundant. The plex contains a single subdisk, so - there is no difference in storage allocation from a - conventional disk partition. The following sections - illustrate various more interesting configuration - methods. + Ο τόμος αυτός δεν έχει κάποιο συγκεκριμένο + πλεονέκτημα σε σχέση με μια συμβατική κατάτμηση δίσκου. Περιέχει + ένα μόνο plex, άρα δεν έχει κάποια ικανότητα ανοχής σφαλμάτων. + Το plex περιέχει επίσης ένα υποδίσκο, και έτσι δεν υπάρχει διαφορά + στην κατανομή χώρου σε σχέση με μια συμβατική κατάτμηση. Στις + επόμενες ενότητες θα δείξουμε διαφορετικές και πιο ενδιαφέρουσες + μεθόδους ρύθμισης.
- Increased Resilience: Mirroring + Αυξημένη Αξιοπιστία: Mirroring - The resilience of a volume can be increased by mirroring. - When laying out a mirrored volume, it is important to ensure - that the subdisks of each plex are on different drives, so - that a drive failure will not take down both plexes. The - following configuration mirrors a volume: + Η αξιοπιστία ενός τόμου μπορεί να αυξηθεί μέσω του mirroring + (καθρεπτισμού). Όταν σχεδιάζετε ένα τόμο στον οποίο θα γίνει + mirroring, είναι σημαντικό να εξασφαλίσετε ότι οι υποδίσκοι σε κάθε + plex είναι σε διαφορετικούς οδηγούς, ώστε η αποτυχία ενός δίσκου να + μην προκαλέσει παύση λειτουργίας και στα δύο plex. Το παρακάτω + παράδειγμα δείχνει πως μπορεί να γίνει mirroring ενός τόμου: drive b device /dev/da4h @@ -601,62 +629,62 @@ plex org concat sd length 512m drive b - In this example, it was not necessary to specify a - definition of drive a again, since Vinum - keeps track of all objects in its configuration database. - After processing this definition, the configuration looks - like: - + Στο παράδειγμα αυτό, δεν ήταν απαραίτητο να καθοριστεί ξανά ο + οδηγός a, καθώς το Vinum διαθέτει ήδη τις + αντίστοιχες καταχωρίσεις στη βάση δεδομένων με τις ρυθμίσεις του. + Μετά την επεξεργασία των παραπάνω ορισμών, η ρύθμιση μοιάζει με + την παρακάτω: 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 - - shows the structure - graphically. + + Το αναπαριστά αυτή τη δομή + γραφικά.
- A Mirrored Vinum Volume + Ένας Mirrored Τόμος Vinum
- In this example, each plex contains the full 512 MB - of address space. As in the previous example, each plex - contains only a single subdisk. + Στο παράδειγμα αυτό, κάθε plex περιέχει την πλήρη περιοχή + διευθύνσεων, μεγέθους 512 MB. Όπως και στο προηγούμενο + παράδειγμα, κάθε plex περιέχει ένα μοναδικό υποδίσκο.
- Optimizing Performance + Βελτιστοποιώντας την Απόδοση - The mirrored volume in the previous example is more - resistant to failure than an unmirrored volume, but its - performance is less: each write to the volume requires a write - to both drives, using up a greater proportion of the total - disk bandwidth. Performance considerations demand a different - approach: instead of mirroring, the data is striped across as - many disk drives as possible. The following configuration - shows a volume with a plex striped across four disk - drives: + Ο mirrored τόμος του προηγούμενου παραδείγματος παρουσιάζει + μεγαλύτερη ανοχή σφαλμάτων σε σχέση με ένα τόμο που δεν χρησιμοποιεί + mirror, αλλά η απόδοση του είναι μικρότερη: κάθε εγγραφή στον + τόμο πρέπει να γίνεται και στους δύο δίσκους, χρησιμοποιώντας έτσι + μεγαλύτερο ποσοστό του διαθέσιμου εύρους ζώνης. Οι απαιτήσεις που + ενδεχομένως έχουμε για απόδοση, απαιτούν διαφορετική προσέγγιση: + αντί να χρησιμοποιήσουμε mirror, μπορούμε να δημιουργήσουμε λωρίδες + αποθήκευσης (stripes) σε όσο το δυνατόν περισσότερους δίσκους. + Η παρακάτω ρύθμιση δείχνει ένα τόμο στον οποίο το plex έχει γίνει + stripe σε τέσσερις δίσκους: - + drive c device /dev/da5h drive d device /dev/da6h volume stripe @@ -666,30 +694,30 @@ sd length 128m drive c sd length 128m drive d - As before, it is not necessary to define the drives which are - already known to Vinum. After processing this definition, the - configuration looks like: + Όπως και προηγουμένως, δεν χρειάζεται να ορίσουμε ξανά τους + δίσκους που είναι ήδη γνωστοί στο Vinum. Μετά την επεξεργασία του + παραπάνω ορισμού, η ρύθμιση θα μοιάζει με την παρακάτω: 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 @@ -700,25 +728,26 @@
- A Striped Vinum Volume + Ένας Striped Τόμος Vinum
- This volume is represented in - . The darkness of the stripes - indicates the position within the plex address space: the lightest stripes - come first, the darkest last. + Αυτός ο τόμος αναπαρίσταται γραφικά στο + . Η απόχρωση της λωρίδας + αντιπροσωπεύει τη θέση της μέσα στην περιοχή διευθύνσεων του plex: + οι ανοιχτόχρωμες λωρίδες είναι οι πρώτες, οι σκουρόχρωμες είναι οι + τελευταίες.
- Resilience and Performance + Αξιοπιστία και Απόδοση - With sufficient hardware, it - is possible to build volumes which show both increased - resilience and increased performance compared to standard - &unix; partitions. A typical configuration file might - be: + Με το κατάλληλο υλικό, είναι δυνατόν + να δημιουργηθούν τόμοι οι οποίοι να παρουσιάζουν τόσο μεγάλη ανοχή + σε σφάλματα, όσο και αυξημένη απόδοση σε σχέση με τις τυποποιημένες + κατατμήσεις του &unix;. Ένα τυπικό αρχείο ρυθμίσεων θα μοιάζει με το + παρακάτω: volume raid10 @@ -735,89 +764,100 @@ sd length 102480k drive a sd length 102480k drive b - The subdisks of the second plex are offset by two drives from those - of the first plex: this helps ensure that writes do not go to the same - subdisks even if a transfer goes over two drives. + Οι υποδίσκοι του δεύτερου plex έχουν μετατεθεί κατά δύο οδηγούς + σε σχέση με αυτούς του πρώτου plex: αυτό εξασφαλίζει ότι οι εγγραφές + δεν γίνονται στους ίδιους υποδίσκους, ακόμα και αν μια μεταφορά + χρησιμοποιεί και τους δύο δίσκους. - represents the structure - of this volume. + Το αναπαριστά γραφικά τη δομή + αυτού του τόμου.
- A Mirrored, Striped Vinum Volume + Ένας Mirrored και Striped Τόμος του Vinum -
+
- + - Object Naming + Ονομασία Αντικειμένων - As described above, Vinum assigns default names to plexes - and subdisks, although they may be overridden. Overriding the - default names is not recommended: experience with the VERITAS - volume manager, which allows arbitrary naming of objects, has - shown that this flexibility does not bring a significant - advantage, and it can cause confusion. + Όπως περιγράψαμε παραπάνω, το Vinum αποδίδει προεπιλεγμένα ονόματα + σε plex και υποδίσκους, αν και υπάρχει η δυνατότητα να τα + παρακάμψετε. Αυτό ωστόσο δεν συνίσταται: η εμπειρία που έχουμε από + το διαχειριστή τόμων VERITAS (ο οποίος επιτρέπει ελεύθερη απόδοση + ονομάτων στα αντικείμενα) έχει δείξει ότι αυτού του είδους η ευελιξία + δεν προσφέρει σημαντικά πλεονεκτήματα, και μπορεί να προκαλέσει + σύγχυση. - Names may contain any non-blank character, but it is - recommended to restrict them to letters, digits and the - underscore characters. The names of volumes, plexes and - subdisks may be up to 64 characters long, and the names of - drives may be up to 32 characters long. + Τα ονόματα μπορεί να περιέχουν οποιοδήποτε μη-κενό χαρακτήρα, αλλά + συνίσταται να περιοριστείτε στη χρήση γραμμάτων, αριθμών και της κάτω + παύλας. Τα ονόματα των τόμων, των plex και των υποδίσκων μπορεί να + είναι μέχρι 64 χαρακτήρες, ενώ τα ονόματα των δίσκων μπορεί να είναι + μέχρι 32 χαρακτήρες. - Vinum objects are assigned device nodes in the hierarchy - /dev/gvinum. The configuration shown above - would cause Vinum to create the following device nodes: + Τα αρχεία συσκευών του Vinum δημιουργούνται στον κατάλογο + /dev/gvinum. Με τις ρυθμίσεις + που φαίνονται παραπάνω, το Vinum θα δημιουργήσει τα παρακάτω αρχεία + συσκευών: - This only applies to the historic Vinum - implemenation. + + Το παρακάτω ισχύει μόνο στην παλιά υλοποίηση του + Vinum. + - The control devices - /dev/vinum/control and - /dev/vinum/controld, which are used - by &man.gvinum.8; and the Vinum daemon respectively. + Οι συσκευές ελέγχου + /dev/vinum/control και + /dev/vinum/controld, που + χρησιμοποιούνται από το &man.gvinum.8; και το δαίμονα του Vinum + αντίστοιχα. - Device entries for each volume. - These are the main devices used by Vinum. Thus the configuration - above would include the devices - /dev/gvinum/myvol, - /dev/gvinum/mirror, - /dev/gvinum/striped, - /dev/gvinum/raid5 and - /dev/gvinum/raid10. + Καταχωρίσεις συσκευών για κάθε τόμο. Αυτές είναι και οι κύριες + συσκευές που χρησιμοποιεί το Vinum. Με τις ρυθμίσεις που δείξαμε + παραπάνω, θα έχουμε τις συσκευές: + /dev/gvinum/myvol, + /dev/gvinum/mirror, + /dev/gvinum/striped, + /dev/gvinum/raid5 και + /dev/gvinum/raid10. - This only applies to the historic Vinum - implemenation. + + Το παρακάτω ισχύει μόνο για την παλιά υλοποίηση του + Vinum. + - A directory /dev/vinum/drive - with entries for each drive. These entries are in fact - symbolic links to the corresponding disk nodes. + Ένας κατάλογος /dev/vinum/drive + με καταχωρίσεις για τον κάθε δίσκο. Στην πραγματικότητα, αυτές + οι καταχωρίσεις είναι συμβολικοί δεσμοί προς τα πραγματικά αρχεία + συσκευών των δίσκων. - All volumes get direct entries under - /dev/gvinum/. + Όλοι οι τόμοι διαθέτουν απευθείας καταχωρίσεις στον κατάλογο + /dev/gvinum/. - The directories - /dev/gvinum/plex, and - /dev/gvinum/sd, which contain - device nodes for each plex and for each subdisk, - respectively. + Οι κατάλογοι + /dev/gvinum/plex και + /dev/gvinum/sd, που + περιέχουν τα αρχεία συσκευών για κάθε plex και υποδίσκο + αντίστοιχα. - For example, consider the following configuration file: - + Για παράδειγμα, θεωρήστε το παρακάτω αρχείο ρυθμίσεων: + + drive drive1 device /dev/sd1h drive drive2 device /dev/sd2h drive drive3 device /dev/sd3h @@ -829,8 +869,9 @@ sd length 100m drive drive3 sd length 100m drive drive4 - After processing this file, &man.gvinum.8; creates the following - structure in /dev/gvinum: + Μετά την επεξεργασία αυτού του αρχείου, το &man.gvinum.8; θα + δημιουργήσει την ακόλουθη δομή στον κατάλογο + /dev/gvinum: drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex @@ -840,7 +881,7 @@ /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 @@ -848,75 +889,80 @@ 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 - Although it is recommended that plexes and subdisks should - not be allocated specific names, Vinum drives must be named. - This makes it possible to move a drive to a different location - and still recognize it automatically. Drive names may be up to - 32 characters long. + Αν και συνίσταται να μην δίνονται συγκεκριμένα ονόματα στα plex + και τους υποδίσκους, θα πρέπει να δοθούν ονόματα στους δίσκους του + Vinum. Με τον τρόπο αυτό, ο δίσκος αναγνωρίζεται αυτόματα ακόμα και + αν αλλάξει θέση. Τα ονόματα των δίσκων μπορεί να έχουν μέγεθος μέχρι + 32 χαρακτήρες. - Creating File Systems + Δημιουργία Συστημάτων Αρχείων - Volumes appear to the system to be identical to disks, - with one exception. Unlike &unix; drives, Vinum does - not partition volumes, which thus do not contain a partition - table. This has required modification to some disk - utilities, notably &man.newfs.8;, which previously tried to - interpret the last letter of a Vinum volume name as a - partition identifier. For example, a disk drive may have a - name like /dev/ad0a or - /dev/da2h. These names represent - the first partition (a) on the - first (0) IDE disk (ad) and the - eighth partition (h) on the third - (2) SCSI disk (da) respectively. - By contrast, a Vinum volume might be called - /dev/gvinum/concat, a name which has - no relationship with a partition name. + Οι τόμοι δείχνουν όμοιοι με τους δίσκους όσο αφορά το σύστημα, + με μια εξαίρεση. Αντίθετα με τους δίσκους του &unix;, το Vinum δεν + δημιουργεί κατατμήσεις στους τόμους, και έτσι απουσιάζει από αυτούς + ο αντίστοιχος πίνακας κατατμήσεων. Αυτό απαιτεί την τροποποίηση + κάποιων βοηθητικών προγραμμάτων και ειδικότερα του &man.newfs.8;, το + οποίο στις προηγούμενες υλοποιήσεις του προσπαθούσε να ερμηνεύσει + το τελευταίο γράμμα ενός τόμου Vinum ως αναγνωριστικό της κατάτμησης. + Για παράδειγμα, ένας κανονικός δίσκος μπορεί να έχει το όνομα + /dev/ad0a ή + /dev/da2h. + Τα ονόματα αυτά αντιπροσωπεύουν την πρώτη κατάτμηση + (a) στον πρώτο δίσκο IDE + (ad) και την όγδοη κατάτμηση + (h) στον τρίτο (2) SCSI δίσκο + (da) αντίστοιχα. Σε αντίθεση, ένας τόμος + του Vinum μπορεί να ονομάζεται /dev/gvinum/concat, το οποίο δεν + έχει καμιά σχέση με όνομα κατάτμησης. - Normally, &man.newfs.8; interprets the name of the disk and - complains if it cannot understand it. For example: + Φυσιολογικά, το &man.newfs.8; ερμηνεύει το όνομα του δίσκου και + θα παραπονεθεί αν δεν μπορεί να το κατανοήσει. + Για παράδειγμα: - &prompt.root; newfs /dev/gvinum/concat + &prompt.root; newfs /dev/gvinum/concat newfs: /dev/gvinum/concat: can't figure out file system partition - In order to create a file system on this volume, use - &man.newfs.8;: + Για να δημιουργήσετε ένα σύστημα αρχείων σε αυτό τον τόμο, + χρησιμοποιήστε την &man.newfs.8;: - &prompt.root; newfs /dev/gvinum/concat + &prompt.root; newfs /dev/gvinum/concat - On &os; versions prior to 5.0 &man.newfs.8; requires - an additional -v flag and the old device naming - scheme: + + Σε εκδόσεις του &os; πριν από την 5.0, η &man.newfs.8; απαιτεί + την πρόσθετη επιλογή και τον παλιό τρόπο + ονομασίας των συσκευών: &prompt.root; newfs -v /dev/vinum/concat - + - + - Configuring Vinum - - The GENERIC kernel does not contain - Vinum. It is possible to build a special kernel which includes - Vinum, but this is not recommended. The standard way to start - Vinum is as a kernel module (kld). You do - not even need to use &man.kldload.8; for Vinum: when you start - &man.gvinum.8;, it checks whether the module has been loaded, and - if it is not, it loads it automatically. + Ρύθμιση του Vinum + Το Vinum δεν υπάρχει στον πυρήνα GENERIC. + Είναι δυνατόν να δημιουργήσετε προσαρμοσμένο πυρήνα που να το περιέχει, + αλλά δεν συνίσταται. Ο συνηθισμένος τρόπος να ξεκινήσετε το Vinum, + είναι να το φορτώσετε ως άρθρωμα στον πυρήνα (kld). + Δεν χρειάζεται καν να χρησιμοποιήσετε την &man.kldload.8; για το + Vinum: όταν ξεκινήσετε το &man.gvinum.8;, θα γίνει έλεγχος για να + διαπιστωθεί αν το άρθρωμα είναι φορτωμένο, και αν δεν είναι θα + φορτωθεί αυτόματα. - Startup + Εκκίνηση - Vinum stores configuration information on the disk slices - in essentially the same form as in the configuration files. - When reading from the configuration database, Vinum recognizes - a number of keywords which are not allowed in the - configuration files. For example, a disk configuration might - contain the following text: + Το Vinum αποθηκεύει τις πληροφορίες για τις ρυθμίσεις του στα + slices των δίσκων, ουσιαστικά με τον ίδιο τρόπο που τις αποθηκεύει + και στα αρχεία ρυθμίσεων. Όταν το Vinum διαβάζει τη βάση δεδομένων + των ρυθμίσεων, μπορεί να αναγνωρίσει ένα αριθμό λέξεων που δεν + επιτρέπεται να εμφανιστούν στα αρχεία ρυθμίσεων. Για παράδειγμα, οι + ρυθμίσεις για κάποιο δίσκο μπορεί να περιέχουν το παρακάτω + κείμενο: - volume myvol state up + 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 @@ -935,296 +981,310 @@ sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b dr 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 - - The obvious differences here are the presence of - explicit location information and naming (both of which are - also allowed, but discouraged, for use by the user) and the - information on the states (which are not available to the - user). Vinum does not store information about drives in the - configuration information: it finds the drives by scanning - the configured disk drives for partitions with a Vinum - label. This enables Vinum to identify drives correctly even - if they have been assigned different &unix; drive - IDs. - + + Οι προφανείς διαφορές εδώ, είναι η παρουσία συγκεκριμένων + θέσεων και ονομάτων (και τα δύο είναι επιτρεπτά, αλλά γενικά δεν + συνίσταται η χρήση τους) και οι πληροφορίες κατάστασης (που + δεν είναι διαθέσιμες στο χρήστη). Το Vinum δεν αποθηκεύει + πληροφορίες σχετικές με τους δίσκους στις ρυθμίσεις του: απλώς + ανιχνεύει όλους τους δίσκους για κατατμήσεις που περιέχουν + ετικέτα Vinum. Αυτό επιτρέπει στο Vinum να αναγνωρίσει τους δίσκους + σωστά, ακόμα και αν τους έχει δοθεί διαφορετικό &unix; + αναγνωριστικό (ID). + - Automatic Startup + Αυτόματη Εκκίνηση - This information only relates to the historic - Vinum implementation. Gvinum always - features an automatic startup once the kernel module is - loaded. + + Οι παρακάτω πληροφορίες αναφέρονται στην παλιά υλοποίηση του + Vinum. Το Gvinum ξεκινάει πάντοτε αυτόματα + μετά την φόρτωση του αρθρώματος μέσω του &man.loader.conf.5;. + Για να φορτώσετε το άρθρωμα του Gvinum κατά + την εκκίνηση, προσθέστε τη γραμμή + geom_vinum_load="YES" στο αρχείο + /boot/loader.conf. + - In order to start Vinum automatically when you boot the - system, ensure that you have the following line in your + Για να ξεκινάει το Vinum αυτόματα κατά την εκκίνηση του + συστήματος, βεβαιωθείτε ότι υπάρχει η παρακάτω γραμμή στο αρχείο /etc/rc.conf: start_vinum="YES" # set to YES to start vinum - If you do not have a file - /etc/rc.conf, create one with this - content. This will cause the system to load the Vinum - kld at startup, and to start any objects - mentioned in the configuration. This is done before - mounting file systems, so it is possible to automatically - &man.fsck.8; and mount file systems on Vinum volumes. - - When you start Vinum with the vinum - start command, Vinum reads the configuration - database from one of the Vinum drives. Under normal - circumstances, each drive contains an identical copy of the - configuration database, so it does not matter which drive is - read. After a crash, however, Vinum must determine which - drive was updated most recently and read the configuration - from this drive. It then updates the configuration if - necessary from progressively older drives. + Αν δεν υπάρχει το αρχείο /etc/rc.conf, + δημιουργήστε ένα με το παραπάνω περιεχόμενο. Με αυτό τον τρόπο, + το σύστημα θα φορτώσει το Vinum kld κατά την + εκκίνηση, και θα ξεκινήσει επίσης τα αντικείμενα που αναφέρονται + στις ρυθμίσεις του. Η διαδικασία αυτή γίνεται πριν την προσάρτηση + των συστημάτων αρχείων, έτσι είναι δυνατόν να γίνει αυτόματος + έλεγχος (μέσω της &man.fsck.8;) και προσάρτηση των συστημάτων + αρχείων που βρίσκονται σε τόμους Vinum. + Όταν ξεκινάτε το Vinum με την εντολή + vinum start, το Vinum διαβάζει τη βάση + δεδομένων ρυθμίσεων από έναν δίσκο που βρίσκεται υπό τον έλεγχο + του. Κάτω από φυσιολογικές συνθήκες, κάθε δίσκος περιέχει ένα + όμοιο αντίγραφο της βάσης, έτσι δεν έχει σημασία από ποιο δίσκο θα + γίνει η ανάγνωση. Ωστόσο, μετά από κάποιο απότομο τερματισμό + λειτουργίας, το Vinum θα πρέπει να καθορίσει ποιος δίσκος έχει το + πιο πρόσφατο αντίγραφο και να διαβάσει από εκεί τις ρυθμίσεις. + Μετά θα διορθώσει (αν χρειάζεται) τις ρυθμίσεις και στους + υπόλοιπους δίσκους. - Using Vinum for the Root Filesystem + Χρήση του Vinum στο Ριζικό Σύστημα Αρχείων - For a machine that has fully-mirrored filesystems using - Vinum, it is desirable to also mirror the root filesystem. - Setting up such a configuration is less trivial than mirroring - an arbitrary filesystem because: + Σε ένα μηχάνημα στο οποίο έχει γίνει πλήρες mirror στα συστήματα + αρχείων με τη χρήση του Vinum, είναι συνήθως επιθυμητό να γίνει mirror + και στο ριζικό (root) σύστημα αρχείων. Η ρύθμιση αυτή δεν είναι + τόσο απλή όσο σε ένα οποιοδήποτε σύστημα αρχείων, επειδή: - The root filesystem must be available very early during - the boot process, so the Vinum infrastructure must already be - available at this time. + Το ριζικό σύστημα αρχείων πρέπει να είναι διαθέσιμο από πολύ + νωρίς κατά τη διαδικασία εκκίνησης, έτσι είναι απαραίτητο οι + υποδομές του Vinum να είναι επίσης διαθέσιμες την ίδια + στιγμή. + - The volume containing the root filesystem also contains - the system bootstrap and the kernel, which must be read - using the host system's native utilities (e. g. the BIOS on - PC-class machines) which often cannot be taught about the - details of Vinum. + Ο τόμος που περιέχει το ριζικό σύστημα αρχείων περιέχει επίσης + και τον κώδικα εκκίνησης (bootstrap) και τον πυρήνα, ο οποίος + θα πρέπει να είναι προσβάσιμος από βασικά προγράμματα + του συστήματος (π.χ. το BIOS σε μηχανήματα τύπου PC), τα οποία δεν + γνωρίζουν και δεν μπορούν να μάθουν τις λεπτομέρειες υλοποίησης του + Vinum. - In the following sections, the term root - volume is generally used to describe the Vinum volume - that contains the root filesystem. It is probably a good idea - to use the name "root" for this volume, but - this is not technically required in any way. All command - examples in the following sections assume this name though. + Στις επόμενες ενότητες, ο όρος ριζικός τόμος + χρησιμοποιείται γενικά για να περιγράψει τον τόμο του Vinum που + περιέχει το ριζικό σύστημα αρχείων. Είναι γενικά καλή ιδέα να + χρησιμοποιείται το όνομα "root" για αυτό τον τόμο, + αλλά αυτό δεν αποτελεί τεχνική απαίτηση. Όλα τα παραδείγματα εντολών + στις παρακάτω ενότητες χρησιμοποιούν την παραπάνω παραδοχή. - Starting up Vinum Early Enough for the Root - Filesystem + Εκκίνηση του Vinum Αρκετά Νωρίς για το Ριζικό Σύστημα + Αρχείων - There are several measures to take for this to - happen: + Αυτό μπορεί να επιτευχθεί με διάφορους τρόπους: - Vinum must be available in the kernel at boot-time. - Thus, the method to start Vinum automatically described in - is not applicable to - accomplish this task, and the - start_vinum parameter must actually - not be set when the following setup - is being arranged. The first option would be to compile - Vinum statically into the kernel, so it is available all - the time, but this is usually not desirable. There is - another option as well, to have + Το Vinum πρέπει να είναι διαθέσιμο στο πυρήνα κατά την + εκκίνηση. Για το λόγο αυτό, η μέθοδος αυτόματης εκκίνησης που + περιγράψαμε στο δεν μπορεί να + χρησιμοποιηθεί σε αυτή την περίπτωση και η παράμετρος + start_vinum δεν θα πρέπει + να τεθεί όταν χρησιμοποιείται η παρακάτω διάταξη. Μια πιθανή + επιλογή είναι να μεταγλωττίσετε στατικά το Vinum στον πυρήνα + ώστε να είναι διαθέσιμο πάντα, αλλά αυτό συνήθως δεν είναι + επιθυμητό. Υπάρχει μια ακόμα διαθέσιμη επιλογή, να ορίσετε να + φορτώνεται το άρθρωμα του πυρήνα μέσω του /boot/loader () load the vinum kernel module - early, before starting the kernel. This can be - accomplished by putting the line: + linkend="boot-loader">) πριν την εκκίνηση του ίδιου του + πυρήνα. Αυτό μπορεί να επιτευχθεί με τη γραμμή: geom_vinum_load="YES" - into the file - /boot/loader.conf. + στο αρχείο /boot/loader.conf. - For Gvinum, all startup - is done automatically once the kernel module has been - loaded, so the procedure described above is all that is - needed. The following text documents the behaviour of - the historic Vinum system, for the sake of older - setups. + + Στο Gvinum, όλη η διαδικασία εκκίνησης + γίνεται αυτόματα μετά την φόρτωση του αρθρώματος πυρήνα, έτσι + η διαδικασία που περιγράψαμε παραπάνω είναι και η μόνη που + απαιτείται. Το παρακάτω κείμενο περιγράφει τη συμπεριφορά τη + παλιάς έκδοσης του Vinum, για την περίπτωση που το + χρησιμοποιείτε σε κάποιο παλιό σύστημα. + - Vinum must be initialized early since it needs to - supply the volume for the root filesystem. By default, - the Vinum kernel part is not looking for drives that might - contain Vinum volume information until the administrator - (or one of the startup scripts) issues a vinum - start command. + Το Vinum θα πρέπει να αρχικοποιηθεί νωρίς, καθώς θα πρέπει + να παρέχει τον τόμο του ριζικού συστήματος αρχείων. Από + προεπιλογή, το τμήμα του Vinum που εκτελείται στον πυρήνα, + δεν ανιχνεύει δίσκους που περιέχουν πληροφορίες Vinum μέχρι είτε + ο διαχειριστής, είτε κάποιο από τα script εκκίνησης να εκτελέσουν + την εντολή vinum start. - The following paragraphs are outlining the steps - needed for FreeBSD 5.X and above. The setup required for - FreeBSD 4.X differs, and is described below in . + + Οι ακόλουθες παράγραφοι, παραθέτουν τα βήματα που + απαιτούνται από το &os;. + - By placing the line: + Τοποθετώντας τη γραμμή: vinum.autostart="YES" - into /boot/loader.conf, Vinum is - instructed to automatically scan all drives for Vinum - information as part of the kernel startup. + στο /boot/loader.conf, δίνεται η οδηγία + στο Vinum να εκτελέσει ανίχνευση όλων των δίσκων για πληροφορίες + Vinum, ως τμήμα της διαδικασίας εκκίνησης του πυρήνα. - Note that it is not necessary to instruct the kernel - where to look for the root filesystem. - /boot/loader looks up the name of the - root device in /etc/fstab, and passes - this information on to the kernel. When it comes to mount - the root filesystem, the kernel figures out from the - device name provided which driver to ask to translate this - into the internal device ID (major/minor number). + Σημειώστε ότι δεν είναι απαραίτητο να ενημερώσετε τον + πυρήνα για την τοποθεσία του ριζικού συστήματος αρχείων. + Το /boot/loader ανιχνεύει το όνομα της + ριζικής συσκευής στο /etc/fstab και μεταφέρει + αυτή την πληροφορία στον πυρήνα. Όταν έρθει η ώρα να γίνει + προσάρτηση του ριζικού συστήματος αρχείων, ο πυρήνας αναγνωρίζει + από το όνομα της συσκευής ποιο πρόγραμμα οδήγησης θα πρέπει + να ρωτήσει για να εκτελέσει τη μετάφραση στο εσωτερικό + αναγνωριστικό (ID) της συσκευής (αριθμοί major/minor). - Making a Vinum-based Root Volume Accessible to the - Bootstrap + Δημιουργία Ριζικού Τόμου Vinum με Δυνατότητα Πρόσβασης από τον + Κώδικα Εκκίνησης (Bootstrap). - Since the current FreeBSD bootstrap is only 7.5 KB of - code, and already has the burden of reading files (like - /boot/loader) from the UFS filesystem, it - is sheer impossible to also teach it about internal Vinum - structures so it could parse the Vinum configuration data, and - figure out about the elements of a boot volume itself. Thus, - some tricks are necessary to provide the bootstrap code with - the illusion of a standard "a" partition - that contains the root filesystem. + Καθώς ο τρέχοντας κώδικας εκκίνησης του &os; έχει μέγεθος μόνο + 7.5 KB, και είναι ήδη επιφορτισμένος με την ανάγνωση αρχείων (όπως το + /boot/loader) από το σύστημα αρχείων UFS, είναι + πρακτικά αδύνατο να γνωρίζει και τις απαιτούμενες εσωτερικές δομές + του Vinum ώστε να μπορεί να ερμηνεύσει τις αντίστοιχες πληροφορίες + ρύθμισης και να μάθει τις λεπτομέρειες του τόμου εκκίνησης. Για το + λόγο αυτό, χρειάζεται να χρησιμοποιήσουμε κάποια τεχνάσματα ώστε να + δώσουμε στον κώδικα εκκίνησης την ψευδαίσθηση ύπαρξης μιας κανονικής + κατάτμησης "a" που να περιέχει το ριζικό σύστημα + αρχείων. - For this to be possible at all, the following requirements - must be met for the root volume: + Για να καταστεί αυτό δυνατό, θα πρέπει να πληρούνται ταυτόχρονα + όλες οι παρακάτω προϋποθέσεις όσο αφορά τον τόμο εκκίνησης: - The root volume must not be striped or RAID-5. + Ο τόμος εκκίνησης δεν θα πρέπει να είναι stripe ή + RAID-5. - The root volume must not contain more than one - concatenated subdisk per plex. + Ο τόμος εκκίνησης δεν θα πρέπει να περιέχει περισσότερους + από ένα συνενωμένους υποδίσκους ανά plex. - Note that it is desirable and possible that there are - multiple plexes, each containing one replica of the root - filesystem. The bootstrap process will, however, only use one - of these replica for finding the bootstrap and all the files, - until the kernel will eventually mount the root filesystem - itself. Each single subdisk within these plexes will then - need its own "a" partition illusion, for - the respective device to become bootable. It is not strictly - needed that each of these faked "a" - partitions is located at the same offset within its device, - compared with other devices containing plexes of the root - volume. However, it is probably a good idea to create the - Vinum volumes that way so the resulting mirrored devices are - symmetric, to avoid confusion. + Σημειώστε ότι είναι συνήθως επιθυμητό και δυνατό να υπάρχουν + πολλαπλά plex, καθένα από τα οποία να είναι αντίγραφο του ριζικού + συστήματος αρχείων. Η διαδικασία εκκίνησης θα χρησιμοποιήσει ωστόσο + μόνο ένα από αυτά τα αντίγραφα για να βρει τον κώδικα εκκίνησης και + όλα τα αρχεία, μέχρι να γίνει τελικά η προσάρτηση του ριζικού + συστήματος αρχείων από τον ίδιο τον πυρήνα. Κάθε μοναδικός υποδίσκος + μέσα σε αυτά τα plex, θα χρειαστεί να διαθέτει τη δική του + ψευτο-κατάτμηση "a" ώστε η συσκευή να είναι + εκκινήσιμη. Δεν είναι απαραίτητο κάθε μια από αυτές τις + ψευτο-κατατμήσεις να βρίσκεται στην ίδια θέση μέσα στην συσκευή, + σε σχέση με άλλες συσκευές που περιέχουν plex με ριζικό σύστημα + αρχείων. Είναι όμως γενικά καλή ιδέα να δημιουργήσετε τους τόμους + του Vinum με τέτοιο τρόπο, ώστε οι συσκευές mirror που προκύπτουν να + είναι συμμετρικές για να αποφύγετε τη σύγχυση. - In order to set up these "a" partitions, - for each device containing part of the root volume, the - following needs to be done: + Για να δημιουργηθούν αυτές οι τύπου "a" + κατατμήσεις για κάθε συσκευή που θα περιέχει τμήματα του ριζικού + τόμου, θα πρέπει να γίνουν τα ακόλουθα: - The location (offset from the beginning of the device) - and size of this device's subdisk that is part of the root - volume need to be examined, using the command: + Θα πρέπει να εξετάσετε τη θέση (την απόσταση από την αρχή της + συσκευής) και το μέγεθος της συσκευής υποδίσκου η οποία θα είναι + μέρος του ριζικού τόμου, χρησιμοποιώντας την εντολή: &prompt.root; gvinum l -rv root - Note that Vinum offsets and sizes are measured in - bytes. They must be divided by 512 in order to obtain the - block numbers that are to be used in the - bsdlabel command. + Σημειώστε ότι στο Vinum οι θέσεις και τα μεγέθη μετρούνται + σε bytes. Θα πρέπει να διαιρέσετε αυτούς τους αριθμούς με το 512 + για να βρείτε τους αριθμούς μπλοκ που θα χρησιμοποιήσετε στην + εντολή bsdlabel. - Run the command: + Εκτελέστε την εντολή: &prompt.root; bsdlabel -e devname - for each device that participates in the root volume. - devname must be either the name - of the disk (like da0) for disks - without a slice (aka. fdisk) table, or the name of the - slice (like ad0s1). + για κάθε συσκευή που συμμετέχει στο ριζικό τόμο. + Το devname θα πρέπει να είναι είτε το + όνομα του δίσκου (για παράδειγμα da0) + για δίσκους χωρίς slices (χωρίς δηλ. κατατμήσεις fdisk), ή το + όνομα του slice (για παράδειγμα, + ad0s1). - If there is already an "a" - partition on the device (presumably, containing a - pre-Vinum root filesystem), it should be renamed to - something else, so it remains accessible (just in case), - but will no longer be used by default to bootstrap the - system. Note that active partitions (like a root - filesystem currently mounted) cannot be renamed, so this - must be executed either when being booted from a - Fixit medium, or in a two-step process, - where (in a mirrored situation) the disk that has not been - currently booted is being manipulated first. + Αν υπάρχει ήδη μια κατάτμηση "a" στη + συσκευή (που πιθανώς περιέχει το ριζικό σύστημα αρχείων που ήταν + σε χρήση πριν χρησιμοποιηθεί το Vinum), θα πρέπει να μετονομαστεί + σε κάτι άλλο ώστε να εξακολουθεί να είναι προσβάσιμο + (σε περίπτωση ανάγκης), αλλά δεν θα χρησιμοποιείται πλέον από + προεπιλογή για την εκκίνηση του συστήματος. Σημειώστε ότι οι + ενεργές κατατμήσεις (όπως για παράδειγμα ένα ριζικό σύστημα + αρχείων το οποίο είναι ήδη προσαρτημένο) δεν μπορούν να + μετονομαστούν. Θα πρέπει να εκτελέσετε την εντολή + χρησιμοποιώντας την επιλογή Fixit του CD + εγκατάστασης, ή να ακολουθήσετε μια διαδικασία δύο βημάτων + (σε περίπτωση που έχετε mirror) ξεκινώντας από τον ένα δίσκο και + μετονομάζοντας τον άλλο. - Then, the offset of the Vinum partition on this - device (if any) must be added to the offset of the - respective root volume subdisk on this device. The - resulting value will become the - "offset" value for the new - "a" partition. The - "size" value for this partition can be - taken verbatim from the calculation above. The - "fstype" should be - 4.2BSD. The + Έπειτα θα πρέπει να προσθέσετε την απόσταση (offset, αν + υπάρχει) της κατάτμησης Vinum αυτής της συσκευής, με την απόσταση + του υποδίσκου του αντίστοιχου ριζικού τόμου της συσκευής. Η τιμή + που θα προκύψει θα είναι η απόσταση ("offset") + για τη νέα κατάτμηση "a". Μπορείτε να πάρετε + αυτούσια την τιμή "size" για αυτή την κατάτμηση + από τον υπολογισμό που κάνατε παραπάνω. Το + "fstype" θα πρέπει να είναι + 4.2BSD. Οι τιμές των "fsize", "bsize", - and "cpg" values should best be chosen - to match the actual filesystem, though they are fairly - unimportant within this context. + και "cpg" θα πρέπει να επιλεχθούν με τέτοιο + τρόπο ώστε να ταιριάζουν με το πραγματικό σύστημα αρχείων, αν και + δεν έχουν σημασία στη συγκεκριμένη περίπτωση. - That way, a new "a" partition will - be established that overlaps the Vinum partition on this - device. Note that the bsdlabel will - only allow for this overlap if the Vinum partition has - properly been marked using the "vinum" - fstype. + Με αυτό τον τρόπο, θα δημιουργηθεί μια νέα κατάτμηση + "a" η οποία επικαλύπτει την κατάτμηση του + Vinum σε αυτή τη συσκευή. Σημειώστε ότι η εντολή + bsdlabel θα επιτρέψει αυτή την επικάλυψη μόνο + αν η κατάτμηση του Vinum έχει επισημανθεί κατάλληλα με fstype + "vinum". - That's all! A faked "a" partition - does exist now on each device that has one replica of the - root volume. It is highly recommendable to verify the - result again, using a command like: + Αυτό είναι όλο! Υπάρχει πλέον μια ψευτο-κατάτμηση + "a" σε κάθε συσκευή η οποία έχει αντίγραφο του + ριζικού τόμου. Συνίσταται να επαληθεύσετε ξανά το αποτέλεσμα, + χρησιμοποιώντας μια εντολή όπως την παρακάτω: &prompt.root; fsck -n /dev/devnamea - It should be remembered that all files containing control - information must be relative to the root filesystem in the - Vinum volume which, when setting up a new Vinum root volume, - might not match the root filesystem that is currently active. - So in particular, the files /etc/fstab - and /boot/loader.conf need to be taken - care of. + Θα πρέπει να θυμάστε ότι οι θέσεις των αρχείων που περιέχουν + πληροφορίες ελέγχου πρέπει να είναι σχετικές ως προς το ριζικό + σύστημα αρχείων που βρίσκεται στο τόμο του Vinum, και ο οποίος + (κατά την δημιουργία καινούριου ριζικού τόμου Vinum) μπορεί να μην + ταιριάζει με το ριζικό σύστημα αρχείων που είναι ενεργό τη δεδομένη + στιγμή. Θα πρέπει ιδιαίτερα να φροντίσετε τα αρχεία + /etc/fstab και + /boot/loader.conf. - At next reboot, the bootstrap should figure out the - appropriate control information from the new Vinum-based root - filesystem, and act accordingly. At the end of the kernel - initialization process, after all devices have been announced, - the prominent notice that shows the success of this setup is a - message like: + Στην επόμενη επανεκκίνηση, ο κώδικας εκκίνησης θα πρέπει να + εντοπίσει τις κατάλληλες πληροφορίες ελέγχου από το νέο (Vinum) + ριζικό σύστημα αρχείων και να δράσει κατάλληλα. Στο τέλος της + διαδικασίας αρχικοποίησης του πυρήνα, και μετά την αναγγελία όλων + των συσκευών, το μήνυμα το οποίο δείχνει την επιτυχή λειτουργία + του εγχειρήματος μοιάζει με το παρακάτω: Mounting root from ufs:/dev/gvinum/root - Example of a Vinum-based Root Setup + Παράδειγμα Ρύθμισης Ριζικού Τόμου με Vinum - After the Vinum root volume has been set up, the output of - gvinum l -rv root could look like: + Μετά την ρύθμιση του ριζικού τόμου με το Vinum, η έξοδος της + εντολής gvinum l -rv root θα μοιάζει με την + παρακάτω: - + ... Subdisk root.p0.s0: Size: 125829120 bytes (120 MB) @@ -1237,216 +1297,157 @@ Subdisk root.p1.s0: State: up Plex root.p1 at offset 0 (0 B) Drive disk1 (/dev/da1h) at offset 135680 (132 kB) - + - The values to note are 135680 for the - offset (relative to partition - /dev/da0h). This translates to 265 - 512-byte disk blocks in bsdlabel's terms. - Likewise, the size of this root volume is 245760 512-byte - blocks. /dev/da1h, containing the - second replica of this root volume, has a symmetric - setup. + Οι τιμές που θα πρέπει να σημειώσετε είναι το + 135680 για την απόσταση (offset σε σχέση με την + κατάτμηση /dev/da0h). Αυτό + μεταφράζεται σε 265 block των 512 byte για την εντολή + bsdlabel. Παρόμοια, το μέγεθος του ριζικού τόμου + είναι 245760 μπλοκ των 512 byte. Το /dev/da1h, το οποίο περιέχει το + δεύτερο αντίγραφο του ριζικού τόμου, έχει συμμετρική ρύθμιση. - The bsdlabel for these devices might look like: + Το bsdlabel για αυτές τις συσκευές θα μοιάζει με το + παρακάτω: - + ... 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*) - + h: 71771672 16 vinum # (Cyl. 0*- 4467*) - It can be observed that the "size" - parameter for the faked "a" partition - matches the value outlined above, while the - "offset" parameter is the sum of the offset - within the Vinum partition "h", and the - offset of this partition within the device (or slice). This - is a typical setup that is necessary to avoid the problem - described in . It can also - be seen that the entire "a" partition is - completely within the "h" partition - containing all the Vinum data for this device. + Μπορείτε να παρατηρήσετε ότι η παράμετρος + "size" για την ψευτο-κατάτμηση + "a" ταιριάζει με την τιμή που δείξαμε παραπάνω, + ενώ η τιμή της παραμέτρου "offset" είναι το + άθροισμα της απόστασης ανάμεσα στην κατάτμηση Vinum + "h" και της απόστασης αυτής της κατάτμησης μέσα + στη συσκευή (ή το slice). Πρόκειται για μια τυπική ρύθμιση που είναι + απαραίτητη για να αποφευχθούν τα προβλήματα που περιγράφηκαν στο + . Μπορείτε επίσης να δείτε ότι + ολόκληρη η κατάτμηση "a" περιέχεται αυτούσια + μέσα στην "h" η οποία και περιέχει όλες τις + πληροφορίες Vinum της συσκευής. - Note that in the above example, the entire device is - dedicated to Vinum, and there is no leftover pre-Vinum root - partition, since this has been a newly set-up disk that was - only meant to be part of a Vinum configuration, ever. + Σημειώστε ότι στο παραπάνω παράδειγμα η συσκευή χρησιμοποιείται + εξ' ολοκλήρου από το Vinum, και δεν υπάρχει κάποιο κατάλοιπο ριζικής + κατάτμησης από παλιότερη χρήση. Αυτό συμβαίνει επειδή πρόκειται για + δίσκο που χρησιμοποιήθηκε από την αρχή ως μέρος ενός συστήματος + Vinum. - Troubleshooting + Αντιμετώπιση Προβλημάτων - If something goes wrong, a way is needed to recover from - the situation. The following list contains few known pitfalls - and solutions. + Σε περίπτωση προβλήματος, θα χρειαστείτε κάποια μέθοδο + αντιμετώπισης. Η παρακάτω λίστα περιέχει μερικά από τα πιο + συνηθισμένα προβλήματα και τις λύσεις τους. - System Bootstrap Loads, but System Does Not Boot + Ο Κώδικας Εκκίνησης Φορτώνεται, Αλλά το Σύστημα δεν + Εκκινεί - If for any reason the system does not continue to boot, - the bootstrap can be interrupted with by pressing the - space key at the 10-seconds warning. The - loader variables (like vinum.autostart) - can be examined using the show, and - manipulated using set or - unset commands. + Αν για οποιοδήποτε λόγο το σύστημα δεν συνεχίζει την εκκίνηση, + θα πρέπει να διακόψετε την εκκίνηση μέσα στο χρονικό διάστημα των 10 + δευτερολέπτων που εμφανίζεται ο φορτωτής εκκίνησης, πιέζοντας το + πλήκτρο space. Μπορείτε να εξετάσετε τις τιμές + των μεταβλητών του φορτωτή + (όπως η vinum.autostart), χρησιμοποιώντας την + εντολή show, και να τις αλλάξετε με τις εντολές + set ή unset. - If the only problem was that the Vinum kernel module was - not yet in the list of modules to load automatically, a - simple load geom_vinum will help. + Αν το μοναδικό πρόβλημα ήταν η απουσία του αρθρώματος + Vinum στη λίστα της αυτόματης φόρτωσης, αρκεί να δώσετε την + εντολή load geom_vinum. - When ready, the boot process can be continued with a - boot -as. The options - will request the kernel to ask for the - root filesystem to mount (), and make the - boot process stop in single-user mode (), - where the root filesystem is mounted read-only. That way, - even if only one plex of a multi-plex volume has been - mounted, no data inconsistency between plexes is being - risked. + Όταν είστε έτοιμος, η εκκίνηση μπορεί να συνεχιστεί με την + εντολή boot -as. Οι επιλογές + θα οδηγήσουν τον πυρήνα να ρωτήσει για το + ριζικό σύστημα αρχείων που πρόκειται να προσαρτηθεί + (), και η διαδικασία εκκίνησης θα σταματήσει σε + κατάσταση ενός χρήστη (single user, λόγω της επιλογής + ), όπου η προσάρτηση του ριζικού συστήματος + είναι μόνο για ανάγνωση. Με τον τρόπο αυτό, ακόμα και αν έχει + προσαρτηθεί μόνο ένα plex ενός τόμου που αποτελείται από πολλά, + δεν υπάρχει κίνδυνος να δημιουργηθεί ασυνέπεια δεδομένων μεταξύ + των plex. - At the prompt asking for a root filesystem to mount, any - device that contains a valid root filesystem can be entered. - If /etc/fstab had been set up - correctly, the default should be something like - ufs:/dev/gvinum/root. A typical alternate - choice would be something like - ufs:da0d which could be a - hypothetical partition that contains the pre-Vinum root - filesystem. Care should be taken if one of the alias - "a" partitions are entered here that are - actually reference to the subdisks of the Vinum root device, - because in a mirrored setup, this would only mount one piece - of a mirrored root device. If this filesystem is to be - mounted read-write later on, it is necessary to remove the - other plex(es) of the Vinum root volume since these plexes - would otherwise carry inconsistent data. + Στην προτροπή που εμφανίζεται για το ριζικό σύστημα αρχείων που + πρόκειται να προσαρτηθεί, μπορείτε να εισάγετε οποιαδήποτε + συσκευή περιέχει ένα έγκυρο ριζικό σύστημα αρχείων. Αν το + /etc/fstab έχει ρυθμιστεί σωστά, η προεπιλογή + θα είναι κάτι σαν ufs:/dev/gvinum/root. + Μια τυπική εναλλακτική τοποθεσία θα μπορούσε να είναι το + ufs:da0d, μια υποθετική κατάτμηση + που περιέχει το παλιό (πριν το Vinum) ριζικό σύστημα αρχείων. + Αν πρόκειται να χρησιμοποιήσετε μια + από τις τύπου "a" ψευτο-κατατμήσεις που είναι + στην πραγματικότητα υποδίσκοι της ριζικής συσκευής του Vinum, θα + πρέπει να είστε προσεκτικός, γιατί αν χρησιμοποιείτε mirror θα + γίνει προσάρτηση μόνο του ενός τμήματος της συσκευής. + Αν πρόκειται να προσαρτήσετε αυτή τη συσκευή αργότερα με + δυνατότητα εγγραφής-ανάγνωσης, είναι απαραίτητο να αφαιρέσετε τα + υπόλοιπα plex του ριζικού τόμου του Vinum, καθώς αυτά θα περιέχουν + δεδομένα που δεν είναι σε συγχρονισμό με την κατάτμηση που έχετε + ήδη προσαρτήσει. - Only Primary Bootstrap Loads + Φορτώνει Μόνο ο Βασικός Κώδικας Εκκίνησης - If /boot/loader fails to load, but - the primary bootstrap still loads (visible by a single dash - in the left column of the screen right after the boot - process starts), an attempt can be made to interrupt the - primary bootstrap at this point, using the - space key. This will make the bootstrap - stop in stage two, see . An - attempt can be made here to boot off an alternate partition, - like the partition containing the previous root filesystem - that has been moved away from "a" - above. + Αν η φόρτωση του /boot/loader δεν είναι + επιτυχής, αλλά ο βασικός κώδικας εκκίνησης (primary bootstrap) + φορτώνεται (κάτι που μπορείτε να διαπιστώσετε ελέγχοντας αν + εμφανίζεται μια παύλα στην πάνω αριστερή γωνία της οθόνης κατά το + αρχικό στάδιο εκκίνησης), μπορείτε να προσπαθήσετε να διακόψετε + τη βασική εκκίνηση σε αυτό το σημείο χρησιμοποιώντας το πλήκτρο + space. Με αυτό τον τρόπο, η εκκίνηση θα + σταματήσει στο στάδιο δύο (δείτε το ). + Μπορείτε εδώ να προσπαθήσετε να εκκινήσετε από μια εναλλακτική + κατάτμηση, π.χ. την κατάτμηση που περιείχε το ριζικό σύστημα + αρχείων που μετακινήσατε από το "a" όταν + ξεκινήσατε να χρησιμοποιείτε το Vinum. - Nothing Boots, the Bootstrap - Panics + Δεν Γίνεται Καμιά Εκκίνηση, ο Κώδικας Εκκίνησης Προκαλεί + Panic - This situation will happen if the bootstrap had been - destroyed by the Vinum installation. Unfortunately, Vinum - accidentally currently leaves only 4 KB at the beginning of - its partition free before starting to write its Vinum header - information. However, the stage one and two bootstraps plus - the bsdlabel embedded between them currently require 8 KB. - So if a Vinum partition was started at offset 0 within a - slice or disk that was meant to be bootable, the Vinum setup - will trash the bootstrap. + Αυτό μπορεί να συμβεί αν ο κώδικας εκκίνησης καταστραφεί + από την εγκατάσταση του Vinum. Δυστυχώς, το Vinum την τρέχουσα + στιγμή αφήνει μόνο 4 KB ελεύθερα στην αρχή της κατάτμησης του + πριν αρχίσει να γράφει τις πληροφορίες της επικεφαλίδας του. + Ωστόσο τα στάδια ένα και δύο καθώς και το bsdlabel που + ενσωματώνεται ανάμεσα τους, χρειάζονται 8 KB. Έτσι, αν μια + κατάτμηση Vinum ξεκίναγε στην θέση 0 μέσα σε ένα slice ή δίσκο που + προορίζονταν για εκκίνηση, η εγκατάσταση του Vinum θα κατέστρεφε + τον κώδικα εκκίνησης. - Similarly, if the above situation has been recovered, - for example by booting from a Fixit medium, - and the bootstrap has been re-installed using - bsdlabel -B as described in , the bootstrap will trash the Vinum - header, and Vinum will no longer find its disk(s). Though - no actual Vinum configuration data or data in Vinum volumes - will be trashed by this, and it would be possible to recover - all the data by entering exact the same Vinum configuration - data again, the situation is hard to fix at all. It would - be necessary to move the entire Vinum partition by at least - 4 KB off, in order to have the Vinum header and the system - bootstrap no longer collide. + Με τον ίδιο τρόπο, αν η παραπάνω κατάσταση επιδιορθωθεί για + παράδειγμα ξεκινώντας από ένα CD Fixit και + επανεγκαθιστώντας τον κώδικα εκκίνησης με τη βοήθεια της εντολής + bsdlabel -B (όπως περιγράφεται στο ), ο κώδικας εκκίνησης θα καταστρέψει την + επικεφαλίδα του Vinum, το οποίο δεν θα μπορεί πλέον να εντοπίσει + τους δίσκους του. Αν και το παραπάνω δεν καταστρέφει τα δεδομένα + ρυθμίσεων ή τα πραγματικά δεδομένα που υπάρχουν στους τόμους (και + η ανάκτηση τους είναι δυνατή αν δώσετε ξανά ακριβώς τις ίδιες + ρυθμίσεις στο Vinum με τις αρχικές σας), η κατάσταση διορθώνεται + αρκετά δύσκολα. Θα πρέπει να μετακινήσετε ολόκληρη την κατάτμηση + του Vinum τουλάχιστον κατά 4 KB ώστε να μην υπάρχει σύγκρουση + μεταξύ της επικεφαλίδας του Vinum και του κώδικα εκκίνησης. - - - Differences for FreeBSD 4.X - - Under FreeBSD 4.X, some internal functions required to - make Vinum automatically scan all disks are missing, and the - code that figures out the internal ID of the root device is - not smart enough to handle a name like - /dev/vinum/root automatically. - Therefore, things are a little different here. - - Vinum must explicitly be told which disks to scan, using a - line like the following one in - /boot/loader.conf: - - vinum.drives="/dev/da0 /dev/da1" - - It is important that all drives are mentioned that could - possibly contain Vinum data. It does not harm if - more drives are listed, nor is it - necessary to add each slice and/or partition explicitly, since - Vinum will scan all slices and partitions of the named drives - for valid Vinum headers. - - Since the routines used to parse the name of the root - filesystem, and derive the device ID (major/minor number) are - only prepared to handle classical device names - like /dev/ad0s1a, they cannot make - any sense out of a root volume name like - /dev/vinum/root. For that reason, - Vinum itself needs to pre-setup the internal kernel parameter - that holds the ID of the root device during its own - initialization. This is requested by passing the name of the - root volume in the loader variable - vinum.root. The entry in - /boot/loader.conf to accomplish this - looks like: - - vinum.root="root" - - Now, when the kernel initialization tries to find out the - root device to mount, it sees whether some kernel module has - already pre-initialized the kernel parameter for it. If that - is the case, and the device claiming the - root device matches the major number of the driver as figured - out from the name of the root device string being passed (that - is, "vinum" in our case), it will use the - pre-allocated device ID, instead of trying to figure out one - itself. That way, during the usual automatic startup, it can - continue to mount the Vinum root volume for the root - filesystem. - - However, when boot -a has been - requesting to ask for entering the name of the root device - manually, it must be noted that this routine still cannot - actually parse a name entered there that refers to a Vinum - volume. If any device name is entered that does not refer to - a Vinum device, the mismatch between the major numbers of the - pre-allocated root parameter and the driver as figured out - from the given name will make this routine enter its normal - parser, so entering a string like - ufs:da0d will work as expected. Note - that if this fails, it is however no longer possible to - re-enter a string like ufs:vinum/root - again, since it cannot be parsed. The only way out is to - reboot again, and start over then. (At the - askroot prompt, the initial - /dev/ can always be omitted.) -