גיבוי ושחזור של נתוני Cassandra

בקטע הזה מוסבר איך להגדיר גיבוי ושחזור של נתונים במעגל של מסד הנתונים Apache Cassandra שהותקן במישור זמן הריצה של Apigee Hybrid. אפשר לעיין גם במאגר הנתונים של Cassandra.

מה צריך לדעת על גיבויים של Cassandra

‫Cassandra הוא מסד נתונים משוכפל שמוגדר כך שיהיו לפחות שלושה עותקים של הנתונים שלכם בכל אזור או מרכז נתונים. ‫Cassandra משתמשת בשכפול סטרימינג ובתיקוני קריאה כדי לשמור על רפליקות הנתונים בכל אזור או מרכז נתונים בכל נקודה נתונה.

בסביבה היברידית, הגיבויים של Cassandra לא מופעלים כברירת מחדל. עם זאת, מומלץ להפעיל גיבויים של Cassandra למקרה שהנתונים יימחקו בטעות.

מה מגובֶה?

הגדרות הגיבוי שמתוארות במאמר הזה מגבות את הישויות הבאות:

  • סכימת Cassandra כולל סכימת המשתמש (הגדרות של מרחב מפתחות Apigee)
  • פרטי טוקן של מחיצת Cassandra לכל צומת
  • תמונת מצב של נתוני Cassandra

איפה נשמרים נתוני הגיבוי?

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

תזמון גיבויים של Cassandra

גיבויים מתוזמנים כמשימות cron במישור זמן הריצה. כדי לתזמן גיבויים של Cassandra:

  1. מריצים את הפקודה create-service-account הבאה כדי ליצור חשבון שירות (SA) ב-Google Cloud עם התפקיד הרגיל roles/storage.objectAdmin. תפקיד SA הזה מאפשר לכם לכתוב נתוני גיבוי ל-Cloud Storage. מריצים את הפקודה הבאה בספריית הבסיס של ההתקנה ההיברידית:
    ./tools/create-service-account apigee-cassandra OUTPUT_DIR
    לדוגמה:
    ./tools/create-service-account apigee-cassandra ./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
    
      ...
      

    דוגמה

    ...
    
    cassandra:
      storage:
        type: gcepd
        capacity: 50Gi
        gcepd:
          replicationType: regional-pd
      sslRootCAPath: "/Users/myhome/ssh/cassandra.crt"
      sslCertPath: "/Users/myhome/ssh/cassandra.crt"
      sslKeyPath: "/Users/myhome/ssh/cassandra.key"
      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.json"
        dbStorageBucket: "gs://myname-cassandra-backup"
        schedule: "45 23 * * 6"
    
      ... 
  6. כאשר:
    מאפיין (property) תיאור
    backup:enabled הגיבוי מושבת כברירת מחדל. צריך להגדיר את המאפיין הזה לערך true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

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

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

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

    backup:schedule

    BACKUP_SCHEDULE_CODE

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

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

שחזור גיבויים

השחזור לוקח את הנתונים ממיקום הגיבוי ומשחזר אותם לאשכול חדש של Cassandra עם אותו מספר צמתים. לא נלקחים נתונים מאשכול Cassandra הישן.

ההוראות לשחזור שבהמשך מיועדות לפריסות באזור יחיד שמשתמשות ב-Google Cloud Storage לגיבויים. למידע על פריסות אחרות, קראו את המאמרים הבאים:

