בדף הזה מוסבר איך הארכיטקטורה של Memorystore for Valkey מספקת תמיכה בזמינות גבוהה (HA). בנוסף, בדף הזה מוסבר איך לשפר את הביצועים והיציבות של מופע באמצעות הגדרות HA מומלצות.
זמינות גבוהה
Memorystore for Valkey מבוסס על ארכיטקטורה עם זמינות גבוהה, שבה הלקוחות ניגשים ישירות לצמתים מנוהלים של Memorystore for Valkey. הלקוחות שלכם עושים את זה על ידי התחברות לנקודות קצה ספציפיות, כמו שמתואר במאמר התחברות למופע של Memorystore for Valkey.
היתרונות של התחברות ישירה לשברי מסד נתונים:
חיבור ישיר מאפשר להימנע מצעדים ביניים, וכך מצמצם את זמן הטעינה הלוך ושוב (השהיית הלקוח) בין הלקוח לבין צומת Memorystore for Valkey.
במצב Cluster Mode Enabled (הפעלת מצב אשכול), חיבור ישיר מונע נקודת כשל בודדת כי כל רסיס מתוכנן להיכשל באופן עצמאי. לדוגמה, אם תנועה מכמה לקוחות מעמיסה יתר על המידה על משבצת (חלק ממרחב המפתחות), כשל בשבר מגביל את ההשפעה על השבר שאחראי על הצגת המשבצת.
הגדרות מומלצות
מומלץ ליצור מופעים זמינים מאוד בכמה אזורים במקום מופעים באזור יחיד, כי הם מספקים אמינות טובה יותר. עם זאת, אם בוחרים להקצות מופע ללא רפליקות, מומלץ לבחור מופע של אזור יחיד. מידע נוסף זמין במאמר מתי כדאי להשתמש במופע של אזור יחיד.
כדי להפעיל זמינות גבוהה למופע, צריך להקצות לפחות עותק אחד לכל רסיס. אפשר לעשות את זה כשיוצרים את המופע, או להגדיל את מספר העותקים לפחות לעותק אחד לכל שארד. הרפליקות מספקות מעבר אוטומטי לגיבוי במהלך תחזוקה מתוכננת וכשל לא צפוי של שארד.
מומלץ להגדיר את הלקוח בהתאם להנחיות שבמאמר שיטות מומלצות ללקוחות. השימוש בשיטות המומלצות מאפשר ללקוח לטפל בפריטים הבאים במופע שלכם באופן אוטומטי וללא השבתה:
- התפקיד (מעבר אוטומטי לגיבוי)
- נקודת הקצה (החלפת הצומת)
- שינויים בהקצאת משבצות שקשורים להפעלה של מצב אשכול (הרחבה והקטנה של צרכנים)
עותקים
מכונה של Memorystore for Valkey עם זמינות גבוהה היא משאב אזורי. Memorystore for Valkey מפזר את מכונות ה-VM הראשיות והמשוכפלות של השארדים על פני כמה אזורים כדי להגן מפני הפסקת חשמל באזור. Memorystore for Valkey תומך במכונות עם 0 עד 5 רפליקות לכל shard.
אפשר להשתמש בעותקים כדי להגדיל את קצב העברת הנתונים לקריאה, אבל זה עלול לגרום לנתונים להיות לא עדכניים.
- הפעלת מצב אשכול: משתמשים בפקודה
READONLYכדי ליצור חיבור שיאפשר ללקוח לקרוא מהעותקים. - מצב אשכול מושבת: מתחברים לנקודת הקצה של הקורא כדי להתחבר לאחת מהרפליקות הזמינות.
דוגמאות למופעים שבהם מופעל מצב אשכול
התרשימים הבאים ממחישים דוגמאות למופעים שבהם הופעל Cluster Mode:
דוגמה למופע עם שלושה רסיסים ואפס עותקים משוכפלים לכל רסיס

דוגמה למופע עם שלושה רסיסים ועותק אחד לכל רסיס

דוגמה למופע עם שלושה שארדים וכמה רפליקות לכל שארד

דוגמאות למופעים שבהם מצב האשכול מושבת
התרשים הבא מדגים דוגמה למופעים שבהם Cluster Mode מושבת:
דוגמה למופע עם כמה עותקים

