Agendar cópias de segurança no Cloud Storage

Esta página descreve como agendar cópias de segurança para o Cassandra no Cloud Storage. Neste método, as cópias de segurança são armazenadas no contentor do Cloud Storage especificado.

Para agendar cópias de segurança do Cassandra, siga estes passos:

  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 hybrid-base-directory/hybrid-files:
    ./tools/create-service-account --env non-prod --dir ./service-accounts
    Este comando cria uma única conta de serviço com o nome apigee-non-prod para utilização em ambientes de não produção e coloca o ficheiro de chave transferido no diretório ./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
          cloudProvider: "GCP"  # For remote server backup set this to HYBRID (all caps)
    
        ...
        

    Exemplo

      ...
    
      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. 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 o comando ./tools/create-service-account.

    Também pode indicar um caminho do ficheiro relativo. O caminho é relativo ao diretório hybrid-base-directory/hybrid-files.

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

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

    backup:cloudProvider

    GCP/HYBRID

    Para uma cópia de segurança do Cloud Storage, defina a propriedade como GCP. Por exemplo, cloudProvider: "GCP".

    Para uma cópia de segurança do servidor remoto, defina a propriedade como HYBRID. Por exemplo, cloudProvider: "HYBRID".

    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_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE

    Em que YOUR_OVERRIDES_FILE é o caminho para o ficheiro de substituições que acabou de editar.

  8. Valide a tarefa de cópia de segurança. Por exemplo:
    kubectl get cronjob -n apigee
      NAME                      SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
      apigee-cassandra-backup   33 * * * *   False     0        <none>          94s