כדי לשחזר גיבויים של Cassandra:

  1. יוצרים מרחב שמות חדש באשכול Kubernetes הקיים, שישמש לשחזור הפריסה של סביבת זמן הריצה ההיברידית. אל תשתמשו בשם המקורי של מרחב השמות בשביל מרחב השמות החדש. אל תשתמשו במרחב השמות הישן לשחזור.
  2. בספריית השורש של ההתקנה ההיברידית, יוצרים קובץ חדש בשם overrides-restore.yaml.
  3. מעתיקים את ההגדרה המלאה של Cassandra מהקובץ המקורי overrides.yaml לקובץ החדש overrides-restore.yaml. לדוגמה, הפקודה הבאה:
    cp ./overrides.yaml ./overrides-restore.yaml
  4. מוסיפים רכיב של מרחב שמות לקובץ overrides-restore.yaml החדש. אל תשתמשו באותו מרחב שמות שבו השתמשתם באשכול המקורי.

    פרמטרים

    namespace: YOUR_RESTORE_NAMESPACE
    cassandra:
      ...
      restore:
        enabled: true
        snapshotTimestamp: TIMESTAMP
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
             image:
               pullPolicy: Always
      ...

    דוגמה

    ...
        namespace: cassandra-restore
        cassandra:
          storage:
            type: gcepd
            capacity: 50Gi
            gcepd:
              replicationType: regional-pd
          sslRootCAPath: "/Users/myhome/ssh/cassandra.crt"
          sslCertPath: "/Users/myhome/ssh/cassandra.crt"
          sslKeyPath: "/Users/myhome/ssh/cassandra.key"
          auth:
            default:
              password: "abc123"
            admin:
              password: "abc234"
            ddl:
              password: "abc345"
            dml:
              password: "abc456"
          nodeSelector:
            key: cloud.google.com/gke-nodepool
            value: apigee-data
    
          restore:
            enabled: true
            snapshotTimestamp: "20210203213003"
            serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json"
            dbStorageBucket: "gs://myname-cassandra-backup"
            image:
              pullPolicy: Always
        ...
    

    כאשר:

    מאפיין (property) תיאור
    namespace

    YOUR_RESTORE_NAMESPACE

    השם של מרחב השמות החדש שיצרתם בשלב 1 עבור אשכול Cassandra החדש. אל תשתמשו באותו מרחב שמות שבו השתמשתם עבור האשכול המקורי.

    restore:enabled השחזור מושבת כברירת מחדל. צריך להגדיר את המאפיין הזה לערך true.
    restore:snapshotTimestamp

    TIMESTAMP

    חותמת הזמן של תמונת המצב של הגיבוי שרוצים לשחזר. כדי לבדוק באילו חותמות זמן אפשר להשתמש, עוברים אל dbStorageBucket ומסתכלים על הקבצים שנמצאים בדלי. כל שם קובץ מכיל ערך של חותמת זמן, כמו בדוגמה הבאה:

    backup_20210203213003_apigee-cassandra-default-0.tgz

    כאשר 20210203213003 הוא הערך של snapshotTimestamp שבו הייתם משתמשים אם הייתם רוצים לשחזר את הגיבויים שנוצרו באותו רגע בזמן.

    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    הנתיב במערכת הקבצים לחשבון השירות שיצרתם לגיבוי.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    נתיב הקטגוריה של Cloud Storage שבו מאוחסנים נתוני הגיבוי, בפורמט הבא:

    gs://BUCKET_NAME

    השדה gs:// הוא שדה חובה.

  5. משנים את התווית app בכל צומתי Cassandra במרחב השמות הישן על ידי הפעלת הפקודה הבאה:
    kubectl label pods --overwrite --namespace=OLD_NAMESPACE -l app=apigee-cassandra app=apigee-cassandra-old
    
  6. יוצרים פריסה חדשה של סביבת ריצה היברידית. ייווצר אשכול חדש של Cassandra והנתונים יתחילו להשתחזר לתוך האשכול:
    ./apigeectl init  -f ../overrides-restore.yaml
    
    ./apigeectl apply  -f ../overrides-restore.yaml
    
  7. אחרי שהשחזור יסתיים, צריך להעביר את התנועה לשימוש באשכול Cassandra במרחב השמות החדש. מריצים את הפקודות הבאות כדי להעביר את התנועה:

    kubectl get rs -n OLD_NAMESPACE # look for the 'apigee-connect' replicaset
    
    kubectl patch rs -n OLD_NAMESPACE APIGEE_CONNECT_RS_NAME -p '{"spec":{"replicas" : 0}}'
    
  8. אחרי שהתנועה תעבור, תוכלו להגדיר מחדש את הגיבויים באשכול המשוחזר. לשם כך, תצטרכו להסיר את ההגדרה restore ולהוסיף את ההגדרה backup לקובץ overrides-restore.yaml. מחליפים את YOUR_RESTORE_NAMESPACE בשם של מרחב השמות החדש שנוצר בשלב 1.
    namespace: YOUR_RESTORE_NAMESPACE
    cassandra:
      ...
       backup:
        enabled: true
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
        schedule: BACKUP_SCHEDULE_CODE
      ...

    לאחר מכן מריצים את הפקודה הבאה כדי להחיל את הגדרות backup:

    ./apigeectl apply  -f ../overrides-restore.yaml
    

צפייה ביומני השחזור

אפשר לבדוק את היומנים של עבודת השחזור ולהשתמש ב-grep כדי לחפש error כדי לוודא שאין שגיאות ביומן השחזור.

אימות השלמת השחזור

כדי לבדוק אם פעולת השחזור הסתיימה, משתמשים בפקודה הבאה:

kubectl get pods

