בדף הזה מוסבר איך לתזמן גיבויים של Cassandra ב-Cloud Storage. בשיטה הזו, הגיבויים מאוחסנים בקטגוריה של Cloud Storage שצוינה.
כדי לתזמן גיבויים של Cassandra, פועלים לפי השלבים הבאים:
- מריצים את הפקודה
create-service-accountהבאה כדי ליצור חשבון שירות (SA) ב-Google Cloud עם התפקיד הרגילroles/storage.objectAdmin. תפקיד ה-SA הזה מאפשר לכם לכתוב נתוני גיבוי ב-Cloud Storage. מריצים את הפקודה הבאה בספרייהhybrid-base-directory/hybrid-files: הפקודה הזו יוצרת חשבון שירות יחיד בשם./tools/create-service-account --env non-prod --dir ./service-accounts
apigee-non-prodלשימוש בסביבות שאינן סביבות ייצור, וממקמת את קובץ המפתח שהורד בספרייה./service-accounts. מידע נוסף על חשבונות שירות ב-Google Cloud זמין במאמר בנושא יצירה וניהול של חשבונות שירות. - הפקודה
create-service-accountשומרת קובץ JSON שמכיל את המפתח הפרטי של חשבון השירות. הקובץ נשמר באותה ספרייה שבה מופעלת הפקודה. תצטרכו את הנתיב לקובץ הזה בשלבים הבאים. - יצירת קטגוריה של Cloud Storage מציינים מדיניות שמירת נתונים סבירה לקטגוריה. Apigee ממליצה על מדיניות שמירת נתונים של 15 ימים.
- פותחים את קובץ ה-
overrides.yaml. - כדי להפעיל גיבוי, מוסיפים את המאפיינים הבאים
cassandra.backup. אל תסירו אף אחד מהמאפיינים שכבר הוגדרו.פרמטרים
cassandra: ... backup: enabled: true serviceAccountPath: SA_JSON_FILE_PATH dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH schedule: BACKUP_SCHEDULE_CODE cloudProvider: "GCP" # For remote server backup set this to HYBRID (all caps) ...דוגמה
... cassandra: storage: type: gcepd capacity: 50Gi gcepd: replicationType: regional-pd auth: default: password: "abc123" admin: password: "abc234" ddl: password: "abc345" dml: password: "abc456" nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-data backup: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my-cassandra-backup-sa.json" dbStorageBucket: "gs://myname-cassandra-backup" schedule: "45 23 * * 6" cloudProvider: "GCP" ...
כאשר:
- מחילים את שינויי ההגדרות על האשכול החדש. לדוגמה:
$APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE
YOUR_OVERRIDES_FILE הוא הנתיב לקובץ ההחלפות שערכתם.
- מאמתים את עבודת הגיבוי. לדוגמה:
kubectl get cronjob -n apigee
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE apigee-cassandra-backup 33 * * * * False 0 <none> 94s
| מאפיין (property) | תיאור |
|---|---|
backup:enabled |
הגיבוי מושבת כברירת מחדל. צריך להגדיר את המאפיין הזה לערך true. |
backup:serviceAccountPath |
SA_JSON_FILE_PATH הנתיב במערכת הקבצים לקובץ ה-JSON של חשבון השירות שהורד כשמריצים את הפקודה אפשר גם לציין נתיב יחסי לקובץ. הנתיב יהיה יחסי לספרייה |
backup:dbStorageBucket |
CLOUD_STORAGE_BUCKET_PATH נתיב הקטגוריה של Cloud Storage בפורמט הזה: |
backup:cloudProvider |
לגיבוי ב-Cloud Storage, מגדירים את המאפיין ל- לגיבוי של שרת מרוחק, מגדירים את המאפיין לערך |
backup:schedule |
BACKUP_SCHEDULE_CODE השעה שבה הגיבוי מתחיל, שצוינה בתחביר crontab רגיל. ברירת מחדל: |