Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server в Linux
В этой статье описаны основные понятия, связанные с экземплярами отказоустойчивого кластера (FCI) SQL Server на Linux.
Чтобы создать FCI SQL Server в Linux, см. Настройка экземпляра отказоустойчивого кластера в Linux (RHEL).
Слой кластеризации
В Red Hat Enterprise Linux (RHEL) уровень кластеризации основан на дополнении RHEL HA.
Note
Для доступа к надстройке высокой доступности Red Hat и документации требуется подписка.
В SUSE Linux Enterprise Server (SLES) уровень кластеризации основан на расширении высокой доступности SUSE Linux Enterprise (HAE).
Дополнительные сведения о конфигурации кластера, параметрах ресурсового агента, управлении, рекомендациях и передовых методах см. в разделе SUSE Linux Enterprise High Availability Extension 15.
Дополнение HA RHEL и SUSE HAE основаны на Pacemaker.
Как показано на схеме ниже, хранилище представляется двум серверам. Компоненты кластеризации — Corosync и Pacemaker — координируют обмен данными и управление ресурсами. Один из серверов имеет активное подключение к ресурсам хранилища и SQL Server. Когда Pacemaker обнаруживает сбой, компоненты кластеризации отвечают за перемещение ресурсов на другой узел.
Интеграция SQL Server с Pacemaker на Linux не так тесна, как с Windows Server Failover Clustering (WSFC) на Windows. SQL Server не имеет знаний о присутствии кластера. Вся оркестрация осуществляется извне, и служба управляется Pacemaker как отдельный автономный экземпляр. Кроме того, имя виртуальной сети относится к WSFC, которое не имеет эквивалента в Pacemaker. Ожидается, что @@SERVERNAME и sys.servers возвращают имя узла, а динамические административные представления кластера sys.dm_os_cluster_nodes и sys.dm_os_cluster_properties не возвращают записи. Чтобы использовать строка подключения, указывающую на имя сервера и не используя IP, необходимо зарегистрировать в своём DNS-сервере IP-адрес, использованный для создания виртуального IP-ресурса (как объяснено в следующих разделах), с выбранным именем сервера.
В SQL Server 2025 (17.x) с версиями Cumulative Update (CU) 3 и более поздними версиями доступен новый агент Pacemaker HA v2 для Red Hat Enterprise Linux (RHEL) и Ubuntu в mssql-server-ha этом пакете.
Агент Pacemaker HA версии 2 предоставляет улучшения надежности и производительности по сравнению с предыдущим агентом, в том числе:
Улучшена эффективность отказа, чтобы сократить время планового и незапланированного отказа.
Поддержка гибких политик автоматической отработки отказа, включая настройку времени ожидания проверки работоспособности и уровня состояния сбоя.
Поддержка TLS 1.3 для обмена данными между кластером Pacemaker и SQL Server.
Агент Pacemaker HA версии 2 в настоящее время находится в предварительной версии. Существующий агент HA Pacemaker (версия 1) полностью поддерживается для боевых инсталляций.
Количество экземпляров и узлов
Одним из ключевых отличий SQL Server на Linux является то, что разрешена всего одна установка SQL Server на каждый сервер Linux. Такая инсталляция называется экземпляром. В отличие от Windows Server, который поддерживает до 25 FCI на WSFC, FCI на базе Linux будет иметь только одну экземпляр. Этот один экземпляр также является экземпляром по умолчанию; В Linux нет концепции именованного экземпляра.
Кластер Pacemaker может содержать до 16 узлов при использовании Corosync, поэтому один FCI может охватывать до 16 серверов. Экземпляр FCI отказоустойчивого кластера, реализованный с использованием редакции SQL Server Standard Edition, поддерживает до двух узлов, даже если кластер Pacemaker содержит максимум 16 узлов.
В SQL Server FCI экземпляр SQL Server активен только на одном узле одновременно.
IP-адрес и имя
В кластере Pacemaker на Linux каждому узлу FCI (кластер отказоустойчивости) SQL Server требуется собственный уникальный IP-адрес и имя. Если конфигурация FCI охватывает несколько подсетей, для каждой подсети требуется один IP-адрес. Уникальное имя и IP-адреса используются для доступа к FCI, чтобы приложения и конечные пользователи не должны были знать, какой сервер кластера Pacemaker используется.
Имя FCI в DNS должно совпадать с именем ресурса FCI, созданного в кластере Pacemaker. Имя и IP-адрес должны быть зарегистрированы в DNS.
Общее хранилище
Все FCIs, будь то под управлением Linux или Windows Server, должны иметь определенную форму общего хранилища. Это хранилище предоставляется всем серверам, где может размещаться экземпляр отказоустойчивого кластера, но только один сервер может использовать хранилище для экземпляра отказоустойчивого кластера в любой конкретный момент времени. Ниже перечислены функции, доступные для общего хранилища в Linux:
- iSCSI
- Сетевая файловая система (NFS)
- Протокол SMB
В Windows Server есть несколько различных вариантов. Один из вариантов, которые в настоящее время не поддерживаются для интерфейсов FCIs на основе Linux, — это возможность использовать диск, локальный для tempdbузла, для которого является временная рабочая область SQL Server.
В конфигурации, охватывающей несколько расположений, содержимое, хранящееся в одном центре обработки данных, нужно синхронизировать с другим центром. В случае переключения на резервный сервер FCI может включаться, и хранилище остается таким же. Для этого требуется некоторый внешний метод репликации хранилища, независимо от того, выполняется ли это с помощью базового оборудования хранилища или программной программы.
Note
При развертывании SQL Server в среде Linux диски, напрямую подключенные к серверу, должны быть отформатированы в файловой системе XFS или ext4. Другие файловые системы сейчас не поддерживаются.
Процесс представления общего хранилища одинаков для различных поддерживаемых методов.
- Настройте общее хранилище.
- Подключите хранилище в качестве папки к серверам, которые будут узлами кластера Pacemaker для FCI.
- При необходимости переместите системные базы данных SQL Server в общее хранилище
- Проверьте работу SQL Server с каждого сервера, подключенного к общему хранилищу.
Одно из основных отличий SQL Server на базе Linux заключается в том, что, хотя вы можете настроить расположение по умолчанию для пользовательских данных и файлов журналов, системные базы данных должны всегда находиться в /var/opt/mssql/data. В Windows Server есть возможность перемещать системные базы данных, включая tempdb. Этот факт влияет на настройку общего хранилища для экземпляра отказоустойчивого кластера.
Пути по умолчанию для баз данных, не являющихся системными, можно изменить с помощью служебной программы mssql-conf. Для информации о том, как изменить настройки по умолчанию, см. раздел «Изменить местоположение данных по умолчанию или каталога журналов». Вы также можете хранить данные SQL Server и журналы транзакций в других местах, если у них есть соответствующая защита, даже если это не стандартное местоположение; местоположение должно быть указано.