הפלט אמור להיראות כך:

NAME                           READY     STATUS      RESTARTS   AGE
apigee-cassandra-default-0     1/1       Running     0          1h
apigee-cassandra-default-1     1/1       Running     0          1h
apigee-cassandra-default-2     1/1       Running     0          59m
apigee-cassandra-restore-b4lgf 0/1       Completed   0          51m

צפייה ביומני השחזור

כדי לראות את יומני השחזור, משתמשים בפקודה הבאה:

kubectl logs -f apigee-cassandra-restore-b4lgf

הפלט אמור להיראות כך:

Restore Logs:

Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
to download file gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1/backup_20190405011309_schema.tgz
INFO: download successfully extracted the backup files from gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
finished downloading schema.cql
to create schema from 10.32.0.28

Warnings :
dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0

dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0


Warnings :
dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0

dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0

INFO: the schema has been restored
starting apigee-cassandra-default-0 in default
starting apigee-cassandra-default-1 in default
starting apigee-cassandra-default-2 in default
84 95 106
waiting on waiting nodes $pid to finish  84
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
INFO: restore downloaded  tarball and extracted the file from  gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO: restore downloaded  tarball and extracted the file from  gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO: restore downloaded  tarball and extracted the file from  gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO  12:02:28 Configuration location: file:/etc/cassandra/cassandra.yaml
…...

