משימות תחזוקה ב-Apache Cassandra

הקטע הזה מתאר משימות תחזוקה תקופתיות של Cassandra.

תחזוקה אנטי-אנטרופיה

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

apigee-service apigee-cassandra apigee_repair -pr

כשמריצים את הפקודה הזו, ב-Apigee מומלץ לבצע את הפעולות הבאות:

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

    כדי לבדוק אם משימת תיקון בצומת הסתיימה בהצלחה, בודקים את הצמתים קובץ system.log של רשומה עם המזהה הייחודי של סשן התיקון והביטוי "הסשן הושלם בהצלחה". דוגמה לרשומה ביומן:

    INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully"
    Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
  • לפעול במהלך תקופות של עומס עבודה נמוך יחסית (הכלי טוען עומס משמעותי על ).
  • הפעילו לפחות כל שבעה ימים כדי למנוע בעיות הקשורות "שכחתי".
  • לרוץ בצמתים שונים בימים שונים, או לתזמן אותם כך שיהיו מספר שעות לאחר הרצת הקוד בכל צומת.
  • משתמשים באפשרות -pr (טווח המחיצות) כדי לציין את טווח המחיצות הראשי של הצומת בלבד.

אם הפעלתם אימות JMX עבור Cassandra, עליך לכלול את שם המשתמש והסיסמה בעת הפעלת nodetool. לדוגמה:

apigee-service apigee-cassandra apigee_repair -u username -pw password -pr

אפשר גם להריץ את הפקודה הבאה כדי לבדוק מה האפשרויות הנתמכות של apigee_repair:

apigee-service apigee-cassandra apigee_repair -h

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

יש לך אפשרות להיעזר במשאבים הבאים כדי לקבל מידע נוסף:

תחזוקת קובצי יומן

היומנים של Cassandra מאוחסנים בספרייה /opt/apigee/var/log/cassandra ב- בכל צומת. כברירת מחדל, אפשר להגדיר עד 50 קובצי יומן, כל אחד בגודל מקסימלי של 20MB. נוצרה, כשמגיעים למגבלה הזו, יומנים ישנים יותר נמחקים כשנוצרים יומנים חדשים יותר.

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

  1. עריכה של /opt/apigee/customer/application/cassandra.properties כדי להגדיר את המאפיינים הבאים. אם הקובץ לא קיים, יוצרים אותו:
    conf_logback_maxfilesize=20MB
    # max file size
    conf_logback_maxbackupindex=50 # max open files
  2. מפעילים מחדש את Cassandra באמצעות הפקודה הבאה:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

תחזוקת מקום בכונן

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

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

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

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