Программно-определяемое хранение активных данных

Материал подготовлен коллегами из компании Entry

Оригинал записи

Приложения с активным обращением к данным требовательны к производительности систем хранения и доступности. Если данных много, основные затраты ложатся на организацию инфраструктуры хранения. У программно-определяемых кластеров с разделяемыми хранилищами на недорогих емких дисках хорошие перспективы: при умеренной цене они обеспечивают высокие скоростные показатели и адаптируются под специфику задач.

Среди пользователей приложений, работающих с объемными данными, растет спрос на программно-определяемые системы хранения данных (SDS). Успешные бизнес-модели строятся на управлении данными без жесткой привязки к физической реализации хранилищ.

Данные данным рознь. Архивы редкого обращения могут храниться на файловых серверах. Если критична доступность – в автономных двухконтроллерных СХД или на локальных дисках распределенных систем хранения с многократным резервированием.

К активным хранилищам данных большого объема нужен особый подход, из-за высоких требований к производительности и непрерывности. Одноконтроллерные решения плохи рисками простоя, аппаратные СХД специального назначения всегда дороги, распределенные системы вносят большие сетевые задержки и раздувают накладные расходы размещением нескольких копий данных.

Примеры приложений с активным трафиком: хранилища виртуальных машин с высокой транзакционной нагрузкой (OLTP), облачный хостинг, высокопроизводительные вычисления (HPC), видеопроизводство и раздача контента (Media & Entertainment, M&E). Их операционные данные могут занимать сотни терабайт на дисках. Нагрузки ввода-вывода различаются: по объему передаваемых данных, типу обращений (рандомные/потоковые), пропорциям чтения/записи, протоколам передачи. Соответственно, СХД нужны разные: по наборам носителей, алгоритмам RAID, интерфейсам ввода-вывода. Подобрать аппаратную СХД под имеющийся профиль нагрузки вроде бы несложно. Останавливает цена реализации, на таких объемах хранения неподъемная.

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

Прямой альтернативой аппаратной двухконтроллерной СХД можно считать кластер из двух серверов хранения с разделяемым доступом к единому дисковому пространству. Контейнер с дисками (enclosure, по сути – JBOD) подключается к SAS HBA управляющих серверов по блочному протоколу прямого доступа (низкие задержки, большая полоса пропускания). Программное обеспечение серверов отвечает за работу с логическими томами данных, их резервирование, восстановление информации при отказах дисков, переключение между нодами кластера и сопутствующие сервисы.

Еще 10 лет назад в корпоративной культуре хранения данных дисковых полок JBOD избегали.  Если и ставили – то “по бедности“, начиняя внешние коробки какие получится дисками какими придется – чтобы расширить прямое адресное пространство RAID-контроллеров одиночных серверов. Сегодня ими формируют фундамент программно-определяемого хранения. Предложения некоторых крупных поставщиков решений хранения, например,  DataOn Storage, целиком построены на JBOD разных фасонов и размеров. Правда, и JBOD сейчас не те, что раньше: с дублированными модулями ввода-вывода, резервированием по питанию и вентиляции, конструктивом, рассчитанным на высокую плотность дисков, с хорошим отводом тепла и компенсацией наведенной вибрации.

Вот несколько примеров реализации производительных, умеренных по цене SDS.

Windows Server 2012 R2

Microsoft не так давно вышла на тропу программно-определяемого хранения. Ее стандартная серверная ОС Windows Server 2012 R2 – экономное и функционально привлекательное конвергентное решение для вычислений и хранения данных. О подрыве рынка традиционных SAN гремучей смесью Storage Spaces, SAS JBOD, SMB 3.0 и RDMA говорить рано, но с нагрузкой Hyper-V / SQL кластеры под WS 2012 R2 справляются хорошо.

RAID. С технологией Storage Spaces политики 2-way  или 3-way mirror обеспечивают производительность на уровне аппаратного RAID 10.

Spaces. Виртуальные диски, собранные из логических пулов SSD/HDD, дают пользователю лучшее от обоих типов: большую емкость HDD под холодные данные, производительность SSD под горячие данные. Поддерживается динамическое выделение емкости.

Automatic tiering. В двухуровневой схеме хранения SSD/HDD файловая система в фоновом режиме отслеживает обращения к блокам данных и по графику (раз в сутки или чаще – если надо) перемещает популярные блоки на быстрый слой (SSD), с гранулярностью 1MB.

Write-back cache. Сглаживает пики записи на виртуальный диск силами SSD из пула, повышая показатели IOPS.

SMB 3.0. Сетевой протокол, дающий приложениям доступ к данным стороннего сервера. Совместно используемые файлы презентуются всем узлам кластера Scale-Out File Server (SOFS). При отказах клиентское приложение автоматически обслуживается выжившими узлами. Microsoft рекомендует использовать сетевые адаптеры прямого доступа к памяти RDMA для разгрузки процессоров серверов и снижения задержек доступа к данным. Приложения могут работать с совместными файлами в кластере почти так же быстро, как с локальными дисками.

Доступность данных. Непрерывность файловых служб обеспечивает SOFS. Кластер серверов обращается за данными в общие контейнеры, Shared SAS JBOD.

Shared SAS JBOD. Общие хранилища для кластера серверов на дисках SSD/HDD. Емкость увеличивается добавлением в JBOD самых обычных дисков NL SAS, а когда место закончилось – новых JBOD c дисками целиком (могут понадобиться SAS-коммутаторы, они недорогие). В промышленных СХД даже сами диски обойдутся дороже: HDD в разы, SSD – на порядок.

