כשמוסיפים צמתים של 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:
- מריצים מחדש את setup.sh באמצעות הפקודה ' -p c' הפרופיל וקובץ התצורה החדש:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
התקנת Cassandra בצמתים החדשים
יש לבצע את התהליך הבא כדי להתקין את Cassandra בצמתים החדשים.
בכל צומת חדש של Cassandra:
- מתקינים את Cassandra בשלושת הצמתים:
- התקנה של
apigee-setup
במכשיר הצומת הראשון כפי שמתואר במאמר התקנת כלי להגדרת Edge עם apigee. - מתקינים את Cassandra בצומת הראשון באמצעות קובץ התצורה המעודכן:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
- חוזרים על שני השלבים האלה בשביל שאר צומתי Cassandra.
- התקנה של
- בנייה מחדש של שלושת הצמתים החדשים של Cassandra, ציון שם האזור שיהיה מרכז הנתונים
שבה מוסיפים את הצומת (
dc-1
,dc-2
וכן הלאה). בדוגמה הזו, הכתובתdc-1
היא:- בצומת הראשון, מריצים את:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1
כאשר nodeIP הוא כתובת ה-IP של צומת Cassandra.
צריך להעביר את שם המשתמש והסיסמה רק אם מופעל אימות JMX של Cassandra.
- חוזרים על השלב הזה בשאר הצמתים החדשים של Cassandra.
- בצומת הראשון, מריצים את:
הגדרה מחדש של שרת הניהול
בצומת ניהול-שרת
- מריצים מחדש את setup.sh כדי לעדכן את שרת הניהול לצמתים החדשים של Cassandra שנוספו:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile
הפעלה מחדש של כל הנתבים וההודעות מעבדים
- בכל הנתבים:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- בכל מעבדי ההודעות:
/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.