Крупные производители популярного софта заботятся о своих заказчиках по-разному. Один из способов — создать программу сертификации. Чтобы, когда заказчики в раздумьях блуждают между аппаратными конфигами для конкретного софта, производитель этого софта мог подойти и с уверенностью показать пальцем: «Бери вот это и все будет хорошо».
Такую программу для своего SQL Server разработал Microsoft — SQL Server Fast Track (DWFT). По ней сертифицируются конфигурации хранилищ данных — те, которые соответствуют требованиям рабочей нагрузки и могут быть внедрены с меньшим риском, стоимостью и сложностью. Звучит прекрасно, но интересно все-таки оценить эти критерии на практике. Для этого мы подробно разберем одну из конфигураций, имеющих сертификацию SQL Server Data Warehouse Fast Track.
Для начала — чуть подробней о DWFT. Эта программа включает не только сертификацию эталонных архитектур от системных поставщиков, но и ряд руководств по лучшим практикам — если хочется собрать что-то свое. Microsoft обновляет программу и для развития новых функций, и по итогам обратной связи с клиентами.
Имея хранилище, соответствующее DWFT, можно точно знать, что все возможности SQL Server будут доступны. Технологии хранения столбцов в памяти повышают производительность в транзакционных и аналитических рабочих нагрузках. Будут поддерживаться как традиционные структурированных реляционные, так и неструктурированные большие данные —в Hadoop, Spark или Azure Data Lake. С функцией SQL Server «PolyBase» можно объединять большие данные в SQL Server Universe, запрашивать как реляционные, так и неструктурированные данные, объединяя их вместе без необходимости перемещать.
Общий список сертифицированных архитектур находится в нижней части этой страницы. Далее мы представим одну из них.
«Эталонная» архитектура
Теперь — к разбору одной из архитектур, сертифицированных по DWFT. Она основана на наших серверах BullSequana S400 и S800 и хранилище Dell EMC VMAX. Объем хранилища можно увеличить до 4 ПБ, если масштабировать сервер BullSequana S до 32 процессоров.
Для обеспечения высокой доступности БД дополнительно рекомендуется отказоустойчивая кластеризация Windows. То есть использование как минимум двух серверов. Через службы кластеризации Microsoft один сервер базы данных настроен как основной (активный) сервер, а второй — как вспомогательный (пассивный) сервер. Пассивный сервер должен иметь такую же конфигурацию, что и основной сервер.
Список и характеристики компонентов инфраструктуры
Общая схема двух конфигураций
Аппаратные компоненты
Сервер BullSequana S800
Сервер BullSequana S800 — это восьмипроцессорный сервер с объемом памяти до 12 ТБ, расширенными возможностями ввода-вывода и добавления модуля с SSD/HDD/NVMe хранилищем или с графическими процессорами NVidia Tesla.
Линейка BullSequana S доступна в вариантах от S200 с двумя процессорами до S3200 с 32 процессорами. Шаг масштабирования линейки — два процессора. Для архитектуры SQL Server 2017 DWFT одинаково сертифицированы модели S200, S400 и S800.
Host Bus адаптер Emulex LPe31002-M6 16 Gbps
Адаптеры Emulex Gen 6 FC с динамической многоядерной архитектурой по сравнению с предыдущими поколениями устройств предлагают более высокую производительность, низкую задержку, улучшенную диагностику и управляемость. Обеспечивается скорость до 12 800 Мбайт/с (двумя портами 32GFC или четырьмя портами 16GFC), пропускная способность 1,6 млн IOPS на каждый адаптер. Четырехпортовый вариант LPe32004 обеспечивает до 3,2 млн IOPS на адаптер.
Коммутатор Brocade 6510
Коммутатор Brocade 6510 от Broadcom — это 1U, 48-портовый коммутатор Fibre Channel с возможностью установки в серверную стойку.
- Производительность волоконно-оптического канала: 16 Гбит/с
- До 48 портов, обеспечивающих совокупную пропускную способность 768 Гбит/с
- Кадровый транкинг со скоростью до 128 Гбит/с
- Энергопотребление: 14 ВТ/Гбит/с
Dell EMC VMAX 250F
VMAX All Flash ориентирован на петабайтные объемы данных и обработку больших транзакций. VMAX All Flash масштабируется и позволяет объединять сотни многоядерных процессоров Intel для динамических смешанных рабочих нагрузок. Основным элементом VMAX All Flash является V-Brick — возможно объединение до восьми V-Brick в виде единой системы с полностью разделенными возможностями подключения, обработки и пропускной способности. Каждый V-Brick поддерживает до 72 процессорных ядер для масштабирования производительности — в сумме до 576 ядер на массив. Для масштабирования используются модули Flash Capacity Packs.
СХД должна четко соответствовать требованиям по высокоточной обработке транзакций в реальном времени (OLTP), виртуализированных приложений и баз данных Oracle и SQL. Выдерживаются требования по миллионам IOPS, петабайтной пропускной способности и прогнозируемой производительности (время отклика в 350 мкс).
Наконец, архитектура должна иметь расширенную изоляцию ошибок, надежную проверку целостности данных и проверенные безотказные обновления аппаратного и программного обеспечения. Еще одно требование: доступность для операций 24x7 с использованием программного обеспечения SRDF.
Как подключена СХД
Конфигурация VMAX 250F (All Flash):
- 2 vBrick с 2 ТБ кэш-памяти на каждый блок.
- 32 * 16 Гбит/с хост FC-порты
- 64 * 3.84 ТБ флэш (Raid5-7+1) + резерв
Внешний вид VMAX vBricks в стойке:
Расположение портов:
Логическая конфигурация массива в сертифицированной архитектуре выстраивается в соответствии с конфигурацией Dell EMC и лучшими практиками производительности.
- Версия HyperMaxOS: 5977.1131.1131
- Шифрование: включено
- Сжатие: отключено
- Профиль производительности системы: базовый
Основное распределение:
Конфигурация LUN
Все LUN настроены как THIN LUN в виртуальном пуле, созданном на 64 накопителях. Данные распределены по всем флэш-накопителям на обоих vBricks. В общей сложности на Dell EMC VMAX определено 35 LUN:
- 16 LUN размером 8 ТБ для пользовательских данных (всего 128 ТБ)
- 16 LUN или 2 ТБ для tempdb (всего 32 ТБ)
- 2 LUN размером 2 ТБ для журнала (всего 4 ТБ)
Фронтальные порты Fibre Channel (FC) настроены на использование четырех доменов с отказами в режиме виртуального порта. Каждый порт один к одному подключен к порту на VMAX, который обслуживает только один LUN данных и один Tempdb LUN. Для каждого из них есть LUN для разделения операций чтения и записи на LUN (при выполнении GROUP BY или ORDER BY данные сначала записываются в Tempdb перед использованием в другой части запроса или представляют результаты пользователю). Каждый LUN отображается на четыре порта FA и доступен четырьмя путями.
Маппинг портов:
Группы хранения VMAX (SG)
Созданы следующие группы хранения:
Кэш чтения и записи
Кэш VMAX является глобальным, динамически используется для чтения и записи. Настройки по умолчанию используются для ограничения ожидания записи в системе. Поскольку систему использует только одно приложение, нет необходимости в создании разделов кэша.
Подключение к серверу и MPIO
В Windows Server 2016 использовался собственный MPIO. Его альтернатива — программное обеспечение PowerPath для приложений Dell EMC.
Прокладка кабелей
Верхние порты коммутаторов Brocade используются для подключения сервера BullSequana S800. Каждый четный порт Emulex HBA подключен к верхним портам слева от коммутатора Brocade. Каждый из портов Outbus Emulex HBA подключен к верхним портам слева от переключателя Brocade_2. Нижние порты используются только для подключения портов FC Dell EMC VMAX.
Конфигурация с одним сервером
Следующая схема демонстрирует прокладку кабелей между BullSequana S800 и Dell EMC VMAX 250F. Размещение HBA может отличаться в зависимости от размещения модулей HBA.
Подключение кабелей в high available серверной конфигурации
На схеме ниже показан способ подключения двух серверов BullSequana S800 в конфигурации с высокой доступностью и Dell EMC VMAX 250F. Опять же, размещение HBA может отличаться в зависимости от размещения модулей HBA.
Выше на левой части на коммутаторе Brocade подсвечена левая половина портов для первого сервера S800, а на правой части картинки — правые порты, и в них подключен второй сервер S800.
Конфигурация сервера BullSequana S800
Системный BIOS
Все параметры, кроме конфигурации сети BMC, были оставлены на заводских настройках по умолчанию. Параметр «Логический процессор» в разделе «Параметры процессора» остается по умолчанию «включен». Это активирует технологию Intel Hyper-Threading, которая максимизирует количество логических процессоров, доступных для SQL Server.
Emulex LPe31002-M6 16 Gbps
Все Emulex HBA доступны через Emulex OneCommand Manager. Версия прошивки и драйвера, используемых во время сертификации Microsoft DWH Fast Track — 12.0.193.13.
Важно, чтобы все HBA имели одну и ту же прошивку. Последняя прошивка может быть загружена с сайта Broadcom. Обновление прошивки можно выполнить с помощью кнопки «Download Firmware» в Emulex OneCommand Manager. Изменение драйвера и/или прошивки может потребовать перезагрузки сервера.
За исключением параметра QueryDept, который был изменен с 32 на 64, все остальные параметры хоста и HBA остались по умолчанию.
Конфигурация Windows Server 2016
Установка
Установка Windows была выполнена с настройками по умолчанию. После установки была активирована функция Windows MPIO, как показано на рисунке ниже.
После установки функции MPIO Windows необходимо перезапустить.
Установка драйверов и пакетов
Важно иметь драйверы и пакеты на USB-хранилище, поскольку они не входят в каталог драйверов Windows, включенный на установочный DVD-диск (сетевые адаптеры новее чем Windows Server 2016). После инсталляции Windows и MPIO были установлены следующие драйверы и пакеты (в указанном порядке):
- Набор микросхем Intel INF версии 10.1.17711.8088_PV или более поздней версии (требуется перезагрузка)
- Драйвер MegaRAID для Windows 2016 версии 6.14-6.714.05.00-WHQL (требуется перезагрузка)
- PROWinx64 для семейства Intel XL7xx версии 23_2 или новее
- OneInstall-Setep-12.0.193.18.exe или более поздней версии
Настройка энергопотребления
Чтобы максимизировать производительность, сервер был настроен на использование плана высокой производительности.
Блокировка страниц в памяти
Чтобы операционная система Windows не отправляла страницы данных в виртуальную память на диске и SQL Server мог использовать процесс для сохранения данных в физической (оперативной) памяти, опция Lock pages in memory для учетной записи службы SQL Server была включена. Нужно перезапустить SQL Server, чтобы этот параметр вступил в силу.
Диски Windows
После завершения зонирования в VMAX и коммутаторах LUN отображены в Windows Disk Management.
Если все диски отформатированы правильно, Windows Disk Management отображает следующий список:
Всего насчитывается 34 LUN’ы:
- 16 LUN размером 8 ТБ для пользовательских данных (всего 128 ТБ)
- 16 LUN или 2 ТБ для tempdb (всего 32 ТБ)
- 2 LUN размером 2 ТБ для журнала (всего 4 ТБ)
Для эталонных архитектур DWFT мы с Dell EMC рекомендуем использовать точки монтирования для томов вместо букв дисков. Рекомендуем назначить соответствующие имена томов и точек монтирования, чтобы упростить поиск и устранение неисправностей, а также анализ производительности. В идеале имена точек монтирования должны быть назначены таким образом, чтобы упростить идентификацию тома VMAX для данного тома Windows.
В следующей таблице показаны метки томов и пути доступа, используемые для эталонной конфигурации:
После готовности всех LUN каталог C:Storage выглядит следующим образом:
MPIO
Политика MPIO для всех томов устанавливается в разделе «Least Queue Dept».
Конфигурация Windows Defender
Windows Defender — стандартный антивирус и антиспам-компонент. Чтобы предотвратить сканирование файлов данных и журналов SQL Server (для обеспечения производительности), необходимо добавить следующие исключения.
Папки в одном сервере:
- C:Program Files (x86)Microsoft SQL Server
- C:Program FilesMicrosoft SQL Server
- C:Storage (односерверное решение)
Папки в решении высокой доступности (HA):
- C:Program Files (x86)Microsoft SQL Server
- C:Program FilesMicrosoft SQL Server
- C:ClusterStorage (высокое доступное решение)
- C:WindowsCluster
- Привод кворума
- Привод MSDTC
Типы файлов:
- .ldf
- .mdf
- .ndf
Конфигурация SQL Server 2017 Enterprise Edition
Установка выполняется, в основном, с использованием настроек по умолчанию. Некоторые исключения перечислены ниже. Во время установки SQL Server 2017 выбрана опция «Perform Volume Maintenance Task».
Конфигурация Tempdb
База данных Tempdb настроена на использование 16 файлов одинакового размера. Файлы данных Tempdb размещены на 16 томах. Файл журнала транзакций tempdb помещен на диск, где ведутся логи. Автоматическое увеличение включено.
Параметры запуска для экземпляра SQL Server
SQL Server 2017 автоматически устанавливает флаги трассировки -T1117 и -T1118, поэтому больше не нужно добавлять их в параметры запуска экземпляра. Если не использовать флаг трассировки -T834, достигается лучшая производительность. Microsoft рекомендует не использовать этот флаг при использовании индексов хранилища кластеризованных столбцов.
Единственным параметром запуска является флаг -E:
Дополнительную информацию по теме можно найти в статьях Microsoft DBCC TRACEON — Trace Flags и Database Engine Service Startup Options.
Максимальная память SQL Server
Максимальная память сервера для этой эталонной архитектуры должна быть установлена в значении 11.534.336 МБ или 11.264 ГБ, где 1.024 ГБ отведено операционной системе. Если дополнительные приложения совместно используют сервер, необходимо отрегулировать объем памяти, доступный для операционной системы.
Максимальная степень параллелизма (MAXDOP)
Максимальная степень параллелизма установлена на уровне 448, что соответствует количеству логических ядер, доступных на сервере.
Управление ресурсами
В зависимости от типа используемой рабочей нагрузки — хранилище с наибольшим количеством строк (RS) или кластерное хранилище столбцов (CS) — необходимо соответствующим образом настроить настройки Resource Governor.
Для хранилища строк параметр ресурса-регулятора, используемый для ограничения максимального объема памяти, устанавливается на 12 процентов.
ALTER WORKLOAD GROUP [default] WITH (request_max_memory_grant_percent=12);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Для хранилища столбцов параметр регулятора ресурса, используемый для ограничения максимального объема памяти, устанавливается на 25 процентов.
ALTER WORKLOAD GROUP [default] WITH (request_max_memory_grant_percent=25);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Настройка базы данных
База данных хранилища данных была настроена на использование нескольких групп файлов, каждая из которых содержит 16 файлов, распределенных равномерно по шестнадцати томам данных. Всем файлам разрешено автоматически расти. Группы файлов были настроены с параметром AUTOGROW_ALL_FILES, чтобы гарантировать, что все файлы в данной группе файлов остаются одинаковыми.
ALTER DATABASE <database name>
MODIFY FILEGROUP <file group name> AUTOGROW_ALL_FILES;
Дополнения для ссылочной архитектуры с высокой доступностью (HA)
Эталонная архитектура HA использует Windows Failover Clustering для обеспечения высокой доступности. При настройке отказоустойчивого кластера Windows возникают дополнительные проблемы с хранением. Рекомендуемая конфигурация позволяет разрешить всем голосам кластера голосовать за кворум и использовать диск.
Дополнительный том должен быть создан и настроен как witness disk. Dell EMC рекомендует использовать объем 2 ГБ для диска. Все тома должны быть сопоставлены каждому узлу кластера, настроены как ресурс кластера и добавлены в группу ресурсов кластера SQL Server.
Заключение
В заключение выделим, наверно, самое важное преимущество конфигурации — возможность подключения большого количества адаптеров HBA. Это позволяет вместе с ними сбалансированно увеличивать модули хранилища.
А это сертификат для конфигурации ATOS BullSequana S800 и Dell EMC VMAX 250F. В нем можно посмотреть тестовые метрики
В ближайшее время мы планируем переводить решения на архитектуру Cascade Lake. Это приведет к началу новой сертификации, которая дополнит текущую. С удовольствием ответим на ваши вопросы о сертификации и нашей архитектуре в комментариях.
Автор: NkTeplov