В Windows Server 2016 появятся синхронная репликация и распределенное хранение на локальных дисках кластера серверов Storage Spaces Direct.

Open-E Jovian DSS

Open-E – опытный игрок на поле хранения объемных данных. Его новый продукт Jovian DSS – программное обеспечение для корпоративных хранилищ на основе Linux и файловой системы ZFS. Высокую производительность и масштабируемость хранения обеспечивает файловая система со встроенной поддержкой гибридных пулов RAM / SSD / HDD.  Хранилища встраиваются в NAS и SAN окружение, и предоставляют сопутствующие объемным данным сервисы: динамическое выделение емкости, снэпшоты, сжатие, дедупликацию.

Для кластера высокой доступности данных c NFS- и iSCSI-подключением в минимальной конфигурации нужны два сервера на процессорах Intel Xeon E5 26xx и JBOD разделяемого доступа. При возможностях Jovian DSS по масштабированию и управлению производительностью, решение выходит далеко за рамки SMB. Оно уместно на самых разных целевых рынках: тяжелых баз данных с интенсивным I/O трафиком, облачного хостинга или раздачи видеоконтента.

Масштабируемость. 128-битная файловая система ZFS не ограничивает емкость хранения, с томами размером до зетабайта, на произвольном количестве дисков. В кластерах хранения JBOD с большим количеством емких дисков подключают по 6-12 Гбит SAS к управляющим серверам.

Сохранность данных. Массивы RAID переносят отказ до трех дисков одновременно. Поддерживается неограниченное количество снэпшотов – опция из разряда must have в эффективных сценариях восстановления данных. Активируется удаленно через командную строку.

Многослойное кэширование. Вместе с файловой системой унаследованы алгоритмы кэширования. Популярные файлы отправляются в одну из категорий «часто используемые» и «недавнего обращения» – раздельные области кэширования в оперативной памяти RAM серверных узлов и на SSD.

Гибридные пулы хранения. Утилизуют I/O-производительность SSD и высокую емкость HDD в единой логике управления.

Сжатие данных и дедупликация “на лету”.
Экономия места на дисках, снижение накладных расходов по хранению. В таких системах коэффициент дедупликации может достигать 3:1 – когда для записи 3 ТБ данных достаточно 1ТБ физического пространства на дисках.

Динамическое выделение емкости (thin provisioning).
Виртуальное выделение дискового пространства позволяет наращивать емкость хранилища без переформатирования. Избавляет от перерасхода дисков, их можно докупать и вводить в оборот данных по надобности.

Оптимизация под окружение. Серверы легко адаптируются под внешнюю нагрузку и набор сервисов. Подбор процессоров, объема RAM, пулов SSD, cетевых интерфейсов 10-40 Гб Ethernet позволяет парировать самые тяжелые запросы и предоставляет доступ к данным в широкополосном диапазоне, с минимальными задержками.

RAIDIX

Показательна история создания операционной системы для высоконагруженных СХД. Все началось с отраслевой задачи: понадобилось прикрутить быстрый алгоритм RAID-стека к хранению медийных файлов видеопроизводства, где данных (очень) много, критична производительность и особенно важна стабильная, без гребенок и провалов, скорость потоковой записи в хранилища. Дисковые массивы под видео перелопачивают десятки и сотни терабайт данных, без выраженного «горячего» ядра классических систем хранения. Теряя диски большой емкости, традиционные RAID’ы проваливают производительность и восстанавливаются сутками – что увеличивает риски потерь контента.

Помимо основной задачи на старте проекта, быстрого декодирования данных, разработчикам пришлось бороться c просаживанием скорости при выходе диска из строя, в схемах с двумя и более избыточными накопителями. А заодно и с «тихими» ошибками HDD (silent corruption) – обнаружением скрытых дефектов данных на чтение и их исправлением. Большие данные требуют больших усилий.

Сегодня такие SDS используют в медийной индустрии, в HPC, для работы с объемными архивами изображений. У активных СХД большие перспективы. На очереди у RAIDIX ScaleOut NAS, оптимизация под флэш, объектное хранение.

Рекордная производительность. Уникальный алгоритм расчета контрольных сумм RAID оптимален для интенсивной потоковой нагрузки.

Unified Storage. Поддержка файлового (NAS по 10-40Гбит Ethernet) и блочного доступа (FC, iSCSI, Infiniband).

RAID с тройной четностью.
Восстанавливает данные утраченных трех дисков без потери производительности.

Отказоустойчивый кластер.
Поддерживается режим Active-Active, при котором два узла кластера работают одновременно и имеют доступ к единому набору дисков. На переключение хостов уходят секунды.

Скрытые ошибки. Выявление и коррекция скрытых  ошибок дисков, вероятность появления которых на большом объеме хранения велика.

Приведенные примеры говорят о мотиваторах перехода на программно-определяемое хранение данных и логике выбора SDS: присматривать подходящую модель работы с данными, вместо поисков оборудования с желаемыми параметрами. Железо приложится потом.

Судя по анонсам таких продуктов как Сisco C3260, которые по своей сути являются двухузловыми кластерами с пристегнутым JBOD большого объема, направление SDS привлекает игроков с большими железными бицепсами. Cisco так и пишет: сделано под Microsoft Storage Spaces и другое SDS-окружение – как CEPH и Scality.