Τρία διαφορετικά πράγματα μπορούν να πάνε στραβά με ένα τούνελ, και απαιτούν τρεις διαφορετικές αντιδράσεις. Ο ομότιμος σταματά να απαντά, η διεργασία του δαίμονα πεθαίνει ή η εφαρμογή πίσω από το τούνελ σταματά να εξυπηρετεί. Μια διαμόρφωση που επανεκκινεί την υπηρεσία σε οποιοδήποτε από αυτά δεν είναι προσεκτική επίβλεψη· είναι μία χονδροειδής ενέργεια που εφαρμόζεται σε άσχετες αστοχίες. Η σύγκριση του τι μπορεί πραγματικά να παρατηρήσει κάθε μηχανισμός κάνει την κατανομή εργασίας προφανή.

Τρεις αστοχίες που μοιάζουν με μία

Η σιωπή του ομότιμου σημαίνει ότι το άλλο άκρο σταμάτησε να στέλνει, και OpenVPN μπορεί να το ανιχνεύσει μόνο του επειδή κατέχει τον καρδιακό παλμό. Ο θάνατος της διεργασίας σημαίνει ότι ο δαίμονας βγήκε, κάτι που ο διαχειριστής υπηρεσιών προσέχει και το OpenVPN δεν μπορεί. Η αστοχία της εφαρμογής σημαίνει ότι το τούνελ είναι εντάξει και κάτι πίσω του δεν είναι, και κανένας από τους άλλους δύο μηχανισμούς δεν έχει τρόπο να το ξέρει. Κάθε μία χρειάζεται διαφορετική αντίδραση, και καμία δεν είναι το ίδιο με το να προσέξεις ότι το τούνελ είναι ενεργό.

Πρόκειται για διαφορετικά σήματα από διαφορετικά επίπεδα, και το καθένα έχει έναν ιδιοκτήτη που μπορεί να δράσει χωρίς να μαντέψει. Η ανάμειξή τους παράγει ένα σύστημα που επανεκκινεί σε συμπτώματα που δεν μπορεί να ερμηνεύσει.

Γράψτε τις τρεις περιπτώσεις πριν αλλάξετε οποιονδήποτε χρονιστή. Η ίδια η λίστα συνήθως δείχνει ότι ζητείται από έναν μηχανισμό να καλύψει και τις τρεις.

Σε τι απλώνεται στην πραγματικότητα το keepalive

Η οδηγία keepalive είναι συντομογραφία, και η ανάπτυξη διαφέρει ανά λειτουργία. Σε έναν διακομιστή, το keepalive 10 60 γίνεται τοπικό ping κάθε δέκα δευτερόλεπτα, τοπικό χρονικό όριο επανεκκίνησης 120 δευτερολέπτων και τιμές 10 και 60 που αποστέλλονται στους πελάτες. Το όριο του διακομιστή διπλασιάζεται σκόπιμα ώστε ένας πελάτης να έχει την ευκαιρία να επανεκκινήσει πριν ο διακομιστής τα παρατήσει. Διαβάστε την ανεπτυγμένη μορφή στη λειτουργική διαμόρφωση, όχι τη συντομογραφία στο προφίλ.

Αυτός ο διπλασιασμός είναι ο λόγος που κάθε περιγραφή που ισχυρίζεται ότι και τα δύο άκρα επανεκκινούν μετά από εξήντα δευτερόλεπτα είναι λανθασμένη. Εξηγεί επίσης γιατί τα δύο άκρα δεν πάλλονται συγχρονισμένα όταν μια διαδρομή υποβαθμίζεται.

Ο καρδιακός παλμός είναι κίνηση ομοτίμων του OpenVPN, όχι δοκιμή ICMP σε κάποιον δημόσιο κεντρικό υπολογιστή. Μια απάντηση αποδεικνύει μόνο ότι το μακρινό άκρο του τούνελ είναι ζωντανό. Δεν λέει τίποτα για τη βάση δεδομένων ή την υπηρεσία ιστού που χρειάζεται πραγματικά ο χρήστης.

