תרחישים לדוגמה
ארכיטקטורת ההפניה הזו של זמינות מתאימה לתרחישי השימוש הבאים:
- אפליקציות קריטיות לעסק שדורשות RTO ו-RPO נמוכים יותר.
- אתם רוצים לפרוס רפליקה באזור או בצומת אחרים, כדי להבטיח זמינות גבוהה של מסדי הנתונים ולהגן מפני כשלים במכונות, בשרתים ובאזורים.
- אתם רוצים הגנה מפני טעויות משתמשים ופגיעה בנתונים (באמצעות גיבויים).
איך פועלת ארכיטקטורת ההפניה
הזמינות המשופרת היא תוספת לזמינות הרגילה. היא כוללת מופעים של העתקי קריאה באזור כדי לאפשר זמינות גבוהה (HA) שמקצרת את היעד לזמן השחזור (RTO). הגישה הזו גם מקטינה את היעד להתאוששות מאסון (RPO) בכך שהיא מאפשרת להעביר בסטרימינג שינויים טרנזקציונליים לרפליקה.
כדי להשיג זמינות גבוהה ב-AlloyDB Omni, צריך להשתמש בשני מופעים של מסדי נתונים לפחות. מופע אחד משמש כמסד הנתונים הראשי, שתומך בפעולות קריאה וכתיבה. שאר המכונות משמשות כרפליקות לקריאה, שפועלות במצב קריאה בלבד.
אלה מושגים חשובים שקשורים לזמינות גבוהה:
- מעבר לגיבוי (Failover) הוא התהליך שמתבצע במהלך הפסקת שירות לא מתוכננת, שבו המופע הראשי נכשל או הופך ללא זמין, והעותק המשוכפל במצב המתנה מופעל כדי להניח את מצב הראשי (קריאה-כתיבה). התהליך הזה נקרא קידום. בדרך כלל בתרחישים כאלה, כשהשרת הראשי או מסד הנתונים הראשי חוזרים לפעול, צריך לבנות מחדש את מסד הנתונים ואז הוא צריך לפעול כגיבוי. כדי לספק זמן פעולה תקינה גבוה, יש מנגנונים שמבצעים יתירות כשל אוטומטית.
- מעבר, שנקרא גם היפוך תפקידים, הוא הליך שמשמש למעבר בין המצבים של מסד הנתונים הראשי ואחד ממסדי הנתונים במצב המתנה, כך שמסד הנתונים הראשי הופך למסד נתונים במצב המתנה ומסד הנתונים במצב המתנה הופך למסד הנתונים הראשי. העברות מתרחשות בדרך כלל באופן מבוקר ומסודר, ויכולות להתבצע מכל מיני סיבות, למשל כדי לאפשר זמן השבתה ותיקון של מסד הנתונים הראשי הקודם. מעברים חלקים צריכים לאפשר מעבר חזרה בעתיד בלי צורך ליצור מחדש את המצב החדש של המתנה או היבטים אחרים של הגדרת הרפליקציה.
אפשרויות לזמינות גבוהה
| הערה: Patroni ו-HAProxy הם כלים לשימוש לא מסחרי של צד שלישי, והם תואמים ל-AlloyDB Omni. |
|---|
מומלץ להגדיר לפחות שני מסדי נתונים במצב המתנה, כדי שאובדן של מסד נתונים אחד לא ישפיע על הזמינות הגבוהה של האשכול. במצב הזה, יש לכם לפחות זוג HA אחד במקרה של מעבר לגיבוי או במהלך תחזוקה מתוכננת של צומת.
כדי לתכנן את הגודל והצורה של פריסת AlloyDB Omni, קראו את המאמר תכנון ההתקנה של AlloyDB Omni במכונה וירטואלית.
מאזני עומסים
מנגנון חשוב נוסף שעוזר להליכי מעבר ויתירות כשל חלקים יותר הוא נוכחות של מאזן עומסים.
זמינות גבוהה
מסדי נתונים של רפליקות לקריאה שנפרסו באזור מסוים מספקים זמינות גבוהה אם מסד הנתונים הראשי נכשל. אם מתרחש כשל במסד הנתונים הראשי, מסד הנתונים במצב המתנה מקודם כדי להחליף את הראשי, והאפליקציה ממשיכה לפעול עם השבתה קצרה או ללא השבתה בכלל.
מומלץ לבצע בדיקות שנתיות או חצי-שנתיות קבועות בצורה של מעבר בין מסדי נתונים כדי לוודא שכל האפליקציות שמסתמכות על מסדי הנתונים האלה עדיין יכולות להתחבר ולהגיב בפרק זמן מתאים.
כדי להגן על הנתונים ברמת האזור, אפשר להשתמש בכל אחד מסוגי הפריסה ולהציב את אחת מהרפליקות לקריאה במצב המתנה באזור זמינות שונה מזה של מסד הנתונים הראשי.
יתרון נוסף של רפליקות לקריאה בלבד הוא היכולת להעביר פעולות לקריאה בלבד למסדי הנתונים במצב המתנה, שיכולים לשמש כמסדי נתונים לדיווח באמצעות נתונים עדכניים. הגישה הזו מפחיתה את העומס ואת התקורה בשרת הראשי לקריאה וכתיבה.
הגדרת גיבויים וזמינות גבוהה
אפשר להגדיר עותקים לקריאה בלבד בכמה אזורים, כדי לספק זמינות גבוהה. הם מספקים RTO ו-RPO נמוכים, אבל לא מגנים מפני הפסקות מסוימות, כמו פגם לוגי בנתונים, למשל מחיקה של טבלה בטעות או עדכוני נתונים שגויים. לכן, בנוסף להגדרת HA, צריך לבצע גיבויים באופן קבוע. פרטים נוספים זמינים במאמר בנושא ארכיטקטורת זמינות רגילה.
באיור 1 מוצגת הגדרת HA מומלצת עם שני מסדי נתונים של רפליקות לקריאה בלבד במצב המתנה, בשני אזורי זמינות שונים.

