Поделиться через


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

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

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

Сведения о создании FCI SQL Server в Linux см. в статье "Настройка экземпляра отказоустойчивого кластера " SQL Server на Linux (RHEL)

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

  • В Red Hat Enterprise Linux (RHEL) уровень кластеризации основан на дополнении HA для 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 и SUSE HAE основаны на Pacemaker.

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

Схема кластера SQL Server с общим диском Red Hat Enterprise Linux 7.

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

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

В отказоустойчивом кластере 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 может включаться, и хранилище остается таким же. Для этого требуется некоторый внешний метод репликации хранилища, независимо от того, выполняется ли это с помощью базового оборудования хранилища или программной программы.

Примечание.

Для 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 в других расположениях, если они имеют правильную безопасность, даже если это не расположение по умолчанию; Необходимо указать расположение.