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

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

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

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

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

הפקודה הזו מראה ששרת thrift פועל, ומאפשר ל-Cassandra לקבל בקשות חדשות של לקוחות.

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

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

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

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

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