INFO  12:02:41 [Stream #e013ee80-5863-11e9-8458-353e9e3cb7f9] All sessions completed

Summary statistics:
   Connections per host    : 3
   Total files transferred : 2
   Total bytes transferred : 0.378KiB
   Total duration          : 5048 ms
   Average transfer rate   : 0.074KiB/s
   Peak transfer rate      : 0.075KiB/s

progress: [/10.32.1.155]0:1/1 100% 1:1/1 100% [/10.32.0.28]1:1/1 100% 0:1/1 100% [/10.32.3.220]0:1/1 100% 1:1/1 100% total: 100% 0.000KiB/s (avg: 0.074KiB/s)
INFO  12:02:41 [Stream #e013ee80-5863-11e9-8458-353e9e3cb7f9] All sessions completed
progress: [/10.32.1.155]0:1/1 100% 1:1/1 100% [/10.32.0.28]1:1/1 100% 0:1/1 100% [/10.32.3.220]0:1/1 100% 1:1/1 100% total: 100% 0.000KiB/s (avg: 0.074KiB/s)
INFO  12:02:41 [Stream #e013ee80-5863-11e9-8458-353e9e3cb7f9] All sessions completed
INFO  12:02:41 [Stream #e013ee80-5863-11e9-8458-353e9e3cb7f9] All sessions completed
INFO: ./apigee/data/cassandra/data/ks1/user-9fbae960571411e99652c7b15b2db6cc restored successfully
INFO: Restore 20190405011309 completed
INFO: ./apigee/data/cassandra/data/ks1/user-9fbae960571411e99652c7b15b2db6cc restored successfully
INFO: Restore 20190405011309 completed
waiting on waiting nodes $pid to finish  106
Restore finished

אימות של עבודת הגיבוי

אפשר גם לאמת את עבודת הגיבוי אחרי שתזמנתם את משימת ה-cron לגיבוי. אחרי שתזמנו את משימת ה-cron, אתם אמורים לראות משהו כזה:

kubectl get pods

הפלט אמור להיראות כך:

NAME                                       READY     STATUS      RESTARTS   AGE
apigee-cassandra-default-0                 1/1       Running     0          2h
apigee-cassandra-default-1                 1/1       Running     0          2h
apigee-cassandra-default-2                 1/1       Running     0          2h
apigee-cassandra-backup-1554515580-pff6s   0/1       Running     0          54s

בדיקת יומני הגיבוי

משימת הגיבוי:

  • המערכת יוצרת קובץ schema.cql.
  • העלאה לקטגוריית האחסון.
  • הפקודה משקפת את הצומת כדי לגבות את הנתונים ומעלה אותם בו-זמנית.
  • הפונקציה ממתינה עד שכל הנתונים יועלו.
kubectl logs -f apigee-cassandra-backup-1554515580-pff6s

הפלט אמור להיראות כך:

myusername-macbookpro:cassandra-backup-utility myusername$ kubectl logs -f apigee-cassandra-backup-1554577680-f9sc4
starting apigee-cassandra-default-0 in default
starting apigee-cassandra-default-1 in default
starting apigee-cassandra-default-2 in default
35 46 57
waiting on process  35
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
Requested creating snapshot(s) for [all keyspaces] with snapshot name [20190406190808] and options {skipFlush=false}
Snapshot directory: 20190406190808
INFO: backup created cassandra snapshot 20190406190808
tar: Removing leading `/' from member names
/apigee/data/cassandra/data/ks1/mytest3-37bc2df0587811e98e8d875b0ed64754/snapshots/
/apigee/data/cassandra/data/ks1/mytest3-37bc2df0587811e98e8d875b0ed64754/snapshots/20190406190808/
/apigee/data/cassandra/data/ks1/mytest3-37bc2df0587811e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Data.db
Requested creating snapshot(s) for [all keyspaces] with snapshot name [20190406190808] and options {skipFlush=false}
Requested creating snapshot(s) for [all keyspaces] with snapshot name [20190406190808] and options {skipFlush=false}
Snapshot directory: 20190406190808
INFO: backup created cassandra snapshot 20190406190808
tar: Removing leading `/' from member names
/apigee/data/cassandra/data/system/hints-2666e20573ef38b390fefecf96e8f0c7/snapshots/
/apigee/data/cassandra/data/system/hints-2666e20573ef38b390fefecf96e8f0c7/snapshots/20190406190808/
/apigee/data/cassandra/data/system/hints-2666e20573ef38b390fefecf96e8f0c7/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/system/prepared_statements-18a9c2576a0c3841ba718cd529849fef/snapshots/
/apigee/data/cassandra/data/system/prepared_statements-18a9c2576a0c3841ba718cd529849fef/snapshots/20190406190808/
/apigee/data/cassandra/data/system/prepared_statements-18a9c2576a0c3841ba718cd529849fef/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/system/range_xfers-55d764384e553f8b9f6e676d4af3976d/snapshots/
/apigee/data/cassandra/data/system/range_xfers-55d764384e553f8b9f6e676d4af3976d/snapshots/20190406190808/
/apigee/data/cassandra/data/system/range_xfers-55d764384e553f8b9f6e676d4af3976d/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/system/peer_events-59dfeaea8db2334191ef109974d81484/snapshots/
/apigee/data/cassandra/data/system/peer_events-59dfeaea8db2334191ef109974d81484/snapshots/20190406190808/
/apigee/data/cassandra/data/system/peer_events-59dfeaea8db2334191ef109974d81484/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/system/built_views-4b3c50a9ea873d7691016dbc9c38494a/snapshots/
/apigee/data/cassandra/data/system/built_views-4b3c50a9ea873d7691016dbc9c38494a/snapshots/20190406190808/
/apigee/data/cassandra/data/system/built_views-4b3c50a9ea873d7691016dbc9c38494a/snapshots/20190406190808/manifest.json
……
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Filter.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-CompressionInfo.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Index.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Statistics.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Data.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Index.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Statistics.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-TOC.txt
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Statistics.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Summary.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Filter.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Summary.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Index.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/manifest.json
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Filter.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-2-big-Digest.crc32
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Summary.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Data.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-TOC.txt
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/schema.cql
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-CompressionInfo.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Digest.crc32
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-TOC.txt
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-Data.db
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-3-big-Digest.crc32
/apigee/data/cassandra/data/ks2/user-d6d39d70586311e98e8d875b0ed64754/snapshots/20190406190808/mc-1-big-CompressionInfo.db
……
/tmp/tokens.txt
/ [1 files][    0.0 B/    0.0 B]
Operation completed over 1 objects.
/ [1 files][    0.0 B/    0.0 B]
Operation completed over 1 objects.
INFO: backup created tarball and transferred the file to gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO: removing cassandra snapshot
INFO: backup created tarball and transferred the file to gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
INFO: removing cassandra snapshot
Requested clearing snapshot(s) for [all keyspaces]
INFO: Backup 20190406190808 completed
waiting on process  46
Requested clearing snapshot(s) for [all keyspaces]
INFO: Backup 20190406190808 completed
Requested clearing snapshot(s) for [all keyspaces]
waiting on process  57
INFO: Backup 20190406190808 completed
waiting result
to get schema from 10.32.0.28
INFO: /tmp/schema.cql has been generated
Activated service account credentials for: [apigee-cassandra-backup-svc@gce-myusername.iam.gserviceaccount.com]
tar: removing leading '/' from member names
tmp/schema.cql
Copying from <TDIN>...
/ [1 files][    0.0 B/    0.0 B]
Operation completed over 1 objects.
INFO: backup created tarball and transferred the file to gs://gce-myusername-apigee-cassandra-backup/apigeecluster/dc-1
finished uploading schema.cql