הוספת צמתים של קסנדרה

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

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

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

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

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

בקטע דרישות התקנה תוכלו למצוא רשימה של דרישות המערכת לצומת של Cassandra.

ההגדרות הקיימות של Edge

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

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=1
APIGEE_LDAPPW=secret
MP_POD=gateway
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com
SMTPPASSWORD=smtppwd

שימו לב שהמאפיין REGION מציין את שם האזור כ-'dc-1'. צריך את זה בזמן הוספת צמתים חדשים של Cassandra.

שינוי קובץ התצורה להוספה שלושת הצמתים החדשים של Cassandra

בדוגמה הזו, שלושת הצמתים החדשים של Cassandra נמצאים בכתובות ה-IP הבאות:

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

כדי להוסיף את הצמתים החדשים, צריך קודם לעדכן את קובץ התצורה של Edge:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
...
# Update CASS_HOSTS to add each new node after an existing nodes. 
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1" 

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

הגדרת Edge

לאחר עריכת קובץ התצורה, עליך:

  • הגדרה מחדש של צומתי Cassandra הקיימים
  • התקנת Cassandra בצמתים החדשים
  • הגדרה מחדש של שרת הניהול

הגדרה מחדש של Cassandra הקיימת צמתים

בצמתים הקיימים של Cassandra:

  1. מריצים מחדש את setup.sh באמצעות הפקודה ' -p c' הפרופיל וקובץ התצורה החדש:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

התקנת Cassandra בצמתים החדשים

יש לבצע את התהליך הבא כדי להתקין את Cassandra בצמתים החדשים.

בכל צומת חדש של Cassandra:

  1. מתקינים את Cassandra בשלושת הצמתים:
    1. התקנה של apigee-setup במכשיר הצומת הראשון כפי שמתואר במאמר התקנת כלי להגדרת Edge עם apigee.
    2. מתקינים את Cassandra בצומת הראשון באמצעות קובץ התצורה המעודכן:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. חוזרים על שני השלבים האלה בשביל שאר צומתי Cassandra.
  2. בנייה מחדש של שלושת הצמתים החדשים של Cassandra, ציון שם האזור שיהיה מרכז הנתונים שבה מוסיפים את הצומת (dc-1, dc-2 וכן הלאה). בדוגמה הזו, הכתובת dc-1 היא:
    1. בצומת הראשון, מריצים את:
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      כאשר nodeIP הוא כתובת ה-IP של צומת Cassandra.

      צריך להעביר את שם המשתמש והסיסמה רק אם מופעל אימות JMX של Cassandra.

    2. חוזרים על השלב הזה בשאר הצמתים החדשים של Cassandra.

הגדרה מחדש של שרת הניהול

בצומת ניהול-שרת

  1. מריצים מחדש את setup.sh כדי לעדכן את שרת הניהול לצמתים החדשים של Cassandra שנוספו:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

הפעלה מחדש של כל הנתבים וההודעות מעבדים

  1. בכל הנתבים:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. בכל מעבדי ההודעות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

מקום פנוי בכונן קיים צמתים של Cassandra

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

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

/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

צריך להעביר את שם המשתמש והסיסמה רק אם מופעל אימות JMX של Cassandra.

אימות הבנייה מחדש

השתמשו בפקודות הבאות כדי לוודא שהבנייה מחדש בוצעה בהצלחה:

nodetool [-u username -pw password] -h nodeIP netstats

הפקודה הזו צריכה לציין MODE: Normal כשהצומת למעלה והאינדקסים של BERT.

nodetool [-u username -pw password] -h nodeIP statusthrift

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

nodetool [-u username -pw password] -h nodeIP statusbinary

יש לציין שהתעבורה המקורית (או הפרוטוקול הבינארי) פועלת.

nodetool [-u username -pw password] -h nodeIP describecluster

יש להראות שצמתים חדשים משתמשים באותה גרסת סכימה כמו הצמתים הישנים.

מידע נוסף על השימוש ב-nodetool זמין במאמר מסמכי תיעוד השימוש ב-nodetool.