Экземпляры отказоустойчивого кластера — SQL Server на базе Linux

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

В этой статье описаны основные понятия, связанные с экземплярами отказоустойчивого кластера (FCI) SQL Server на Linux.

Чтобы создать экземпляр отказоустойчивого кластера SQL Server в Linux, см. статью Настройка экземпляра отказоустойчивого кластера SQL Server в Linux.

Слой кластеризация

  • В Red Hat Enterprise Linux (RHEL) уровень кластеризация основан на надстройке Red Hat Enterprise Linux (RHEL).

    Примечание.

    Для доступа к надстройке высокого уровня доступности и документации по Red Hat требуется подписка.

  • В SUSE Linux Enterprise Server (SLES) уровень кластеризация основан на расширении высокой доступности SUSE Linux Enterprise (HAE).

    Дополнительные сведения о конфигурации кластера, параметрах агента ресурсов, управлении, рекомендациях и рекомендациях см. в разделе SUSE Linux Enterprise High Availability Extension 15.

Надстройка HA RHEL и расширение HAE SUSE основаны на Pacemaker.

Как показано на схеме ниже, хранилище представляется двум серверам. Компоненты кластеризации — Corosync и Pacemaker — координируют обмен данными и управление ресурсами. Один из серверов имеет активное подключение к ресурсам хранилища и SQL Server. Когда Pacemaker обнаруживает сбой, компоненты кластеризация отвечают за перемещение ресурсов на другой узел.

Diagram of Red Hat Enterprise Linux 7 shared disk SQL Server cluster.

Интеграция SQL Server с Pacemaker в Linux не связана с 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 на Linux является то, что разрешена всего одна установка SQL Server на каждый сервер Linux. Такая установка называется экземпляром. В отличие от Windows Server, который поддерживает до 25 ЦК на кластер отработки отказа Windows Server (WSFC), FCI на основе Linux будет иметь только один экземпляр. Этот один экземпляр также является экземпляром по умолчанию; В Linux нет концепции именованного экземпляра.

Кластер Pacemaker может содержать до 16 узлов при использовании Corosync, поэтому один экземпляр отказоустойчивого кластера может охватывать до 16 серверов. Экземпляр отказоустойчивого кластера, реализованный на базе выпуска SQL Server Standard, поддерживает до двух узлов кластера, даже если кластер Pacemaker содержит максимум 16 узлов.

В экземпляре отказоустойчивого кластера SQL Server экземпляр SQL Server активен либо на одном, либо на другом узле.

IP-адрес и имя

В кластере Pacemaker на Linux каждому экземпляру отказоустойчивого кластера SQL Server требуется собственный уникальный IP-адрес и имя. Если конфигурация FCI охватывает несколько подсетей, для каждой подсети требуется один IP-адрес. Уникальное имя и IP-адреса используются для доступа к FCI, чтобы приложения и конечные пользователи не должны знать, какой базовый сервер кластера Pacemaker не требуется.

Имя экземпляра отказоустойчивого кластера в DNS должно совпадать с именем ресурса экземпляра отказоустойчивого кластера, созданного в кластере Pacemaker. Имя и IP-адрес должны быть зарегистрированы в DNS.

Общее хранилище

Все экземпляры отказоустойчивого кластера, основанные как на Linux, так и на Windows Server, должны иметь определенную форму общего хранилища. Это хранилище предоставляется всем серверам, где может размещаться экземпляр отказоустойчивого кластера, но только один сервер может использовать хранилище для экземпляра отказоустойчивого кластера в любой конкретный момент времени. Ниже перечислены функции, доступные для общего хранилища в Linux:

  • iSCSI
  • Файловая система NFS
  • Протокол SMB. В Windows Server доступные параметры немного отличаются. Один из вариантов, которые в настоящее время не поддерживаются для интерфейсов FCIs на основе Linux, — это возможность использовать диск, локальный для tempdbузла, для которого является временная рабочая область SQL Server.

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

Примечание.

Для SQL Server развертывания на базе Linux с использованием дисков, предоставленных непосредственно серверу, необходимо форматировать с использованием XFS или EXT4. Другие файловые системы сейчас не поддерживаются. Все изменения будут отражены здесь.

Процесс представления общего хранилища одинаков для различных поддерживаемых методов.

  • Настройте общее хранилище.
  • Подключите хранилище в качестве папки к серверам, которые будут выступать в качестве узлов кластера Pacemaker для экземпляра отказоустойчивого кластера.
  • При необходимости переместите системные базы данных SQL Server в общее хранилище
  • Проверьте работу SQL Server с каждого сервера, подключенного к общему хранилищу.

Одно из основных отличий SQL Server на базе Linux заключается в том, что, хотя вы можете настроить расположение по умолчанию для пользовательских данных и файлов журналов, системные базы данных должны всегда находиться в /var/opt/mssql/data. В Windows Server есть возможность перемещать системные базы данных, включая tempdb. Этот факт влияет на настройку общего хранилища для экземпляра отказоустойчивого кластера.

Пути по умолчанию для баз данных, не являющихся системными, можно изменить с помощью служебной программы mssql-conf. Сведения об изменении значений по умолчанию см. в статье Изменение каталога по умолчанию для данных или журналов. Вы также можете хранить данные и транзакции SQL Server в других расположениях, если они имеют правильную безопасность, даже если это не расположение по умолчанию; Необходимо указать расположение.