В предыдущем совете мы обсудили, как установить 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, выполните следующие шаги:
- Установите пакеты Pacemaker на всех серверах Linux:
- Запустите демона pcs и принудительно запустите его при загрузке системы:
- Настройте брандмауэр Linux для разрешения коммуникаций Pacemaker:
- Принудительно запустите демоны Pacemaker и Corosync при загрузке системы:
- Назначьте пароль для учетной записи hacluster по умолчанию:
- Настройте аутентификацию между узлами кластера Linux:
- Создайте кластер Linux:
- Запустите кластер Linux:
- Настройте ограждение:
- Настройте политики на уровне ресурсов:
- Создайте учетную запись SQL Server для Pacemaker:
- Сохраните учетные данные для учетной записи Pacemaker в локальной файловой системе:
- Ограничьте доступ к файлу, разрешив только владельцу файла права на чтение:
sudo yum install pacemaker pcs fence-agents-all resource-agentssudo systemctl start pcsd
sudo systemctl enable pcsdsudo 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 --reloadsudo systemctl enable pacemaker.service
sudo systemctl enable corosync.servicesudo passwd haclustersudo pcs cluster auth linuxha-sqlag1.testdomain.com linuxha-sqlag2.testdomain.com linuxha-sqlag3.testdomain.com -u haclustersudo pcs cluster setup --name LINUXHACLUS linuxha-sqlag1.testdomain.com linuxha-sqlag2.testdomain.com linuxha-sqlag3.testdomain.comsudo pcs cluster start --allsudo pcs property set stonith-enabled=falsesudo pcs property set start-failure-is-fatal=falseCREATE LOGIN pacemakerLogin WITH PASSWORD = 'your_password';
GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::LINUX_SQLAG TO pacemakerLogin;
GRANT VIEW SERVER STATE TO pacemakerLogin;sudo vi /var/opt/mssql/secrets/passwdsudo chmod 400 /var/opt/mssql/secrets/passwdПосле выполнения этих шагов вы успешно настроили Pacemaker для групп доступности SQL Server 2017 в Linux. Теперь вы можете перейти к настройке группы доступности SQL Server Always On и виртуального IP-адреса имени слушателя в кластере.
Следите за следующим советом в этой серии, где мы расскажем вам о настройке группы доступности SQL Server 2017 Always On и виртуального IP-адреса имени слушателя.