Skip to main content

Настройка репликации с высоким уровнем доступности для кластера

Вы можете настроить реплику всего кластера GitHub Enterprise Server в отдельном центре обработки данных, что позволяет кластеру выполнять отработку отказа на избыточные узлы.

Сведения о репликации с высоким уровнем доступности для кластеров

Вы можете обеспечить защиту от нарушений в центре обработки данных или облачном регионе, настроив развертывание кластера GitHub Enterprise Server для обеспечения высокой доступности. В конфигурации высокой доступности идентичный набор узлов реплики синхронизируется с узлами в активном кластере. Если сбои оборудования или программного обеспечения затронут центр обработки данных с активным кластером, вы можете вручную выполнить отработку отказа на узлы реплики и продолжить обработку запросов пользователей, сводя воздействие сбоя к минимуму.

В конфигурации высокой доступности узлы, на которых службы данных регулярно синхронизируются с кластером реплик. Узлы реплики выполняются в режиме ожидания и не обслуживают приложения или обрабатывают запросы пользователей.

Рекомендуется настроить высокий уровень доступности в рамках комплексного плана аварийного восстановления для кластеризации GitHub Enterprise Server. Мы также рекомендуем выполнять регулярное резервное копирование. Дополнительные сведения см. в разделе Настройка резервных копий в экземпляре.

Необходимые компоненты

Оборудование и программное обеспечение

Для каждого узла в вашем активном кластере необходимо подготовить вторую виртуальную машину с идентичными аппаратными ресурсами. Например, если в кластере есть 13 узлов, и каждый узел имеет 12 виртуальных ЦП, 96 ГБ ОЗУ и 750 ГБ подключенного хранилища, необходимо подготовить 13 новых виртуальных машин, у которых есть 12 виртуальных ЦП, 96 ГБ ОЗУ и 750 ГБ подключенного хранилища.

На каждой новой виртуальной машине установите ту же версию GitHub Enterprise Server, которая работает на узлах в вашем активном кластере. Вам не нужно передавать лицензию или выполнять какую-либо дополнительную настройку. Дополнительные сведения см. в разделе Настройка экземпляра GitHub Enterprise Server.

Note

Узлы, которые планируется использовать для репликации высокой доступности, должны быть изолированными экземплярами GitHub Enterprise Server. Не инициализировать узлы реплики в качестве второго кластера.

Network

Вам нужно назначить статический IP-адрес каждому новому подготовленному узлу и настроить подсистему балансировки нагрузки для приема подключений и направления их в узлы на интерфейсном уровне кластера.

Задержка между основными и реплика узлами должна быть меньше 70 миллисекунд. Не рекомендуется настраивать брандмауэр между сетями узлов. Дополнительные сведения о сетевом подключении между узлами в кластере реплики см. в разделе "Конфигурация сети кластера".

Создание реплики с высоким уровнем доступности для кластера

Чтобы создать реплику высокой доступности для кластера, используйте ghe-cluster-repl-bootstrap служебную программу, а затем выполните дальнейшие задачи, описанные средством.

  1. Подключение к любому узлу в кластере по протоколу SSH. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

  2. Чтобы начать настройку высокого уровня доступности, выполните следующую команду. Флаги -p являются -s необязательными. Если вы используете флаги, замените PRIMARY-DATACENTER и SECONDARY-DATACENTER именами первичных и вторичных центров обработки данных.

    Note

    • По умолчанию программа будет использовать имя основного центра обработки данных в cluster.conf.
    • Если имя основного центра обработки данных не определено, программа будет использоваться mona.
    • Если имя дополнительного центра обработки данных не определено, программа будет использовать hubot.
    Shell
    ghe-cluster-repl-bootstrap -p PRIMARY-DATACENTER -s SECONDARY-DATACENTER
    
  3. После выполнения служебной программы вы увидите выходные данные с дальнейшими инструкциями. Чтобы завершить настройку, выполните задачи, перечисленные в выходных данных.

Мониторинг репликации между активными и репликами узлов кластера

Начальная репликация между активными узлами и репликами в кластере занимает время. Это время зависит от объема реплицируемых данных и уровней активности для 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

  1. Подключение к любому узлу в кластере по протоколу SSH. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

  2. Чтобы отключить репликацию, выполните следующую команду:

    Shell
    ghe-cluster-repl-teardown
    
  3. После завершения инициализации GitHub Enterprise Server отобразит следующее сообщение.

    Finished cluster configuration
    

Отключение репликации вручную

  1. Откройте файл /data/user/common/cluster.conf конфигурации кластера в текстовом редакторе. Например, можно использовать редактор Vim. Создайте резервную копию cluster.conf файла перед изменением файла.
Shell
sudo vim /data/user/common/cluster.conf
  1. В верхнем разделе [cluster] удалите пары "ключ-значение" redis-master-replica и mysql-master-replica.

  2. Удалите каждый раздел для узла реплики. Для узлов replica реплики настраивается как enabled.

  3. Примените новую конфигурацию. Выполнение этой команды может занять некоторое время, поэтому мы рекомендуем выполнить команду в мультиплексоре терминала, например screen или tmux.

     ghe-cluster-config-apply
    
  4. После завершения инициализации GitHub Enterprise Server отобразит следующее сообщение.

    Finished cluster configuration