Эту проблему нужно решать. Необходимо использовать современные технологии, которые помогут задействовать все архитектурные возможности аппаратной части, сделают платформу более сбалансированной, обеспечивая быстрый обмен данными, на порядки повысят производительность приложений. Уменьшению разрыва между скоростями процессоров и дисков способствуют flash-технологии. Возможные варианты производительности носителей данных представлены на рис. 2.
Рис. 1. Закон роста производительности компьютерных ресурсов
Сегодня компания ЕМС предлагает три варианта построения решений с использованием быстрых носителей. Разберем каждый из них и проанализируем, где наилучшим образом их применять.
Вариант 1. Использование flash-памяти для серверов
Системы хранения данных на базе flash-карт всё ещё стоят значительно дороже, чем на основе жёстких дисков, при этом последние уступают более современным конкурентам в плане производительности. Компании, которым необходима производительность для отдельно взятого ресурса (сервера), обращают внимание на твердотельные накопители непосредственно в сервере. Основной плюс в применяемом решении – это устранение узкого места в подсистеме ввода-вывода и существенное сокращение времени отклика за счёт применения PCI-шины. При этом традиционные твердотельные накопители используются или совместно с RAID-контроллером в виде flash-дисков или в составе специализированных плат flash-карт. Для flash-карт используется аналогичная RAID защита данных, только отказоустойчивость обеспечивается на уровне ОС и механизма работы с томами. Использование данного решения больше всего напоминает эпоху, когда к серверам непосредственно подключались диски. То есть применение flash-карт имеет те же ограничения, что и у систем DAS. А именно: невозможность построения отказоустойчивого решения на уровне нескольких серверов, отсутствие гибкости перераспределения ресурсов, масштабируемости и т.д.
Использование flash-носителей внутри серверов выглядит по-другому, если наряду с flash-картами применять СХД. В сервер вставляются flash-карты и адаптеры для внешнего подключения СХД, сами данные располагаются на системах хранения, а специальный драйвер и ПО позволяют переносить активные данные с СХД на flash-карты для выполнения части запросов приложений без задействования внешней системы хранения. Это позволяет существенно поднять производительность приложения, так как чтение выполняется с быстрой flash-карты, а запись производится на СХД, которая гарантирует сохранность записанной информации (см. рис. 3). Таким образом, мы снимаем немалую часть нагрузки с системы хранения при чтении. По статистике, типовое соотношение чтение/запись для БД составляет 80 к 20%.
Рис. 3. Архитектура работы XtremSW
При создании такого решения EMC интегрировала все преимущества своих интеллектуальных технологий работы с данными. При сквозном использовании механизмов перемещения данных между flash-картами и массивами мы получаем высокую эффективность и производительность решения при сравнительно малых затратах ресурсов. Схема запросов к данным показана на рис. 4.
Рис. 4. Путь прохождения запроса ввода-вывода
При обнаружении данных на flash-карте приложение получает ответ значительно быстрее, чем с СХД. Если приложения генерируют активные изменения данных, они меняются асинхронно и на карточке, и в системе хранения. Для оптимизации операций записи активных блоков на flash-карту применяется алгоритм дедупликации – пишутся только уникальные блоки. Это существенно увеличивает время жизни карточки и предоставляемый объём пространства для приложения. При этом flash-карту можно разделить на разделы и выделить их отдельным виртуальным машинам. При миграции виртуальной машины на другой физический сервер flash-ресурсы автоматически освобождаются и могут быть использованы для других приложений. Это позволяет гибко балансировать пулом серверных flash-ресурсов, раздавая их приложениям по требованию.
Вариант 2. Использование классических СХД с механизмами балансировки
Здесь подразумевается использование быстрых SSD-накопителей в классических системах хранения и применение механизмов перемещения (балансировки) данных в зависимости от нагрузки. Согласно статистике, 10% данных генерируют 90% нагрузки, поэтому современные системы должны подстраиваться под характеристики нагрузки приложения. Они должны обладать механизмами и ресурсами, способными вовремя обеспечивать балансирование ввода-вывода между различными устройствами хранения в зависимости от оказываемой нагрузки. Иными словами, данные, требующие высокой производительности, должны находиться на более быстрых устройствах, и наоборот. Позитивным моментом является то, что современные дисковые массивы далеко ушли от массивов начала 2000-х (дисковая полка с RAID-контроллером), и, кроме высокой пропускной способности работы с дисками, жизненно необходимым стало наличие интеллектуальных сервисов по оптимизации работы с данными. Все они требуют дополнительной обработки в ЦПУ СХД.
Возможно, именно поэтому в современных дисковых массивах появились такие распространенные (ставшие уже стандартом) функции, как дедупликация и сжатие данных (в современных моделях EMC VNX они обе присутствуют) и функции балансировки данных между разными уровнями хранения. Все современные массивы, как и EMC VNX, поддерживают одновременное использование дисков разных типов (SSD, SAS и NL-SAS) для предоставления одного виртуального пространства приложению. Однако само по себе наличие дисков разных технологий не дает выигрыша ни в цене, ни в производительности – более важно, как работают алгоритмы автоматического многоуровневого хранения, принимающие решение о необходимости переноса данных между дисками разных технологий и непосредственно осуществляющими перенос. Необходимы политики первичного расположения активных данных.
Зачем нам сегодня активные данные на завтра? Дело в том, что в случае политик определения их первичного расположения они окажутся на flash-дисках.
Но не все приложения имеют линейную зависимость «свежесть данных – их востребованность». В таком случае на помощь EMC VNX приходит Fast Cache. Это дополнительный уровень кэширования, построенный на базе flash-дисков. Данные туда переносятся в реальном времени (с гранулярностью 64 КБ), если к одному и тому же блоку было несколько обращений подряд. Таким образом, Fast Cache является эффективным ответом на непредсказуемые пики нагрузки: время реакции – самонастройки – системы под нагрузку приложения составляет несколько минут.
Какой-либо аналог этого механизма у других производителей среднеуровневых дисковых систем отсутствует. Массивы EMC VNX изначально создавались с прицелом на высокую производительность и идеологию flash first – активное использование flash-дисков в разных комбинациях с традиционными накопителями, в том числе и в all-flash варианте.
Рис. 5. Зависимость способа хранения данных от их востребованности
Вариант 3. Использование специализированных систем хранения, построенных только на быстрых дисках
Любой массив на твердотельных дисках будет работать быстрее, чем обычные массивы с механическими жёсткими дисками. В массивах на flash-дисках основное внимание уделяется производительности. Обычно к flash-памяти применяются алгоритмы, изначально разработанные для механических дисков, например, технология RAID, файловые системы с журнальной структурой, моментальные снимки и методики репликации. Это не позволяет раскрыть весь потенциал flash-технологий. В то время как в обычных системах для выполнения задач по всему массиву просто наращивается число операций ввода-вывода, в массиве XtremIO задействован весь потенциал flash-дисков с тщательно проработанной структурой и новым подходом к защите данных, службами копирования и повышением коэффициентов использования ресурса хранения. Среди таких подходов – только тонкое выделение ресурсов, онлайн дедупликация, уменьшающая износ flash-носителей и увеличивающая доступное пространство, встроенная балансировка нагрузки между всеми контроллерами и дисками (масштабируемость), копирование данных внутри системы путём создания новых ссылок на дубликаты.
Как это работает? Внутри системы есть хэш-индекс, определяющий физическое месторасположение блоков (метаданные). Все входящие данные анализируются на наличие дубликатов в системе и автоматически распределяются (балансируются) между контроллерами с применением алгоритмов защиты данных, работающих параллельно на всех контроллерах.
Рис. 6. Работа алгоритмов оптимизации данных EMC VNX
Проблема систем с flash-накопителями – это высочайшие требования к пропускной способности контроллеров. Пара контроллеров уже не может обеспечить необходимый уровень производительности, и возникает необходимость создавать горизонтально масштабируемые кластеры с распределённым общим пространством хранения.
Рис. 7. Принцип адресации XtremIO
В такой системе контроллеры связаны между собой Infiniband-сеткой и могут непосредственно извлекать данные из памяти любого из них с помощью RDMA-протокола (Remote Direct Memory Access). Это организовывает общее защищаемое пространство и позволяет линейно масштабировать платформу путём наращивания количества контроллеров. К самим контроллерам уже подключены SSD-диски в количестве, сопоставимом с их пропускными характеристиками.
Рис. 8. Схема кластера XtremIO
Система XtremIO может обеспечить на данный момент беспрецедентную по сравнению с другими решениями на рынке скорость и простоту работы для баз данных. XtremIO идеально подходит для баз данных с большим потоком операций ввода-вывода (Oracle, SQL и т.д.), виртуализации (ESX, XenServer и др.), VDI (View, XenDesktop и т.д.).
В итоге для разных типов нагрузок можно выбрать наиболее подходящее решение
Если одно приложение (база данных) требует большой производительности и обслуживается одним сервером или виртуальной машиной, а количество операций чтения подавляющее, наиболее эффективным способом улучшить его производительность будет простое интегрирование в существующую схему работы сервера с СХД дополнительного flash-кэша, расположенного на сервере. Решение будет работать в кластерной среде и даже балансировать нагрузку между узлами кластера на уровне виртуальных машин.
При необходимости консолидировать в рамках одной СХД разные приложения с различными типами нагрузок наиболее эффективным решением будет EMC VNX. Это дедупликация и сжатие данных для виртуальных машин и архивных данных, Fast Cache и Fast VP для приложений, требующих немалой производительности или определённого уровня сервиса. Такая система наиболее функциональна, особенно если, кроме задачи обслуживания доступа к данным, необходимо организовать и автоматизировать резервную площадку или непрерывную защиту данных от логических и физических сбоев для приложений.
При достаточно больших нагрузках (масштабируемости) в многопользовательских системах класса предприятия (базах данных) или многопользовательских VDI-средах лучшее решение – это система XtremIO. Достоинствами здесь являются простота управления при выделении ресурсов, мгновенное создание копий данных для виртуальных рабочих мест, предсказуемая производительность на запись при заполнении flash-пространства, эффективность использования flash-накопителей (выжимание из них максимальной производительности).