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

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

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

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

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

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

רשימת דרישות המערכת לצומת 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 בצומת הראשון, כפי שמתואר בקטע התקנת הכלי apigee-setup ב-Edge.
    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.

אימות ה-rebuild

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

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

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

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

הפקודה הזו מציינת אם התחבורה המקורית (או הפרוטוקול הבינארי) פועלת.

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

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

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