Nesta página, descrevemos como programar backups do Cassandra sem o Cloud Storage.
Neste método, os backups são armazenados em um servidor remoto especificado por você, em vez de um bucket do Cloud Storage. A Apigee usa
SSH para se comunicar com o servidor remoto.
É necessário programar os backups como jobs cron. Depois que uma programação de backup é aplicada
ao cluster híbrido, um job de backup do Kubernetes é executado periodicamente de acordo com a programação
no plano de ambiente de execução. O job interage com cada pod do Cassandra no cluster híbrido para coletar
todos os dados, criar um arquivo (compactado) dos dados e enviar o arquivo ao servidor
especificado no arquivo overrides.yaml.
As etapas a seguir incluem exemplos comuns de como concluir tarefas específicas, como criar um par
de chaves SSH. Use os métodos apropriados para a instalação.
Designe um servidor Linux ou Unix para seus backups. Esse servidor precisa ser acessível via SSH pelo
plano do ambiente de execução da Apigee híbrida. Ele deve ter armazenamento suficiente para seus backups.
Configure um servidor SSH ou verifique se há um servidor SSH seguro configurado.
Crie um par de chaves SSH e armazene o arquivo da chave privada em um caminho acessível no plano do
ambiente de execução híbrido. Use uma senha em branco para o par de chaves ou o backup falhará. Exemplo:
Em que: exampleuser@example.com é uma string.
Qualquer string após -C no comando ssh-keygen se torna um comentário incluído na chave ssh recém-criada. A string de entrada pode ser qualquer string. Quando você usa um nome de conta no formato exampleuser@example.com, é possível identificar rapidamente qual conta corresponde à chave.
Crie uma conta de usuário no servidor de backup com o nome apigee. Verifique se
o novo usuário apigee tem um diretório principal em /home.
No servidor de backup, crie um diretório .ssh no novo diretório
/home/apigee.
Copie a chave pública (ssh_key.pub no exemplo anterior) em um arquivo chamado
authorized_keys no novo diretório /home/apigee/.ssh. Exemplo:
cd /home/apigee
mkdir .sshcd .sshvi authorized_keys
No servidor de backup, crie um diretório de backup dentro do diretório
/home/apigee/. O diretório de backup pode ser qualquer diretório, desde que o usuário apigee tenha acesso
a ele. Exemplo:
cd /home/apigee
mkdir cassandra-backup
Definir a programação e o destino do backup
Você define a programação e o destino dos backups no arquivo overrides.yaml.
Adicione os seguintes parâmetros ao seu arquivo overrides.yaml:
O backup está desativado por padrão. É preciso definir essa
propriedade como true.
backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
O caminho no sistema de arquivos local para o arquivo de chave privada SSH (chamado ssh_key
na etapa em que você criou o par de chaves SSH). O caminho precisa ser relativo ao diretório do gráfico apigee-datastore.
backup:server
BACKUP_SERVER_IP
O endereço IP do servidor de backup.
backup:storageDirectory
BACKUP_DIRECTORY
O nome do diretório de backup no servidor de backup. Precisa ser um diretório dentro de
home/apigee (o diretório de backup se chama cassandra_backup
na etapa em que você criou o diretório de backup).
backup:cloudProvider
HYBRID
Para um backup remoto do servidor, defina a propriedade como HYBRID.
backup:schedule
SCHEDULE
O horário de início do backup, especificado na
sintaxe padrão de crontab. As horas estão no fuso horário local do cluster do Kubernetes. Padrão: 0 2 * * *
Aplique a configuração de backup ao escopo de armazenamento do
cluster:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-18 UTC."],[],[],null,["# Scheduling backups in a remote server\n\nThis page describes how to schedule backups for Cassandra without the Cloud Storage.\nIn this method, backups are stored on a remote server specified by you instead of a Cloud Storage bucket. Apigee uses\nSSH to communicate with the remote server.\n\nYou must schedule the backups as `cron` jobs. Once a backup schedule has been applied\nto your hybrid cluster, a Kubernetes backup job is periodically executed according to the schedule\nin the runtime plane. The job interacts with each Cassandra pod in your hybrid cluster to collect\nall the data, create an archive (compressed) file of the data, and send the archive to the server\nspecified in your `overrides.yaml` file.\n| **Note:** You must ensure there is enough space on the file system for the backups, and adjust the frequency of the backups to avoid unnecessarily filling the allotted storage space. Apigee does not dictate a retention policy for the backup files. You may want to create a retention policy for files appropriate to your installation.\n\n\nThe following steps include common examples for completing specific tasks, like creating an SSH\nkey pair. Use the methods that are appropriate to your installation.\n\n\nThe procedure has the following parts:\n\n- [Set up the server and SSH](#server-ssh)\n- [Set the schedule and destination for backup](#overrides-backup)\n\n### Set up the server and SSH\n\n1. Designate a Linux or Unix server for your backups. This server must be reachable using SSH from your Apigee hybrid runtime plane. It must have enough storage for your backups.\n2. Set up an SSH server on the server, or ensure that it has a secure SSH server configured. **Caution:** For security purposes, make sure your SSH server is up to date.\n3. Create an SSH key pair and store the private key file in a path that is accessible from your hybrid runtime plane. **You must use a blank password for your key pair or the backup will fail** . For example: \n\n ssh-keygen -t rsa -b 4096 -C \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eexampleuser\u003c/span\u003e\u003cspan class=\"devsite-syntax-nv\"\u003e@example\u003c/span\u003e\u003cspan class=\"devsite-syntax-p\"\u003e.\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003ecom\u003c/span\u003e\u003c/var\u003e\n Enter file in which to save the key (/Users/exampleuser/.ssh/id_rsa): $APIGEE_HOME/hybrid-files/certs/ssh_key\n Enter passphrase (empty for no passphrase):\n Enter same passphrase again:\n Your identification has been saved in ssh_key\n Your public key has been saved in ssh_key.pub\n The key fingerprint is:\n SHA256:DWKo334XMZcZYLOLrd/8HNpjTERPJJ0mc11UYmrPvSA exampleuser@example.com\n The key's randomart image is:\n +---[RSA 4096]----+\n | +. ++X|\n | . . o.=.*+|\n | . o . . o==o |\n | . . . =oo+o...|\n | . S +E oo .|\n | . . .. . o .|\n | . . . . o.. |\n | . ...o ++. |\n | .. .. +o+. |\n +----[SHA256]-----+\n\n\n Where: \u003cvar translate=\"no\"\u003eexampleuser@example.com\u003c/var\u003e is a string.\n Any string that follows `-C` in the `ssh-keygen`\n command becomes a comment included in the newly created `ssh`\n key. The input string can be any string. When you use an account name\n in the form of \u003cvar translate=\"no\"\u003eexampleuser@example.com\u003c/var\u003e, you can quickly\n identify which account goes with the key.\n4. Create a user account on the backup server with the name `apigee`. Make sure the new `apigee` user has a home directory under `/home`.\n5. On the backup server, create an `.ssh` directory in the new `/home/apigee` directory.\n6. Copy the public key (`ssh_key.pub` in the previous example) into a file named `authorized_keys` in the new `/home/apigee/.ssh` directory. For example: \n\n cd /home/apigee\n mkdir .ssh\n cd .ssh\n vi authorized_keys\n\n7. On your backup server, create a backup directory within the `/home/apigee/` directory. The backup directory can be any directory as long as the `apigee` user has access to it. For example: \n\n cd /home/apigee\n mkdir cassandra-backup\n\n### Set the schedule and destination for backup\n\n\nYou set the schedule and destination for backups in your `overrides.yaml` file.\n\n1. Add the following parameters to your `overrides.yaml` file:\n\n ### Parameters\n\n ```actionscript-3\n cassandra:\n backup:\n enabled: true\n keyFile: \"\u003cvar translate=\"no\"\u003ePATH_TO_PRIVATE_KEY_FILE\u003c/var\u003e\"\n server: \"\u003cvar translate=\"no\"\u003eBACKUP_SERVER_IP\u003c/var\u003e\"\n storageDirectory: \"/home/apigee/\u003cvar translate=\"no\"\u003eBACKUP_DIRECTORY\u003c/var\u003e\"\n cloudProvider: \"HYBRID\" # required verbatim \"HYBRID\" (all caps)\n schedule: \"\u003cvar translate=\"no\"\u003eSCHEDULE\u003c/var\u003e\"\n ```\n\n ### Example\n\n ```actionscript-3\n cassandra:\n backup:\n enabled: true\n keyFile: \"private.key\"# path relative to apigee-datastore path\n server: \"34.56.78.90\"\n storageDirectory: \"/home/apigee/cassbackup\"\n cloudProvider: \"HYBRID\"\n schedule: \"0 2 * * *\"\n ```\n\n\n Where:\n\n2. Apply the backup configuration to the storage scope of your cluster: \n\n ```\n helm upgrade datastore apigee-datastore/ \\\n --install \\\n --namespace APIGEE_NAMESPACE \\\n --atomic \\\n -f OVERRIDES_FILE.yaml\n ```\n\n Where \u003cvar translate=\"no\"\u003eOVERRIDES_FILE\u003c/var\u003e is the path to the overrides file you just edited.\n3. Verify the backup job. For example: \n\n ```\n kubectl get cronjob -n APIGEE_NAMESPACE\n ``` \n\n ```component-pascal\n NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE\n apigee-cassandra-backup 33 * * * * False 0 \u003cnone\u003e 94s\n ```"]]