Развертывание кластера Pacemaker для SQL Server на Linux

Применимо к:SQL Server — Linux

В этом руководстве описаны задачи, необходимые для развертывания кластера Linux Pacemaker для группы доступности SQL Server AlwaysOn (AG) или экземпляра отказоустойчивого кластера (FCI). В отличие от тесно связанного стека Windows Server или SQL Server создание кластера Pacemaker, а также конфигурация группы доступности в Linux, может выполняться до или после установки SQL Server. Интеграция и настройка ресурсов для той части группы доступности или экземпляра отказоустойчивого кластера, которая связана с Pacemaker, выполняется после настройки кластера.

Важно!

Группа доступности с типом кластера "Нет" не требует наличия кластера Pacemaker и не может управляться с помощью Pacemaker.

  • установка надстройки высокого уровня доступности и Pacemaker;
  • подготовка узлов для Pacemaker (только в RHEL и Ubuntu);
  • создание кластера Pacemaker;
  • Установка пакетов высокого уровня доступности и агента SQL Server

Необходимые условия

Установите SQL Server 2017.

Установите надстройку высокого уровня доступности.

Используйте приведенный ниже синтаксис, чтобы установить пакеты, составляющие надстройку высокого уровня доступности, для каждого дистрибутива Linux.

  1. Зарегистрируйте сервер, используя приведенный ниже синтаксис. Вам будет предложено указать допустимое имя пользователя и пароль.

    sudo subscription-manager register
    
  2. Перечислите доступные пулы для регистрации.

    sudo subscription-manager list --available
    
  3. Выполните следующую команду, чтобы связать высокий уровень доступности RHEL с подпиской:

    sudo subscription-manager attach --pool=<PoolID>
    

    Здесь PoolId — это идентификатор пула для подписки высокого уровня доступности из предыдущего шага.

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

    sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpms
    
  5. Установите Pacemaker.

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    

Подготовка узлов для Pacemaker (только в RHEL и Ubuntu)

Для Pacemaker используется пользователь hacluster, созданный в дистрибутиве. Он создается при установке надстройки высокого уровня доступности в RHEL и Ubuntu.

  1. На каждом сервере, который будет служить узлом кластера Pacemaker, создайте пароль для пользователя, используемого кластером. В примерах используется имя hacluster, но можно выбрать любое имя. Имя и пароль должны быть одинаковыми во всех узлах, участвующих в кластере Pacemaker.

    sudo passwd hacluster
    
  2. В каждом узле, который будет входить в кластер Pacemaker, включите и запустите службу pcsd с помощью следующих команд (в RHEL и Ubuntu):

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    

    Затем выполните следующую команду, чтобы убедиться, что pcsd запущено.

    sudo systemctl status pcsd
    
  3. Включите службу Pacemaker в каждом возможном узле кластера Pacemaker.

    sudo systemctl start pacemaker
    

    В Ubuntu произойдет следующая ошибка:

    pacemaker Default-Start contains no runlevels, aborting.
    

    Это известная проблема. Несмотря на ошибку, служба Pacemaker включается успешно. Эта ошибка будет исправлена в будущем.

  4. Далее создайте и запустите кластер Pacemaker. На этом шаге существует одна разница между RHEL и Ubuntu. В обоих дистрибутивах при установке pcs настраивается файл конфигурации по умолчанию для кластера Pacemaker, однако в RHEL при выполнении этой команды существующая конфигурация удаляется и создается новый кластер.

Создание кластера Pacemaker

В этом разделе описывается, как создать и настроить кластер для каждого дистрибутива Linux.

  1. Авторизуйте узлы.

    sudo pcs cluster auth <Node1 Node2 ... NodeN> -u hacluster
    

    Здесь NodeX — это имя узла.

  2. Создайте кластер.

    sudo pcs cluster setup --name <PMClusterName Nodelist> --start --all --enable
    

    где PMClusterName имя, назначенное кластеру Pacemaker, и Nodelist представляет собой список имен узлов, разделенных пробелом.

Установка пакетов высокого уровня доступности и агента SQL Server

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

  • Если вы не будете использовать агент SQL Server для доставки журналов или другого использования, он не должен быть установлен, поэтому пакет mssql-server-agent можно пропустить.
  • Другие необязательные пакеты для SQL Server на Linux, полнотекстового поиска SQL Server (mssql-server-fts) и служб SQL Server Integration Services (mssql-server-is), не требуются для обеспечения высокой доступности либо для FCI, либо для группы доступности.
sudo yum install mssql-server-ha mssql-server-agent
sudo systemctl restart mssql-server

Следующие шаги

В этом руководстве вы узнали, как развернуть кластер Pacemaker для SQL Server на Linux. Вы научились выполнять следующие задачи:

  • установка надстройки высокого уровня доступности и Pacemaker;
  • подготовка узлов для Pacemaker (только в RHEL и Ubuntu);
  • создание кластера Pacemaker;
  • Установка пакетов высокого уровня доступности и агента SQL Server

Чтобы создать и настроить группу доступности для SQL Server на Linux, обратитесь к следующему руководству: