Сведения о репликации с высоким уровнем доступности для кластеров
Вы можете обеспечить защиту от нарушений в центре обработки данных или облачном регионе, настроив развертывание кластера GitHub Enterprise Server для обеспечения высокой доступности. В конфигурации высокой доступности идентичный набор узлов реплики синхронизируется с узлами в активном кластере. Если сбои оборудования или программного обеспечения затронут центр обработки данных с активным кластером, вы можете вручную выполнить отработку отказа на узлы реплики и продолжить обработку запросов пользователей, сводя воздействие сбоя к минимуму.
В конфигурации высокой доступности узлы, на которых службы данных регулярно синхронизируются с кластером реплик. Узлы реплики выполняются в режиме ожидания и не обслуживают приложения или обрабатывают запросы пользователей.
Рекомендуется настроить высокий уровень доступности в рамках комплексного плана аварийного восстановления для кластеризации GitHub Enterprise Server. Мы также рекомендуем выполнять регулярное резервное копирование. Дополнительные сведения см. в разделе Настройка резервных копий в экземпляре.
Необходимые компоненты
Оборудование и программное обеспечение
Для каждого узла в вашем активном кластере необходимо подготовить вторую виртуальную машину с идентичными аппаратными ресурсами. Например, если в кластере есть 13 узлов, и каждый узел имеет 12 виртуальных ЦП, 96 ГБ ОЗУ и 750 ГБ подключенного хранилища, необходимо подготовить 13 новых виртуальных машин, у которых есть 12 виртуальных ЦП, 96 ГБ ОЗУ и 750 ГБ подключенного хранилища.
На каждой новой виртуальной машине установите ту же версию GitHub Enterprise Server, которая работает на узлах в вашем активном кластере. Вам не нужно передавать лицензию или выполнять какую-либо дополнительную настройку. Дополнительные сведения см. в разделе Настройка экземпляра GitHub Enterprise Server.
Примечание. Узлы, которые вы планируете использовать для репликации с высоким уровнем доступности, должны быть изолированными экземплярами GitHub Enterprise Server. Не инициализировать узлы реплики в качестве второго кластера.
Network
Вам нужно назначить статический IP-адрес каждому новому подготовленному узлу и настроить подсистему балансировки нагрузки для приема подключений и направления их в узлы на интерфейсном уровне кластера.
Задержка между основными и реплика узлами должна быть меньше 70 миллисекунд. Не рекомендуется настраивать брандмауэр между сетями узлов. Дополнительные сведения о сетевом подключении между узлами в кластере реплики см. в разделе "Конфигурация сети кластера".
Создание реплики с высоким уровнем доступности для кластера
Чтобы создать реплику высокой доступности для кластера, используйте ghe-cluster-repl-bootstrap
служебную программу, а затем выполните дальнейшие задачи, описанные средством.
-
Подключение к любому узлу в кластере по протоколу SSH. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).
-
Чтобы начать настройку высокого уровня доступности, выполните следующую команду. Флаги
-p
являются-s
необязательными. Если вы используете флаги, замените PRIMARY-DATACENTER и SECONDARY-DATACENTER именами первичных и вторичных центров обработки данных.Примечания:
- По умолчанию программа будет использовать имя основного центра обработки данных в
cluster.conf
. - Если имя основного центра обработки данных не определено, программа будет использоваться
mona
. - Если имя дополнительного центра обработки данных не определено, программа будет использовать
hubot
.
Shell ghe-cluster-repl-bootstrap -p PRIMARY-DATACENTER -s SECONDARY-DATACENTER
ghe-cluster-repl-bootstrap -p PRIMARY-DATACENTER -s SECONDARY-DATACENTER
- По умолчанию программа будет использовать имя основного центра обработки данных в
-
После выполнения служебной программы вы увидите выходные данные с дальнейшими инструкциями. Чтобы завершить настройку, выполните задачи, перечисленные в выходных данных.
Мониторинг репликации между активными и репликами узлов кластера
Начальная репликация между активными узлами и репликами в кластере занимает время. Это время зависит от объема реплицируемых данных и уровней активности для GitHub Enterprise Server.
Вы можете отслеживать ход выполнения на любом узле кластера с помощью инструментов командной строки, доступных в административной оболочке GitHub Enterprise Server. Дополнительные сведения об административной оболочке см. в разделе "Доступ к административной оболочке (SSH)".
Чтобы отслеживать репликацию всех служб, используйте следующую команду.
ghe-cluster-repl-status
Для проверки общей работоспособности кластера можно использовать ghe-cluster-status
. Дополнительные сведения см. в разделе "Служебные программы командной строки".
Перенастройка репликации с высоким уровнем доступности после отработки отказа
После отработки отказа с активных узлов кластера на узлы реплики кластера можно перенастроить высокий уровень доступности одним из двух способов. Выбор способа зависит от причины отработки отказа и состояния исходных активных узлов.
- Подготовьте и настройте новый набор узлов реплик для каждого из новых активных узлов в дополнительном центре обработки данных.
- Используйте исходные активные узлы в качестве новых узлов реплики.
Процесс перенастройки высокого уровня доступности аналогичен начальной настройке высокого уровня доступности. Дополнительные сведения см. в разделе Создание реплики с высоким уровнем доступности для кластера.
Если вы используете исходные активные узлы, после перенастройки высокой доступности потребуется отменить режим обслуживания на узлах. Дополнительные сведения см. в разделе Включение и планирование режима обслуживания.
Отключение репликации с высоким уровнем доступности для кластера
Вы можете остановить репликацию на узлы-реплики для развертывания кластера GitHub Enterprise Server с помощью служебной ghe-cluster-repl-teardown
программы. Кроме того, можно отключить репликацию вручную.
Отключение репликации с помощью ghe-cluster-repl-teardown
-
Подключение к любому узлу в кластере по протоколу SSH. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).
-
Чтобы отключить репликацию, выполните следующую команду:
Shell ghe-cluster-repl-teardown
ghe-cluster-repl-teardown
-
После завершения инициализации GitHub Enterprise Server отобразит следующее сообщение.
Finished cluster configuration
Отключение репликации вручную
- Откройте файл
/data/user/common/cluster.conf
конфигурации кластера в текстовом редакторе. Например, можно использовать редактор Vim. Создайте резервную копиюcluster.conf
файла перед изменением файла.
sudo vim /data/user/common/cluster.conf
sudo vim /data/user/common/cluster.conf
-
В верхнем разделе
[cluster]
удалите пары "ключ-значение"redis-master-replica
иmysql-master-replica
. -
Удалите каждый раздел для узла реплики. Для узлов
replica
реплики настраивается какenabled
. -
Примените новую конфигурацию. Выполнение этой команды может занять некоторое время, поэтому мы рекомендуем выполнить команду в мультиплексоре терминала, например
screen
илиtmux
.ghe-cluster-config-apply
-
После завершения инициализации GitHub Enterprise Server отобразит следующее сообщение.
Finished cluster configuration