כשמוסיפים צמתים של 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:
- מריצים מחדש את setup.sh עם הפרופיל '-p c' וקובץ התצורה החדש:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
התקנת Cassandra בצמתים החדשים
כדי להתקין את Cassandra בצמתים החדשים, פועלים לפי השלבים הבאים.
בכל צומת חדש של Cassandra:
- מתקינים את Cassandra בשלושת הצמתים:
- מתקינים את
apigee-setup
בצומת הראשון, כפי שמתואר בקטע התקנת הכלי apigee-setup ב-Edge. - מתקינים את 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.
אימות ה-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.