להפעיל מחדש את OpenVPN בכל יום? בחרו בתקלה, לא בשעון
הפעלה מחדש לפי לוח שנה היא תחזוקה, לא התאוששות. החליטו אם העמית, התהליך או היישום כשלו, ואז תנו לאותה שכבה את ההדק שהיא צריכה.
אתם יורשים משימת cron שמפעילה מחדש את OpenVPN כל יום בשעה 04:10, והיא שומרת על יציבות כבר שנה. היא גם מנתקת מנהרה תקינה בשעה קבועה ולא עושה דבר בנוגע לתקלה שמתרחשת באמת בצהריים. הפעלה מחדש לפי לוח שנה היא החלטת תחזוקה. התאוששות היא תכנון אחר, עם הדק מסוים.
שלוש צורות כשל דורשות שלושה בעלים שונים. בחרו קודם את הכשל, והמנגנון יגיע אחריו.
שלושה כשלים, שלושה בעלים
מנהרה יכולה להיות פעילה כשהעמית שלה נעלם: התהליך רץ, הממשק קיים, ושום דבר שימושי לא עובר דרכו. תהליך יכול להיות מת כשהעמית תקין, ואז רק מה שהפעיל אותו יכול להחזיר אותו. יישום מאחורי המנהרה יכול להיות שבור כשגם המנהרה וגם העמית בריאים, ואז הפעלה מחדש של הלקוח מרחיבה את התקלה בלי לגעת בסיבה. ההפרדה בין שלושת המקרים היא כל ההחלטה.
לכל אחד יש האות שלו והבעלים שלו. חיות שייכת לפרוטוקול ה-VPN, מחזור חיי התהליך שייך למנהל השירותים, ובריאות היישום שייכת לניטור עם מנדט צר.
מה אפשרי ומה בלתי אפשרי באפשרות חיות
keepalive הוא עוזר שמתפרש לזוג ping ו-ping-restart, כפי שמתאר מדריך אפשרויות הקישור, וזמני הפסקה שהוא מייצר אינם זהים בשרת ובלקוח. ערכים שנדחפים מהשרת יכולים גם לעקוף את מה שהלקוח הגדיר מקומית, ולכן זמן הפסקה שנראה נכון בקובץ מקומי עשוי שלא להיות זה שבתוקף.
זה הופך אותו לכלי הנכון לעמית אבוד ולכלי הלא נכון לתהליך מת, שכן תהליך שיצא אינו יכול להריץ את הטיימרים שלו. הוא גם לא אומר דבר על האם יישום מאחורי המנהרה עונה, מפני שההחלפה מתרחשת בין שתי נקודות הקצה של ה-VPN. העתקת זוג זמני הפסקה מפריסה אחרת בלי לבדוק תפקיד, הפסקות צפויות והתנהגות אימות מחדש היא הדרך שבה מנהרה יציבה מתחילה לרעוד.
מה שייך למנהל השירותים
אם הדמון יוצא, המנהל שהפעיל אותו מחליט מה קורה אחר כך. מדיניות הפעלה מחדש הנשענת על כשל, עם השהיה והגבלת קצב הפעלה, מטפלת בלולאת קריסות בלי להפוך אותה לפצצת fork. ההגדרות האלה מגיבות לתוצאות התהליך ולזמני הפסקה, והן אינן מזהות תהליך שחי אך חסר תועלת. זה אינו פער שצריך לטלא בפוליסה רחבה יותר; זהו הגבול בין מחזור חיים לחיות.
הבעלות חשובה לא פחות מההגדרות. חיבור שהופעל על ידי מנהל רשת של שולחן העבודה צריך לשמור על סידור ההתאוששות של אותו מנהל, והוספת יחידת שירות מתחרה לאותו ממשק נותנת למנהרה אחת שני בעלים. בחרו אחד ורשמו איזה.
מתי הפעלה מחדש מתוזמנת מוצדקת
הפעלה מחדש בזמן קבוע יכולה להיות פעולת תחזוקה סבירה: יש לה בעלים, חלון, מופע בעל שם ודרך כניסה עצמאית. מה שהיא לא יכולה להיות הוא מדיניות אמינות כללית שגם מנתקת את כולם בשעה קבועה.
אם ההפעלה מחדש קיימת כדי לעקוף דליפה מוכרת או מצב תקוע, אמרו זאת בתיאור היחידה, אחרת האדם הבא ישמור עליה לנצח.
בדקו את המקרים החשובים: העמית נעלם בזמן שהתהליך נשאר פעיל, התהליך יוצא, ניסיון חוזר דורש אישורים חדשים, והמנהרה חוזרת בזמן שהיישום נשאר שבור. שימו לב איזה רכיב מגיב ואיזה מצב הוא משאיר אחריו.
השאלה הנכונה אינה כל כמה זמן להפעיל מחדש, אלא מה אמור להבחין בתקלה ראשון.