Copia de seguridad y recuperación de Cassandra

En esta sección se explica cómo configurar la copia de seguridad y la recuperación de datos del anillo de la base de datos Apache Cassandra instalado en el plano de tiempo de ejecución de Apigee Hybrid. Consulta también Almacén de datos de Cassandra.

Qué debes saber sobre las copias de seguridad de Cassandra

Cassandra es una base de datos replicada que se configura para tener al menos tres copias de tus datos en cada región o centro de datos. Cassandra usa la replicación de streaming y las reparaciones de lectura para mantener las réplicas de datos en cada región o centro de datos en cualquier momento.

En el modelo híbrido, las copias de seguridad de Cassandra no están habilitadas de forma predeterminada. Sin embargo, es recomendable habilitar las copias de seguridad de Cassandra por si se eliminan los datos por error.

¿Qué se incluye en las copias de seguridad?

La configuración de copia de seguridad descrita en este tema crea copias de seguridad de las siguientes entidades:

  • Esquema de Cassandra, incluido el esquema de usuario (definiciones de espacio de claves de Apigee)
  • Información del token de partición de Cassandra por nodo
  • Una instantánea de los datos de Cassandra

¿Dónde se almacenan los datos de las copias de seguridad?

Los datos de las copias de seguridad se almacenan en un segmento de Google Cloud Storage que debes crear. En este tema se explica cómo crear y configurar un contenedor.

Programar copias de seguridad de Cassandra

Las copias de seguridad se programan como tareas cron en el plano de tiempo de ejecución. Para programar copias de seguridad de Cassandra, sigue estos pasos:

  1. Ejecuta el siguiente comando create-service-account para crear una cuenta de servicio (SA) de Google Cloud con el rol estándar roles/storage.objectAdmin. Este rol de SA te permite escribir datos de copias de seguridad en Cloud Storage. Ejecuta el siguiente comando en el directorio raíz de la instalación híbrida:
    ./tools/create-service-account apigee-cassandra OUTPUT_DIR
    Por ejemplo:
    ./tools/create-service-account apigee-cassandra ./service-accounts
    Para obtener más información sobre las cuentas de servicio de Google Cloud, consulta el artículo sobre cómo crear y gestionar cuentas de servicio.
  2. El comando create-service-account guarda un archivo JSON que contiene la clave privada de la cuenta de servicio. El archivo se guarda en el mismo directorio en el que se ejecuta el comando. Necesitarás la ruta a este archivo en los siguientes pasos.
  3. Crea un segmento de Cloud Storage. Especifica una política de conservación de datos razonable para el segmento. Apigee recomienda una política de conservación de datos de 15 días.
  4. Abre el archivo overrides.yaml.
  5. Añade las siguientes propiedades de cassandra.backup para habilitar la copia de seguridad. No elimine ninguna de las propiedades que ya estén configuradas.

    Parámetros

    cassandra:
      ...
    
      backup:
        enabled: true
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
        schedule: BACKUP_SCHEDULE_CODE
    
      ...
      

    Ejemplo

    ...
    
    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. Donde:
    Propiedad Descripción
    backup:enabled La copia de seguridad está inhabilitada de forma predeterminada. Debe asignar el valor true a esta propiedad.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    Ruta del archivo JSON de la cuenta de servicio en tu sistema de archivos. Este archivo se descargó cuando ejecutaste ./tools/create-service-account.

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    La ruta del segmento de Cloud Storage con este formato: gs://BUCKET_NAME. El campo gs:// es obligatorio.

    backup:schedule

    BACKUP_SCHEDULE_CODE

    Hora en la que se inicia la copia de seguridad, especificada en la sintaxis estándar de crontab. Predeterminado: 0 2 * * *

  7. Aplica los cambios de configuración al nuevo clúster. Por ejemplo:
    ./apigeectl apply -f overrides.yaml

Restaurar copias de seguridad

La restauración toma los datos de la ubicación de la copia de seguridad y los restaura en un nuevo clúster de Cassandra con el mismo número de nodos. No se toman datos del clúster de Cassandra antiguo.

Las instrucciones de restauración que se indican a continuación son para implementaciones de una sola región que usan Google Cloud Storage para las copias de seguridad. Para obtener información sobre los despliegues multirregionales, consulta el artículo Despliegues multirregionales en GKE y GKE On-Prem.

