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

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

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

מה זה מדף?

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

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

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

התמונה הבאה מציגה את הגדרות ברירת המחדל של טבעת 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

    יוצרים את הקובץ אם הוא לא קיים ומקפידים להגדיר את המשתמש 'API' כבעלים.

  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, קראו את חומר העזר בנושא קובצי תצורת קצה.

  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. Node 3 (IP3)

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

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

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

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

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

התוצאות אמורות להיראות כך:

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. מידע נוסף זמין במאמר איך משתמשים ב-Adap Console לניהול צמתים של אשכול.

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

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

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

3 מדפים, עם 2 צמתים בכל מדף
(איור 3) טבעת קסנדרה עם 6 צמתים: שני צמתים בכל שלושה מדפים

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

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

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