Skip to main content

Crear una réplica de alta disponibilidad

En una configuración activa/pasiva, el aparato réplica es una copia redundante del aparato principal. Si el aparato principal falla, el modo de alta disponibilidad permite que la réplica actúe como aparato principal, lo que posibilita que la interrupción del servicio sea mínima.

Note

Se permite un máximo de ocho réplicas de alta disponibilidad (tanto pasivas como activas o de replicación geográfica, así como instancias almacenadas en caché de repositorio) para GitHub Enterprise Server.

Crear una réplica de alta disponibilidad

  1. Configurar un aparato GitHub Enterprise Server nuevo en la plataforma que desees. El aparato réplica debe espejar la CPU, la RAM y los ajustes de almacenamiento del aparato principal. Recomendamos que instales el aparato réplica en un entorno separado. El hardward subyacente, el software y los componentes de red deben estar aislados de los del aparato principal. Si estás usando un proveedor de nube, utiliza una región o zona separada. Para más información, consulta Configurar una instancia del servidor de GitHub Enterprise.

  2. Asegúrate de que el nuevo dispositivo puede comunicarse con todos los demás dispositivos de este entorno de alta disponibilidad a través de los puertos 122/TCP y 1194/UDP. Para más información, consulta Puertos de red.

  3. Desde un navegador, dirígete a la nueva dirección IP del aparato réplica y carga tu licencia GitHub Enterprise.

  4. Establece una contraseña de administrador que coincida con la contraseña del aparato principal y continúa.

  5. Haga clic en Configurar como réplica.

  6. En "Agregar nueva clave SSH", escribe tu clave SSH.

  7. Haga clic en Add key.

  8. Conectarse a la dirección IP del aparato réplica usando SSH.

    ssh -p 122 admin@REPLICA_IP
    
  9. A fin de generar un par de claves para la replicación, use el comando ghe-repl-setup con la dirección IP del dispositivo principal y copie la clave pública que devuelve.

    ghe-repl-setup PRIMARY_IP
    
  10. Para agregar la clave pública a la lista de claves autorizadas en el dispositivo principal, vaya a https://PRIMARY-HOSTNAME/setup/settings y agregue a la lista la clave que ha copiado de la réplica.

  11. Para comprobar la conexión al dispositivo principal y habilitar el modo de réplica para la réplica nueva, vuelva a ejecutar ghe-repl-setup.

    ghe-repl-setup PRIMARY_IP
    
  12. Para iniciar la replicación de los almacenes de datos, use el comando ghe-repl-start.

    ghe-repl-start
    

    Warning

    ghe-repl-start produce una breve interrupción en el servidor principal, durante la cual los usuarios pueden experimentar errores internos del servidor. Para proporcionar un mensaje más descriptivo, ejecute ghe-maintenance -s en el nodo principal antes de ejecutar ghe-repl-start en el nodo de réplica para poner el dispositivo en modo de mantenimiento. Una vez que la comience la replicación, inhabilite el modo de mantenimiento con ghe-maintenance -u. La replicación de Git no progresará mientras el nodo primario esté en modo de mantenimiento.

  13. Para comprobar el estado del canal de replicación de cada almacén de datos, use el comando ghe-repl-status.

    ghe-repl-status
    

Crear réplicas de replicación geográfica

Esta configuración de ejemplo utiliza una réplica primaria y dos réplicas, que se encuentran en tres regiones geográficas diferentes. Aunque los tres nodos pueden estar en redes diferentes, se necesitan todos los nodos para que sean accesibles desde todos los demás nodos. Como mínimo, los puertos administrativos requeridos deben estar abiertos para todos los demás nodos. Para más información sobre los requisitos de puerto, consulta Puertos de red.

La latencia entre los nodos principal y de réplica debe ser inferior a 70 milisegundos. No recomendamos configurar un firewall entre las redes de los nodos. Si la latencia es superior a 70 milisegundos, se recomienda en su lugar almacenar en caché los nodos de réplica. Para más información, consulta Configurar el caché de un repositorio.

  1. Crea la primera réplica de la misma manera que una configuración de dos nodos estándar, mediante la ejecución de ghe-repl-setup en la primera réplica.

    (replica1)$ ghe-repl-setup PRIMARY_IP
    (replica1)$ ghe-repl-start
    
  2. Cree una segunda réplica y use el comando ghe-repl-setup --add. La marca --add evita que sobrescriba la configuración de replicación existente y agrega la nueva réplica a la configuración.

    (replica2)$ ghe-repl-setup --add PRIMARY_IP
    (replica2)$ ghe-repl-start
    
  3. Predeterminadamente, las replicas se configuran en el mismo centro de datos, y ahora intentarán poblar los datos desde un nodo existente en el mismo centro de datos. Configura las réplicas para diferentes centros de datos estableciendo un valor diferente para la opción de centro de datos. Los valores específicos pueden ser los que tú quieras, siempre que sean diferentes entre sí. Ejecute el comando ghe-repl-node en cada nodo y especifique el centro de datos.

    En la primaria:

    (primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME]
    

    En la primera réplica:

    (replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME]
    

    En la segunda réplica:

    (replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME]
    

    Tip

    Puedes establecer las opciones --datacenter y --active al mismo tiempo.

  4. Un nodo de réplica activo almacenará copias de los datos del aparato y responderá las solicitudes de usuario final. Un nodo inactivo almacenará copias de los datos del aparato, pero no podrá atender las solicitudes de usuario final. Habilite el modo activo mediante la marca --active, o bien el modo inactivo con la marca --inactive.

    En la primera réplica:

    (replica1)$ ghe-repl-node --active
    

    En la segunda réplica:

    (replica2)$ ghe-repl-node --active
    
  5. Para aplicar la configuración, use el comando ghe-config-apply en la réplica principal.

    (primary)$ ghe-config-apply
    

Configurar el DNS para replicación geográfica

Configurar Geo DNS usando las direcciones IP de los nodos primarios y réplica. También puede crear un CNAME DNS para el nodo principal (por ejemplo, primary.github.example.com) para acceder al nodo principal mediante SSH o para realizar una copia de seguridad con backup-utils.

Para las pruebas, puede agregar entradas al archivo hosts de la estación de trabajo local (por ejemplo, /etc/hosts). Estas entradas de ejemplo resolverán las solicitudes de HOSTNAME en replica2. Puedes apuntar a hosts específicos comentando en diferentes líneas.

# <primary IP>      HOSTNAME
# <replica1 IP>     HOSTNAME
<replica2 IP>     HOSTNAME

Información adicional