Τι δεν παρακολουθεί το Restart=on-failure

Διαβάστε τη μονάδα που έχει εγκατασταθεί πριν προσθέσετε παράκαμψη. Το Restart=on-failure αντιδρά σε τεκμηριωμένες συνθήκες αστοχίας διεργασίας, κάτι που δεν είναι το ίδιο με την παρακολούθηση της κατάστασης σύνδεσης. Δεν ενεργοποιείται επειδή ξεκίνησε μια εσωτερική επανασύνδεση, και μια καθαρή έξοδος έχει διαφορετική σημασία από μια κατάρρευση.

Αυτή η διάκριση έχει σημασία επειδή μια εσωτερική επανεκκίνηση κρατά ζωντανή την ίδια διεργασία. Η μονάδα δεν βλέπει τίποτα, το τούνελ ανακτάται μόνο του, και αυτό είναι το σωστό αποτέλεσμα.

Ορίστε το RestartSec και τα όρια εκκίνησης σκόπιμα, αλλιώς ένας βρόχος κατάρρευσης θα χτυπά την πύλη και θα θάψει το πραγματικό σφάλμα κάτω από μηνύματα επανεκκίνησης. Ένα όριο επανεκκίνησης που ενεργοποιείται αφήνει τη μονάδα σε αποτυχία, κάτι ορατό, ενώ ένας απεριόριστος βρόχος δεν είναι.

Το ping-restart και το ping-exit δεν είναι εναλλάξιμα

Το ping-restart προκαλεί την εσωτερική επανεκκίνηση του OpenVPN και κρατά τη διεργασία. Το ping-exit τερματίζει τη διεργασία στο ίδιο είδος ορίου, κάτι που παραδίδει την απόφαση στον διαχειριστή υπηρεσιών. Αλληλοαποκλείονται, και η επιλογή του δεύτερου αλλάζει ποιος κατέχει την ανάκτηση. Η διαφορά είναι ποιος αποφασίζει να δοκιμάσει ξανά, και πόση κατάσταση επιβιώνει της προσπάθειας.

Αν επιλέξετε έξοδο στο όριο, η μονάδα χρειάζεται πολιτική επανεκκίνησης και χειρισμό κατάστασης εξόδου που ταιριάζουν, αλλιώς μια αστοχία ζωτικότητας μοιάζει με μόνιμη διακοπή. Οι επιλογές επιμονής μπορούν επίσης να διατηρήσουν διεπαφές και διαδρομές κατά μήκος μιας εσωτερικής επανεκκίνησης, αλλά όχι κατά μήκος μιας εξόδου διεργασίας.

Επιλέξτε έναν κύκλο ζωής ανά ανάπτυξη και γράψτε γιατί. Ένα προφίλ που φέρει και τις δύο οδηγίες είναι ένα προφίλ που δεν έχει αποφασίσει.

Δοκιμάστε κάθε αστοχία ως δική της περίπτωση

Προσομοιώστε έναν σιωπηλό ομότιμο, έναν σκοτωμένο δαίμονα και μια μη διαθέσιμη εφαρμογή σε εγκεκριμένο παράθυρο, και μετά ελέγξτε ποια ανάκτηση ενεργοποιήθηκε. Ένας σιωπηλός ομότιμος πρέπει να παράγει εσωτερική επανασύνδεση, μια σκοτωμένη διεργασία επανεκκίνηση μονάδας, και μια διακοπή εφαρμογής κανένα από τα δύο. Όταν δύο περιπτώσεις παράγουν την ίδια ενέργεια, η ιδιοκτησία είναι ακόμη μικτή.

Η επαναλαμβανόμενη ανάκτηση δεν είναι επισκευή. Απορριφθέντα διαπιστευτήρια ή δύο πελάτες που μοιράζονται ένα αποτελεσματικό όνομα θα συνεχίσουν να αντικαθιστούν ο ένας τον άλλον, και γρηγορότεροι χρονιστές κάνουν αυτό το πάλσιμο απλώς ταχύτερο.

Σχετικά άρθρα