Sobre o GitHub Enterprise Server Backup Utilities
O GitHub Enterprise Server Backup Utilities é um sistema de backup a ser instalado em um host separado, que tira instantâneos de backup da sua instância do GitHub Enterprise Server em intervalos regulares em uma conexão de rede SSH segura. É possível usar um instantâneo para voltar uma instância do GitHub Enterprise Server a um estado anterior do host de backup.
Somente os dados adicionados desde o último instantâneo serão transferidos pela rede e ocuparão espaço adicional de armazenamento físico. Para minimizar o impacto no desempenho, os backups são feitos online com a menor prioridade de E/S de CPU. Não é necessário programar um período de manutenção para fazer backups.
Para obter informações mais detalhadas sobre recursos, requisitos e uso avançado, consulte o README do GitHub Enterprise Server Backup Utilities.
Pré-requisitos
Para usar o GitHub Enterprise Server Backup Utilities, você deve ter um sistema host Linux ou Unix separado da sua instância do GitHub Enterprise Server.
Também é possível integrar o GitHub Enterprise Server Backup Utilities a um ambiente para fins de armazenamento permanente em longo prazo de dados essenciais.
É recomendável que o host de backup e a sua instância do GitHub Enterprise Server estejam geograficamente distantes. Essa medida garante que os backups estejam disponíveis para recuperação em casos de grandes desastres ou falhas de rede no site primário.
Os requisitos de armazenamento físico variam com base no uso do disco do repositório Git e nos padrões de crescimento esperados:
Hardware | Recomendação |
---|---|
vCPUs | 2 |
Memória | 2 GB |
Armazenamento | Cinco vezes o armazenamento alocado da instância primária |
Podem ser necessários mais recursos dependendo do uso, como atividade do usuário e integrações selecionadas.
Instalar o GitHub Enterprise Server Backup Utilities
Observação: para garantir a disponibilidade imediata de um appliance recuperado, faça backups visando a instância principal, mesmo em uma configuração de replicação geográfica.
- Baixe a versão mais recente do GitHub Enterprise Server Backup Utilities e extraia o arquivo com o comando
tar
.$ tar -xzvf /path/to/github-backup-utils-vMAJOR.MINOR.PATCH.tar.gz
- Copie o arquivo
backup.config-example
parabackup.config
e abra em um editor. - Defina o valor
GHE_HOSTNAME
para o nome de host ou endereço IP da instância primária do GitHub Enterprise Server. - Defina o valor
GHE_DATA_DIR
no local do arquivo do sistema onde você deseja arquivar os instantâneos de backup. - Abra a página das configurações da instância primária em
https://HOSTNAME/setup/settings
e adicione a chave SSH do host de backup à lista de chaves SSH autorizadas. Para obter mais informações, consulte Acessar o shell administrativo (SSH). - Verifique a conectividade SSH com a sua instância do GitHub Enterprise Server usando o comando
ghe-host-check
.$ bin/ghe-host-check
- Para criar um backup completo inicial, execute o comando
ghe-backup
.$ bin/ghe-backup
Para obter mais informações sobre uso avançado, consulte o arquivo README do GitHub Enterprise Server Backup Utilities.
Programar um backup
É possível programar backups regulares no host de backup com o comando cron(8)
ou um serviço de agendamento semelhante. A frequência configurada determinará o objetivo do ponto de recuperação (RPO) nos piores cenários do seu plano de recuperação. Por exemplo, ao programar backups diários à meia-noite, você pode perder até 24 horas de dados em caso de desastre. É recomendável começar com backups a cada hora, garantindo a possibilidade de perdas menores (no máximo de uma hora) caso os dados primários do site sejam destruídos.
Se houver sobreposição de tentativas de backup, o comando ghe-backup
será interrompido com uma mensagem de erro, informando a existência de um backup simultâneo. Nesse caso, é recomendável diminuir a frequência dos backups programados. Para obter mais informações, consulte a seção "Agendar backups" do arquivo README do GitHub Enterprise Server Backup Utilities.
Restaurar um backup
Em caso de interrupção prolongada ou evento catastrófico no site primário, é possível restaurar a sua instância do GitHub Enterprise Server provisionando outro appliance do GitHub Enterprise e executando uma restauração no host de backup. Antes de restaurar um appliance, você deve adicionar a chave SSH do host de backup ao appliance de destino do GitHub Enterprise como chave SSH autorizada.
Para restaurar a sua instância do GitHub Enterprise Server do instantâneo mais recente bem-sucedido, use o comando ghe-restore
. Você verá um conteúdo semelhante a este:
$ ghe-restore -c 169.154.1.1
> Verificando chaves vazadas no instantâneo do backup em restauração...
> * Sem chavez vazadas
> Conexão 169.154.1.1:122 OK (v2.9.0)
> AVISO: todos os dados no appliance GitHub Enterprise 169.154.1.1 (v2.9.0)
> serão substituídos por dados do instantâneo 20170329T150710.
> Antes de prosseguir, confirme se o host de restauração está correto.
> Digite 'sim' para continuar: sim
> Iniciando restauração de 169.154.1.1:122 a partir do instantâneo 20170329T150710
# ...saída truncada
> Restauração concluída de 169.154.1.1:122 a partir do instantâneo 20170329T150710
> Acesse https://169.154.1.1/setup/settings para revisar a configuração do appliance.
Observação: as configurações de rede são excluídas do instantâneo de backup. Você deve configurar manualmente a rede no appliance de destino do GitHub Enterprise Server conforme o seu ambiente.
Você pode usar estas opções adicionais com o comando ghe-restore
:
- O sinalizador
-c
substitui as configurações, os certificados e os dados de licença no host de destino, mesmo que já configurado. Omita esse sinalizador se você estiver configurando uma instância de preparo para fins de teste e se quiser manter a configuração no destino. Para obter mais informações, consulte a seção "Usar comandos de backup e restauração" do README do GitHub Enterprise Server Backup Utilities. - O sinalizador
-s
permite selecionar outro instantâneo de backup.