הוספת תמיכה במדף Cassandra

בקטע הזה מוסבר באופן כללי איך להגדיר את Cassandra ב-Apigee Edge for Private Cloud כך שתהיה מודעת למארז, כדי לשנות את קנה המידה של הפעולות ב-Cassandra.

למידע נוסף על החשיבות של הגדרת המודעות למארז של טבעת Cassandra, עיינו במקורות המידע הבאים:

מה זה ארון שרתים?

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

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

בהתקנת ברירת המחדל של Cassandra ב-Apigee Edge for Private Cloud, המערכת מניחה שיש ארון שרתים לוגי אחד וממקמת בו את כל הצמתים במרכז הנתונים. למרות שקל להתקין ולנהל את ההגדרה הזו, היא עלולה להיכשל אם פעולה נכשלת באחד מהצמתים האלה.

בתמונה הבאה מוצגת הגדרת ברירת המחדל של טבעת Cassandra:

מארז אחד עם 3 צמתים
(איור 1) הגדרת ברירת המחדל: כל הצמתים במארז יחיד

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

בתמונה הבאה מוצגת טבעת עם 3 צמתים. בתמונה הזו מוצג הסדר שבו הפעולות משוכפלות בטבעת (בכיוון השעון), ומודגשת העובדה שאין שני צמתים באותו ארון:

‫3 ארונות, עם צומת אחד בכל ארון
(איור 2) הגדרה עם מודעות למארז: שלושה צמתים, אחד בכל מארז

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

הוספת מוּדעוּת למארז (עם 3 צמתים)

בכל טופולוגיות ההתקנה של Apigee Edge for Private Cloud בסביבת הייצור יש לפחות שלושה צומתי Cassandra, שבקטע הזה נקראים IP1,‏ IP2 ו-IP3. כברירת מחדל, כל אחד מהצמתים האלה נמצא באותו ארון, "ra-1".

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

כדי להקצות צומתי Cassandra למארזים שונים במהלך ההתקנה:

  1. לפני שמריצים את תוכנת ההתקנה, נכנסים לצומת Cassandra ופותחים את קובץ התצורה השקט הבא לעריכה:
    /opt/silent.conf

    אם הקובץ לא קיים, צריך ליצור אותו ולוודא שהמשתמש apigee הוא הבעלים.

  2. עורכים את המאפיין CASS_HOSTS, רשימה של כתובות IP שמופרדות ברווחים (לא רשומות DNS או שם מארח) שמשתמשת בתחביר הבא:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    ערך ברירת המחדל הוא טבעת Cassandra עם שלושה צמתים, כשכל צומת מוקצה למדף 1 ולמרכז נתונים 1, כמו בדוגמה הבאה:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. משנים את הקצאות המדפים כך שצומת 2 מוקצה למדף 2 וצומת 3 מוקצה למדף 3, כמו בדוגמה הבאה:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

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

    מידע נוסף על השימוש במאפיין ההגדרה CASS_HOSTS זמין בחומר עזר בנושא קובץ תצורה של Edge.

  4. שומרים את השינויים בקובץ התצורה ומריצים את הפקודה הבאה כדי להתקין את Cassandra עם התצורה המעודכנת:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    לדוגמה:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. חוזרים על התהליך הזה לכל צומת Cassandra בטבעת, לפי הסדר שבו הצמתים מוקצים במאפיין CASS_HOSTS. במקרה כזה, צריך להתקין את Cassandra בסדר הבא:
    1. צומת 1 (IP1)
    2. צומת 2 (IP2)
    3. צומת 3 (IP3)

אחרי ההתקנה, צריך לבדוק את ההגדרות של Cassandra.

בדיקת ההגדרות האישיות של Cassandra

אחרי שמתקינים הגדרת Cassandra עם מודעות למארז, אפשר לבדוק שהצמתים מוקצים למארזים השונים באמצעות הפקודה nodetool status, כמו בדוגמה הבאה:

/opt/apigee/apigee-cassandra/bin/nodetool status

(מריצים את הפקודה הזו באחד מצומתי Cassandra).

התוצאות אמורות להיראות כמו בדוגמה הבאה, שבה בעמודה Rack מוצגים מזהי המארזים השונים של כל צומת:

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

אם הפעלתם אימות JMX ל-Cassandra, אתם צריכים גם להעביר את שם המשתמש והסיסמה שלכם אל nodetool. מידע נוסף זמין במאמר שימוש ב-nodetool לניהול צומתי אשכול.

התקנת טבעת עם שישה צמתים

כדי להגביר את היתירות, אפשר להרחיב את טבעת Cassandra לשישה צמתים. במקרה הזה, מקצים שני צמתים לכל אחד משלושת המדפים. ההגדרה הזו דורשת שלושה צמתים נוספים: צומת 4 (IP4), צומת 5 (IP5) וצומת 6 (IP6).

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

‫3 ארונות, עם 2 צמתים בכל ארון
(איור 3) טבעת Cassandra עם 6 צמתים: שני צמתים בכל אחד משלושת המדפים

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

כדי להרחיב טבעת Cassandra עם שלושה צמתים לטבעת Cassandra עם שישה צמתים, מגדירים את הצמתים באופן הבא בקובץ התצורה השקט:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

כמו בטבעת עם שלושה צמתים, צריך להתקין את Cassandra באותו סדר שבו הצמתים מופיעים במאפיין CASS_HOSTS:

  1. צומת 1 (IP1)
  2. צומת 4 (IP4)*
  3. צומת 2 (IP2)
  4. צומת 5 (IP5)
  5. צומת 3 (IP3)
  6. Node 6 (IP6)

* מבצעים את השינויים בקובץ התצורה השקט לפני שמריצים את כלי ההגדרה בצומת הרביעי (המכונה השנייה בסדר ההתקנה של Cassandra).

הרחבה ל-12 צמתים

כדי לשפר עוד יותר את הזמינות ואת העמידות בפני תקלות, אתם יכולים להגדיל את מספר הצמתים של Cassandra בטבעת מ-6 ל-12. ההגדרה הזו דורשת עוד שישה צמתים (IP7 עד IP12).

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

3 ארונות, עם 4 צמתים בכל ארון
(איור 4) טבעת Cassandra עם 12 צמתים: ארבעה צמתים בכל אחד משלושת המדפים

ההליך להתקנת טבעת של 12 צמתים דומה להתקנת טבעת של שלושה או שישה צמתים: מגדירים את CASS_HOSTS לערכים הנתונים ומריצים את תוכנית ההתקנה בסדר שצוין.

כדי להרחיב לטבעת Cassandra עם 12 צמתים, מגדירים את הצמתים באופן הבא בקובץ התצורה השקט:

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

כמו בטבעות של שלושה ושישה צמתים, צריך להריץ את מנהל ההתקנה בצמתים לפי הסדר שבו הם מופיעים בקובץ התצורה:

  1. צומת 1 (IP1)
  2. Node 7 (IP7)*‎
  3. ‫Node 4 ‏ (IP4)
  4. Node 8 (IP8)
  5. צומת 2 (IP2)
  6. Node 9 (IP9)
  7. צומת 5 (IP5)
  8. Node 10 (IP10)
  9. צומת 3 (IP3)
  10. Node 11 (IP11)
  11. Node 6 (IP6)
  12. Node 12 (IP12)

‫* צריך לבצע את השינויים האלה לפני שמתקינים את Apigee Edge for Private Cloud בצומת השביעי (המכונה השנייה בסדר ההתקנה של Cassandra).