После механических дисков вообще любые твердотельные накопители кажутся прорывными по скорости. При внешнем сходстве всех SSD, их (часто переоцениваемый) запас производительности сбивает с толку и размывает и без того нетвердые убеждения серверостроителей. Опыт персональных систем с одиночными накопителями и линейными стратегиями хранения неприменим в корпоративных приложениях — не садятся же с правами категории “B” управлять автобусом или спецтехникой (хотя руль и педали те же). Отличает подсистемы ввода-вывода серверов не так интерфейс, как набор практик. Важны сочетания накопителей под выбранную программно-определяемую модель хранения. Всему свое место.
SATA, SAS, NVMe
Интерфейс (протокол) подключения SSD определяет, по сути, позиционирование накопителя в инфраструктуре хранения данных — то, как хост (считай, CPU) общается с внутренними устройствами постоянной памяти, электрически и логически. Локальные накопители подключаются к процессорной шине через посредников (стеки SATA или SAS) или напрямую (NVMe). Протокол задает ограничения (по числу подключений, ширине транспортного коридора, глубине очереди команд) и вносит задержки. Потолок потоковой скорости обмена с устройствами 6Gb SATA — 600MB/s, у них один полудуплексный порт и глубина очереди до 32 команд. 12Gb SAS SSD c дуплексным подключением обслужат поток вчетверо шире, с глубиной очереди до 256 команд. SAS позволяет обрабатывать больше операций ввода-вывода одновременно и достаточно просто масштабировать емкость хранения. Обеспечивает доступ к данным по двум портам — что неоценимо в отказоустойчивых системах хранения.
С переводом хранения с механических носителей на флеш-память задержки протоколов SATA и SAS стали слишком заметными в ведомости накладных расходов. Избавление от посредников между CPU и постоянной памятью породило NVM Express — интерфейс прямого подключения накопителей в шину PCI Express. Вершина пирамиды хранения, населенная критичными данными, сегодня обслуживается NVMe SSD. Такие решения, как программно-определяемые гиперконвергентные системы (HCI) и транзакционные приложения (OLTP), вышли на принципиально новый уровень производительности — благодаря комбинации пропускной способности NVMe с предсказуемо низкими задержками обращения.
Вот типичные представители классов SSD. Их характеристики говорят за себя. Цена различается в разы, но и эффективность — в разы.
Table 1

