`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Windows Server и NVMe

+55
голосов

В серверных приложениях, критичных к задержкам обращения и производительности ввода/вывода, давно избегают механических дисков. Их сменили SATA и SAS SSD, но будущее — за NVMe SSD. И за программно-определяемым хранением.

Go flash

Рынок флэш-памяти меняется, совершенствуются технологии и операционные системы. Уже два года как в мире продается больше NVMe SSD, чем SATA SSD, при совсем скромной доле SAS SSD. Цены NVMe SSD и SATA SSD сопоставимы (SAS SSD вдвое дороже). За явным превосходством в производительности NVMe становится доминирующим протоколом передачи данных в серверах и системах хранения.

Windows Server и NVMe

Источник: SNIA

Пока хранение данных обслуживала экосистема SAS/SATA, построенная на SAS RAID-контроллерах и расширителях (экспандерах), серверы не слишком отличались от собратьев механических времен. Но NVMe не нужны посредники между CPU и флэш-памятью, это сказывается на конструктиве серверов. Дело даже не в новых форматах NVMe SSD, что идут на смену нынешним M.2/U.2. Серверы приложений и серверы хранения данных, критичные к продуктивности дискового ввода/вывода, строятся на распараллеливании потоков данных от CPU по шинам, вместо их консолидации на автономных контроллерах.

Цели остаются прежними: производительность, управляемость, доступность данных.

RAID и NVMe

Для непрерывной доступности данных нужны системы хранения с дублированными контроллерами или кластеры серверов с распределением блоков данных по узлам, кодированием со стиранием (erasure coding) или репликацией.

В автономном сервере не обойтись без RAID. Для NVMe SSD есть три варианта: программный, аппаратный, RAID on CPU (Intel VROC).

Windows Server и NVMe

Источник: SNIA

Аппаратные RAID-контроллеры понемногу утрачивают роль центра управления данными сервера. Во времена HDD они кроме прочего позволяли подтянуть производительность ввода/вывода. С переводом серверов на SATA/SAS SSD продуктивность определяется флэш-памятью, на долю контроллеров осталось «прочее»: обработка отказов и восстановление данных. Приход NVMe и развитых ОС ускорил процесс их вытеснения из серверов. Еще теплится спрос на Tri-mode (SAS/SATA/NVMe) RAID-контроллеры с привычным интерфейсом и функциональностью (прогоняющие все данные через узкое горлышко 8-16 линий PCIe и стек SAS). Но не для того придумывали NVMe, чтобы содержать посредников.

Интеловский VROC — программно-аппаратная реализация RAID силами блока Intel Volume Management Device (VMD), интегрированного в процессоры Intel Xeon Scalable. Даже если не придираться к невыдающейся производительности, его не назовешь универсальным решением. Активируется VROC физическим ключом на материнской плате (если та поддерживает VROC). Пока Intel была производителем SATA и NVMe SSD, ключи для «своих» SSD стоили дешево, для «чужих» — дорого. Спроса на VROC не было с его рождения, а теперь, после продажи флэш-производства Hynix, видимо уже и не будет.

Программный NVMe RAID строят средствами ОС или специализированных виртуальных систем хранения. Например, утилитой Linux mdadm или Windows Storage Spaces. Основное преимущество такого способа — отсутствие затрат на оборудование, пусть и ценой процессорного ресурса.

Какой программный RAID?

Сборка программных массивов из NVMe SSD является горячей темой уже много лет. Все программные RAID так или иначе основаны на избыточности — источнике жизненной силы управления данными.

Поле для спора есть: производительность имеющихся программных продуктов не соотносится с потенциалом скорости NVMe. Разочарование приходит на массивах с четностью: такие уровни RAID более экономно расходуют пространство, но менее производительны и требуют больше вычислений.

Когда речь идет о рядовых серверах, спор о низкой производительности программных RAID остроту утрачивает. При емкости NVMe SSD от 960GB до 15.36TB серверу не нужно так уж много SSD. Это HDD объединяли в длинные дисковые группы в погоне за IOPs’ами. Большие пулы и уровни RAID c четностью для серверов на NVMe SSD не слишком актуальны — такие задачи решаются внешними дисковыми массивами или виртуальными системами хранения, обслуживающими приложения из соседних виртуальных машин.

Как только мы ограничиваемся простым или двойным зеркалированием, программные массивы, собранные ZFS, Linux mdadm или Windows Storage Spaces, будут равносильны. Не так экономно по емкости, как RAID с четностью, зато производительно и щадяще по ресурсам. Просто и результативно.

Центр управления данными (RAS delivery point)

Без RAID-контроллера уходит привычный комфорт единого сервисного окна к данным:

Windows Server и NVMe

Кто в программных реализациях RAID отвечает за управление массивом NVMe-накопителей, его расширение и резервирование, подключение SSD на горячую? Как работает индикация, кто следит за состоянием флэш-памяти и рассылает уведомления о сбоях?

Справляются сообща: серверная платформа, ОС, сторонние программные утилиты.

Горячая замена, индикация, диагностика, уведомления

Задача горячей замены NVMe SSD решается при помощи драйверов, встроенных в ОС или поставляемых производителем устройств. Корректную индикацию обеспечивает серверная платформа. В состав пула дисков заранее можно ввести диск горячего резерва (hot spare) или, как в Windows, зарезервировать при создании пула избыточный (на емкость диска) объем — процесс восстановления данных RAID пройдет быстрее.

Есть интерфейс управления NVMe (NVMe MI) для корпоративных и гипермасштабируемых приложений. Сценарии использования включают в себя: инвентаризацию, мониторинг работоспособности (определение неисправных дисков), мониторинг износа, температуры, питания, настройку, управление изменениями и т.д. Реализации отличаются от вендора к вендору. К примеру, вот что может iDRAC в серверах Dell.

Контролируют состояние NVMe SSD пакетом smartmontools, утилиты которого вычитывают S.M.A.R.T. дисков. Например, так.

В корпоративной среде принято мониторить не автономные серверы, а инфраструктуру в целом. Хороший пример — система мониторинга Zabbix. Ее клиентская часть ставится на серверы предприятия, позволяет оперативно собирать необходимую информацию и оповещать администраторов о событиях по различным каналам: e-mail, SMS, Jabber, EZ texting, пользовательскими скриптами. Опрос smartmontools «здоровья SSD» настраивается как автоматическая процедура.

Разберемся, что может Windows Server.

Windows Storage Spaces

Cредством защиты данных под Windows служит технология Storage Spaces.

Microsoft описывает три варианта серверных реализаций технологии:

  • На локальных дисках отдельного сервера c Windows Server Standard

  • В кластере серверов с локальными дисками под управлением Storage Spaces Direct (S2D) и Windows Server Datacenter

  • В кластере серверов с разделяемыми SAS JBOD

Нас интересует вариант автономного продуктивного сервера под управлением стандартной ОС. С помощью Storage Spaces группируют накопители в унифицированные пулы хранения, cоздают и хранят дополнительные копии данных. Если нужна большая емкость, в пул хранения добавляют диски. Пространства для хранения гибкие, а пулов хранения может быть несколько. Из пула можно создать несколько виртуальных дисков. Windows распознает их как традиционные диски, которые можно форматировать. Виртуальные диски создаются и управляются через интерфейс File and Storage Services или командами PowerShell.

У Storage Spaces есть три режима объединения дисков: simple, mirror, parity. Simple похож на RAID 0 и не защищает от сбоя диска. Зеркалирование (mirror) обеспечивает избыточность данных и может повысить производительность чтения, подобно RAID 1. Двойное зеркалирование (two-way mirror) защищает от сбоев двух дисков. Избыточность с четностью (parity) эффективна по использованию емкости, но подсаживает производительность. Когда речь об NVMe SSD, программными аналогами RAID 5 и 6 под Windows лучше не пользоваться. Выбирают между two-way mirror и three-way-mirror.

Storage Space Mode Minimum # of Drives Failure Safety Capacity Loss
Simple 2 None None
Two-way Mirror 2 1 Drive 50%
Three-way Mirror 5 2 Drives 67%
Parity with Single Drive Redundancy 3 1 Drive 1 Drive
Parity with Dual Drive Redundancy 7 2 Drives 2 Drives

Все это подробно описано в руководстве Microsoft по Storage Spaces для автономных серверов. Вот только слова NVMe в нем нет. Создается ложное впечатление, что с точки зрения Microsoft NVMe SSD уместны только в S2D — гиперконвергентных системах с распределенным хранилищем. Это не так.

Собрать NVMe SSD в RAID с помощью Storage Spaces можно двумя способами:

  • GUI

  • CLI (PowerShell)

Опишем пошаговую процедуру создания хранилища в среде Windows Server 2019.

Если SSD использовались, их первым делом надо очистить от предыдущей информации — через Server Manager или консольную утилиту diskpart.

Путь GUI

Создаем новый пул из доступных дисков:

Windows Server и NVMe

Проверяем результат:

Windows Server и NVMe

Пул Pool_NVMe создан, указаны диски, которые входят него входят

Формируем программный RAID (т.е. Storage Spaces):

Windows Server и NVMe

Выбираем тип RAID:

Windows Server и NVMe

Устанавливаем объем:

Windows Server и NVMe

В системе появился новый виртуальный диск:

Windows Server и NVMe

Создаем том:

Windows Server и NVMe

Хранилище RAID 1 готово к работе.

Путь CLI (PowerShell)

Проверяем наличие дисков и возможность создания из них пула.

Get-PhysicalDisk | Sort-Object -Property FriendlyName

Windows Server и NVMe

$PhysicalDisks = Get-StorageSubSystem -FriendlyName «Windows Storage*» | Get-PhysicalDisk -CanPool $True

New-StoragePool -FriendlyName «Pool_NVMe» -StorageSubsystemFriendlyName «Windows Storage*» -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName «SS_NVMe» -Size 890GB -ProvisioningType Fixed | Initialize-Disk -PassThru | New-Partition -DriveLetter M -UseMaximumSize | Format-Volume

Windows Server и NVMe

Две строчки — и все готово.

Контрольная проверка, например, тестом AJA, показывает: производительность зеркального тома из двух NVMe SSD отвечает ожиданиям.

Windows Server и NVMe

Собрать диски в защищенные тома можно и без Storage Spaces, через Disk Manager: в меню «Пуск» и панели поиска выбрать «Создать и отформатировать разделы жесткого диска», для собираемых в массив дисков выбрать режим объединения (Striped / Mirrored / RAID-5 ), назначить букву диска или точку монтирования для нового тома, создать том.

Мониторинг состояния RAID-массива в Windows.

Как строили — так и контролируем: через GUI или PowerShell.

Server Manager выдает информацию о состоянии пула, виртуального диска и физических дисков, из которых он собран:

Windows Server и NVMe

Когда параметр Percent Allocation находится в красной зоне (как на скриншоте), все пространство фактически задействовано. Для оптимальной производительности хранилища желательно заполнять его не больше, чем на 80%.

Для отображения необходимой информации можно создать скрипт в Script Pane/PowerShell (и сохранить файл в любом месте):

Get-StoragePool -FriendlyName Pool_NVMe | ft FriendlyName,OperationalStatus,HealthStatus

Get-Disk -FriendlyName SS_NVMe | ft FriendlyName,HealthStatus,OperationalStatus

Get-PhysicalDisk -FriendlyName «NVMe*» | ft FriendlyName,HealthStatus,OperationalStatus,Model,FirmwareVersion, PhysicalLocation

Результаты выполнения этого скрипта:

Windows Server и NVMe

Windows Server и NVMe

Проверим реакцию cистемы на отказ одного диска (извлекаем один SSD).

Windows Server и NVMe

Windows Server и NVMe

Сообщение об ошибке помещается в системный log-файл.

Windows Server и NVMe

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

Windows Server и NVMe

Е-mail уведомления об ошибках

Раньше использовали планировщик заданий Windows.

Windows Server и NVMe

Создавали базовое задание:

Windows Server и NVMe

Устанавливали значение триггера (реакция в момент появления сообщения в журнале логов):

Windows Server и NVMe

Указывали соответствующий журнал, источник и идентификатор:

Windows Server и NVMe

Устанавливали вид действия:

Windows Server и NVMe

Упс. Windows Server 2019 сообщает, что эта функция уже не поддерживается.

А что же PowerShell?

Для использования командлета (Start a program) — PowerShell -> Send-MailMessage. необходима информация, получаемая по команде:

nslookup -type=mx entrydat.ua

Windows Server и NVMe

Тело командлета:

Send-MailMessage -SmtpServer server_dat.entrydat.ua -To [email protected] -From Server_DAT_App3 -Subject «RAID Error» -Body «Check the RAID»

Реакция ОС показывает причину отказа Windows Server 2019 от прежних механизмов рассылки e-mail уведомлений:

«Командлет Send-MailMessage устарел. Этот командлет не гарантирует безопасное подключение к SMTP-серверам. Хотя в PowerShell нет немедленной замены, мы рекомендуем не использовать Send-MailMessage».

Свободно распространяемое ПО позволяет решить эту и много других задач.

Напоследок

При всем удобстве, дискретные RAID-контроллеры больше не являются выбором must have в продуктивных серверах. Массивы NVMe SSD можно обслуживать базовыми средствами ОС и дополнительным ПО по выбору. Дело даже не в экономии на контроллерах. Без них потолок производительности ввода/вывода выше, риски отказов и сервисная зависимость ниже, потенциальное время простоя меньше.

Не забываем: в автономном сервере есть чему помирать и без массива. Что аппаратный, что программный RAID — не панацея. Сохранность данных обеспечивает только резервное копирование за пределы сервера, а лучше — офиса.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+55
голосов

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT