Skip to main content

Configurar alta disponibilidade de replicação de um cluster

Você pode configurar uma réplica de todo o seu cluster do GitHub Enterprise Server em um data center à parte, permitindo que seu cluster faça failover em nós redundantes.

Sobre a alta disponibilidade de replicação de clusters

Você pode fornecer proteção contra interrupções em um datacenter ou uma região de nuvem configurando uma implantação de cluster do GitHub Enterprise Server para alta disponibilidade. Em uma configuração de alta disponibilidade, um conjunto idêntico de nós de réplica é sincronizado com os nós do cluster ativo. Se falhas no hardware ou software afetarem o centro de dados com o seu cluster ativo, você poderá transferir a falha manualmente para os nós da réplica e continuar processando as solicitações do usuário, minimizando o impacto da interrupção.

Em uma configuração de alta disponibilidade, os nós que hospedam serviços de dados sincronizam regularmente com o cluster de réplica. Nós de réplica são executados em modo de espera e não atendem a aplicativos nem processa solicitações de usuário.

Recomendamos configurar uma alta disponibilidade como parte de um plano de recuperação de desastres abrangente para clustering do GitHub Enterprise Server. Também recomendamos realizar backups regulares. Para obter mais informações, confira "Como configurar backups em sua instância".

Pré-requisitos

Hardware e software

Para cada nó existente no seu cluster ativo, você precisará fornecer uma segunda máquina virtual com recursos de hardware idênticos. Por exemplo, se o cluster tiver 13 nós e cada nó tiver 12 vCPUs, 96 GB de RAM e 750 GB de armazenamento anexado, você precisará fornecer 13 novas máquinas virtuais, tendo cada uma 12 vCPUs, 96 GB de RAM e 750 GB de armazenamento anexado.

Em cada nova máquina virtual, instale a mesma versão do GitHub Enterprise Server que é executada nos nós do seu cluster ativo. Você não precisa fazer o upload de uma licença ou executar qualquer configuração adicional. Para obter mais informações, confira "Setting up a GitHub Enterprise Server instance".

Observação: os nós que você pretende usar para a replicação de alta disponibilidade devem ser instâncias independentes do GitHub Enterprise Server. Não inicialize os nós de réplica como um segundo cluster.

Rede

Você deve atribuir um endereço IP estático a cada novo nó que você fornecer e você deve configurar um balanceador de carga para aceitar conexões e direcioná-las para os nós na sua camada frontal do cluster.

A latência entre os nós primário e de réplica deve ser inferior a 70 milissegundos. Não recomendamos configurar um firewall entre as duas redes de nós. Para obter mais informações sobre a conectividade de rede entre os nós no cluster de réplica, confira "Configuração de rede de cluster".

Criar uma alta réplica de disponibilidade para um cluster

Para criar uma réplica de alta disponibilidade para o cluster, use o utilitário ghe-cluster-repl-bootstrap e conclua as tarefas de acompanhamento detalhadas pela ferramenta.

  1. SSH em qualquer nó no seu cluster. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".

  2. Para iniciar a configuração de alta disponibilidade, execute o seguinte comando. Os sinalizadores-p e -s são opcionais. Se você estiver usando os sinalizadores, substitua PRIMARY-DATACENTER e SECONDARY-DATACENTER pelos nomes de seus datacenters primários e secundários.

    Observações:

    • Por padrão, o utilitário usará o nome do datacenter primário no cluster.conf.
    • Se nenhum nome para o datacenter primário for definido, o utilitário usará mona.
    • Se nenhum nome para o datacenter secundário for definido, o utilitário usará hubot.
    Shell
    ghe-cluster-repl-bootstrap -p PRIMARY-DATACENTER -s SECONDARY-DATACENTER
    
  3. Depois que o utilitário for executado, você verá a saída com mais instruções. Para completar a configuração, conclua as tarefas listadas na saída.

Monitoramento de replicação entre nós de cluster ativos e de réplica

A replicação inicial entre os nós ativos e de réplica do seu cluster leva tempo. A quantidade de tempo depende da quantidade de dados para a replicação e dos níveis de atividade para GitHub Enterprise Server.

Você pode monitorar o progresso em qualquer nó do cluster, usando ferramentas de linha de comando disponíveis através do shell administrativo do GitHub Enterprise Server. Para obter mais informações sobre o shell administrativo, confira "Acesar o shell administrativo (SSH)".

Para monitorar a replicação de todos os serviços, use o comando a seguir.

ghe-cluster-repl-status

Use ghe-cluster-status para analisar a integridade geral do cluster. Para obter mais informações, confira "Utilitários de linha de comando".

Reconfigurar a replicação de alta disponibilidade após um failover

Após fazer failover dos nós ativos do cluster para os nós de réplica do cluster, você poderá reconfigurar a alta disponibilidade de duas maneiras. O método escolhido dependerá da razão pela qual você gerou o failover e do estado dos nós ativos originais.

  • Forneça e configure um novo conjunto de nós de réplica para cada um dos novos nós ativos no seu centro de dados secundário.
  • Use os nós ativos originais como os novos nós de réplica.

O processo de reconfiguração de alta disponibilidade é idêntico à configuração inicial de alta disponibilidade. Para obter mais informações, confira "Como criar uma réplica de alta disponibilidade para um cluster".

Se você usar os nós ativos originais, depois de reconfigurar a alta disponibilidade, será necessário remover a definição do modo de manutenção nos nós. Para obter mais informações, confira "Habilitar e programar o modo de manutenção".

Desabilitar a replicação de alta disponibilidade para um cluster

Você pode parar a duplicação nos nodes de réplica para a sua implantação de cluster de GitHub Enterprise Server usando o utilitário ghe-cluster-repl-teardown. Como alternativa, você pode desabilitar manualmente a duplicação.

Desabilitar a duplicação com ghe-cluster-repl-teardown.

  1. SSH em qualquer nó no seu cluster. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".

  2. Para desabilitar a duplicação, execute o seguinte comando:

    Shell
    ghe-cluster-repl-teardown
    
  3. Após a conclusão da configuração executada, GitHub Enterprise Server exibe a mensagem a seguir.

    Finished cluster configuration
    

Desativar manualmente a duplicação

  1. SSH em qualquer nó no seu cluster. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".

  2. Em um editor de texto, abra o arquivo de configuração do cluster em /data/user/common/cluster.conf. Por exemplo, você pode usar o Vim. Crie um backup do arquivo cluster.conf antes de editá-lo.

    Shell
    sudo vim /data/user/common/cluster.conf
    
  3. Na seção [cluster] de nível superior, exclua os pares chave-valor redis-master-replica e mysql-master-replica.

  4. Exclua cada seção para um nó de réplica. Para os nós de réplica, replica é configurado como enabled.

  5. Aplique a nova configuração. Esse comando pode levar algum tempo para ser concluído. Portanto, recomendamos executar o comando em um multiplexador de terminal como screen ou tmux.

     ghe-cluster-config-apply
    
  6. Após a conclusão da configuração executada, GitHub Enterprise Server exibe a mensagem a seguir.

    Finished cluster configuration