Para restaurar copias de seguridad de Cassandra, sigue estos pasos:

  1. Crea un espacio de nombres en el clúster de Kubernetes que se usará para restaurar la implementación del tiempo de ejecución híbrido. No uses el nombre del espacio de nombres original para el nuevo espacio de nombres. No utilice el espacio de nombres antiguo para la restauración.
  2. En el directorio raíz de la instalación híbrida, crea un archivo overrides-restore.yaml.
  3. Copia la configuración completa de Cassandra del archivo overrides.yaml original en el nuevo archivo overrides-restore.yaml. Consulta el siguiente comando para ver un ejemplo.
    cp ./overrides.yaml ./overrides-restore.yaml
  4. Añade un elemento de espacio de nombres al nuevo archivo overrides-restore.yaml. No uses el mismo espacio de nombres que se usó en el clúster original.

    Parámetros

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

    Ejemplo

    ...
        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
        ...
    

    Donde:

    Propiedad Descripción
    namespace

    YOUR_RESTORE_NAMESPACE

    El nombre del nuevo espacio de nombres que has creado en el paso 1 para el nuevo clúster de Cassandra. No uses el mismo espacio de nombres que usaste para tu clúster original.

    restore:enabled La restauración está inhabilitada de forma predeterminada. Debe asignar el valor true a esta propiedad.
    restore:snapshotTimestamp

    TIMESTAMP

    Marca de tiempo de la copia de seguridad que se va a restaurar. Para comprobar qué marcas de tiempo se pueden usar, ve a dbStorageBucket y consulta los archivos que hay en el contenedor. Cada nombre de archivo contiene un valor de marca de tiempo como el siguiente:

    backup_20210203213003_apigee-cassandra-default-0.tgz

    Donde 20210203213003 es el valor de snapshotTimestamp que usarías si quisieras restaurar las copias de seguridad creadas en ese momento.

    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    La ruta del sistema de archivos a la cuenta de servicio que has creado para la copia de seguridad.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Ruta del segmento de Cloud Storage en el que se almacenan los datos de la copia de seguridad, con el siguiente formato:

    gs://BUCKET_NAME

    El campo gs:// es obligatorio.

  5. Cambia la etiqueta app en cualquier nodo de Cassandra del espacio de nombres antiguo ejecutando el siguiente comando:
    kubectl label pods --overwrite --namespace=OLD_NAMESPACE -l app=apigee-cassandra app=apigee-cassandra-old
    
  6. Crea un nuevo despliegue de tiempo de ejecución híbrido. De esta forma, se creará un clúster de Cassandra y se empezarán a restaurar los datos de la copia de seguridad en el clúster:
    ./apigeectl init  -f ../overrides-restore.yaml
    
    ./apigeectl apply  -f ../overrides-restore.yaml
    
  7. Una vez completada la restauración, el tráfico debe cambiarse para usar el clúster de Cassandra en el nuevo espacio de nombres. Ejecuta los siguientes comandos para cambiar el tráfico:

    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. Una vez que se haya completado el cambio de tráfico, puedes volver a configurar las copias de seguridad en el clúster restaurado quitando la configuración de restore y añadiendo la configuración de backup al archivo overrides-restore.yaml. Sustituye YOUR_RESTORE_NAMESPACE por el nuevo nombre de espacio de nombres creado en el paso 1.
    namespace: YOUR_RESTORE_NAMESPACE
    cassandra:
      ...
       backup:
        enabled: true
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
        schedule: BACKUP_SCHEDULE_CODE
      ...

    A continuación, aplica la configuración backup con el siguiente comando:

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

Ver los registros de restauración

Puedes consultar los registros de la tarea de restauración y usar grep para buscar error y asegurarte de que el registro de restauración no tenga errores.

Verificar que se ha completado la restauración

Usa el siguiente comando para comprobar si se ha completado la operación de restauración:

kubectl get pods

El resultado debería ser similar al siguiente:

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

Ver los registros de restauración

Usa el siguiente comando para ver los registros de restauración:

kubectl logs -f apigee-cassandra-restore-b4lgf

El resultado debería ser similar al siguiente:

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

Verificar una tarea de copia de seguridad

También puedes verificar tu trabajo de copia de seguridad después de programar tu cron de copia de seguridad. Una vez que se haya programado el cronjob, debería ver algo parecido a esto:

kubectl get pods

El resultado debería ser similar al siguiente:

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

Consultar los registros de copias de seguridad

La tarea de copia de seguridad:

  • Crea un archivo schema.cql.
  • Lo sube a tu segmento de almacenamiento.
  • Hace eco del nodo para crear una copia de seguridad de los datos y subirlos al mismo tiempo.
  • Espera hasta que se hayan subido todos los datos.
kubectl logs -f apigee-cassandra-backup-1554515580-pff6s

El resultado debería ser similar al siguiente:

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