תזמון גיבויים ב-Cloud Storage

בדף הזה מוסבר איך לתזמן גיבויים של Cassandra ב-Cloud Storage. בשיטה הזו, הגיבויים מאוחסנים בקטגוריה של Cloud Storage שצוינה.

כדי לתזמן גיבויים של Cassandra, פועלים לפי השלבים הבאים:

  1. מריצים את הפקודה 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 זמין במאמר בנושא יצירה וניהול של חשבונות שירות.
  2. הפקודה create-service-account שומרת קובץ JSON שמכיל את המפתח הפרטי של חשבון השירות. הקובץ נשמר באותה ספרייה שבה מופעלת הפקודה. תצטרכו את הנתיב לקובץ הזה בשלבים הבאים.
  3. יצירת קטגוריה של Cloud Storage מציינים מדיניות שמירת נתונים סבירה לקטגוריה. ‫Apigee ממליצה על מדיניות שמירת נתונים של 15 ימים.
  4. פותחים את קובץ ה-overrides.yaml.
  5. כדי להפעיל גיבוי, מוסיפים את המאפיינים הבאים 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"
          
    
    
        ... 
  6. כאשר:
    מאפיין (property) תיאור
    backup:enabled הגיבוי מושבת כברירת מחדל. צריך להגדיר את המאפיין הזה לערך true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    הנתיב במערכת הקבצים לקובץ ה-JSON של חשבון השירות שהורד כשמריצים את הפקודה ./tools/create-service-account.

    אפשר גם לציין נתיב יחסי לקובץ. הנתיב יהיה יחסי לספרייה hybrid-base-directory/hybrid-files.

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    נתיב הקטגוריה של Cloud Storage בפורמט הזה: gs://BUCKET_NAME. השדה gs:// הוא שדה חובה.

    backup:cloudProvider

    GCP/HYBRID

    לגיבוי ב-Cloud Storage, מגדירים את המאפיין ל-GCP. לדוגמה, cloudProvider: "GCP".

    לגיבוי של שרת מרוחק, מגדירים את המאפיין לערך HYBRID. לדוגמה, cloudProvider: "HYBRID".

    backup:schedule

    BACKUP_SCHEDULE_CODE

    השעה שבה הגיבוי מתחיל, שצוינה בתחביר crontab רגיל. ברירת מחדל: 0 2 * * *

  7. מחילים את שינויי ההגדרות על האשכול החדש. לדוגמה:
    $APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE

    YOUR_OVERRIDES_FILE הוא הנתיב לקובץ ההחלפות שערכתם.

  8. מאמתים את עבודת הגיבוי. לדוגמה:
    kubectl get cronjob -n apigee
      NAME                      SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
      apigee-cassandra-backup   33 * * * *   False     0        <none>          94s