Microsoft SQL Server 2017 на Linux — система управления базами данных для критических рабочих нагрузок, начиная от малых, односистемных приложений и заканчивая крупными, общедоступными приложениями корпоративного уровня, рассчитанными на тысячи одновременно работающих пользователей. Она поддерживает разнообразные языки программирования и функции для повышения производительности в локальных, гибридных, контейнерных и «облачных» установках. Red Hat Enterprise Linux, корпоративная операционная система с открытым исходным кодом, обеспечивает единый фундамент для инфрастуруктур на «голом железе», виртуальных, контейнерных, в общедоступном и частном «облаке». Встроенные функции безопасности и управления обеспечивают стабильную, высокопроизводительную платформу для критических рабочих нагрузок.

SQL Server 2017 на Linux предоставляет ключевые функции реляционной базы данных, в том числе обработку в памяти рабочих нагрузок, связанных с операциями и хранилищами данных, повышенную защиту данных, проверку подлинности Microsoft Active Directory, высокую доступность, аварийное восстановление и агент SQL Server, в экосистеме Red Hat Enterprise Linux. Платформа Red Hat повышает безопасность, стабильность, надежность и управляемость для SQL Server в различных средах развертывания. В качестве эталонной платформы для SQL Server 2017 на Linux вся разработка, совместные работы по проектированию и проверка качества были выполнены на Red Hat Enterprise Linux.

Интеграция с Red Hat Enterprise Linux

Microsoft SQL Server 2017 на Linux — не перенесенный или переработанный продукт. Это та же эффективная, масштабируемая реляционная СУБД, которую Microsoft поставляла много лет, доступная с такой же функциональностью, производительностью и масштабируемостью на Red Hat Enterprise Linux. SQL Server Platform Abstraction Layer (SQLPAL) абстрагирует вызовы и семантику операционной системы и библиотеки для оптимизации SQL Server 2017 для каждой платформы (рисунок 1). Весь специализированный программный код операционной системы содержится в одном месте, поэтому весь остальной код SQL Server в отношении платформы нейтрален. Обеспечивая такое абстрагирование, SQLPAL объединяет части проекта Microsoft Research Drawbridge с SQL Server Operating System, существующим уровнем платформы SQL Server. SQLPAL абстрагирует операционную систему от приложений, а расширение узла, скомпилированное в собственном коде, обеспечивает мощные службы управления памятью, планирования потоков и ввода-вывода. В результате компонент SQL Server Database Engine — базовая служба для хранения, обработки и защиты данных — полностью поддерживается с оптимизированной производительностью и функциональными возможностями на Red Hat Enterprise Linux. Кроме того, компания Microsoft подготовила репозитории пакетов для установки SQL Server на Red Hat Enterprise Linux и поддерживает установку через собственный диспетчер пакетов YUM.

Уровень абстракции платформы Microsoft SQL Server (SQLPAL) на архитектуре Red Hat Enterprise Linux
Рисунок  1. Уровень абстракции платформы Microsoft SQL Server (SQLPAL) на архитектуре Red Hat Enterprise Linux

Масштабирование в соответствии с требованиями

Все редакции Microsoft SQL Server 2017 — Enterprise, Standard, Developer, Web и Express — функционируют на Red Hat Enterprise Linux, что позволяет выбрать наиболее подходящую. Вы можете использовать встроенные образы из Microsoft Azure Marketplace для развертывания виртуальных машин Red Hat Enterprise Linux и SQL Server on Azure, которые сертифицированы для Red Hat Enterprise Linux и соответствуют минимальным техническим требованиям SQL Server.

SQL Server поддерживает разнообразные протоколы и технологии непосредственно подключенных и подключаемых к сети хранилищ, в том числе Fibre Channel Storage Attached Network (FC SAN), Fibre Channel over Ethernet (FCoE), Internet Small Computer Systems Interface (iSCSI), Network File System (NFS) и Samba, и вы можете выбрать хранилище, более всего соответствующее потребностям вашей компании. Хранилища вместимостью в петабайты данных с кластеризованными индексами columnstore в памяти содержат огромные массивы данных, которые можно изменять и одновременно загружать для рабочих нагрузок хранилищ данных и систем поддержки принятия решений (DSS).

