מידע על תחזוקת ZooKeeper

Edge for Private Cloud גרסה 4.17.05

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

מידע עלzoKeeper ו-Edge

ב-Edge, צמתים ב-ZooKeeper מכילים נתוני תצורה לגבי המיקום והתצורה של את הרכיבים השונים של Edge, ומודיע לרכיבים השונים של שינויי הגדרה. הכול הטופולוגיות הנתמכות של Edge עבור מערכת ייצור מציינות להשתמש בשלושת דרכים לפחות ב-ZzoKeeper צמתים.

משתמשים ב-ZK_HOSTS וב- נכסים של ZK_CLIENT_HOSTS ב- קובץ תצורה של Edge כדי לציין את הצמתים שלzoKeeper. לבחינה

ZK_HOSTS="$IP1 $IP2 $IP3" 
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" 

איפה:

  • ZK_HOSTS – מציין כתובות ה-IP של הצמתים של תנועת השימור ב-ZooKeeper. כתובות ה-IP צריכות להיות רשומות באותו סדר ב- כל הצמתים שלzoKeeper.

    בסביבה מרובת נתונים של מרכז נתונים, הצגה של כל הצמתים שלzoKeeper מכל מרכזי הנתונים.
  • ZK_CLIENT_HOSTS – המדיניות קובעת את כתובות ה-IP של צומתי ZzoKeeper שמשמשים רק את מרכז הנתונים הזה. כתובת ה-IP הכתובות חייבות להופיע באותו סדר בכל הצמתים שלzoKeeper במרכז הנתונים.

    בהתקנה יחידה של מרכז נתונים, אלה אותם צמתים שצוינו על ידי ZK_HOSTS. תוך שימוש בסביבה מרובת-הנתונים, קובץ התצורה של Edge עבור כל מרכז נתונים צריך לכלול רק את צמתים ב-ZooKeeper עבור מרכז הנתונים הזה

כברירת מחדל, כל הצמתים ב-ZooKeeper מוקצים כצמתים של מצביע. כלומר, הצמתים כולם משתתפים בבחירת המנהיג של גן החיות. אפשר לכלול את מגביל “:observer” עם ZK_HOSTS כדי לציין ההערה היא צומת של תצפית, ולא מצביע. צומת של צופה לא משתתף הבחירות של המנהיג.

בדרך כלל מציינים את הצירוף ' :observer' כשיוצרים מספר נתוני Edge מרכזי, או כאשר במרכז נתונים יחיד יש מספר גדול של צמתים ב-ZooKeeper. לדוגמה, התקנת Edge עם 12 מארחי שני מרכזי נתונים, ZoomKeeper בצומת 9 במרכז נתונים 2 היא צופה:

לאחר מכן משתמשים בהגדרות הבאות בקובץ התצורה של מרכז הנתונים 1:

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"

ולמרכז הנתונים

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"

מידע על בכירים בארגון, עוקבים מצביעים וצופים

בהתקנה של SnowKeeper עם מספר צמתים, אחד מהצמתים מוגדר כמוביל. כל הצמתים האחרים ב-ZooKeeper מוגדרים כעוקבים. ניתן להגדיר קריאה מכל סוג צומת של ZoKeeper, כל בקשות הכתיבה מועברות למנהיג. לדוגמה, הודעה חדשה המעבד נוסף ל-Edge. המידע הזה נכתב למנהיג ZoKeeper. כל העוקבים ואז משכפלים את הנתונים.

בזמן ההתקנה של Edge, אתם מגדירים כל צומת של ZoomKeeper כמצביע או כצופה. לאחר מכן נבחר המנהיג על ידי כל צומתי ה-ZoCeKeeper למצבי ההצבעה. הדרישה היחידה לבחירות של המובילות היא שחייבים להיות קוורום של צומתי מצביעים ב-ZooKeeper פעילים. א' פירושו, יותר ממחצית מכל צומתי הבוחרים ב-ZooKeeper, בכל מרכזי הנתונים, פונקציונליות.

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

לדוגמה, בהתקנה אחת של מרכז הנתונים:

  • התקנת שלושה צמתים ב-ZooKeeper
  • כל הצמתים ב-ZooKeeper הם מצביעים
  • הקוורום הוא שני צמתים פעילים של מצביעים
  • אם רק צומת מצביעים אחד זמין, הריכוז של תנועת הבוחרים ב-zooKeeper לא יכול לפעול