איור 1. AlloyDB Omni עם אפשרויות לגיבויים ולזמינות גבוהה.
כדי להגן על הנתונים מפני אובדן במקרה של כשל במופע הראשי, צריך להגדיר שכפול במצב סינכרוני. השיטה הזו מספקת הגנה על נתונים חזקה, אבל היא יכולה להשפיע על הביצועים של מסד הנתונים הראשי, כי צריך לכתוב את כל ה-commits גם למסד הנתונים הראשי וגם לכל מסדי הנתונים המסונכרנים במצב המתנה. חיבור רשת עם השהיה נמוכה בין מופעי מסד הנתונים האלה הוא חיוני להגדרה הזו.
הטמעה
כשבוחרים ארכיטקטורת זמינות, חשוב לזכור את היתרונות, המגבלות והחלופות הבאים.
יתרונות
- הגנה מפני כשלים במכונות.
- הגנה מפני כשלים בשרת.
- הגנה מפני כשלים באזור.
- זמן ה-RTO קצר משמעותית בהשוואה לזמינות רגילה.
מגבלות
- אין הגנה נוספת מפני אסונות אזוריים.
- השפעה פוטנציאלית על הביצועים של השרת הראשי בגלל שכפול סינכרוני.
- הגדרת הזרמת WAL של PostgreSQL במצב סינכרוני מאפשרת אפס אובדן נתונים (
RPO=0) במהלך פעולה רגילה או מעברים רגילים לגיבוי בעת כשל. עם זאת, הגישה הזו לא מגינה מפני אובדן נתונים במצבים ספציפיים של תקלה כפולה, למשל כשכל המכונות במצב המתנה אובדות או שאי אפשר להגיע אליהן מהמכונה הראשית, ומיד לאחר מכן המכונה הראשית מופעלת מחדש.
חלופות
- ארכיטקטורת זמינות רגילה לאפשרויות גיבוי ושחזור.
- ארכיטקטורת הזמינות Premium לתוכנית התאוששות מאסון (DR) ברמת האזור, רפליקות קריאה נוספות והיקף תוכנית התאוששות מאסון (DR) מורחב.