В расчете на крупные критические приложения SQL Server Enterprise Edition на Red Hat Enterprise Linux сочетает в себе функции корпоративного уровня с широкой масштабируемостью на неограниченное число ядер. Каждый экземпляр SQL Server может использовать столько памяти, сколько способен выделить Red Hat Enterprise Linux, с максимальным размером базы данных 524 Пбайт.

Повышение уровня защиты данных

Безопасность — основополагающий принцип SQL Server на Red Hat Enterprise Linux. Компания Red Hat предоставляет передовые технологии обеспечения безопасности с текущей поддержкой со стороны группы безопасности продуктов, чтобы противодействовать угрозам и защитить данные. SQL Server располагает мощным набором функций, в том числе аудита, безопасности на уровне строк, динамического маскирования данных, Always Encrypted и прозрачного шифрования данных, которые отделяют и защищают как неактивные, так и передаваемые данные компании.

Кроме того, Red Hat Enterprise Linux интегрируется со службой Active Directory, обеспечивая ее функционирование как центра управления удостоверениями пользователей. Предусмотрено два варианта интеграции: прямая интеграция и отношения доверия между сферами Active Directory (рисунок 2). При прямой интеграции системы Red Hat Enterprise Linux объединяются непосредственно в домен Active Directory. В случае отношений доверия между сферами Active Directory отношения доверия между лесами Kerberos с Active Directory позволяют внешним пользователям Active Directory обращаться к ресурсам в домене управления удостоверениями Red Hat.

Варианты интеграции Red Hat Enterprise Linux и Microsoft Active Directory
Рисунок 2. Варианты интеграции Red Hat Enterprise Linux и Microsoft Active Directory

Известные инструменты

Red Hat Enterprise Linux и SQL Server поддерживают открытый и кросс-платформенный инструментарий, а также все существующие инфраструктуры разработки и драйверов, и вы можете управлять базой данных SQL Server с использованием имеющихся у вас инструментов, методологий и процессов. Существующие инструменты на основе Microsoft Windows, в том числе SQL Server Management Studio (SSMS) и SQL Server Data Tools (SSDT), продолжают работать с Red Hat Enterprise Linux. SQL Server поддерживает новые инструменты, такие как SQL Operations Studio, Visual Studio (VS) Code Extension for SQL Server и mssql-cli, на всех платформах. Кроме того, компании Red Hat и Microsoft сотрудничают и с другими поставщиками, поддерживая многие ведущие инструменты в отрасли.

Высокая доступность базы данных

Microsoft SQL Server на Red Hat Enterprise Linux обеспечивает высокую доступность на уровне экземпляра и базы данных через интеграцию с Pacemaker, диспетчером ресурсов кластера высокой доступности, оптимизированным для Red Hat Enterprise Linux. Благодаря возможностям оркестровки для мониторинга, обнаружения отказов и автоматического перехода на другой ресурс, Pacemaker восстанавливает приложения и виртуальные машины в случае сбоев на уровне узлов и ресурсов. Red Hat предоставляет подробную информацию о настройках Pacemaker для оптимизации операций, а SQL Server использует уникальные агенты ресурсов Pacemaker для высокой доступности на уровне экземпляров и базы данных. Microsoft также предоставляет отдельный репозиторий пакетов для агентов Pacemaker для SQL Server с открытым исходным кодом.

