Cópia de segurança e recuperação do Cassandra

Esta secção aborda como configurar a cópia de segurança e a recuperação de dados para o anel da base de dados Apache Cassandra instalado no plano de tempo de execução híbrido do Apigee. Veja também o artigo sobre o armazenamento de dados do Cassandra.

O que precisa de saber sobre as cópias de segurança do Cassandra

O Cassandra é uma base de dados replicada configurada para ter, pelo menos, três cópias dos seus dados em cada região ou centro de dados. O Cassandra usa a replicação de streaming e as reparações de leitura para manter as réplicas de dados em cada região ou centro de dados em qualquer ponto específico.

No modo híbrido, as cópias de segurança do Cassandra não estão ativadas por predefinição. No entanto, é uma boa prática ativar as cópias de segurança do Cassandra caso os seus dados sejam eliminados acidentalmente.

O que é incluído na cópia de segurança?

A configuração de cópia de segurança descrita neste tópico cria uma cópia de segurança das seguintes entidades:

  • Esquema do Cassandra, incluindo o esquema do utilizador (definições do espaço de chaves do Apigee)
  • Informações do token de partição do Cassandra por nó
  • Um instantâneo dos dados do Cassandra

Onde são armazenados os dados da cópia de segurança?

Os dados de cópia de segurança são armazenados num contentor do Google Cloud Storage que tem de criar. A criação e a configuração de contentores são abordadas neste tópico.

Agendar cópias de segurança do Cassandra

As cópias de segurança são agendadas como crontarefas no plano de tempo de execução. Para agendar cópias de segurança do Cassandra:

  1. Execute o seguinte comando create-service-account para criar uma conta de serviço (CS) do Google Cloud com a função roles/storage.objectAdmin padrão. Esta função de SA permite-lhe escrever dados de cópias de segurança no Cloud Storage. Execute o seguinte comando no diretório raiz da instalação híbrida:
    ./tools/create-service-account apigee-cassandra OUTPUT_DIR
    Por exemplo:
    ./tools/create-service-account apigee-cassandra ./service-accounts
    Para mais informações sobre as contas de serviço do Google Cloud, consulte o artigo Criar e gerir contas de serviço.
  2. O comando create-service-account guarda um ficheiro JSON que contém a chave privada da conta de serviço. O ficheiro é guardado no mesmo diretório onde o comando é executado. Vai precisar do caminho para este ficheiro nos passos seguintes.
  3. Crie um contentor do Cloud Storage. Especifique uma política de retenção de dados razoável para o contentor. A Apigee recomenda uma política de retenção de dados de 15 dias.
  4. Abra o ficheiro overrides.yaml.
  5. Adicione as seguintes propriedades cassandra.backup para ativar a cópia de segurança. Não remova nenhuma das propriedades já configuradas.

    Parâmetros

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

    Exemplo

    ...
    
    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. Onde:
    Propriedade Descrição
    backup:enabled A cópia de segurança está desativada por predefinição. Tem de definir esta propriedade como true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    O caminho no seu sistema de ficheiros para o ficheiro JSON da conta de serviço que foi transferido quando executou ./tools/create-service-account

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    O caminho do contentor do Cloud Storage neste formato: gs://BUCKET_NAME. O campo gs:// é obrigatório.

    backup:schedule

    BACKUP_SCHEDULE_CODE

    A hora em que a cópia de segurança começa, especificada na sintaxe crontab padrão. Predefinição: 0 2 * * *

  7. Aplique as alterações de configuração ao novo cluster. Por exemplo:
    ./apigeectl apply -f overrides.yaml

Restaurar cópias de segurança

O restauro transfere os dados da localização da cópia de segurança e restaura-os num novo cluster do Cassandra com o mesmo número de nós. Não são retirados dados do cluster do Cassandra antigo.

As instruções de restauro abaixo destinam-se a implementações de região única que usam o Google Cloud Storage para cópias de segurança. Para implementações multirregionais, consulte o artigo Implementação multirregional no GKE e GKE On-Prem.

