22.5. Αντικείμενα του Vinum

Για την αντιμετώπιση των παραπάνω προβλημάτων, το Vinum υλοποιεί μια ιεραρχία αντικειμένων τεσσάρων επιπέδων:

Οι παρακάτω ενότητες περιγράφουν τον τρόπο με τον οποίο αυτά τα αντικείμενα παρέχουν την λειτουργικότητα που απαιτείται από το Vinum.

22.5.1. Μέγεθος Τόμου

Τα plex μπορούν να περιλαμβάνουν πολλαπλούς υποδίσκους, που κατανέμονται σε όλους τους οδηγούς του Vinum. Σαν αποτέλεσμα, το μέγεθος ενός συγκεκριμένου δίσκου δεν περιορίζει το μέγεθος ούτε του plex, ούτε του τόμου.

22.5.2. Πλεονάζουσα (Redundant) Αποθήκευση Δεδομένων

Το Vinum υλοποιεί το mirroring προσαρτώντας πολλαπλά plex σε ένα τόμο. Κάθε plex είναι μια αναπαράσταση των δεδομένων ενός τόμου. Ένας τόμος μπορεί να περιέχει μεταξύ ενός και οκτώ plex.

Αν και ένα plex αντιπροσωπεύει τα πλήρη δεδομένα ενός τόμου, είναι πιθανόν κάποια μέρη της αναπαράστασης να λείπουν από το φυσικό μέσο, είτε επειδή έχει σχεδιαστεί με αυτό το τρόπο (αν δεν έχει οριστεί υποδίσκος για κάποια τμήματα του plex) ή από πρόβλημα (ως αποτέλεσμα της αποτυχίας κάποιου δίσκου). Όσο υπάρχει τουλάχιστον ένα plex που μπορεί να παρέχει τα δεδομένα για την πλήρη περιοχή διευθύνσεων του τόμου, ο τόμος είναι πλήρως λειτουργικός.

22.5.3. Θέματα Απόδοσης

Το Vinum υλοποιεί τόσο συνένωση όσο και striping σε επίπεδο plex:

  • Ένα plex συνένωσης (concatenated) χρησιμοποιεί την περιοχή διευθύνσεων κάθε υποδίσκου με τη σειρά.

  • Ένα striped plex γράφει τα δεδομένα σε λωρίδες (stripes) που κατανέμονται σε κάθε υποδίσκο. Όλοι οι υποδίσκοι πρέπει να έχουν το ίδιο μέγεθος και πρέπει να υπάρχουν τουλάχιστον δύο υποδίσκοι, για να ξεχωρίζουν σε σχέση με το plex συνένωσης.

22.5.4. Είδη Οργάνωσης Plex

Η έκδοση του Vinum που παρέχεται με το FreeBSD 9.2 υλοποιεί δύο είδη plex:

  • Τα plex συνένωσης προσφέρουν τη μεγαλύτερη ευελιξία: μπορούν να περιέχουν οποιοδήποτε αριθμό υποδίσκων, και οι υποδίσκοι αυτοί μπορεί να είναι διαφορετικού μεγέθους. Το plex μπορεί να επεκταθεί προσθέτοντας περισσότερους υποδίσκους. Χρειάζονται λιγότερο χρόνο CPU σε σχέση με τα stripes, αν και η διαφορά στη χρήση της CPU δεν είναι μετρήσιμη. Από την άλλη μεριά, είναι πιο επιρρεπή σε μη-ισορροπημένη λειτουργία, όπου ένας δίσκος είναι πολύ ενεργός και οι υπόλοιποι αδρανούν.

  • Το μεγαλύτερο πλεονέκτημα των stripes (RAID-0), είναι ότι έχουν πιο ισορροπημένη λειτουργία: επιλέγοντας το σωστό μέγεθος λωρίδας (περίπου 256 kB), μπορείτε να εξισορροπήσετε το φορτίο σε κάθε δίσκο του plex. Τα μειονεκτήματα αυτής της μεθόδου είναι (ελαφρά) πιο πολύπλοκος κώδικας και περιορισμοί στους υποδίσκους: πρέπει όλοι να είναι το ίδιο μέγεθος και η επέκταση ενός plex με προσθήκη περισσότερων δίσκων είναι τόσο πολύπλοκη που τη δεδομένη στιγμή το Vinum δεν την υλοποιεί. Το Vinum επίσης επιβάλλει ένα ακόμα απλοϊκό περιορισμό: ένα plex τύπου stripe πρέπει να διαθέτει υποχρεωτικά δύο τουλάχιστον υποδίσκους, διαφορετικά είναι αδύνατο να το ξεχωρίσουμε από ένα plex συνένωσης.

Ο Πίνακας 22.1, “Είδη Οργάνωσης Vinum Plex” δείχνει περιληπτικά τα πλεονεκτήματα και μειονεκτήματα κάθε είδους οργάνωσης plex.

Πίνακας 22.1. Είδη Οργάνωσης Vinum Plex
Τύπος plexΕλάχιστο πλήθος υποδίσκωνΔυνατότητα προσθήκης υποδίσκωνΟι υποδίσκοι πρέπει να είναι ίδιου μεγέθουςΕφαρμογή
συνένωσης (concatenated)1ναιόχιΑποθήκευση μεγάλου όγκου δεδομένων με μέγιστη ευελιξία στον τρόπο κατανομής και μέτρια απόδοση.
striped2όχιναιΥψηλή απόδοση σε συνδυασμό με πολύ καλές ταχύτητες σε καταστάσεις πολλαπλής πρόσβασης.

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

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

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