כיצד ליצור בסיס נתונים Redis זמין ביותר באמצעות ניטור סנטינל

פורסם ב-10 ביוני, 2019

סקירה כללית

Redis הוא מאגר מבני נתונים של קוד פתוח בזיכרון שיכול לשמש מתווך הודעות, מטמון ומסד נתונים עם ערך מפתח. הוא תומך בכמה מבני נתונים: חשיש, רשימות, ערכות, ערכות מיון, מפת סיביות, אינדקסים גיאוגרפיים, היפרלוגים וכו '.

מה שמייחד את Redis הוא שהוא יכול להיחשב הן לחנות והן למטמון. זה מתוכנן באופן בו נתונים משתנים ו / או נקראים מהזיכרון הראשי של המחשב.

בין שאר התכונות, Redis מספקת זמינות גבוהה, דרך רדיס סנטינלומחיצה אוטומטית, דרך אשכול Redis. בנוסף, ל- Redis יש מנגנון שכפול המאפשר למקרי עבדים להיות עותקים מדויקים של מופעי אב. העבד יתחבר אוטומטית למאסטר בכל פעם שהקשר יפרק, ומטרתו להיות העתק מדויק שלו.

מכיוון ש- Redis Sentinel מספק זמינות גבוהה ל- Redis, הוא יכול להתמודד עם כשלים באופן אוטומטי ללא כל התערבות אנושית במקרים רבים, אך מספק גם משימות אחרות כמו ניטור, התראות ומתפקד כספק תצורה עבור לקוחות.

אבל, מה קורה כאשר סנטינל מגלה שרת Redis מושבת? נגלה במאמר זה כיצד ליצור שירות וירטואלי מלא זמין עבור Redis.

אנא קח בחשבון כי ניתן לבצע תצורה זו גם אם שרת ה- Redis שלך אינו משתמש בסנטינל לצורך פיקוח.

הפוך מחדש את סביבת איזון העומסים

התרחיש שאנו רוצים להשיג במאמר זה מוצג בתרשים שלהלן.

Redis Sentinel בודק את המצב של כל צמתי ה- Redis ומשנה את תפקיד שרת ה- Redis ברגע שמתגלה שגיאה.

מאזן העומסים בודק גם את המצב, אך הוא עושה זאת מעת לעת מדי שניות. יתכנו מקרים בהם סנטינל מזהה את הבעיה, אולם מאזן העומס יכול לקחת מספר שניות עד אשר הוא מבין. זה יכול להוביל לכך שהאיזון שולח בקשות לאדון הלא נכון שהוא זה שנכשל זה עתה אך הוחלף על ידי סנטינל.

זאבנט מציעה דרך לפתור בעיה זו, חוות L4 מבצעת בדיקות מעת לעת. מצד שני, יש גם את הזרימה שהועברה אל ה- backend שאינה מכילה שום בדיקה קודמת. כאשר האפוטרופוס החקלאי מבין כי ה- backend אינו מגיב, הוא מעורר את האזעקה ומצביע על כך שהזרם לא אמור לעבור בדרך זו.

אם לוקחים בחשבון זאת, יש לנו מצד אחד את הצ'קים ומצד שני את הבקשות. אם הסימון נכשל, הזרימה נשלחת מייד לצומת אחר. אפילו העתירות המתמשכות מופנות לצומת מקוון אחר. זה יוסבר בפירוט נוסף בתצורה.

חזור לתצורת איזון עומס

לפני הקמת החווה, עלינו להיות IP וירטואלי. כדי להשיג זאת, עבור אל רשת> ממשקים וירטואליים. לאחר מכן לחץ על פעולה> יצירת ממשק וירטואלי. לאחר מכן בחר ממשק האב, שם ממשק וירטואלי ו שלה כתובת ה-IP:

לאחר מכן, עבור שרת וירטואלי של Redis עלינו ליצור חוות L4xNAT. לשם כך, עבור אל LSLB> חוות, ולאחר מכן לחץ על פעולה ו ליצור חוות.

לאחר הגדרת הפרמטרים הראשוניים, לחץ על צור. לאחר מכן עבור אל ה- מתקדם בכדי לוודא שסוג הפרוטוקול הוא TCP.

לאחר מכן, עבור אל שירותים. Backends ו- Farm Guardian יוגדרו כאן לבדיקת בריאות מתקדמת. ראשית מצא את Backends ולחץ על פעולות> הוסף backend כמו שמוצג למטה:

ביצוע שליטה מחדש ובדיקת בריאות מתקדמת

לבסוף, נדרשים בדיקות של שומרי החווה כדי לוודא שאנו משתמשים תמיד בצומת המקוון, כפי שהוסבר לפני כן. לשם כך עלינו לקבוע את התצורה הבאה כפקודה של שומר החווה:

check_tcp -E -H HOST -p PORT -s 'info replication\r\n' -e role:master -t 3

איפה HOST ו נמל יוחלף על ידי כתובת ה- IP והיציאה של שרת ה- Redis של כל backend. הפקודה שכפול מידע יקבל את המידע משרת Redis בכדי לאמת איזה מאסטר חי, חיבורים ינותבו לשרת רק אם מוצג מאסטר התפקידים, ברגע ש Sentinel ישנה את התפקיד אז מאזן העומסים יזהה את השינוי וה- Redis השרת יסומן כמטה. הדגל -t הוא מספר השניות ש- Farm Guardian יחכה לתגובת שרת Redis ואז אם תגיע הזמן הקצוב ללא תגובה, שרת ה- Redis יסומן למטה. מצד שני, ברגע ששיקום הבריאות של שרת Redis ישוחזר, הוא ייעשה שוב.

אבל לפני שתשנה את משמר החווה לחווה מסוימת זו, עבור אל ניטור> שומר חקלאי ולאחר מכן לחץ על פעולה> צור משמר חקלאי.

בחר שם תיאורי לבודק הבריאות החדש שלך של Redis Sentinel, למשל, לבדוק_redis_master כמו בדוגמה, בחר עכשיו check_tcp בתביעה שהוגשה שומר חקלאי להעתקה ולחץ על צור כמוצג להלן.

לבסוף, העתק את הפקודה שהוזכרו לעיל בסעיף פיקוד פרמטר ובצע את התצורה כמוצג להלן.

לחץ על שלח.

כעת, בחר בדיקת בריאות מתקדמת חדשה זו של Farm Guardian בשירות הווירטואלי Redis. חזור אל LSLB> חוות, לחווה שנוצרה עם שם RedisFarm, שירותים כרטיסייה. לבסוף, בחר ב - לבדוק_redis_master הפקודה בדיוק נוצרה תחת בדיקות בריאות עבור backend.

לחץ על עדכון החווה ועכשיו Redis יהיו זמינים לחלוטין.

הפניות

https://redis.io/topics/sentinel
https://redis.io/topics/cluster-tutorial

תשתף:

תיעוד על פי תנאי הרישיון לשימוש חופשי במסמכים של גנו.

האם המאמר הזה היה מועיל?

מאמרים נוספים