Para restaurar cópias de segurança do Cassandra:

  1. Crie um novo espaço de nomes no cluster do Kubernetes existente que vai ser usado para restaurar a implementação do tempo de execução híbrido. Não use o nome do espaço de nomes original para o novo espaço de nomes. Não use o espaço de nomes antigo para o restauro.
  2. No diretório de instalação híbrida raiz, crie um novo ficheiro overrides-restore.yaml.
  3. Copie a configuração completa do Cassandra do ficheiro overrides.yaml original para o novo ficheiro overrides-restore.yaml. Veja o seguinte comando para um exemplo.
    cp ./overrides.yaml ./overrides-restore.yaml
  4. Adicione um elemento de espaço de nomes ao novo ficheiro overrides-restore.yaml. Não use o mesmo espaço de nomes que foi usado para o cluster 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
      ...

    Exemplo

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

    Onde:

    Propriedade Descrição
    namespace

    YOUR_RESTORE_NAMESPACE

    O nome do novo espaço de nomes que criou no passo 1 para o novo cluster do Cassandra. Não use o mesmo espaço de nomes que usou para o cluster original.

    restore:enabled O restauro está desativado por predefinição. Tem de definir esta propriedade como true.
    restore:snapshotTimestamp

    TIMESTAMP

    A data/hora do instantâneo da cópia de segurança a restaurar. Para verificar que datas/horas podem ser usadas, aceda ao dbStorageBucket e consulte os ficheiros presentes no contentor. Cada nome de ficheiro contém um valor de carimbo de data/hora, como o seguinte:

    backup_20210203213003_apigee-cassandra-default-0.tgz

    Onde 20210203213003 é o valor snapshotTimestamp que usaria se quisesse restaurar as cópias de segurança criadas nesse momento.

    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    O caminho no seu sistema de ficheiros para a conta de serviço que criou para a cópia de segurança.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    O caminho do contentor do Cloud Storage onde os seus dados de cópia de segurança estão armazenados no seguinte formato:

    gs://BUCKET_NAME

    O campo gs:// é obrigatório.

  5. Altere a etiqueta app em todos os nós do Cassandra no espaço de nomes antigo executando o seguinte comando:
    kubectl label pods --overwrite --namespace=OLD_NAMESPACE -l app=apigee-cassandra app=apigee-cassandra-old
    
  6. Crie uma nova implementação de tempo de execução híbrido. Esta ação cria um novo cluster do Cassandra e começa a restaurar os dados da cópia de segurança no cluster:
    ./apigeectl init  -f ../overrides-restore.yaml
    
    ./apigeectl apply  -f ../overrides-restore.yaml
    
  7. Assim que o restauro estiver concluído, o tráfego tem de ser comutado para usar o cluster do Cassandra no novo espaço de nomes. Execute os seguintes comandos para mudar o tráfego:

    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. Assim que a mudança de tráfego estiver concluída, pode reconfigurar as cópias de segurança no cluster restaurado removendo a configuração restore e adicionando a configuração backup ao ficheiro overrides-restore.yaml. Substitua YOUR_RESTORE_NAMESPACE pelo novo nome do espaço de nomes criado no passo 1.
    namespace: YOUR_RESTORE_NAMESPACE
    cassandra:
      ...
       backup:
        enabled: true
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
        schedule: BACKUP_SCHEDULE_CODE
      ...

    Em seguida, aplique a configuração backup com o seguinte comando:

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

Ver os registos de restauro

Pode verificar os registos da tarefa de restauro e usar grep para verificar se existem error para garantir que o registo de restauro não tem erros.

Valide se o restauro foi concluído

Use o seguinte comando para verificar se a operação de restauro foi concluída:

kubectl get pods

O resultado é semelhante ao seguinte:

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

Veja os registos de restauro

Use o seguinte comando para ver os registos de restauro:

kubectl logs -f apigee-cassandra-restore-b4lgf

O resultado é semelhante ao seguinte:

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

Valide a tarefa de cópia de segurança

Também pode validar a tarefa de cópia de segurança depois de agendar a tarefa cron de cópia de segurança. Depois de o cronjob ter sido agendado, deve ver algo semelhante ao seguinte:

kubectl get pods

O resultado é semelhante ao seguinte:

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

Verifique os registos da cópia de segurança

A tarefa de cópia de segurança:

  • Cria um ficheiro schema.cql.
  • Carrega-o para o seu contentor de armazenamento.
  • Faz eco do nó para fazer uma cópia de segurança dos dados e carregá-los ao mesmo tempo.
  • Aguarda até que todos os dados sejam carregados.
kubectl logs -f apigee-cassandra-backup-1554515580-pff6s

O resultado é semelhante ao seguinte:

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