Ίσως να έχετε ακούσει, τόσο καιρό που ασχολείστε με τους υπολογιστές, την λέξη RAID. Αν και η λέξη αυτή σίγουρα σας θύμισε κατσαριδοκτόνο, δεν έχει να κάνει με προληπτικό ψέκασμα του υπολογιστή εναντίον των κατσαρίδων. Θα προσπαθήσουμε σε αυτό το άρθρο να ξεδιαλύνουμε τι είναι το RAID και πως χρησιμοποιείται στους υπολογιστές.
Όλοι, λίγο πολύ, κάποια στιγμή έχετε χάσει τα δεδομένα σας επειδή ο πολύτιμος σκληρός σας δίσκος αποφάσισε να παραδώσει το πνεύμα του.
Όμως εκτός από τις μοναδικές φωτογραφίες που χάσατε, υπάρχουν υπολογιστές που η λογική ότι μπορεί να χάσουν δεδομένα, δεν είναι επ’ουδενί αποδεκτή. Οργανισμοί, τράπεζες, αρχεία ενός κράτους, και άλλα πολλά δεδομένα, αντιλαμβάνεστε ότι δεν μπορούν να χαθούν. Η λύση φυσικά είναι το backup. Και μάλιστα τριπλό και τετραπλό Backup των ίδιων δεδομένων, που κάθε ένα θα βρίσκεται σε διαφορετικούς χώρους, ακόμα και σε άλλες πόλεις ή χώρες.
Πέρα όμως του backup έπρεπε να βρεθεί και ένα τρόπος αποθήκευσης στον αρχικό – βασικό υπολογιστή, όπου αν ο δίσκος χτυπήσει, ο χρόνος αποκατάστασης να μην είναι τεράστιος. Να μην χρειάζεται δηλαδή η τάδε τράπεζα να κατεβάσει τα συστήματά της για μία ημέρα μέχρι να αντιγραφούν τα δεδομένα από κάποιο backup, πίσω στον αρχικό υπολογιστή (αφού κάποιος πρώτα αλλάξει το χτυπημένο δίσκο).
Ένα άλλο θέμα που απασχολούσε τους επαγγελματίες των υπολογιστών είναι η αύξηση της ταχύτητας εγγραφής και ανάγνωσης των δεδομένων σε ένα σκληρό δίσκο. Την λύση και στα δύο θέματα το έδωσε το RAID. Πάμε να δούμε.
Για την ιστορία
Η λέξη RAID προέρχεται από τα αρχικά της φράσης “Redundant Array of Independent Disks”, η οποία σημαίνει “Πλεονάζουσα Συστοιχία από Ανεξάρτητους Δίσκους”. Στην Ελλάδα καθιερώθηκε να το λέμε RAID γιατί απλά το ΠΣΑΔ δεν ακούγετε ευχάριστα!. Ο όρος “RAID” επινοήθηκε από τον David Patterson, τον Garth A. Gibson και τον Randy Katz, στο Πανεπιστήμιο του Berkeley της Καλιφόρνιας, το 1987. Τι σκέφτηκαν αυτοί οι τρεις? Ότι είναι προτιμότερο και για θέμα ασφάλειας και για θέμα ταχύτητας, να έχουμε μια συστοιχία από σκληρούς δίσκους, παρά ένα μεγάλο ενιαίο δίσκο. Και μάλιστα οι δίσκοι αυτοί μπορούν να είναι κάλλιστα κοινοί, φτηνοί δίσκοι, οι ίδιοι που φοριούνται στους προσωπικούς υπολογιστές, που με το RAID θα αποδώσουν καλύτερα από ένα ακριβό, hi-tech, ενιαίο δίσκο.
Τι είναι το RAID
RAID είναι η τεχνική συνεργασίας, ο τρόπος επικοινωνίας δύο η περισσοτέρων σκληρών δίσκων ώστε μία στοίβα από δίσκους να λειτουργεί σαν ένας ενιαίος δίσκος, αυξάνοντας την ασφάλεια και την ταχύτητα. Και επειδή αυτό μπορεί να γίνει με πολλούς τρόπους, το RAID έχει και διάφορα επίπεδα.
Έτσι έχουμε τα επίπεδα (level) 0, 1, 2, 3, 4, 5, και 6, τα οποία για σωστότερη συνεννόηση μεταξύ μας, τα προσφωνούμε RAID 0, RAID 1, RAID 2 και ούτω κάθε εξής. Τα πιο συνηθισμένα επίπεδα που χρησιμοποιούνται σχεδόν κατά κόρον, είναι τα 1, 5 και 6.
Τις διαφορές μεταξύ τους θα τις δούμε παρακάτω, αλλά γενικότερα τα επίπεδα αυτά κινούνται ανάμεσα στην ασφάλεια και στη ταχύτητα, και κάποια είναι κοντά στην ασφάλεια, ενώ κάποια άλλα κοντά στην ταχύτητα. Βλέπετε, σε αυτή την ζωή δεν μπορείτε να έχετε και τα δύο μαζί, τουλάχιστο στο μέγιστο βαθμό τους.
Συγχωρήστε μας που δε θα σας παρουσιάσουμε με την σειρά τα διάφορα επίπεδα, αλλά το κάνουμε για το εκπαιδευτικό καλό. Πηδάμε το RAID 0 και πάμε κατευθείαν στα RAID 1 , 5 και 6.
Τι είναι το RAID 1
To RAID1 είναι απλά η πιστή και ταυτόχρονη αντιγραφή τους ενός δίσκου στο άλλον. Δηλαδή το RAID1 είναι ένα mirroring (καθρεφτισμός) και ότι γράφεται στον ένα δίσκο αυτόματα γράφεται και στον άλλον. Έτσι αν ο ένας δίσκος αποτύχει το σύστημα συνεχίζει απρόσκοπτα να λειτουργεί με το δεύτερο δίσκο χωρίς καμία διακοπή.
Φυσικά περιμένει πότε θα του βάλετε ένα νέο καινούργιο δίσκο στην θέση του κατεστραμμένου ώστε να αρχίσει να αντιγράφει τον εαυτό του, ή αλλιώς να κάνει “rebuild” (ανακατασκευή).
Με λίγα λόγια πρόκειται για την πιο απλή συνεργασία δύο δίσκων και φυσικά έχει υπέρ και κατά. Δείτε τα.
- Ταχύτητα εγγραφής = το RAID 1 γράφει με την ταχύτητα του πιο αργού δίσκου, αφού ο αργός δίσκος καθυστερεί την κοινή, ταυτόχρονη εγγραφή και στους δύο δίσκους.
- Ταχύτητα ανάγνωσης = επειδή μπορεί να διαβάσει και από τους δύο δίσκους ταυτόχρονα και ανεξάρτητα, θεωρητικά η ταχύτητα ανάγνωσης μπορεί να φτάσει να γίνει το άθροισμα των ταχυτήτων των δύο δίσκων, αφού μπορεί να διαβάσει ταυτόχρονα τα μισά δεδομένα από τον έα δίσκο και τα άλλα μισά από το άλλον.
- Ασφάλεια = έχουμε ένα μόνιμο backup και μόνο αν χαλάσουν και οι δύο δίσκοι ταυτόχρονα θα χάσουμε τα δεδομένα μας. Αν χαλάσει ο ένας από τους δύο, το σύστημα δεν σταματάει, αλλά συνεχίζει να παρέχει υπηρεσίας χρησιμοποιώντας τον άλλο δίσκο.
- Χωρητικότητα = Ενώ έχουμε δύο δίσκους, μπορούμε να εγγράψουμε δεδομένα σύμφωνα με την χωρητικότητα του πιο μικρού δίσκου. Μεγάλο μειονέκτημα αφού χάνουμε σίγουρα ένα 50% της συνολικής χωρητικότητας και αν ο ένας δίσκος είναι μικρότερος από τον άλλον, ας πούμε 1ΤΒ και 750GB, τότε το RAID 1 θα δει ένα ενιαίο δίσκο των 750 GB.
- Επεκτασιμότητα = Φυσικά μπορούμε να του προσθέσουμε και τρίο και τέταρτο δίσκο και όσους θέλουμε, αλλά όλοι θα είναι αντίγραφα του πρώτου και όλοι μαζί θα έχουν την χωρητικότητα και ταχύτητα εγγραφής του πιο μικρού.
Γενικά πάντως, το RAID 1 είναι μία καλή οικιακή λύση για ένα προσωπικό υπολογιστή που θα αποθηκεύετε τα δεδομένα σας σε δύο διαφορετικούς δίσκους ταυτόχρονα και που ο ένας θα είναι αντίγραφο του άλλου και επιπλέον θα αυξήσετε την ταχύτητα ανάγνωσης. Αν δηλαδή έχετε ήδη δύο δίσκους και στον δεύτερο κάνετε ένα απλό backup, σκεφτείτε την ιδέα να τον κάνετε RAID1 ώστε και πάλι να έχετε το backup αλλά και να αυξήσετε την ταχύτητα ανάγνωσης.
Το RAID1 δεν συνηθίζεται να υπάρχει σε επαγγελματικούς servers, όπου εκεί οι απαιτήσεις μεγαλώνουν.
Τι είναι το RAID5
Σχεδόν οι περισσότεροι servers που έχουν RAID χρησιμοποιούν το επίπεδο 5. Ο λόγος; Το RAID 5 είναι η χρυσή τομή ανάμεσα στην ασφάλεια, στην ταχύτητα και στην χωρητικότητα.
Το RAID 5 για να δουλέψει θέλει τουλάχιστον 3 δίσκους. Είμαι φτιαγμένο έτσι που αν χάσει τον ένα από τους τρεις, τα δεδομένα σας δεν θα χαθούν.
Striping
Στα RAID 5 τα δεδομένα γράφονται στους δίσκους με την τεχνική του Striping (λωρίδες). Το striping είναι η τεχνική του διαχωρισμού λογικά διαδοχικών δεδομένων, έτσι ώστε να αποθηκεύονται τα διαδοχικά αυτά τμήματα σε διαφορετικές φυσικές συσκευές αποθήκευσης. Μπερδευτήκατε; Με λίγα λόγια σπάτε ένα αρχείο σε κομμάτια (blocks), συνήθως των 64KB και μοιράζετε αυτά τα κομμάτια να αποθηκευτούν με σειρά, σε όλους τους δίσκους. Το 1ο κομμάτι θα αποθηκευτεί στον disk1, το 2ο στο disk2, το 3ο στο disk3 και ούτω κάθε εξής. Έτσι δημιουργούνται σειρές (row) από οριζόντιες εγγραφές, για στοιχισμένους δίσκους, όπως το παρακάτω σχέδιο .
Το κλειδί του RAID 5 είναι πως, για κάθε γραμμή (row) από τα blocks που αποθηκεύονται στους δίσκους, δημιουργείται ένα parity block (ισοτιμία), το οποίο αποθηκεύεται σε ένα από τους δίσκους σας. Και επειδή η τεχνική του parity είναι κοινή από το raid 3 έως το raid 6, ας κάνουμε μία μεγάλη παρένθεση και ας την αναλύσουμε.
Parity
Η τεχνική του Parity bits (ισοτιμία) βασίζεται στο να μπορεί κάποιος να βρει εύκολα κάποια χαμένα δεδομένα, από ένα δίσκο που χάλασε. Αφού χωριστούν τα δεδομένα σε ίσα κομμάτια με την μέθοδο του striping, το RAID αναλαμβάνει να φτιάξει και να καταχωρίσει το parity. Δείτε τι ακριβώς κάνει.
Αν και συνήθως στο RAID5 ένα αρχείο σπάει σε κομμάτια των 64KB, για την ευκολία κατανόησης, ας πούμε ότι έχουμε ένα αρχείο, που στο δυαδικό σύστημα αποτελείται μόνο από 9 bits 0 και 1 (ασφαλώς θα γνωρίζετε ότι κάθε δεδομένο στον υπολογιστή στην πραγματικότητα αποτελείται από μία ομάδα των αριθμών 0 και 1, ανάγετε δηλαδή στο δυαδικό σύστημα).
Έτσι ας πούμε ότι έχουμε το αρχείο των 9 bits “010101110” και τα σπάμε σε τρία ισότιμα κομμάτια , δηλαδή στα 010, 101, 110 και τα αποθηκεύουμε στους 3 δίσκους.
Έρχεται τώρα η τεχνική parity, βλέπει τα 3 κομμάτια και κάνει τους εξής υπολογισμούς, χρησιμοποιώντας την λογική συνάρτηση XOR (eXclusive OR).
Για όσους δεν γνωρίζουν, η XOR είναι μία λογική συνάρτηση που προσθέτει με ένα δικό της τρόπο το 0 και το 1. Από εδώ και κάτω, ξεχάστε τα μαθηματικά που ξέρατε, και όχι μην πάρετε τηλέφωνο την δασκάλα σας στο Δημοτικό για να την βρίσετε, επειδή νομίζετε ότι δεν σας τα έμαθε καλά. Δεν είναι μαθηματική συνάρτηση αλλά λογική συνάρτηση υπολογιστών (ημιαγωγών για την ακρίβεια).
Η XOR, σαν αποτέλεσμα βγάζει 0, αν προσθέσουμε δυο όμοια πράγματα
XOR (0, 0) = 0
XOR (1, 1) = 0
και αντίστοιχα βγάζει 1, αν προσθέσουμε δύο ανόμοια
XOR (0, 1) = 1
XOR (1, 0) = 1
Και έτσι το parity διαβάζει τα δεδομένα από τους δύο πρώτους δίσκους , δηλαδή τα 010 και 101 και υπολογίζει την XOR για κάθε αντίστοιχο bit. To 1ο από την πρώτη τριάδα με το 1ο από την δεύτερη. Δηλαδή εκτελεί τις πράξεις:
XOR (010, 101) = 111
Μετά παίρνει το αποτέλεσμα και ξανά υπολογίζει την XOR με το 3ο κομμάτι. Δηλαδή εκτελεί:
XOR (111, 110) = 001
Άρα το parity των 010, 101, 110 μας κάνει 001. Αυτό το καταγράφει στον επόμενο δίσκο του RAID 5. Τις εγγραφές και στους 4 δίσκους, δηλαδή το 010|101|110|001 το ονομάζουμε και ως row (σειρά).
Τέλος η παρένθεση με Striping και parity και επανερχόμαστε στο RAID5. Στο RAID 5 τα δεδομένα δεν χωρίζονται ανά 3 Bits αλλά ανά 64 KB (64KB= 65536*8= 524288 bits). Η διαδικασία και η λογική παραμένει ίδια, όπως και στα 3 bits.
Σε ένα παράδειγμα με 4 συνολικά δίσκους, μόλις χαλάσει ένας από αυτούς, τότε το RAID5 αναλαμβάνει να κάνει την ακριβώς ανάποδη εργασία με την παραπάνω και έτσι να ανακασκευάσει τα δεδομένα που λείπουν από τον χαλασμένο δίσκο. Όταν βάλετε ένα νέο δίσκο στην θέση του παλιού, τότε το RAID 5 με την ανάποδη διαδικασία ανακαλύπτει τα δεδομένα που είχε ο χαλασμένος δίσκος και τα γράφει στην θέση του νέου που μόλις βάλατε, κάνει δηλαδή rebuild.
Αν χαλάσει και δεύτερος δίσκος πριν προλάβετε να κάνετε το rebiuld του πρώτου, τότε δυστυχώς θα χάσετε όλα τα δεδομένα σας.
Προσέξτε ότι το parity δε εγγράφεται σε ξεχωριστό δικό του δίσκο, αλλά δεδομένα και parity διανέμονται (distributed) όλους τους δίσκους σε κυλιόμενη σειρά. Και ενώ η λογική και ο υπολογισμός του parity block είναι σχετικά απλός, το να μοιραστούν τα parity blocks σε όλους τους δίσκους είναι ένα θέμα πιο περίπλοκο. Υπάρχουν τέσσερις διαφορετικές τεχνικές για το RAID 5 όσον αφορά την εκάστοτε θέση του parity και αν τύχει και αλλάξουμε ελεγκτή, γιατί μπορεί να χαλάσει, θα πρέπει να γνωρίζουμε ακριβώς τον τύπο του RAID και τη σειρά εγγραφής, για να ανακτηθούν τα δεδομένα από τον νέο ελεγκτή.
Πάμε να δούμε υπέρ και κατά του RAID 5
- Ταχύτητα εγγραφής = Η συνολική ταχύτητα εγγραφής είναι το σύνολο των ταχυτήτων όλων των δίσκων μείον ένα. Δηλαδή σε μία συστοιχία 3+1 δίσκους έχουμε τριπλασιάσει την ταχύτητα εγγραφής. Κάπου εδώ βέβαια μπαίνει και η ποιότητα του ελεγκτή που πραγματοποιεί το RAID 5, αφού έχει να κάνει το πόσο γρήγορα υπολογίζει και γράφει το parity.
- Ταχύτητα ανάγνωσης = Ισχύει ότι και για την ταχύτητα εγγραφής
- Ασφάλεια = Πολύ καλή ασφάλεια αν αναλογιστείτε ότι μπορεί να έχετε μία συστοιχία με 10 δίσκους και δεν φοβάστε μήπως χαλάσει κάποιος από αυτούς. Με την προϋπόθεση όμως να χαλάσει μόνο ένας δίσκος, μέχρι να προλάβετε να κάνετε rebuild το σύστημά σας με ένα καινούργιο δίσκο. Αν δεν προλάβετε και χαλάσει και δεύτερος, τότε θα χαθούν όλα τα δεδομένα και από τους 10 δίσκους !!. Η αναδημιουργία ενός δίσκου (rebuild), απαιτεί την ανάγνωση όλων των δεδομένων από όλους τους δίσκους, ανοίγοντας μια πιθανότητα για μια δεύτερη αποτυχία δίσκου και την απώλεια ολόκληρων των δεδομένων.
- Χωρητικότητα = Λόγω ότι τα δεδομένα κατανέμονται ισόποσα σε όλους του δίσκους, η χωρητικότητα θα είναι όση η χωρητικότητα του μικρότερου δίσκου επί το σύνολο των δίσκων μείον ένα. Αν δηλαδή, έχουμε 1 δίσκο των 750 GB και 3 δίσκους των 1 TB τότε η συνολική χωρητικότητα του RAID 5 θα είναι (4-1)*750GB = 2,25TB. Σε αναλογία, με 3 ίδιους δίσκους στη συστοιχία, ο τρίτος χάνεται σαν parity, άρα χάνουμε το 33% του συνόλου. Όσο περισσότερους δίσκους προσθέσουμε τόσο αυτό το ποσοστό μειώνεται.
- Επεκτασιμότητα = Φυσικά μπορούμε να του προσθέσουμε και τρίο και τέταρτο δίσκο και όσους θέλουμε, αλλά αν χαλάσουν μαζί δύο από΄όλους αυτούς, τότε χάνουμε τα δεδομένα μας. Ακόμα και 50 δίσκους να έχουμε, δεν πρέπει να χαλάσουν δύο μαζί.
Τι είναι το RAID 6
Η ασφάλεια πάνω από όλα. Το RAID6 είναι το ίδιο με το προηγούμενο RAID5, μόνο που αντί για ένα parity έχει δύο parity block. Το διπλό parity παρέχει ανοχή σφάλματος έως και δύο ανεπαρκείς δίσκους. Δηλαδή το σύστημά μας θα είναι λειτουργικό ακόμα και αν χάσουμε 2 δίσκους.
Αυτό είναι πιο πρακτικό για ομάδες RAID που φέρουν πολλούς μικρούς δίσκους, ειδικά αν μιλάμε για συστήματα υψηλής διαθεσιμότητας, καθώς οι μονάδες μεγάλης χωρητικότητας χρειάζονται περισσότερο χρόνο για να αποκατασταθούν. Το RAID 6 απαιτεί τουλάχιστον τέσσερις δίσκους. Όπως συμβαίνει και με το RAID 5, μία αποτυχία μονάδας οδηγεί σε μειωμένη απόδοση ολόκληρης της συστοιχίας, μέχρι να αντικατασταθεί ο αποτυχημένος δίσκος. Σε δοκιμές που κάναμε παλαιότερα με software RAID 5, δίσκος του 1TB για να γίνει rebuild απαιτούσε περίπου 4-5 ώρες.
Με μία συστοιχία RAID 6, χρησιμοποιώντας μονάδες δίσκου από πολλαπλές πηγές και κατασκευαστές, είναι δυνατό να μετριαστούν τα περισσότερα από τα προβλήματα που σχετίζονται με το RAID 5. Η πιθανότητα να χαλάσουν μαζί 3 δίσκοι είναι σαφώς πολύ μικρότερη από το να χαλάσουν 2, που θα ήταν πρόβλημα στο RAID 5.
Το δεύτερο parity δεν είναι απλά αντιγραφή του πρώτου. Αντίθετα επαναϋπολογίζεται, χρησιμοποιώντας μία διαφορετική μέθοδο από την XOR, που λέγεται Finite field ή Galois field και έχει να κάνει με την θεωρία πεδίων (field theory) και αρκετά πολύπλοκα μαθηματικά. Επειδή όμως το άρθρο απευθύνεται σε αρχάριους, καλύτερα να μην εμπλακούμε στην εξήγηση αυτής της μεθόδου. Τουλάχιστον να σας κρατήσουμε νηφάλιους ως το τέλος τού άρθρου.
Ας δούμε και εδώ τα υπέρ και τα κατά:
- Ταχύτητα εγγραφής = Στην εγγραφή, λόγω της επιπλέον πολυπλοκότητας υπολογισμού του parity, εξαρτάται σε μεγάλο βαθμό από τον ελεγκτή. Στην καλύτερη περίπτωση θα είναι ίση με το άθροισμα των ταχυτήτων των του συνόλου των δίσκων μείον δύο.
- Ταχύτητα ανάγνωσης = Η ταχύτητα του RAID 6 στην ανάγνωση, φτάνει το ανώτερο ως το άθροισμα της ταχύτητας όλων των δίσκων μείον δύο.
- Ασφάλεια = Πολύ καλύτερη ασφάλεια, σε σχέση με τον βασικό ανταγωνιστή του, το RAID 5. Η πιθανότητα να χαλάσουν τρεις δίσκοι και να χάσουμε τα δεδομένα μας, ελαχιστοποιείται. Άλλωστε το RAID6 φημίζεται για την καλή λειτουργία του, σε συστοιχίες με πολλούς δίσκους. Σκεφτείτε ότι όσοι πιο πολλοί δίσκοι, τόσο αυξάνεται η πιθανότητα να χαλάσουν ταυτόχρονα δύο από αυτούς. Όποτε το RAID 6 σε αυτό το θέμα είναι μονόδρομος.
- Χωρητικότητα = Η συνολική χωρητικότητα είναι το μέγεθος του μικρότερου δίσκου επί των αριθμών όλων των δίσκων μείον δύο. Δηλαδή αν έχουμε 1 των 750GB, 2 των 1TB και 1 των 1,5TB, τότε το σύνολο της χωρητικότητας θα είναι 750 * (4-2) = 1,5 TB.
- Επεκτασιμότητα = Σε μία συστοιχία RAID 6 μπορούμε να προσθέσουμε όσους δίσκους θέλουμε.
Τι είναι τα RAID 1E, 5E, 5EE, 6E
Πρόκειται για τα γνωστά σας, μέχρι τώρα RAID, μόνο που έχουν και ένα άδειο δίσκο ρεζέρβα. Γιαυτό και το λένε Ε, από το “Enhanced” (ενισχυμένο).
Όταν σε αυτά τα RAID χαλάσει ένα δίσκος τότε το σύστημα μας διατρέχει κίνδυνο. Θα πρέπει το συντομότερο δυνατόν ο δίσκος αυτός να αντικατασταθεί και μετά όλο το σύστημα να γίνει rebuild. Μέχρι όμως να γίνουν όλα αυτά, βρισκόσαστε σε πραγματικό κίνδυνο να καταστραφεί και δεύτερος δίσκος (ή και 3ος για το raid 6) και να χάσετε όλα τα δεδομένα σας.
Γιαυτό λοιπόν βάζουν στην συστοιχία και ένα εφεδρικό κενό δίσκο, πού κάθετε και περιμένει και που το ονομάζουν Hot-Spare. Αν χαλάσει κάποιος δίσκος , αυτόματα ο εφεδρικός μπαίνει σε λειτουργία και γίνεται άμεσα το rebuild, χωρίς να χαθεί χρόνος μέχρι να το ανακαλύψει κάποιος τεχνικός. Ειδικά σε περιόδους εορτών και διακοπών.
Στο RAID 1E έχετε 1 κανονικό δίσκο, ένα mirroing δίσκο και ένα τρίτο ξέχωρο δίσκο σαν ρεζέρβα. Στα RAID 5E ο hot-spare δίσκος είναι κατανεμημένος σαν μέρος του συνόλου των δίσκων, σε τοποθετημένα κομμάτια στο τέλος κάθε δίσκου. Για την δημιουργία του 5E απαιτούνται το λιγότερο 4 συνολικά δίσκοι.
Το 5EE διαφέρει με το 5E ως προς την θέση που έχει ο εφεδρικός δίσκος μέσα στην συστοιχία και ως προς την συνολική λειτουργία. Στο 5E ο εφεδρικός δίσκος τοποθετείται στην τελευταία θέση ενώ στο 5EE τοποθετείται ενδιάμεσα και συμμετέχει στην λειτουργία του RAID αυξάνοντας τα επίπεδα τις συστοιχίας κατά ένα παραπάνω. Έτσι μειώνεται ο χρόνος του rebuild.
Υπάρχουν πολλοί επικριτές στο Hot-Spare και στην δυνατότητα ενός αυτόματου rebuild. Επειδή, όπως είπαμε και παραπάνω, η αναδημιουργία ενός πίνακα απαιτεί την ανάγνωση όλων των δεδομένων από όλους τους δίσκους, ανοίγοντας μια πιθανότητα για μια δεύτερη αποτυχία δίσκου και την απώλεια ολόκληρων των δεδομένων, θεωρούν ότι πριν ξεκινήσει το rebuild, θα πρέπει πρώτα να γίνει έλεγχος από έναν τεχνικό.
Έχοντας επίγνωση του νόμου του Murphy, κανείς δεν θα διακινδύνευε την άμεση ανακατασκευή μετά από μια αποτυχία ενός δίσκου, και χρησιμοποιώντας ένα Hot-Spare αυτό ακριβώς θα συμβεί.
Τι είναι το RAID0
Μέγιστη ταχύτητα και όχι ασφάλεια. Το RAID 0 είναι ένα καθαρό striping χωρίς καθόλου parity. Χρειάζεται τουλάχιστον δύο δίσκους και τα δεδομένα χωρίζονται σε blocks, τα οποία γράφονται τμηματικά σε όλους τους δίσκους που αποτελούν τη συστοιχία. Αν έχετε τέσσερις δίσκους, αντί να χρειάζεται να περιμένετε το σύστημα να γράψει 256k δεδομένων σε ένα δίσκο, ένα σύστημα RAID0 μπορεί να γράψει ταυτόχρονα 64k σε καθένα από τους τέσσερις δίσκους μιας συστοιχίας, προσφέροντας έτσι εξαιρετική απόδοση εισόδου/εξόδου (I/O).
Αντιλαμβάνεστε ότι αν χαθεί έστω και ένας δίσκος τότε χάνονται όλα τα δεδομένα!!!. Το RAID0 συνιστάται μόνο για καταστάσεις που σας ενδιαφέρει η ταχύτητα και καθόλου η πιθανότητα να χάσετε τα δεδομένα, όπως για παράδειγμα μπορείτε σε RAID0 να γράψετε το λειτουργικό σας σύστημα και σε ένα ξέχωρο δίσκο, άσχετο με το RAID να έχετε μόνο τα δεδομένα σας.
Υπέρ και κατά:
- Ταχύτητα εγγραφής = Είναι το άθροισμα των ταχυτήτων εγγραφής όλων των δίσκων.
- Ταχύτητα ανάγνωσης = Είναι το άθροισμα των ταχυτήτων ανάγνωσης όλων των δίσκων.
- Ασφάλεια = Μηδέν! Αν χάσετε ένα δίσκο, που κάποια στιγμή θα τον χάσετε, τότε θα χάσετε όλα τα δεδομένα και θα πρέπει να ξαναστήσετε τα πάντα από την αρχή.
- Χωρητικότητα = Η συνολική χωρητικότητα είναι το μέγεθος του μικρότερου δίσκου επί των αριθμών όλων των δίσκων. Δηλαδή αν έχουμε 1 των 750GB, 2 των 1TB και 1 των 1,5TB, τότε το σύνολο της χωρητικότητας θα είναι 750 * 4 = 3,0 TB.
- Επεκτασιμότητα = Σε μία συστοιχία RAID0 μπορούμε να προσθέσουμε όσους δίσκους θέλουμε.
Τι πρέπει να θυμάστε
- To RAID δημιουργήθηκε λόγω της ανάγκης για ταχύτητα, ασφάλεια στην καταστροφή δεδομένων, και ελαχιστοποίηση χρόνου αποκατάστασης βλάβης.
- Τα πιο διαδεδομένα RAID είναι τα 1, 5 και 6.
- Striping είναι ο διαμοιρασμός ενός αρχείου σε κομμάτια σε πολλούς δίσκους.
- Parity είναι η τεχνολογία που μπορεί να σας ανασυνθέσει χαμένα δεδομένα.
- Το XOR είναι μία λογική συνάρτηση
- Το RAID0 προσφέρει μόνο ταχύτητα, χωρίς καμία ασφάλεια.
- To RAID1 είναι απλό mirroring. Καλό για οικιακούς υπολογιστές
- Το RAID5 είναι striping με ένα parity. Η χρυσή τομή σε ταχύτητα και ασφάλεια και χωρητικότητα.
- To RAID6 είναι striping με δύο parity. Επικέντρωση στην ασφάλεια.
- Το Hot-Spare ή απλά το E στο τέλος της ονομασίας, είναι ένα επιπλέον εφεδρικός δίσκος.
Κάνοντας συνδυασμούς RAID
Αν έχετε φαντασία και δημιουργικότητα, τότε μπορείτε να παντρέψετε όλα τα παραπάνω, στοχεύοντας στις καλύτερη λύση για τις ανάγκες σας. Με την λογική ότι ένα RAID στο τέλος φαίνεται σαν ένας ενιαίος δίσκος, τίποτα δεν σας εμποδίζει να συνδυάσετε τα διάφορα RAID μεταξύ τους. Μπορείτε να φτιάξετε τα RAID 10, 01, 50, 60, 100.
RAID01
Αναφορικά σας λέμε ότι το RAID01 είναι δύο συστοιχίες RAID0, που η μία αντιγράφεται στην άλλη με RAID1. Δηλαδή έχουμε δυο mirroring RAID0. Απαιτεί τουλάχιστον 4 δίσκους και το κάθε RAID0 έχει διπλάσια ταχύτητα εγγραφής και ανάγνωσης από ενός μεμονωμένου δίσκου, και επειδή είναι σε RAID 1 μεταξύ τους, η συνολική θεωρητική ταχύτητα είναι τουλάχιστον τετραπλάσια. Φυσικά η ασφάλεια ακολουθεί την λογική του RAID1
RAID10
Ακριβώς το ανάποδο από το 01, όμως πιο δημοφιλές από το προηγούμενο. Έχουμε δύο συστοιχίες με RAID1 που τις βάζουμε και κάνουν striping σαν RAID0. Αυτή η διάταξη επιτρέπει να αποτύχουν μέχρι και δύο δίσκοι, αρκεί να βρίσκονται σε διαφορετικά RAID1. Αν αποτύχει και τρίτος δίσκος, όπου και να βρίσκεται, τότε χάνονται όλα τα δεδομένα. Από ταχύτητα ισχύει ότι και στο RAID01, δηλαδή το μέγιστο να τετραπλασιαστεί.
RAID50
Πρόκειται για δύο συστοιχίες με RAID5 που τις βάζουμε να δουλέψουν μαζί σαν δύο δίσκοι με ένα RAID0. Απαιτεί τουλάχιστον έξι δίσκους. Μπορεί να χάσει το πολύ ένα δίσκο από κάθε συστοιχία RAID5 και από ταχύτητες είναι διπλάσιες του RAID5, ήτοι συνολικά τετραπλάσιες.
RAID60
Τα ίδια με παραπάνω. Έχουμε δύο συστοιχίες με RAID6 και τις βάζουμε να δουλέψουν μαζί σαν RAID0. Απαιτεί το λιγότερο οκτώ δίσκους.
RAID100
Αν σας περισσεύουν οκτώ δίσκοι και σας αρέσουν τα lego, τότε φτιάχνετε τέσσερα RAID1, τα βάζετε ανά δύο striped σε RAID0 και το αποτέλεσμα το ξαναβάζετε σε striped με ένα ακόμα RAID0. Οι φίλοι σας πάντως θα χρειαστούν αρκετή ώρα για να καταλάβουν τι κάνατε.
Τι είναι τα RAID2, 3 και 4
Ακριβώς όπως το φανταστήκατε υπάρχουν και άλλα τρία RAID, τα RAID2, RAID3 και RAID4. Δεν νομίζουμε ότι θα τα συναντήσετε πουθενά αφού έχουν εγκαταλειφθεί. Η ιστορία του RAID αναφέρει ότι στην αρχή εμφανίστηκαν μόνο τα RAID 1 και RAID2. Αργότερα και ανάλογα τις ανάγκες του κάθε προγραμματιστή και εταιρείας, εμφανίστηκαν και τα υπόλοιπα, και όχι απαραίτητα όλα μαζί. Και ναι, το RAID0 δεν εμφανίστηκε πρώτο, αλλά αργότερα από τα 1 και 2.
Μετά από διάφορους “πειραματισμούς” παρέμειναν μόνο τα 0, 1, 5, και 6 και όλα τα υπόλοιπα εγκαταλείφθηκαν. Αναφορικά όμως και για να είστε σφαιρικά ενήμεροι σας λέμε:
RAID 2
Στην περίπτωση του RAID 2, όλα τα δεδομένα γίνονται striping σε επίπεδο bit και όχι σε επίπεδο block, όπως όλα τα άλλα. Κάθε bit είναι γραμμένο σε διαφορετικό δίσκο / λωρίδα. Μια τέτοια λύση απαιτεί τη χρήση του κώδικα Hamming Error Correction Code (ECC) για τη διόρθωση των σφαλμάτων.
Ουσιαστικά στο πρώτο δίσκο γραφόταν το πρώτο bit, στον δεύτερο το δεύτερο, και ούτω κάθε εξής. Ο αριθμός των δίσκων στο RAID 2 που χρησιμοποιούνται για την αποθήκευση πληροφοριών είναι ίσος με τον λογάριθμο του αριθμού δίσκων που προστατεύουν τα αναφερθέντα δεδομένα. Δηλαδή χρησιμοποιεί πολλούς παραπάνω δίσκους για το ECC και για παράδειγμα για 10 δίσκους δεδομένων θέλει 4 δίσκους για ECC ή άλλο παράδειγμα για 4 δίσκους με δεδομένα απαιτεί 3 δίσκους για ECC.
Στο RAID2 o ελεγκτής συντονίζει τους δίσκους να γυρνάνε με τις ίδιες στροφές. Ως λύση το RAID2 δεν χρησιμοποιείται πια. Θεωρείται δαπανηρό γιατί απαιτεί επιπλέον δίσκους και η υλοποίησή του περίπλοκη καθώς απαιτεί την χρήση του κώδικα του Hamming, η οποία πλέον έχει ενσωματωθεί στους σύγχρονους σκληρούς δίσκους.
RAID 3
To RAID3 πήγε ένα βήμα παραπέρα το RAID2 καθώς κάνει striping στα 8 bits (δηλαδή σε ένα byte) και έτσι δεν απαιτεί πολλούς δίσκους για το ECC, αλλά μόνο ένα δίσκο, αφιερωμένο αποκλειστικά (dedicated) για parity. Απαιτεί οι δίσκοι να περιστρέφονται με την ίδια ταχύτητα.
Το πρόβλημα με το RAID3, όπως και με το RAID2 είναι ότι ο απαιτούμενος συγχρονισμός των δίσκων έχει καλές επιδόσεις στην διαδοχική ανάγνωση και εγγραφή (sequential read/write), αλλά αν του δώσετε πολλές αιτήσεις μαζί, η ταχύτητα θα πέσει δραματικά. Δηλαδή η τυχαία ανάγνωση και εγγραφή (random read/write) έχει χειρότερη απόδοση και έτσι συνήθως δεν χρησιμοποιείται.
RAID 4
To RAID4 κάνει striping όχι με Byte όπως το RAID3, αλλά σε επίπεδο block (16, 32, 64 ή 128 kB). Όπως και το RAID 5. Αλλά για το parity χρησιμοποιεί ένα αποκλειστικό δίσκο μόνο για αυτή την δουλειά, όπως και το RAID 3. Η αποκλειστική χρήση ενός δίσκου μόνο για το Parity μειώνει την ταχύτητα εγγραφής και τελικά με την εμφάνιση του RAID5, τα RAID3 και 4 εγκαταλείφθηκαν.
Ελεγκτές
Τώρα όσο αναφορά τους ελεγκτές (controllers) που πραγματοποιούν το RAID, υπάρχουν οι hardware και οι software, με κάθε έναν να έχει υπέρ και κατά. Θα τους αναλύσουμε σε διαφορετικό άρθρο, αφού μέχρι εδώ που φτάσατε, το κεφάλι σας πιθανόν και να πονάει.
Δεν έχω καταλάβει πως ακριβώς γίνεται η ταχύτητα της ανάγνωσης ή και της εγγραφής σε διάφορα RAID να ισούται με το άθροισμα της ταχύτητας των δίσκων. Care to explain please?
Προς τον Νίκο
Γενική ερώτηση, αλλά χονδρικά με το Striping στο RAID κόβεις ένα αρχείο σε πολλά κομμάτια και αυτά τα γράφεις ταυτόχρονα σε πολλούς δίσκους. Αν δηλαδή θες 1 δευτερόλεπτο να γράψεις σε 1 δίσκο 1 αρχείο των 256ΚΒ, με το RAID το κόβεις σε 4 κομμάτια των 64ΚΒ και τα γράφεις ταυτόχρονα σε 4 δίσκους (4*64=256), που σημαίνει ότι το καθένα ένα θα γραφεί σε 1/4 δευτερόλεπτα, αλλά και όλα μαζί σε 1/4 δευτερόλεπτα. Σύνολο 4 δίσκοι τετραπλάσια ταχύτητα.
ok thanks! Got it…