Criar um repositório de backup

Nesta página, descrevemos como criar um repositório de backup para máquinas virtuais (VMs) no Google Distributed Cloud (GDC) com isolamento físico.

Antes de criar backups ou snapshots, defina pelo menos um repositório de backup que possa ser compartilhado entre vários backups ou snapshots. Um repositório de backup informa ao sistema onde armazenar ou recuperar backups. Os repositórios de backup para VMs são restritos ao servidor da API Management.

Antes de começar

Antes de criar um repositório de backup, provisione o armazenamento subjacente e configure as permissões necessárias, incluindo:

Criar um repositório de backup

Crie um repositório usando o console do GDC ou a API.

Console

  1. Faça login no console do GDC.
  2. No menu de navegação, clique em Backup para máquinas virtuais > Repositórios.
  3. Clique em Criar repositório.
  4. Insira um nome e uma descrição opcional para o repositório.
  5. No campo Endpoint do URI do S3, insira um endpoint com o nome de domínio totalmente qualificado do seu site de armazenamento de objetos, como https://objectstorage.ORG.ZONE.DOMAIN.SUFFIX:PORT. Por exemplo, https://objectstorage.org-1.zone1.google.gdch.test. Para receber o valor do recurso personalizado Bucket, execute o seguinte comando:

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'
    
  6. No campo Nome do bucket, insira o nome de domínio totalmente qualificado do bucket. É possível encontrar esse nome na página Detalhes do bucket no console do GDC ou executar o seguinte comando para receber o valor do recurso personalizado Bucket:

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'
    
  7. No campo Região do bucket, insira a região em que o bucket foi criado e extraia o valor do recurso personalizado do bucket executando o seguinte comando:

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.region'
    
  8. Nos campos ID da chave de acesso e Chave de acesso, insira o ID da chave de acesso e a chave de acesso secreta. Para mais informações sobre como receber essas credenciais, consulte Conceder e receber acesso ao bucket de armazenamento.

  9. Clique em Criar.

API

Crie um recurso personalizado BackupRepository usando suas credenciais do S3.

  1. Confira o nome do secret que contém as credenciais do S3:

    export PROJECT_NAME=PROJECT_NAME
    export SA_NAME=SA_NAME
    kubectl get secrets --namespace $PROJECT_NAME -o json | jq -r --arg USER_NAME "${SA_NAME:?}" '.items[] | select( (.metadata.annotations."object.gdc.goog/subject"==$USER_NAME)) | .metadata.name'
    

    Registre o nome do secret retornado pelo comando e use-o como SECRET_NAME na próxima etapa.

    Substitua:

    • PROJECT_NAME: o nome do projeto.
    • SA_NAME: o nome da conta de serviço usada para acessar o armazenamento de objetos.
  2. Para receber detalhes do bucket, como FQDN e endpoints, extraia os valores fullyQualifiedName e zonalEndpoints da saída:

    kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yaml
    
  3. Crie um BackupRepository no servidor da API Management:

    apiVersion: backup.gdc.goog/v1
    kind: BackupRepository
    metadata:
      name: REPOSITORY_NAME
    spec:
      secretReference:
        namespace: PROJECT_NAME
        name: SECRET_NAME
      endpoint: ENDPOINT
      type: "S3"
      s3Options:
        bucket: BUCKET_FQDN
        region: REGION
        forcePathStyle: FORCE_PATH_STYLE
      importPolicy: IMPORT_POLICY
    

    Substitua:

    • REPOSITORY_NAME: o nome do repositório de backup.
    • PROJECT_NAME: o nome do projeto.
    • SA_NAME: o nome da conta de serviço usada para acessar o armazenamento de objetos.
    • SECRET_NAME: o nome do secret retornado do comando kubectl get secrets.
    • ENDPOINT: o nome de domínio totalmente qualificado do sistema de armazenamento, por exemplo, https://objectstorage.google.gdch.test. Para o campo type, apenas o valor S3 é aceito.
    • BUCKET_FQDN: o nome totalmente qualificado do bucket.
    • REGION: a região em que o bucket foi criado.
    • FORCE_PATH_STYLE: use o campo forcePathStyle para forçar URLs de estilo de caminho para objetos. Esse campo precisa ter um valor de true ou false.
    • IMPORT_POLICY: defina como uma das seguintes opções:
      • ReadWrite: esse repositório pode ser usado para programar ou criar backups, planos de backup e restaurações.
      • ReadOnly: esse repositório só pode ser usado para importar e visualizar backups. Não é possível criar novos backups ou recursos nesse repositório, mas as restaurações podem usar e referenciar backups somente leitura. Não há restrição quanto à frequência com que um repositório de backup pode ser usado como ReadOnly.

    O BackupRepository cria um recurso BackupRepository ativado para leitura e gravação no servidor da API Management com o mesmo nome.

A seguir