Источники: ark.intel и westerndigital.com
Пирамиды местного значения
Природа трафика ввода-вывода корпоративных приложений следует из их структуры потоков данных. Простыми рецептами из практики ПК не обойтись, одним типом накопителей тоже. Как правило, баланс между стоимостью реализации и производительностью хранения вместе с его емкостью на типовом наборе задач принимает форму «малой пирамиды хранения» — уместного сочетания накопителей. В качестве примера разовьем кейс из библиотеки Western Digital «Enhancing Performance and Reducing Costs for Microsoft SQL Server».
Как поднять производительность Microsoft SQL Server
Транзакционные (OLTP) и аналитические (OLAP) системы — очевидные выгодополучатели от переноса рабочих нагрузок на SSD в дискретных или кластерных реализациях Microsoft SQL Server. Вместо громоздкой и дорогостоящей инфраструктуры SAN с разделяемыми внешними системами хранения — серверы с локальными SSD, группы серверов Always On, кластеры Storage Spaces с общими JBOD или Storage Spaces Direct с распределенным хранением.
За счет быстрого доступа к локальным накопителям сервер тратит меньше процессорных циклов на обслуживание ввода-вывода — значит, можно консолидировать нагрузку на меньшем числе устройств (снижение капитальных затрат, включая стоимость лицензий) и упростить обслуживание (сократить операционные затраты — на питание, охлаждение, администрирование).
Одиночные серверы
Сложные запросы к базам данных SQL сопровождаются формированием многомерных промежуточных таблиц и будут выполняться намного быстрее, если поместить временные файлы с ними (tempDB) на локальные NVMe SSD. Тому есть два основания: ускорение отклика (важно при интенсивной перезаписи большого числа мелких посылок данных) и снижение смешанной нагрузки чтения/записи на основные носители. Это самый простой в реализации способ ускорения SQL-сервера. Потеря данных временных таблиц не критична, необходимости в их непрерывной доступности или репликации нет. Основные данные (DB) держат на отказоустойчивом массиве SATA или SAS SSD и реплицируют на соседний сервер штатными средствами ОС.
Группы Always On
Always On Availability Groups — механизм Microsoft SQL Server поддержания высокой производительности и доступности данных в группе серверов на уровне самих баз данных. Синхронная или асинхронная (в зависимости от нужд приложения) репликация между серверами с локальными подсистемами хранения обеспечивает состоятельность данных при аварии. Низкие задержки, высокая производительность внутренних SSD и относительно небольшие объемы хранения — сильный довод в пользу систем all-flash.
Always On создает множественные read-only копии живых баз данных на серверах группы. Подобная архитектура есть и в других бизнес-приложениях с массированной вычиткой данных. Например, аналитические запросы, съедающие ресурсы CPU, удобно выполнять на зеркальной копии данных, без ущерба для производительности пользователей OLTP. NVMe SSD с их показателями потокового чтения и минимальными задержками (важно для синхронной репликации) обеспечивают наивысший уровень производительности в критичных приложениях. Для наращивания объема хранения на сервере можно использовать SAS или SATA SSD, с RAID-контроллером или без.
Кластеры Storage Spaces
Технология Windows Storage Servers позволяет строить кластеры серверов с общим разделяемым JBOD. Приложения работают с дисками JBOD как с локальными. Доступность приложений и данных, их быстрое восстановление при сбоях обеспечивает сама ОС. От размещения баз данных на SAS SSD (двухпортовость!) немедленно выигрывают приложения класса SQL Server. Подсистема хранения легко масштабируется по емкости и позволяет воспользоваться преимуществами многопутевого (multipath) широкополосного доступа 12Gb SAS. Для дополнительного прироста производительности tempDB выносят в узлы кластера и размещают на локальных NVMe SSD — временным файлам высокая доступность не нужна. Кластеры Storage Spaces — самый экономичный по железу и лицензиям способ создания производительного и устойчивого к отказам ядра серверной инфраструктуры.
Кластеры Storage Spaces Direct
Сегодня в тренде перевод критичных бизнес-приложений в гиперконвергентную инфраструктуру серверов (HCI) под управлением гипервизора. Распределенное хранение на локальных дисках серверов кластера позволяет добиться высокой устойчивости к отказам оборудования, упрощения транспорта данных и эластичности наращивания под нагрузки. У Microsoft такие кластеры строятся по технологии Storage Spaces Direct (S2D). Подсистема хранения каждого сервера кластера в all-flash варианте набирается из пары NVMe под кэширование и нескольких SATA SSD под основное хранение. В этой связке NVMe автоматически кэшируют все операции записи. Кроме прибавки производительности, это снимает нагрузку интенсивной перезаписи с SSD — что позволяет избежать их раннего износа и обойтись относительно недорогими носителями. Данные считываются с основного массива SSD — скорости чтения SATA SSD для баз данных достаточно, при комфорте записи с низкими задержками NVMe. Минус решения — в цене лицензий Windows Server Datacenter, без которого S2D не работает.
Каждое из приведенных решений all-flash по-своему использует выгоды накопителей с разным интерфейсом, а «оптимизация» — всегда штучный товар.
Table 2

Источники производительности
В погоне за производительностью дисковой подсистемы серверов важнее всего анализ трафика данных, и только потом — подбор компонентного ряда. Неуместное наполнение сводит на нет возможности системного и прикладного ПО. Другие примеры доводки типовых платформ под специфические нужды серверных приложений показывают, что
- без SSD сегодня не обойтись;
- результативность следует из понимания программно-определяемой модели работы с данными;
- рациональные сочетания интерфейсов и типов накопителей дают конкурентные преимущества, экономя средства.