מעבר אוטומטי לגיבוי (failover)
מעבר אוטומטי לגיבוי בתוך שארד יכול לקרות בגלל תחזוקה או כשל בלתי צפוי של הצומת הראשי. במהלך מעבר לגיבוי, העותק הופך לעותק הראשי. אפשר להגדיר רפליקות באופן מפורש. בנוסף, השירות יכול להקצות באופן זמני רפליקות נוספות במהלך תחזוקה פנימית כדי למנוע השבתה.
מעבר אוטומטי לגיבוי מונע אובדן נתונים במהלך עדכוני תחזוקה. מידע נוסף על התנהגות המעבר האוטומטי לגיבוי בזמן תחזוקה זמין במאמר התנהגות המעבר האוטומטי לגיבוי בזמן תחזוקה.
משך הזמן של מעבר לשירות גיבוי ותיקון הצומת
מעבר גיבוי אוטומטי יכול להימשך עשרות שניות במקרה של אירועים לא מתוכננים, כמו קריסת תהליך של צומת ראשי או כשל בחומרה. במהלך הזמן הזה המערכת מזהה את הכשל ובוחרת בעותק משוכפל להיות הראשי החדש.
תיקון הצומת יכול להימשך כמה דקות עד שהשירות יחליף את הצומת שנכשל. הדבר נכון לגבי כל הצמתים הראשיים והמשוכפלים. במקרים שבהם אין זמינות גבוהה (לא הוקצו רפליקות), תיקון של צומת ראשי שנכשל גם לוקח זמן של כמה דקות.
התנהגות הלקוח במהלך מעבר גיבוי אוטומטי לא מתוכנן
סביר להניח שהחיבורים של הלקוחות יאופסו בהתאם לאופי הכשל. אחרי שחזור אוטומטי, אפשר לנסות שוב להתחבר באמצעות השהיה מעריכית לפני ניסיון חוזר כדי להימנע מעומס יתר על הצמתים הראשיים וצמתי הרפליקה.
לקוחות שמשתמשים בעותקים משוכפלים כדי להגדיל את קצב העברת הנתונים לקריאה עשויים לחוות ירידה זמנית בקיבולת עד שהצומת שנכשל יוחלף באופן אוטומטי.
כתיבות שאבדו
במהלך מעבר לגיבוי בעקבות כשל לא צפוי, יכול להיות שפעולות כתיבה שאושרו יאבדו בגלל האופי האסינכרוני של פרוטוקול השכפול של Valkey.
אפליקציות לקוח יכולות להשתמש בפקודה WAIT של Valkey כדי לשפר את בטיחות הנתונים בעולם האמיתי.
ההשפעה על מרחב המפתחות של הפסקת חשמל באזור אחד
בקטע הזה מוסבר איך הפסקת חשמל באזור יחיד משפיעה על מופע של Memorystore for Valkey.
מופעים בכמה אזורים
מופעי HA: אם יש הפסקת חשמל באזור מסוים, כל מרחב המפתחות זמין לקריאה ולכתיבה, אבל מכיוון שחלק מהרפליקות לקריאה לא זמינות, קיבולת הקריאה מופחתת. מומלץ מאוד להקצות יותר מדי קיבולת לאשכול כדי שלמופע תהיה מספיק קיבולת קריאה, במקרה הנדיר של הפסקת חשמל באזור יחיד. אחרי שההשבתה מסתיימת, העותקים המשוכפלים באזור המושפע משוחזרים וקיבולת הקריאה של האשכול חוזרת לערך שהוגדר. מידע נוסף מופיע במאמר תבניות לאפליקציות עמידות שניתנות להרחבה.
מופעים ללא זמינות גבוהה (ללא עותקים): אם יש הפסקת חשמל באזור מסוים, חלק ממרחב המפתחות שהוקצה באזור המושפע עובר ניקוי נתונים, ולא ניתן לבצע בו פעולות כתיבה או קריאה למשך ההפסקה. אחרי שההפסקה מסתיימת, השרתים הראשיים באזור המושפע משוחזרים והקיבולת של האשכול חוזרת לערך שהוגדר.
מופעים של אזור יחיד
- גם מקרים של זמינות גבוהה וגם מקרים של זמינות לא גבוהה: אם יש הפסקת חשמל באזור שבו מוקצה המופע, האשכול לא זמין והנתונים נמחקים. אם יש הפסקת חשמל באזור אחר, האשכול ממשיך להציג בקשות קריאה וכתיבה.
שיטות מומלצות
בקטע הזה מתוארות שיטות מומלצות לזמינות גבוהה ולשכפולים.
הוספת עותק
כדי להוסיף רפליקה צריך ליצור תמונת מצב של RDB. תמונות מצב של RDB משתמשות בפיצול תהליכים ובמנגנון'העתקה בעת כתיבה' כדי לצלם תמונת מצב של נתוני הצומת. בהתאם לדפוס הכתיבה לצמתים, הזיכרון שבו נעשה שימוש בצמתים גדל כשהדפים שמושפעים מהכתיבה מועתקים. הגודל של הזיכרון יכול להיות עד פי שניים מגודל הנתונים בצומת.
כדי לוודא שלצמתים יש מספיק זיכרון כדי להשלים את התמונה, צריך להגדיר את maxmemory ל-80% מקיבולת הצומת, כך ש-20% יהיו שמורים לתקורה. התקורה הזו של הזיכרון, בנוסף לתמונות המצב של המעקב, עוזרת לכם לנהל את עומס העבודה כדי ליצור תמונות מצב מוצלחות. בנוסף, כשמוסיפים רפליקות, כדאי להקטין את נפח תנועת הכתיבה ככל האפשר. מידע נוסף זמין במאמר מעקב אחרי השימוש בזיכרון של מופע.