Кроме того, SQL Server обеспечивает высокую доступность на уровне экземпляров и избыточность за счет экземпляров отказоустойчивого кластера (FCI) Always On, чтобы экземпляры SQL Server были гарантированно доступны во время плановых и внеплановых отключений. FCI состоит из двух или нескольких узлов кластера с доступом к сети хранения данных (SAN) или непосредственно подключенному общему хранилищу кластера. В каждый момент времени активен только один узел. Вторичные узлы пассивны, но готовы взять на себя роль активного узла во время отработки отказа. Pacemaker управляет всеми ресурсами кластера FCI, работая на Red Hat Enterprise Linux.

SQL Server достигает высокой доступности на уровне базы данных и аварийного восстановления с помощью групп доступности Always On. Эти группы поддерживают реплицированную среду для дискретного набора пользовательских баз данных, известных как базы данных доступности, работающих на оборудовании с аналогичной конфигурацией. Существует несколько типов немонопольных групп доступности для SQL Server и Red Hat Enterprise Linux.

  • Группы доступности, настроенные для высокой доступности и аварийного восстановления, представляют собой базы данных, отрабатывающие отказ одновременно. Они обеспечивают высокую доступность, аварийное восстановление и балансирование масштабирования для чтения с использованием Pacemaker в качестве диспетчера кластера.
  • Группы доступности, предназначенные для масштабируемых рабочих нагрузок только для чтения, представляют собой наборы баз данных, реплицируемых на другие экземпляры SQL Server для соответствующих рабочих нагрузок. Диспетчер кластера им не требуется.
  • Распределенные группы доступности охватывают две отдельные группы доступности для отработки отказов и аварийного восстановления. Базовые группы доступности могут быть настроены на одной платформе и при необходимости управляются через Pacemaker или могут быть размещены на разных платформах для миграции и аварийного восстановления.
  • Кросс-платформенные группы доступности содержат одну или несколько реплик как на Microsoft Windows, так и на Red Hat Enterprise Linux, обеспечивая мультиплатформенную поддержку и уменьшая перерывы в работе приложений при переносе баз данных между Windows и Linux.

Каждая группа доступности может иметь первичную реплику и до восьми вторичных реплик. Среди других возможностей — отработка отказов для нескольких баз данных, несколько синхронных и асинхронных вторичных реплик, ручной и автоматический переход на другой ресурс и активные вторичные реплики для рабочих нагрузок чтения и резервного копирования.

Повышение производительности базы данных

Red Hat Enterprise Linux и Microsoft SQL Server 2017 Enterprise Edition обеспечивают высокую производительность для рабочих нагрузок баз данных. Тест Transaction Processing Performance Council Benchmark H (TPC-H) измеряет соотношение цена/производительность для системы поддержки решений. В ходе первого тестирования с Microsoft SQL Server 2017 Enterprise Edition комбинация SQL Server 2017 и Red Hat Enterprise Linux 7.3 превзошла лучший до тех пор некластеризованный результат TPC-H@1000GB, достигнутый с SQL Server 2016, на 6%. Эта комбинация также показала снижение соотношения цены и затрат на обслуживание на 5% в течение трех лет.

Возможности повышения производительности

В качестве основы для развертывания SQL Server, Red Hat Enterprise Linux ускоряет выполнение рабочих нагрузок баз данных благодаря встроенным функциям для повышения производительности, требующим минимальной настройки или вовсе не требующим ее.

  • Прямой ввод-вывод. С помощью функции прямого ввода-вывода файловой системы Red Hat Enterprise Linux такие приложения, как SQL Server, эффективно управляют пропускной способностью при вводе-выводе файлов. Приложения обходят кэши операционной системы и напрямую читают и записывают файлы в устройства хранения данных. SQL Server автоматически настраивает прямой ввод-вывод, чтобы увеличить производительность рабочей нагрузки базы данных без обязательного взаимодействия с пользователем.
  • Поддержка NUMA. В современных мультипроцессорных системах время доступа к памяти зависит от относительного расположения памяти и процессоров. Доступ к памяти, локальной для конкретного процессора, происходит быстрее, чем к памяти, подключенной к удаленному процессору. Поэтому такие серверы обычно поддерживают NUMA — подход, при котором системная память делится на зоны и каждая зона выделяется определенному процессору. SQL Server определяет наличие системы NUMA и получает преимущества от функции сходства процесса в Red Hat Enterprise Linux. После настройки функция сходства процесса запускает процессы на определенных процессорах, гарантируя, что каждый процесс использует локальную память. Метод ускоряет доступ к памяти и повышает общую производительность рабочей нагрузки базы данных.
  • Прозрачные объемные страницы (THP). Объемные страницы снижают накладные расходы при управлении большими объемами памяти, увеличивая размер страниц с 2 Мбайт до 1 Гбайт.

