Nota: Se permite un máximo de ocho réplicas de alta disponibilidad (tanto pasivas como activas o de replicación geográfica) para GitHub Enterprise Server.
Crear una réplica de alta disponibilidad
-
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 obtener más información, vea «Configurar una instancia del servidor de GitHub Enterprise».
-
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 obtener más información, vea «Puertos de red».
-
Desde un navegador, dirígete a la nueva dirección IP del aparato réplica y carga tu licencia GitHub Enterprise.
-
Establece una contraseña de administrador que coincida con la contraseña del aparato principal y continúa.
-
Haga clic en Configurar como réplica.
-
En "Agregar nueva clave SSH", escribe tu clave SSH.
-
Haga clic en Add key.
-
Conectarse a la dirección IP del aparato réplica usando SSH.
ssh -p 122 admin@REPLICA_IP
-
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
-
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. -
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
-
Para iniciar la replicación de los almacenes de datos, use el comando
ghe-repl-start
.ghe-repl-start
Advertencia:
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, ejecuteghe-maintenance -s
en el nodo principal antes de ejecutarghe-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 conghe-maintenance -u
. La replicación de Git no progresará mientras el nodo primario esté en modo de mantenimiento. -
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, vea "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 obtener más información, vea «Configurar el caché de un repositorio».
-
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
-
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
-
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]
Sugerencia: Puede establecer las opciones
--datacenter
y--active
al mismo tiempo. -
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
-
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