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 "Configurar uma instância do GitHub Enterprise Server".
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.
-
SSH em qualquer nó no seu cluster. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".
-
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
ghe-cluster-repl-bootstrap -p PRIMARY-DATACENTER -s SECONDARY-DATACENTER
- Por padrão, o utilitário usará o nome do datacenter primário no
-
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
.
-
SSH em qualquer nó no seu cluster. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".
-
Para desabilitar a duplicação, execute o seguinte comando:
Shell ghe-cluster-repl-teardown
ghe-cluster-repl-teardown
-
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
-
SSH em qualquer nó no seu cluster. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".
-
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 arquivocluster.conf
antes de editá-lo.Shell sudo vim /data/user/common/cluster.conf
sudo vim /data/user/common/cluster.conf
-
Na seção
[cluster]
de nível superior, exclua os pares chave-valorredis-master-replica
emysql-master-replica
. -
Exclua cada seção para um nó de réplica. Para os nós de réplica,
replica
é configurado comoenabled
. -
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
outmux
.ghe-cluster-config-apply
-
Após a conclusão da configuração executada, GitHub Enterprise Server exibe a mensagem a seguir.
Finished cluster configuration