בהתקנה עם שני מרכזי נתונים:

  • התקנת שלושה צמתים ב-ZooKeeper לכל מרכז נתונים, כך שבסך הכול היו שישה צמתים
  • במרכז הנתונים 1 יש שלושה צמתים של מצביעים
  • במרכז הנתונים 2 יש שני צמתים של מצביעים וצומת צופה אחד
  • הקוורום מבוסס על חמשת המצביעים בשני מרכזי הנתונים, ולכן שלושה צמתי מצביעים פועלים
  • אם יש רק שני צמתי מצביעים או פחות, גל ה-ZoKeeper לא יכול פונקציה

הוספת צמתים כמצביעים, או צופים

לפי דרישות המערכת, יכול להיות שיהיה צורך להוסיף עוד צומתיzoKeeper ל-Edge בתהליך ההתקנה. מסמכי התיעוד בנושא הוספת צמתים של ZoomKeeper מתארת איך להוסיף ל-Edge צמתים נוספים ב-zooKeeper. כשמוסיפים צמתים ב-ZooKeeper, צריך צריך להביא בחשבון את סוג הצמתים שרוצים להוסיף: מצביע או צופה.

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

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

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

במרכז נתונים יחיד, Apigee ממליצה לכם שיהיו לכם לא יותר מחמישה מצביעים, של מספר צומתי הצופה. בשני מרכזי נתונים, Apigee ממליץ לא ליצור עוד מתשעה מצביעים (חמישה במרכז נתונים אחד וארבעה מצביעים במרכז הנתונים השני). לאחר מכן אפשר להוסיף כמה שיותר צמתים של צופים לפי דרישות המערכת.

שיקולי תחזוקה

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

תחזוקה בכל מרכזי נתונים מרובים

כשעובדים עם מרכזי נתונים מרובים, חשוב לזכור שמערך ZoKeeper להבדיל בין מרכזי נתונים. בכל ההרכבות של ZoomKeeper אפשר לראות את כל הצמתים ב-ZooKeeper בכל הצמתים מרכזי נתונים כאוסף אחד.

מיקום צמתי המצביעים במרכז נתונים נתון לא נלקח בחשבון בזמן ב-ZooKeeper חישובי קוורום. צמתים נפרדים יכולים לרדת בין מרכזי נתונים, אבל כל עוד קוורום שנשמרה בכל ההרכב, ולאחר מכןzoKeeper ממשיך לפעול.

השלכות התחזוקה

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

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

תהליך תחזוקה

עליך לשקול ביצוע תהליך תחזוקה רק לאחר שווידאת ש-ZooKeeper האנסמבל פעיל. ההנחה היא שצמתים של צופים פועלים ויש מספיק צמתי מצביעים זמינים במהלך התחזוקה כדי לשמור על קוורום.

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

כחלק מביצוע פעולות תחזוקה, יש לפעול לפי התהליך הבא כדי לקבוע את סוג צומת של גן החיות (מנהיג, מצביע או צופה):

  1. אם האפליקציה לא מותקנת בצומת ZoomKeeper, יש להתקין את nc:
    > sudo yum install nc
  2. מריצים את פקודת ה-nc הבאה בצומת:
    > echo stat | nc Localhost 2181

    המקום שבו 2181 נמצא שקע גן החיות. הפלט אמור להופיע בטופס:
    גרסת Zookeeper: 3.4.5-1392090, נוצר בתאריך 09/30/2012 17:52 GMT
    לקוחות: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
    זמן אחזור מינימלי/ממוצע/מקסימלי: 0/0/0
    התקבל: 1
    שלחת:
    0 חיבורים: 1
    עוד לא הסתיים:
    0 Zxid: 0xc00000044
    מצב: עוקב
    מספר צמתים: 653


    בשורה Mode של הפלט לגבי הצמתים, אמור להופיע צופה, מנהיג או עוקב (כלומר מצביע שאינו ) בהתאם לתצורת הצומת.

    הערה: בהתקנה עצמאית של Edge עם צומתzoKeeper אחד, המצב מוגדר כעצמאי.
  3. חוזרים על שלבים 1 ו-2 בכל צומת של ZoomKeeper.

סיכום

הדרך הטובה ביותר לבצע פעולות תחזוקה בהרכב של ZzooKeeper היא לבצע אותו בצומת אחד בכל פעם בזמן האימון. כדאי לזכור:

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