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

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

בקישורים הבאים מוסבר למה חשוב לשים לב למארז הטבעות של Cassandra משאבים:

מה זה מארז?

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

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

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

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

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

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

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

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

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

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

לכל טופולוגיות ההתקנה של Apigee Edge לענן פרטי יש לפחות שלושה צמתים של 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 ולנתונים Center 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"

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

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

  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) טבעת קסנדרה עם 6 צמתים: שני צמתים בכל אחד שלושה מדפים

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

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

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. צומת 6 (IP6)

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

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

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

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

3 מארזים, עם 4 צמתים בכל מארז
(איור 4) טבעת קסנדרה עם 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. צומת 7 (IP7)*
  3. צומת 4 (IP4)
  4. צומת 8 (IP8)
  5. צומת 2 (IP2)
  6. Node 9 (IP9)
  7. צומת 5 (IP5)
  8. צומת 10 (IP10)
  9. צומת 3 (IP3)
  10. צומת 11 (IP11)
  11. צומת 6 (IP6)
  12. צומת 12 (IP12)

* יש לבצע את השינויים האלו לפני התקנת Apigee Edge לענן פרטי בצומת השביעי (המכונה השנייה ב- הזמנת התקנה של Cassandra).