שירות חיפוש פתוח של אמזון הציג לאחרונה Multi-AZ עם המתנה, אפשרות פריסה שנועדה לספק לעסקים זמינות משופרת וביצועים עקביים לעומסי עבודה קריטיים. עם תכונה זו, אשכולות מנוהלים יכולים להשיג זמינות של 99.99% תוך עמידה בפני כשלים בתשתית אזורית.
בפוסט זה, אנו חוקרים כיצד חיפוש ואינדקס עובדים עם Multi-AZ עם המתנה ומתעמקים במנגנונים הבסיסיים שתורמים לאמינות, פשטות וסובלנות תקלות שלו.
רקע
Multi-AZ עם המתנה פורס מופעי דומיינים של OpenSearch Service על פני שלושה אזורי זמינות, כאשר שני אזורים מוגדרים כפעילים ואחד כמתנה. תצורה זו מבטיחה ביצועים עקביים, גם במקרה של כשלים אזוריים, על ידי שמירה על אותה קיבולת בכל האזורים. חשוב לציין, אזור המתנה זה עוקב אחר א עיצוב סטטי יציב, ביטול הצורך בהקצאת קיבולת או העברת נתונים במהלך כשלים.
במהלך פעילות רגילה, האזור הפעיל מטפל בתעבורת המתאם הן עבור בקשות קריאה והן עבור בקשות כתיבה, כמו גם בתעבורת שאילתות רסיסים. אזור ההמתנה, לעומת זאת, מקבל רק תעבורת שכפול. שירות OpenSearch משתמש בפרוטוקול שכפול סינכרוני עבור בקשות כתיבה. זה מאפשר לשירות לקדם מיידית אזור המתנה למצב פעיל במקרה של תקלה (זמן ממוצע למעבר לכשל <= דקה), המכונה כשל אזורי. האזור הפעיל קודם לכן מורד למצב המתנה, ופעולות השחזור מתחילות לשחזר את מצבו הבריא.
ניתוב תעבורת חיפוש ו-failover כדי להבטיח זמינות גבוהה
בתחום OpenSearch Service, א רַכָּז הוא כל צומת שמטפל בבקשות HTTP(S), במיוחד אינדקס ובקשות חיפוש. בדומיין Multi-AZ עם המתנה, צמתי הנתונים באזור הפעיל פועלים כמתאמים לבקשות חיפוש.
במהלך שלב השאילתה של בקשת חיפוש, הרכז קובע את הרסיסים לשאילתה ושולח בקשה לצומת הנתונים המארח את עותק הרסיס. השאילתה מופעלת באופן מקומי על כל רסיס ומסמכים תואמים מוחזרים לצומת הרכז. צומת הרכז, שאחראי על שליחת הבקשה לצמתים המכילים עותקים רסיסים, מפעיל את התהליך בשני שלבים. ראשית, הוא יוצר איטרטור המגדיר את הסדר שבו יש לבצע שאילתות בצמתים עבור עותק רסיס כך שהתעבורה תתפזר באופן אחיד על פני עותקי רסיס. לאחר מכן, הבקשה נשלחת לצמתים הרלוונטיים.
על מנת ליצור רשימה מסודרת של צמתים לשאילתה עבור עותק רסיס, צומת הרכז משתמש באלגוריתמים שונים. אלגוריתמים אלה כוללים בחירה סיבובית, בחירת העתקים אדפטיביים, ניתוב רסיסים מבוסס העדפות, ו משוקלל עגול.
עבור Multi-AZ עם המתנה, האלגוריתם העגול המשוקלל משמש לבחירת עותקים רסיסים. בגישה זו, אזורים פעילים מקבלים משקל של 1, ולאזור ההמתנה מוקצה משקל של 0. זה מבטיח שלא תישלח תעבורת קריאה לצמתי נתונים באזור הזמינות בהמתנה.
המשקולות מאוחסנות במטא נתונים של מצב אשכול כאובייקט JSON:
כפי שמוצג בצילום המסך הבא, ה us-east-1b
לאזור יש את מעמד האזור שלו StandBy
, המציין שצמתי הנתונים באזור זמינות זה נמצאים במצב המתנה ואינם מקבלים בקשות חיפוש או אינדקס ממאזן העומס.
כדי לשמור על פעולות במצב יציב, אזור הזמינות בהמתנה מסובב כל 30 דקות, מה שמבטיח שכל חלקי הרשת מכוסים על פני אזורי הזמינות. גישה פרואקטיבית זו מאמתת את הזמינות של נתיבי קריאה, ומשפרת עוד יותר את חוסנה של המערכת במהלך כשלים פוטנציאליים. התרשים הבא ממחיש ארכיטקטורה זו.
בתרשים הקודם, ל-Zone-C יש משקל עגול-רובין משוקלל שנקבע לאפס. זה מבטיח שצמתי הנתונים באזור ההמתנה לא יקבלו כל אינדקס או תעבורת חיפוש. כאשר הרכז עורך שאילתות לצמתי נתונים עבור עותקי רסיס, הוא משתמש במשקל עגול משוקלל כדי להחליט על הסדר שבו יש לבצע שאילתה בצמתים. מכיוון שהמשקל הוא אפס עבור אזור הזמינות בהמתנה, בקשות רכז לא נשלחות.
באשכול שירות OpenSearch, ניתן לבדוק את האזורים הפעילים וההמתנה בכל עת באמצעות מדדי סיבוב של אזור זמינות, כפי שמוצג בצילום המסך הבא.
במהלך הפסקות אזוריות, אזור הזמינות בהמתנה עובר בצורה חלקה למצב פתיחת כשל עבור בקשות חיפוש. משמעות הדבר היא שתעבורת שאילתת הרסיסים מנותבת לכל אזורי הזמינות, גם לאלו הנמצאים במצב המתנה, כאשר עותק רסיס בריא אינו זמין באזור הזמינות הפעיל. גישה פתוחה לכשלים מגנה על בקשות חיפוש מפני שיבוש במהלך כשלים, ומבטיחה שירות רציף. התרשים הבא ממחיש ארכיטקטורה זו.
בתרשים הקודם, במהלך המצב היציב, תעבורת שאילתת ה-Shard נשלחת לצומת הנתונים באזורי הזמינות הפעילים (Zone-A ו-Zone-B). עקב כשלים בצמתים באזור A, אזור הזמינות בהמתנה (Zone-C) נכשל בפתיחת תעבורת שאילתות רסיסים, כך שאין כל השפעה על בקשות החיפוש. בסופו של דבר, Zone-A מזוהה כלא בריא ומעבר הקריאה מעביר את ההמתנה ל-Zone-A.
כיצד failover מבטיח זמינות גבוהה במהלך ליקוי כתיבה
מודל השכפול של OpenSearch Service עוקב אחר מודל גיבוי ראשי, המאופיין באופיו הסינכרוני, שבו יש צורך באישור מכל העותקים הרסיסים לפני שניתן לאשר למשתמש בקשת כתיבה. חסרון בולט אחד של מודל שכפול זה הוא הרגישות שלו להאטות במקרה של פגיעה כלשהי בנתיב הכתיבה. מערכות אלו מסתמכות על צומת מנהיג פעיל כדי לזהות כשלים או עיכובים ולאחר מכן לשדר מידע זה לכל הצמתים. משך הזמן שלוקח לזהות בעיות אלו (זמן ממוצע לאיתור) ובהמשך לפתור אותן (זמן ממוצע לתיקון) קובע במידה רבה כמה זמן המערכת תפעל במצב פגום. בנוסף, כל אירוע רשת המשפיע על תקשורת בין-אזורית יכול לעכב משמעותית בקשות כתיבה עקב האופי הסינכרוני של השכפול.
OpenSearch Service משתמש בפרוטוקול תקשורת פנימי של צומת לצומת לשכפול תעבורת כתיבה ותיאום עדכוני מטא נתונים באמצעות מנהיג נבחר. כתוצאה מכך, העמדת האזור שחווה לחץ במצב המתנה לא יטפל ביעילות בבעיה של פגיעה בכתיבה.
כשל בכתיבה אזורית: ניתוק תעבורת שכפול בין אזורים
עבור Multi-AZ עם המתנה, כדי לצמצם בעיות ביצועים פוטנציאליות הנגרמות במהלך אירועים בלתי צפויים כמו תקלות אזוריות ואירועי רשת, כשל בכתיבה אזורית היא גישה יעילה. גישה זו כוללת הסרה חיננית של צמתים באזור המושפע מהאשכול, ולמעשה ניתוק תעבורת כניסה ויציאה בין אזורים. על ידי ניתוק תעבורת השכפול בין האזורים, ניתן להכיל את ההשפעה של כשלים אזוריים בתוך האזור המושפע. זה מספק חוויה צפויה יותר ללקוחות ומבטיח שהמערכת תמשיך לפעול בצורה אמינה.
כשל בכתיבה חינני
התזמור של כשל בכתיבה בתוך OpenSearch Service מתבצע על ידי צומת המנהיג הנבחר באמצעות מנגנון מוגדר היטב. מנגנון זה כולל פרוטוקול קונצנזוס לפרסום מדינת אשכול, המבטיח הסכמה פה אחד בין כל הצמתים לייעד אזור בודד (בכל עת) לפירוק. חשוב לציין, מטא נתונים הקשורים לאזור המושפע משוכפלים על פני כל הצמתים כדי להבטיח את עמידתם, אפילו במהלך הפעלה מחדש מלאה במקרה של הפסקה.
יתר על כן, הצומת המוביל מבטיח מעבר חלק וחינני על ידי הצבת הצמתים באזורים המושפעים במצב המתנה למשך 5 דקות לפני תחילת גידור I/O. גישה מכוונת זו מונעת מכל תעבורת מתאם חדשה או תעבורת שאילתות רסיסים להיות מופנית אל הצמתים בתוך האזור המושפע. זה, בתורו, מאפשר לצמתים הללו להשלים את המשימות השוטפות שלהם בחן ולטפל בהדרגה בכל בקשות הטיסה לפני הוצאתם משירות. התרשים הבא ממחיש ארכיטקטורה זו.
בתהליך של הטמעת כשל בכתיבה עבור צומת מנהיג, OpenSearch Service מבצע את השלבים העיקריים הבאים:
- ויתור על מנהיג – אם צומת המנהיג במקרה ממוקם באזור המתוכנן לכשל בכתיבה, המערכת מבטיחה שצומת המנהיג פושט מרצונו מתפקיד המנהיגות שלו. התפטרות זו מתבצעת בצורה מבוקרת, וכל התהליך מועבר לצומת זכאי אחר, אשר לאחר מכן לוקח אחריות על הפעולות הנדרשות.
- למנוע בחירה מחדש של מנהיג לעתיד להיות מודח – כדי למנוע בחירה חוזרת של מנהיג מאזור המסומן לכשל בכתיבה, כאשר צומת המנהיג הכשיר יוזם את פעולת הכשל בכתיבה, הוא נוקט באמצעים על מנת להבטיח שכל צמתי מנהיג לעתיד לא ישתתפו בבחירות נוספות. הדבר מושג על ידי אי הכללת צומת המנהיג שעתיד להפרק מתצורת ההצבעה, ולמעשה מונע ממנו להצביע בכל שלב קריטי של פעולת האשכול.
מטא נתונים הקשורים לאזור הכשל בכתיבה מאוחסנים בתוך מצב האשכול, ומידע זה מתפרסם לכל הצמתים באשכול השירות המבוזר של OpenSearch באופן הבא:
צילום המסך הבא מתאר שבמהלך האטה ברשת באזור, כשל בכתיבה עוזר לשחזר זמינות.
שחזור אזורי לאחר כשל בכתיבה
תהליך ההשבתה האזורית ממלא תפקיד מכריע בשלב ההתאוששות לאחר כשל בכתיבה אזורית. לאחר שחזור האזור המושפע ונחשב ליציב, הצמתים שהושבתו בעבר יצטרפו מחדש לאשכול. הפעלה מחדש זו מתרחשת בדרך כלל בתוך מסגרת זמן של 2 דקות לאחר שהאזור הופעל מחדש.
זה מאפשר להם להסתנכרן עם צמתי העמיתים שלהם ומתחיל את תהליך השחזור עבור רסיסי העתק, ובכך משחזר למעשה את האשכול למצבו הרצוי.
סיכום
ההקדמה של OpenSearch Service Multi-AZ עם Standby מספקת לעסקים פתרון רב עוצמה להשגת זמינות גבוהה וביצועים עקביים עבור עומסי עבודה קריטיים. עם אפשרות פריסה זו, עסקים יכולים לשפר את חוסנה של התשתית שלהם, לפשט את התצורה והניהול של אשכולות, ולאכוף שיטות עבודה מומלצות. עם תכונות כמו בחירת עותק רסיס משוקלל, מנגנוני תקלה יזומים ואזורי זמינות בהמתנה פתוחה לכשל, OpenSearch Service Multi-AZ עם המתנה מבטיח חווית חיפוש אמינה ויעילה עבור סביבות ארגוניות תובעניות.
למידע נוסף על Multi-AZ עם המתנה, עיין ב שירות חיפוש פתוח של אמזון מתחת למכסה המנוע: Multi-AZ עם המתנה.
על המחבר
אנשו אגרוואל הוא מהנדס תוכנה בכיר שעובד על AWS OpenSearch בשירותי האינטרנט של אמזון. היא נלהבת בפתרון בעיות הקשורות לבניית מערכות מדרגיות ואמינות במיוחד.
רישב נחטה הוא מהנדס תוכנה שעובד על OpenSearch בשירותי האינטרנט של אמזון. הוא מוקסם מפתרון בעיות במערכות מבוזרות. הוא תורם פעיל ל-OpenSearch.
בוכתוואר חאן הוא מהנדס ראשי שעובד בשירות ה-OpenSearch של Amazon. הוא מתעניין במערכות מבוזרות ואוטונומיות. הוא תורם פעיל ל-OpenSearch.
רנג'ית רמאצ'נדרה הוא מנהל הנדסה שעובד על Amazon OpenSearch Service בשירותי האינטרנט של Amazon.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- PlatoHealth. מודיעין ביוטכנולוגיה וניסויים קליניים. גישה כאן.
- מקור: https://aws.amazon.com/blogs/big-data/achieve-high-availability-in-amazon-opensearch-multi-az-with-standby-enabled-domains-a-deep-dive-into-failovers/
- :יש ל
- :הוא
- :לֹא
- :איפה
- 1
- 10
- 100
- 12
- 30
- 501
- a
- אודות
- להשיג
- הושג
- הודה
- לרוחב
- לפעול
- פעולה
- פעולות
- פעיל
- הסתגלות
- בנוסף
- כתובת
- מושפע
- לאחר
- הסכם
- אַלגוֹרִיתְם
- אלגוריתמים
- תעשיות
- להתיר
- אמזון בעברית
- אמזון שירותי אינטרנט
- בין
- an
- ו
- אחר
- כל
- גישה
- ארכיטקטורה
- ARE
- AS
- שהוקצה
- At
- אוטונומי
- מערכות אוטונומיות
- זמינות
- מודעות
- AWS
- גיבוי
- איזון
- BE
- כי
- היה
- לפני
- להיות
- הטוב ביותר
- שיטות עבודה מומלצות
- בֵּין
- שניהם
- מִשׁדָר
- בִּניָן
- עסקים
- by
- CAN
- קיבולת
- נשא
- גרם
- מאופיין
- תשלום
- בָּדוּק
- אשכול
- תקשורת
- תקשורת
- להשלים
- תְצוּרָה
- קונסנסוס
- כתוצאה מכך
- נחשב
- עִקבִי
- קונסול
- הכלול
- ממשיך
- רציף
- לתרום
- תורם
- נשלט
- תיאום
- רכז
- רכזים
- עותקים
- מכוסה
- לִיצוֹר
- יוצר
- קריטי
- מכריע
- לקוחות
- גזירה
- נתונים
- להחליט
- עמוק
- צלילה לעומק
- מגדיר
- עיכובים
- להתעמק
- תובעני
- פריסה
- פורס
- יעוד
- מעוצב
- רצוי
- לאתר
- זוהה
- קובע
- מְכוּוָן
- התפוררות
- מופץ
- מערכות מבוזרות
- צלילה
- do
- מסמכים
- תחום
- תחומים
- לא
- מטה
- ראוי
- משך
- בְּמַהֲלָך
- כל אחד
- אפקטיבי
- יעילות
- יעיל
- נבחר
- הבחירות
- זכאי
- חיסול
- מופעל
- מאפשר
- לאכוף
- מהנדס
- הנדסה
- להגביר את
- משופר
- שיפור
- לְהַבטִיחַ
- מבטיח
- הבטחתי
- מִפְעָל
- שלם
- סביבות
- במיוחד
- Ether (ETH)
- אֲפִילוּ
- אירוע
- אירועים
- בסופו של דבר
- כל
- לְמַעֵט
- ניסיון
- התנסות
- לחקור
- נכשל
- כשלון
- כישלונות
- מאפיין
- תכונות
- סיוף
- ראשון
- הבא
- כדלקמן
- בעד
- מסגרת
- החל מ-
- מלא
- נוסף
- gif
- חינני
- בהדרגה
- אַחֲרָיוּת
- יד
- לטפל
- מטפל
- קורה
- he
- בריא
- עוזר
- גָבוֹהַ
- מאוד
- ברדס
- אירוח
- איך
- http
- HTTPS
- לזהות
- if
- מדגים
- פְּגִיעָה
- מושפעים
- ליקוי
- יישום
- חשוב
- in
- לכלול
- המציין
- מידע
- תשתית
- בהתחלה
- יוזם
- ייזום
- מקרים
- מעוניין
- פנימי
- אל תוך
- הציג
- מבוא
- כרוך
- סוגיה
- בעיות
- IT
- שֶׁלָה
- jpg
- ג'סון
- מפתח
- ידוע
- במידה רבה
- מנהיג
- מנהיגות
- כמו
- רשימה
- לִטעוֹן
- באופן מקומי
- ממוקם
- ארוך
- לתחזק
- שמירה
- הצליח
- ניהול
- מנהל
- דרך
- מסומן
- מתאים
- אומר
- אומר
- אמצעים
- מנגנון
- מנגנוני
- מידע נוסף
- מדדים
- דקה
- דקות
- להקל
- מצב
- מודל
- יותר
- תנועה
- טבע
- הכרחי
- צורך
- רשת
- רשתות
- חדש
- לא
- צומת
- צמתים
- יַקִיר
- אובייקט
- of
- כבוי
- on
- ONE
- מתמשך
- רק
- לפתוח
- להפעיל
- מבצע
- תפעול
- אפשרות
- or
- תזמור
- להזמין
- אחר
- הַחוּצָה
- הפסקת
- הפסקות
- יותר
- להשתתף
- חלקים
- לוהט
- נתיב
- שבילים
- להציץ
- ביצועים
- התמדה
- שלב
- הַצָבָה
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- משחק
- הודעה
- פוטנציאל
- חזק
- פרקטיקות
- קודם
- צפוי
- למנוע
- מניעה
- מונע
- קוֹדֶם
- יְסוֹדִי
- מנהל
- פרואקטיבי
- בעיות
- תהליך
- לקדם
- פרוטוקול
- לספק
- מספק
- פרסום
- לאור
- מכניס
- שאילתות
- חומר עיוני
- לקבל
- מקבל
- לאחרונה
- להחלים
- מחלים
- התאוששות
- להתייחס
- באזור
- רגיל
- קָשׁוּר
- רלוונטי
- אמינות
- אָמִין
- לסמוך
- נותר
- הסרה
- לתקן
- תגובה
- משוכפל
- שכפול
- לבקש
- בקשות
- נדרש
- כושר התאוששות
- מִתאוֹשֵׁשׁ מַהֵר
- לפתור
- אחראי
- לשחזר
- מְשׁוּחזָר
- שחזור
- תפקיד
- ניתוב
- הפעלה
- פועל
- s
- אמצעי הגנה
- אותו
- להרחבה
- מתוכנן
- בצורה חלקה
- חיפוש
- מבחר
- שליחה
- שולח
- לחצני מצוקה לפנסיונרים
- נשלח
- שרות
- שירותים
- סט
- היא
- הראה
- באופן משמעותי
- פשטות
- לפשט
- יחיד
- האט
- האטות
- להחליק
- So
- תוכנה
- מהנדס תוכנה
- פִּתָרוֹן
- פותר
- יציב
- מדינה
- מצב
- יציב
- צעדים
- מאוחסן
- לחץ
- כתוצאה מכך
- מוצלח
- רְגִישׁוּת
- מערכת
- מערכות
- לקחת
- משימות
- לוקח
- משימות
- זֶה
- השמיים
- שֶׁלָהֶם
- אותם
- אז
- שם.
- אלה
- זֶה
- אלה
- שְׁלוֹשָׁה
- דרך
- זמן
- פִּי
- ל
- סובלנות
- תְנוּעָה
- מַעֲבָר
- תור
- שתיים
- בדרך כלל
- תחת
- בְּסִיסִי
- בלתי צפוי
- עדכונים
- מְשׁוּמָשׁ
- משתמש
- שימושים
- באמצעות
- מנצל
- שונים
- מרצון
- הצבעה
- we
- אינטרנט
- שירותי אינטרנט
- מִשׁקָל
- טוֹב
- מוגדר היטב
- היו
- מתי
- אשר
- בזמן
- יצטרך
- עם
- בתוך
- עובד
- עובד
- לכתוב
- זפירנט
- אפס
- אזורי