THP — уровень абстракции, который автоматизирует большинство действий при создании, управлении и использовании огромных страниц. Благодаря тестированию и оптимизации для разнообразных систем, приложений и рабочих нагрузок, настройки по умолчанию повышают производительность большинства системных конфигураций. Red Hat Enterprise Linux поддерживает THP, чтобы повысить показатели использования памяти и производительности для Microsoft SQL Server.

Функции для Microsoft SQL Server

Microsoft SQL Server ускоряет рабочие нагрузки базы данных с использованием передовых функций для повышения производительности. Такие возможности, как динамическое масштабирование объектов в памяти, восстановление параллельного повтора действий и упреждающего чтения, встроены в SQL Server и не требуют вмешательства пользователя. Другие функции, в том числе OLTP в памяти, гибридная обработка транзакций и аналитическая обработка (HTAP), адаптивная обработка запросов и автоматическая настройка, требуют участия пользователя. SQL Server располагает собственными функциями управления памяти для кэшей буферного пула и плана запросов.

  • Индексы columnstore. С помощью ключевого компонента для повышения производительности SQL Server, индексов columnstore, можно стократно повысить производительность рабочих нагрузок аналитики и хранилищ данных. Благодаря сжатию данных на основе столбцов, а не строк эффективность сжатия данных улучшается на величину до 10 раз. Устранение столбцов позволяет пропускать ненужные столбцы и строки. В пакетном режиме строки обрабатываются группами, что ускоряет операции.
  • OLTP в памяти. OLTP в памяти увеличивает производительность при обработке транзакций. Устраняется конкуренция блокировок и кратковременных блокировок между одновременно выполняемыми транзакциями. В оптимизированных алгоритмах хранения, доступа и обработки данных используются усовершенствованные вычисления в памяти и с высоким параллелизмом, что позволяет повысить эффективность доступа к данным и выполнения транзакций. Функции OLTP в памяти SQL Server включают оптимизированные для памяти таблицы и табличные переменные, а также компилируемые в собственном коде хранимые процедуры и определяемые пользователем скалярные функции (UDF).
  • Гибридная обработка транзакций и аналитическая обработка (HTAP). Объединяя OLTP в памяти с функциями аналитики в реальном времени, HTAP обрабатывает высокопроизводительные транзакционные и аналитические рабочие нагрузки на одной платформе. Используя HTAP, SQL Server управляет двумя копиями данных: одной для рабочих нагрузок OLTP в памяти и другой для аналитических рабочих нагрузок реального времени. Используя некластеризованные индексы columnstore, SQL Server автоматически и мгновенно отражает изменения данных, сделанные рабочими нагрузками OLTP внутри данных аналитической рабочей нагрузки, сокращая задержки и обеспечивая функции операционной аналитики в реальном времени.
  • Адаптивная обработка запросов и автоматическая настройка. SQL Server использует адаптивную обработку запросов и автоматическую настройку для дальнейшего повышения производительности базы данных и во избежание потерь производительности. Благодаря адаптивной обработке запросов SQL Server приспосабливается к рабочим нагрузкам клиентов, оптимизируя план запроса на основе производительности предыдущего запроса. Автоматическая настройка поддерживает производительность запросов данных путем распознавания и автоматической коррекции проблем производительности с помощью обширных данных телеметрии из хранилища запросов.