Ανοχή απέναντι σε Σφάλµατα Fault Tolerance Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Κύπρου
Βασικές Έννοιες Η ποιότητα της λειτουργίας ενός συστήµατος εξαρτάται από: Τη διαθεσιµότητα του (Availability) Την Αξιοπιστία του (Reliability) Την Ασφάλεια του (Safety) Την δυνατότατα συντήρησης του (Maintainability) Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 2
Λάθος (fault) Ένα Λάθος (fault) είναι µια δυσλειτουργία (malfunction) η οποία µπορεί να προκύψει από: Σφάλµα στον σχεδιασµό Σφάλµα στην κατασκευή Προγραµµατιστικό Σφάλµα Φυσική καταστροφή Φθορά λόγο της παρόδου του χρόνου Μη αναµενόµενη είσοδο Λειτουργικό σφάλµα Ζηµιά λόγων τρωκτικών Άλλους λόγους εν είναι απαραίτητο ένα λάθος να οδηγήσει αµέσως σε αποτυχία Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 3
Κατηγορίες Λαθών Τα λάθη µπορούν να καταταχθούν σε διάφορες κατηγορίες, όπως: Πρόσκαιρα (transient) Ενδιάµεσα (intermittent) Μόνηµα (permanent) Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 4
Αναµενόµενος Χρόνος για να συµβεί Αποτυχία Έχει γίνει αρκετή ερευνητική δουλεία (µέσω στατιστικής ανάλυσης) σχετικά µε ανοχή συστηµάτων έναντι σε σφάλαγα στα ηλεκτρονικά µέρη ενός συστήµατος. Έστω ότι ένα µέρος του συστήµατος έχει πιθανότητα αποτυχίας p λόγο δυσλειτουργίας κάποια δεδοµένη χρονική στιγµή. Ποια η πιθανότητα να µην αποτύχει για k συνεχόµενες χρονικές στιγµές; (p(1-p) k ) Ο αναµενόµενος χρόνος για να αποτύχει = k=1 kp(1-p) k-1 = 1/p Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 5
Μοντέλα Αποτυχίας Failure Models Στον πίνακα που ακολουθεί παρουσιάζονται διάφοροι τύποι Αποτυχίας (failures). Type of failure Crash failure Omission failure Receive omission Send omission Timing failure Response failure Value failure State transition failure Arbitrary failure Description A server halts, but is working correctly until it halts A server fails to respond to incoming requests A server fails to receive incoming messages A server fails to send messages A server's response lies outside the specified time interval The server's response is incorrect The value of the response is wrong The server deviates from the correct flow of control A server may produce arbitrary responses at arbitrary times Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 6
Τύποι Σφαλµάτων σε Επεξεργαστές Αθόρυβα λάθη (Fail-silent faults) Ο επεξεργαστής ο οποίος έχει το σφάλµα ΕΝ ανταποκρίνεται. Απλά σταµατά να λειτουργεί. Γι αυτό και ονοµάζονται και fail-stop faults. Βυζαντινά λάθη (Byzantine faults) Ο επεξεργαστής στον οποίο υπάρχει σφάλµα συνεχίζει τη λειτουργία του και είναι δυνατό να δίνουν λάθος απαντήσεις σε ερωτήµατα. Είναι δυνατό πολλοί επεξεργαστές οι οποίοι έχουν βυζαντινά λάθη να δίνουν την εντύπωση ότι το σύστηµα λειτουργεί σωστά. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 7
Ορισµός Σύγχρονων και Ασύγχρονων Συστηµάτων σε σχέση µε την ανοχή τους απέναντι σε Σφάλµατα Σε αυτό τον άξονα θα δούµε την αντοχή των συστηµάτων έναντι σε λάθη σε σχέση µε την επικοινωνία των µερών ενός ΚΣ. Ένα Σύγχρονο σύστηµα έχει την ιδιότητα ότι ΠΑΝΤΑ ανταποκρίνεται σε µηνύµατα εντός ενός καθορισµένου (και πεπερασµένου) χρονικού περιθωρίου. Το χρονικό αυτό διάστηµα θα είναι τέτοιο ώστε να είναι δυνατό να αποσταλεί ένα µήνυµα n φορές σε περίπτωση που υπάρχει κάποιο σφάλµα. Ένα σύστηµα το οποίο δεν έχει την πιο πάνω ιδιότητα καλείται Ασύγχρονο. Η διαχείριση σφαλµάτων σε Ασύγχρονα συστήµατα είναι δυσκολότερη σε σχέση µε τη διαχείριση σύγχρονων συστηµάτων. Γιατί; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 8
Χρήση Περίσσειας Πόρων για την Αντιµετώπιση Σφαλµάτων Μια γενική τεχνική αντιµετώπισης σφαλµάτων είναι η χρήση περίσσειας πόρων (redundancy). Υπάρχουν τριών ειδών τέτοιοι πόροι: Πληροφορία Χρόνος Φυσικά µέρη (active or primary backup schemes) Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 9
Ανοχή έναντι σε Σφάλµατα µε χρήση περίσσειας Ενεργών φυσικών µερών Σε αυτή την περίπτωση υπάρχουν περισσότερα από ένα στιγµιότυπα των φυσικών πόρων (µερών) του συστήµατος. Π.χ., πολλαπλοί επεξεργαστές. Στην περίπτωση που ΟΛΟΙ αυτοί οι πόροι είναι σε συνεχή λειτουργία (δηλ. δουλεύουν παράλληλα), έχουµε την περίπτωση των Ενεργών (active) πολλαπλών φυσικών µερών. Θέµατα σχεδιασµού τέτοιων σχηµάτων είναι: 1. Πόσοι επιπλέον πόροι χρειάζονται; 2. Μέση και χειρότερη απόδοση του συστήµατος στην απουσία σφαλµάτων 3. Μέση και χειρότερη απόδοση του συστήµατος, όταν υπάρχουν σφάλµατα. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 10
Η αποτυχία Κρύβεται, λόγο των πολλαπλών φυσικών πόρων Failure Masking by Redundancy Triple modular redundancy. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 11
Ανοχή έναντι σε Σφάλµατα µε χρήση πρωτεύων και εφεδρικών φυσικών µερών Στην περίπτωση του σχήµατος πρωτεύων και εφεδρικών φυσικών πόρων, σε κάθε χρονική στιγµή, ένας από τους πόρους παρέχει τις υπηρεσίες και κάνει όλη τη δουλειά. Όταν προκύψει σφάλµα στον πρωτεύον πόρο, τότε ο εφεδρικός λαµβάνει τη θέση του. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 12
Ανοχή έναντι σε Σφάλµατα µε χρήση πρωτεύων και εφεδρικών φυσικών µερών (2) 1.Request 2. Do work 3 UpDate 4. Do work client Primary backup 6. Reply 5. ack Τι θα συµβεί αν ο πρωτεύον επεξεργαστής χαλάσει πρίν το βήµα 2; Τι θα συµβεί αν ο πρωτεύον επεξεργαστής χαλάσει µετά το βήµα 2 και πρίν ή κατά το βήµα 3; Τι θα συµβεί αν ο πρωτεύον επεξεργαστής χαλάσει µετά το βήµα 4 και πρίν ή κατά το βήµα 6; Προτείνεται λύσεις για τα προβλήµατα που µπορεί να προκύψουν σε ένα τέτοιο σχήµα. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 13
Συµφωνία (µεταξύ των διαφορετικών µερών) σε Συστήµατα Σφαλµάτων Σε πολλά κατανεµηµένα συστήµατα χρειάζεται οι διεργασίες να έχουν κάνει κάποιες συµφωνίες τις οποίες καλούνται να εξασφαλίζουν. Στην περίπτωση που δεν υπάρχουν σφάλµατα στην επικοινωνία και στους επεξεργαστές και όλα κυλούν οµαλά, τότε η ικανοποίηση των συµφωνιών είναι άµεση υπόθεση. Τι θα συµβεί όµως στην περίπτωση που στο σύστηµα υπάρχουν σφάλµατα; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 14
Συµφωνία (µεταξύ των διαφορετικών µερών) σε Συστήµατα Σφαλµάτων (2) Ο γενικός στόχος των κατανεµηµένων αλγορίθµων που σχετίζονται σε τις συµφωνίες είναι: Όλοι οι Μη εσφαλµένοι επεξεργαστές να καταλήγαν σε µια κοινή παραδοχή (θέση) σε κάποια θέµατα, σε πεπερασµένο αριθµό βηµάτων. Υπάρχουν διάφορες περιπτώσεις οι οποίες σχετίζονται µε διάφορες παραµέτρους του συστήµατος, όπως: Τα µηνύµατα παραδίνονται αξιόπιστα πάντα; Υπάρχει περίπτωση να προκύψουν σφάλµατα σε διεργασίες; Αν ναι τί τύπου είναι Αθόρυβα ή Βυζαντινά; Τι είναι το σύστηµα, σύγχρονο ή ασύγχρονο; Υπενθύµιση του προβλήµατος των δύο (ή περισσότέρων) στρατηγών οι οποίοι πρέπει να συντονίσουν την επίθεση τους έναντι ενός κοινού εχθρού. Κάποιοι από τους στρατηγούς µπορεί να είναι προδότες (traitors), δήλ., να ΜΗΝ είναι πιστοί (loyals) Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 15
Συµφωνία (µεταξύ των διαφορετικών µερών) σε Συστήµατα Σφαλµάτων (3) Το πρόβληµα των (Βυζαντινών) στρατηγών τρείς από τους οποίους είναι πιστοί και ένας ψεύτης. Οι αριθµοί στα τόξα του γραφήµατος είναι οι χιλιάδες των στρατιωτών του κάθε στρατού. Αλγόριθµος: Οι στρατηγοί ανακοινώνουν σε όλους τους άλλους στρατηγούς για τις χιλιάδες των υπηκόων τους. Κάθε στρατηγός συλλέγει τις πληροφορίες σε ένα διάνυσµα µε βάση το τι του έστειλαν οι άλλοι στο βήµα (a) Κάθε στρατηγός στέλνει σε όλους τους άλλους το διάνυσµα του από το (b). Κάθε στρατηγός ελέγχει τις αντίστοιχες θέσεις των διανυσµάτων που έλαβε και αν µια τιµή υπερισχύει των άλλων την κρατά στο τελικό του διάνυσµα. Αν όχι τότε θέτει UnKnown αυτή τη θέση του τελικού διανύσµατος. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 16
Συµφωνία (µεταξύ των διαφορετικών µερών) σε Συστήµατα Σφαλµάτων (4) Ακόµα ένα παράδειγµα. Εδώ έχουµε ένα προδότη στρατηγό και δυο πιστούς. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 17