Published on

July 17, 2023

Настройка Pacemaker для групп доступности SQL Server 2017 в Linux

В предыдущем совете мы обсудили, как установить SQL Server 2017 на операционной системе Linux. Теперь давайте рассмотрим, как создать среду Linux для групп доступности SQL Server 2017.

В операционной системе Windows Server высокая доступность для групп доступности SQL Server Always On обеспечивается кластером отказоустойчивости Windows Server (WSFC). Однако в операционной системе Linux нам необходимо использовать другой менеджер ресурсов кластера под названием Pacemaker.

Pacemaker – это программное обеспечение с открытым исходным кодом, разработанное RedHat и SUSE в рамках организации ClusterLabs. Оно доступно на большинстве дистрибутивов Linux, но группы доступности SQL Server Always On в настоящее время поддерживаются только в Red Hat Enterprise Linux версии 7.3/7.4, SUSE Linux Enterprise Server версии 12 SP2 и Ubuntu версии 16.04.

Стек Pacemaker состоит из нескольких компонентов:

  • Само программное обеспечение Pacemaker, которое аналогично службе кластера в Windows
  • Corosync, система групповой коммуникации, отвечающая за перезапуск отказавшихся процессов приложений
  • libQB, высокопроизводительная система журналирования, трассировки, межпроцессного взаимодействия и опроса
  • Ресурсные агенты, программное обеспечение, позволяющее Pacemaker управлять службами и ресурсами
  • Агенты ограждения, программное обеспечение, позволяющее Pacemaker изолировать и предотвращать влияние неправильно работающих узлов на доступность кластера

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

  1. Установите пакеты Pacemaker на всех серверах Linux:
  2. sudo yum install pacemaker pcs fence-agents-all resource-agents
  3. Запустите демона pcs и принудительно запустите его при загрузке системы:
  4. sudo systemctl start pcsd
    sudo systemctl enable pcsd
  5. Настройте брандмауэр Linux для разрешения коммуникаций Pacemaker:
  6. sudo firewall-cmd --add-service=high-availability --zone=public --permanent
    sudo firewall-cmd --zone=public --add-port=2224/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=3121/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=5405/udp --permanent
    sudo firewall-cmd --reload
  7. Принудительно запустите демоны Pacemaker и Corosync при загрузке системы:
  8. sudo systemctl enable pacemaker.service
    sudo systemctl enable corosync.service
  9. Назначьте пароль для учетной записи hacluster по умолчанию:
  10. sudo passwd hacluster
  11. Настройте аутентификацию между узлами кластера Linux:
  12. sudo pcs cluster auth linuxha-sqlag1.testdomain.com linuxha-sqlag2.testdomain.com linuxha-sqlag3.testdomain.com -u hacluster
  13. Создайте кластер Linux:
  14. sudo pcs cluster setup --name LINUXHACLUS linuxha-sqlag1.testdomain.com linuxha-sqlag2.testdomain.com linuxha-sqlag3.testdomain.com
  15. Запустите кластер Linux:
  16. sudo pcs cluster start --all
  17. Настройте ограждение:
  18. sudo pcs property set stonith-enabled=false
  19. Настройте политики на уровне ресурсов:
  20. sudo pcs property set start-failure-is-fatal=false
  21. Создайте учетную запись SQL Server для Pacemaker:
  22. CREATE LOGIN pacemakerLogin WITH PASSWORD = 'your_password';
    GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::LINUX_SQLAG TO pacemakerLogin;
    GRANT VIEW SERVER STATE TO pacemakerLogin;
  23. Сохраните учетные данные для учетной записи Pacemaker в локальной файловой системе:
  24. sudo vi /var/opt/mssql/secrets/passwd
  25. Ограничьте доступ к файлу, разрешив только владельцу файла права на чтение:
  26. sudo chmod 400 /var/opt/mssql/secrets/passwd

После выполнения этих шагов вы успешно настроили Pacemaker для групп доступности SQL Server 2017 в Linux. Теперь вы можете перейти к настройке группы доступности SQL Server Always On и виртуального IP-адреса имени слушателя в кластере.

Следите за следующим советом в этой серии, где мы расскажем вам о настройке группы доступности SQL Server 2017 Always On и виртуального IP-адреса имени слушателя.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.