Предпосылки возникновения технологии.
Майер Амшель, основатель известной династии Ротшильдов, в кодексе для своих потомков упомянул, что тот кто владеет информацией, владеет миром. Столь важную для любой компании информацию мы черпаем из данных, которые сами по себе, находясь внутри БД не несут нам никакой пользы. Для этого данные нужно обработать, то есть предоставить приложению, например, из области бизнес-аналитики (BusinessIntelligence). В предыдущие десятилетия, когда объём данных, частота их изменений и количество обращений к ним оставались достаточно низкими, мы могли позволить себе хранить их на медленных носителях и волновались в основном за стоимость единицы хранения (доллар за мегабайт, гигабайт и так далее). Сегодня, в эпоху BigData, когда успешными становятся те компании, которые быстрее других реагируют на рыночные изменения, важным становится не стоимость за гигабайт, а стоимость за быструю транзакцию или за потребителя этих быстрых транзакций.
Подход к решению этой задачи весьма прост: чем быстрее работает носитель, и чем ближе данные находятся к месту обработки, тем лучше. Самым мейнстримом сейчас является использование твердотельных дисковых накопителей (SSD), которые имеют низкое время поиска данных и высокую пропускную способность. Также, при помощи технологии многоуровневого хранения (см. здесь), которая позволяет автоматически перемещать на SSD только те данные, которые наиболее актуальны сейчас, а менее востребованные — на дешёвые SATA, мы можем сокращать затраты на дорогие носители. Однако в сочетании со всё равно устаревшими механизмами доставки этих данных до процессора, то есть RAID и сетевыми контроллерами и коммутаторами, цена на необходимую производительность находится далеко от идеальной.
Выход из данной ситуации напрашивается сам собой — разместить уровень хранения прямо внутри сервера, чтобы избежать лишних задержек на пути от СХД к процессору. Архитекторы и инженеры Dell давно предвидели такой путь развития и решили, что самым эффективным решением будет использование локальных твердотельных носителей, но не ограниченных производительностью дискового контроллера SSD, а подключенных напрямую на шину PCIe носителей Dell Expressflash (см. здесь). Это позволяет в десятки раз увеличить производительность системы и существенно снизить затраты на одну транзакцию.
Технологии RNA Networks и первые успешные шаги с Fluid Cache for DAS.
Но не всё так просто. Обычно требующие такой производительности системы состоят из нескольких узлов, объединенных в кластер, и нужно обеспечить возможность синхронизации данных между такими локальными носителями. При чём сделать это как для операций чтения, так и для операций записи. Необходимая технология была получена путём приобретения нами, основанной в 2006 году, компании RNA Networks. Одним из её основателей был Ранджит Пандит (Ranjit Pandit), в предыдущие годы активно участвовавший в разработке стандартов Infiniband и процессоров Pentium 4 в Intel. То есть человек очень хорошо понимающий как быстро доставить данные, а потом правильно их обработать. Сама же RNA Networks была широко известна в узких кругах, как разработчик технологий совместного прямого доступа к удалённой памяти (RDMA) на базе Ethernet или Infiniband. Если кратко, то технология эта предоставляла все прелести SMP или NUMA для кластера из обычных x86 систем. Эти наработки и были использованы в технологии, ныне известной как Dell Fluid Cache, для создания единой области кеша нескольких серверных узлов на носителях Dell Expressflash.
Первой свет увидела версия для СХД с прямым подключением – Dell Fluid Cache for DAS. Она поддерживала работу на 2-х и 4-х -процессорных серверах Dell PowerEdge с установленными носителями Expressflash под управлением ОС RHEL и SLES с подключением к СХД Dell PowerVault MD1200/1220. Возможность хранить наиболее востребованные данные прямо внутри сервера на очень быстрых носителях позволяла уменьшить скорость обработки транзакций в разы (см. рисунок 1 и подробности тут)
"
Главным ограничением была поддержка только систем класса DAS, то есть ограниченных количеством подключаемых серверов и возможностями систем хранения данных этого класса.
Новые возможности с Dell Fluid Cache for SAN.
После выхода первой версии стало ясно, что выбран правильный путь. Заказчики были довольны существенным уменьшением времени отклика системы и увеличением количества транзакций на затраченный доллар. Следующим шагом стала интеграция данной технологии с системами хранения SAN. Первой поддерживаемой СХД стала Dell Compellent с прогрессивным алгоритмом многоуровневого хранения Fluid Data. В апреле 2014 года анонсирована версия Dell Fluid Cache for SAN. Она позволила использовать твердотельные накопители Expressflash как нулевой уровень хранения. То есть интеллектуальная система автоматически определяет, какие данные наиболее востребованы, и использует сервер как хранилище для них, обеспечивая беспрецедентный уровень производительности. Главным отличием от конкурентных решений является поддержка как операций чтения, так и записи. Первые тесты показывают:
• двойное увеличение производительности работы с базами данных
• увеличение количества обслуживаемых пользователей в 6 раз
• снижение стоимости необходимой производительности на пользователя на 70%
Больше примеров улучшения параметров работы приложений есть в документе Dell Fluid Cache for SAN Claims по ссылке.
Во время презентации технологии были заявлена производительность в 5 000 000 случайных операций чтения ввода-вывода (4K) в секунду, ускорившая приложения на 99% с одновременным сокращением стоимости на одного пользователя на 71%, с $663 до $189. Это в итоге позволило увеличить количество пользователей бизнес системы с 2200 до 14000. В качестве конфигурации указана система на базе:
• 8 серверов Dell PowerEdge R720 с двумя модулями Expressflash 350GB PCIe в каждом
• карты Mellanox ConnectX-3 40GE RoCE для сети синхронизации кеша
• ПО
• сеть построена на базе 10/40GbE коммутаторов Dell
• СХД Compellent SC8000
• Использование режима кеша Write-back
• Без единой точки отказа серверной системы и SAN
Основные сферы применения сейчас видятся такие:
• ускорения работы приложений, требующих высокую производительность операций ввода-вывода
• работа с транзакциями в реальном времени (OLTP)
• вычислительные комплексы
• инфраструктуры виртуальных рабочих столов (VDI)
Подробности о Fluid Cache for SAN.
Давайте подробнее рассмотрим архитектуру решения.
1) Подключение серверов к системе хранения данных Dell Compellent SC8000 возможно как по протоколу FC, так и iSCSI. Для ПО Fluid Cache нет никакой разницы, а для администраторов большая свобода в выборе конфигураций. Это однозначно плюс.
2) Далее на серверы, на которых будут выполняться жадные до данных приложения, устанавливается само ПО Fluid Cache. Напомню, что пока официально поддерживается только ОС RHEL, SLES и гипервизор VMwareESXi 5.5 (через VSA). Это не критично, так как большинство тяжёлых баз данных на Windowsне запускают:) Минимально нужно иметь три сервера. Далее, минимум в два сервера нужно установить накопители Expressflash. Почему не три? Серверы с установленным Fluid Cache могут быть двух ролей: cachecontributor и cacheclient. Первые пользуются кэшем как на чтение, так и на запись, а вторые – только на чтение (писать при этом тоже могут, но уже сразу в SAN). Так вот, минимальная конфигурация состоит из трёх узлов, как минимум два из которых должны иметь роль cachecontributor. Такой подход позволяет сэкономить на дорогостоящих носителях в рамках кластера и по-прежнему пользоваться преимуществами общего кэша.
Стоит отметить, что для приложений, работающих на этих серверах, функционирование Fluid Cache будет абсолютно прозрачно, то есть не потребуется менять настройки.
3) А теперь самая важная часть – выделенная сеть для синхронизации кэша между серверами при помощи упомянутой выше технологии RDMA. Обычный 1GbitLAN здесь не помощник, так как типовые задержки в сетевых коммутаторах и адаптерах могут достигать десятков или сотен микросекунд, что очень негативно повлияет на производительность кэша. Единственным вариантом с самого начала был Infiniband с задержками порядка единиц микросекунд. Однако области применения Infiniband ограничивались проектами HPC из-за его высокой стоимости. С появлением более бюджетного и сравнимого по скорости 10Gbit Ethernet, а точнее его продвинутой DCB версии, включающей помимо всего прочего и гарантию доставки пакетов, родилась технология RoCE – RDMAover Converged Ethernet. Таким образом, стало возможно построить высокоскоростную сеть на базе стандартных 10Gbit (DCB) компонентов и использовать её для удалённого доступа к памяти любого узла в кластере. На рынке сейчас представлено множество совместимых сетевых контроллеров, например, Mellanox Connect X-3 40GE RoCE. На коммутаторе тоже не стоит экономить, и рекомендуем обратить взор на линейку Dell Force10. Их понадобиться минимум один, но для устранения единой точки отказа лучше иметь два.
Таким образом, мы получаем решение, состоящее из трёх основных компонентов (серверы с ПО Fluid Cache и накопителями Expressflash, сеть хранения данных на основе Dell Compellent и сеть синхронизации кэша) и не имеющее единой точки отказа. Все компоненты стандартны и поэтому легко доступны и не требуют специальных навыков работы с ними, что в итоге обеспечивает простоту эксплуатации всей системы.
Технические требования.
Для работы технологии Dell Fluid Cache for SAN потребуется минимально:
• ПО Dell Fluid Cache for SAN
• минимум три сервера Dell PowerEdge с поддержкой Expressflash
• выделенная 10/40GbE сеть с низкими задержками (Infiniband / DCB Ethernet) для синхронизации кэша
• система Dell Compellent SC8000 в конфигурации с двумя контроллерами (для тестов сойдёт один) + одна дисковая полка SC220
Подробное описание поддерживаемых аппаратных компонентов есть здесь.
Что делать дальше?
Чтобы узнать больше подробностей сходите по следующим ссылкам:
• Dell Fluid Cache for SAN Frequently asked questions
• Dell Fluid Cache for SAN на Youtube канале DellTechCenterhttps
• Страница продукта на Dell.com
Также для желающих попробовать доступна пробная лицензия на 90-дней (доступна по запросу через Dell в России).
Автор: DellTeam