בדף הזה מוסבר איך לשחזר או לשחזר Cassandra בכמה אזורים.
בפריסה מרובת אזורים, Apigee hybrid נפרס בכמה מיקומים גיאוגרפיים במרכזי נתונים שונים. אם אזור אחד או יותר נכשלים, אבל נשארים אזורים תקינים, אפשר להשתמש באזור תקין כדי לשחזר אזורים שנכשלו ב-Cassandra עם הנתונים העדכניים ביותר.
במקרה של כשל קטסטרופלי בכל האזורים ההיברידיים, אפשר לשחזר את Cassandra. חשוב לציין שאם יש לכם כמה ארגוני Apigee בפריסה, תהליך השחזור ישחזר נתונים של כל הארגונים. בהגדרה של כמה ארגונים, אי אפשר לשחזר רק ארגון ספציפי.
בנושא הזה מתוארות שתי הגישות לתיקון אזורים שנכשלו:
- שחזור אזורים שנכשלו – כאן מוסבר איך לשחזר אזורים שנכשלו על סמך אזור תקין.
- שחזור אזורים שנכשלו – מאמר שמתאר את השלבים לשחזור אזורים שנכשלו מגיבוי. הגישה הזו נדרשת רק אם כל האזורים ההיברידיים מושפעים.
שחזור של אזורים שנכשלו
כדי לשחזר אזורים שנכשלו מאזור תקין, מבצעים את השלבים הבאים:
- להפנות את התנועה של ה-API מהאזורים שהושפעו לאזור שבו ה-API פועל בצורה תקינה. לתכנן את הקיבולת בהתאם כדי לתמוך בתנועה שהופנתה מאזורים שנכשלו.
- להוציא משימוש את האזור שהושפע. לכל אזור מושפע, פועלים לפי השלבים שמפורטים במאמר הוצאה משימוש של אזור היברידי. צריך להמתין עד שהוצאת השירות משימוש תושלם לפני שעוברים לשלב הבא.
- משחזרים את האזור שהושפע. כדי לשחזר, יוצרים אזור חדש, כמו שמתואר במאמר בנושא פריסה מרובת אזורים ב-GKE, ב-GKE OnPrem וב-AKS.
שחזור מגיבוי
גיבוי Cassandra יכול להיות ב-Cloud Storage או בשרת מרוחק, בהתאם להגדרה. כדי לשחזר את Cassandra מגיבוי, מבצעים את השלבים הבאים:
- פותחים את קובץ ההחלפות של האזור שרוצים לשחזר.
- מגדירים את
cassandra:hostNetworkלהיותfalse. - החלת קובץ השינויים מברירת המחדל:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
- לפני שממשיכים, בודקים שההגדרה
hostNetworkהיאfalse:kubectl -n APIGEE_NAMESPACE get apigeeds -o=jsonpath='{.items[].spec.components.cassandra.hostNetwork}' - מחיקת ההגדרה ההיברידית מהאזור שמשחזרים:
helm delete DATASTORE_RELEASE_NAME \ --namespace APIGEE_NAMESPACE
כאשר DATASTORE_RELEASE_NAME הוא שם הגרסה של מאגר הנתונים שבו התקנתם את Cassandra באזור, לדוגמה
datastore-region1. -
משחזרים את האזור הרצוי מגיבוי. מידע נוסף זמין במאמר שחזור אזור מגיבוי.
- מסירים את הצמתים הלא פעילים מהאזורים שנמחקו:
- באמצעות הפקודה
nodetool status, מזהים את כל הצמתים עם הסטטוסDNבאזורים שנמחקו:kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE -- nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status
where:
- APIGEE_JMX_USER הוא שם המשתמש של המשתמש של פעולות Cassandra JMX. משמש לאימות ולתקשורת עם ממשק Cassandra JMX. מידע נוסף זמין במאמר בנושא
cassandra:auth:jmx:username. - APIGEE_JMX_PASSWORD היא הסיסמה של המשתמש Cassandra JMX operations.
מידע נוסף זמין במאמר בנושא
cassandra:auth:jmx:password.
- APIGEE_JMX_USER הוא שם המשתמש של המשתמש של פעולות Cassandra JMX. משמש לאימות ולתקשורת עם ממשק Cassandra JMX. מידע נוסף זמין במאמר בנושא
- מסירים כל צומת עם סטטוס
DNבאזורים שנמחקו:kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE -- nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD removenode NODE_HOST_ID
מחליפים את NODE_HOST_ID במזהה המארח של כל צומת שזיהיתם בשלב הקודם. לדוגמה:
kubectl exec apigee-cassandra-default-0 -n apigee -- nodetool -u my-jmx-id -pw my-jmx-pwd removenode abcdef-f202-438a-8a77-40636317b7c9
- מריצים שוב את הפקודה
nodetool statusומוודאים שהצמתים עם הסטטוסDNבאזורים שנמחקו לא מופיעים יותר.kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE -- nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status
- באמצעות הפקודה
- מסירים את ההפניות לאזורים שנמחקו ומוסיפים את ההפניות לאזורים ששוחזרו במטא-נתונים של
KeySpaces.- כדי לקבל את שם מרכז הנתונים של Cassandra, משתמשים באפשרות
nodetool status.kubectl exec -n APIGEE_NAMESPACE -it apigee-cassandra-default-0 -- bash nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status |grep -i Datacenterwhere:
- APIGEE_JMX_USER הוא שם המשתמש של המשתמש של פעולות Cassandra JMX. משמש
לאימות ולתקשורת עם ממשק Cassandra JMX. מידע נוסף זמין במאמר בנושא
cassandra:auth:jmx:username. - APIGEE_JMX_PASSWORD היא הסיסמה של המשתמש Cassandra JMX operations.
מידע נוסף זמין במאמר בנושא
cassandra:auth:jmx:password.
- APIGEE_JMX_USER הוא שם המשתמש של המשתמש של פעולות Cassandra JMX. משמש
לאימות ולתקשורת עם ממשק Cassandra JMX. מידע נוסף זמין במאמר בנושא
- מעדכנים את השכפול של
KeySpaces.- יוצרים מאגר תגים של לקוח ומתחברים לאשכול Cassandra דרך ממשק CQL.
- מקבלים את רשימת מרחבי המפתחות של המשתמשים מממשק CQL:
cqlsh CASSANDRA_SEED_HOST -u APIGEE_DDL_USER -p APIGEE_DDL_PASSWORD --ssl -e "select keyspace_name from system_schema.keyspaces;"|grep -v systemwhere:
- CASSANDRA_SEED_HOST הוא מארח ה-seed של Cassandra במספר אזורים. ברוב ההתקנות במספר אזורים, משתמשים בכתובת ה-IP של מארח באזור הראשון. מידע נוסף מופיע במאמרים הגדרת Apigee Hybrid למספר אזורים ו
cassandra:externalSeedHost. - APIGEE_DDL_USER ו-APIGEE_DDL_PASSWORD הם שם המשתמש והסיסמה של האדמין עבור משתמש בשפת הגדרת הנתונים (DDL) של Cassandra. ערכי ברירת המחדל הם
ddl_userו-iloveapis123.מידע נוסף זמין במאמר
cassandra.auth.ddl.passwordבנושא הפניה למאפייני ההגדרה ובמאמר אפשרויות של שורת הפקודה במסמכי התיעוד של Apache Cassandra cqlsh.
- CASSANDRA_SEED_HOST הוא מארח ה-seed של Cassandra במספר אזורים. ברוב ההתקנות במספר אזורים, משתמשים בכתובת ה-IP של מארח באזור הראשון. מידע נוסף מופיע במאמרים הגדרת Apigee Hybrid למספר אזורים ו
- לכל מרחב מפתחות, מריצים את הפקודה הבאה מממשק CQL כדי לעדכן את הגדרות השכפול:
ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'DATACENTER_NAME':3};where:
- KEYSPACE_NAME הוא השם של מרחב המפתחות שמופיע בפלט של השלב הקודם.
- DATACENTER_NAME הוא השם של מרכז הנתונים של Cassandra שקיבלתם באמצעות האפשרות
nodetool statusבשלב 8.
- כדי לקבל את שם מרכז הנתונים של Cassandra, משתמשים באפשרות