ЗАЧЕМ НУЖЕН КЕШ
Помимо планирования оптимального использования дисковой подсистемы, некоторые СХД позволяют выбрать и размер кеша. О том, как используется кеш в системе хранения данных и сколько его должно быть, существует много мнений. Одно из важнейших назначений кеша — хранение метаданных СХД.
Для реализации любой функциональности СХД, будь то дисковые группы, логические тома, многоуровневое хранение или репликация, необходимы служебные данные — это и есть метаданные. Они постоянно используются микрокодом СХД, и для их хранения нужен самый быстродействующий носитель информации в системе. Им и является кеш, для реализации которого используется оперативная память уровня DDR3 или DDR4, чья производительность на порядок выше, чем у самого скоростного флеш-диска.
Вторая важная функция кеша — непосредственное кеширование данных. Обрабатываемые хостами данные размещаются в кеше и могут использоваться повторно без обращения к более медленным дискам. Кроме того, кеширование позволяет оптимизировать запись данных на диски.
Однако использование кеша эффективно не для всех профилей нагрузки. Данные, которые последовательно считываются с системы хранения, кешируются хорошо — это так называемое линейное чтение. Даже если приложение считывает данные, например, мелкими блоками по 8 Кбайт вместо рекомендуемых 256 Кбайт и более, система хранения распознает линейное чтение и, зная, какие данные будут запрошены следующими операциями ввода-вывода, считывает их заранее. Таким образом, следующая операция ввода-вывода не вызывает обращения к более медленной дисковой подсистеме — данные поступают из кеша, что существенно ускоряет ввод-вывод.
В то же время кеш почти бесполезен, когда речь идет о случайном чтении (random read) данных с СХД. В этом случае вероятность нахождения нужных данных в кеше стремится к нулю, поскольку объем кеша в системе хранения на порядок меньше, чем максимальный полезный объем данных современных СХД. Именно поэтому несколько лет назад появилась идея использовать флеш-диски для ускорения случайного чтения.
Флеш-технологии позволяют оптимизировать и остальные типы нагрузок. Однако прирост производительности, по сравнению с использованием механических дисков, получается не столь значительным, тогда как разница в стоимости хранения 1 Тбайт данных на флеш-диске и механическом диске пока остается довольно ощутимой.
При любых операциях записи данные сначала помещаются в кеш и лишь после этого записываются на диски. Кроме повторного использования для последующих операций ввода-вывода, новые данные могут группироваться специальным образом, но только в том случае, если в дальнейшем они будут записаны на группы RAID с четностью (RAID5 и RAID6).
Почему важна оптимизация записи при использовании RAID-групп с четностью? Все дело в том, что в них применяется особая защита данных от сбоя диска в группе. Если, допустим, производить запись на массив RAID5 случайным образом, без оптимизации, то одна операция записи, произведенная хостом, будет генерировать четыре операции ввода-вывода на системе хранения (два чтения и две записи). Для RAID6 этот показатель равен уже шести. В результате производительность СХД серьезно снизится.
Что в этом случае может предпринять система хранения данных? В первую очередь она попытается сформировать в кеш-памяти набор данных (full stripe), чтобы сделать расчет четности без дополнительного обращения к дискам и записать сразу все данные на диски. При последовательной записи собрать full stripe в кеш-памяти довольно легко, но при случайной — система либо будет ждать, пока в кеше не соберется необходимый набор данных, либо начнет считывать недостающие блоки данных с дисков. Поэтому кеширование записи данных практически во всех случаях ускоряет ввод-вывод.
Архитектура флеш-модуля |
ЧЕМ БОЛЬШЕ КЕШ, ТЕМ ЛУЧШЕ?
Существует мнение, что, если увеличить объем кеша, СХД станет работать быстрее. Как правило, между полезным объемом хранимых данных и емкостью кеша имеется некоторое предопределенное соотношение, которое желательно выдерживать. Однако это полностью выполнимо только в системах хранения старшего класса, где возможен более гибкий выбор объема кеша. В системах хранения среднего класса не всегда удается расширить кеш до желаемых величин.
Если СХД не справляется с чтением или записью данных, дело отнюдь не в кеше. Скорее всего, выбрана неподходящая модель СХД или неправильно произведено конфигурирование дисковой подсистемы, которой просто не хватает ресурсов для чтения и записи всех поступающих данных. Точная оценка планируемой нагрузки и выбор нужной конфигурации СХД являются ключевыми критериями для получения желаемой производительности ИТ-системы. Поэтому увеличение объема кеша не панацея для повышения производительности.
ОСОБЕННОСТИ ФЛЕШ-НАКОПИТЕЛЕЙ
Говоря о производительности, невозможно не коснуться подробнее темы флеш-технологий. Если вычислительная мощность контроллеров СХД не является узким местом, то использование флеш-дисков всегда позволяет увеличить производительность доступа к данным при любом профиле нагрузки — линейном и случайном, при чтении и при записи. Однако надо принимать во внимание и финансовую составляющую: при последовательном чтении и записи флеш-диски могут работать в несколько раз быстрее механических, но стоимость хранения 1 Тбайт данных будет в десятки раз выше. Поэтому для линейных нагрузок обычно используются самые медленные механические диски NL-SAS, поскольку даже они прекрасно справляются с поставленной задачей.
Флеш-технологии очень эффективны при случайном профиле ввода-вывода — особенно при случайном чтении, когда кеш ничем помочь не может. Они отличаются не только возможностью осуществлять больше операций ввода-вывода (IOPS), но и низким временем отклика таких операций: две миллисекунды и меньше. Именно поэтому при высоких требованиях к производительности поставщики решений предлагают флеш-диски в составе СХД или систему, полностью оснащенную флеш-дисками (All Flash Array, AFA).
В то же время флеш-диски «не любят» операции записи — данные на них записываются медленнее, чем считываются. Это связано с использованием памяти NAND. В отличие от механических дисков, на которые можно произвольно записывать и перезаписывать любые данные, флеш-диск нужно сначала очистить. Причем нельзя стереть один бит или байт — данные стираются блоками по 1–2 Мбайт в зависимости от типа диска, производителя и других параметров. Предварительно необходимо перенести все актуальные данные в уже чистые (стертые) блоки. Таким образом, если при слишком интенсивной записи место в блоках освобождается недостаточно быстро, флеш-диск начинает «тормозить».
ФЛЕШ И СИНХРОННАЯ РЕПЛИКАЦИЯ
Эффективны ли флеш-диски при удаленной синхронной репликации? Данные реплицируются на удаленную площадку для обеспечения их сохранности и доступности на тот случай, если основная СХД полностью выйдет из строя. Как правило, площадка располагается достаточно далеко, и потому к обычным задержкам ввода-вывода прибавляется еще и задержка от репликации.
Существует мнение, что флеш-диски неэффективны при таком виде репликации. Это связано с тем, что синхронная репликация может свести на нет одну из основных особенностей флеш-дисков — очень небольшую задержку ввода-вывода. На самом деле дополнительные задержки в основном касаются только операций записи, а их доля в профиле нагрузки приложения, как правило, не превышает 20–30%. Таким образом, даже при синхронной репликации флеш-диски будут достаточно эффективны и их использование в подобных конфигурациях вполне оправданно.
ТРЕБУЕМАЯ КОНФИГУРАЦИЯ ДЛЯ СИНХРОННОЙ РЕПЛИКАЦИИ
Нужны ли при удаленной синхронной репликации две одинаково сконфигурированные СХД? Это зависит от вида синхронной репликации (Active/Active или Active/Passive), распределения нагрузки ввода-вывода между двумя центрами обработки даных, требований SLA и других параметров. Интенсивность нагрузки на идентичные наборы данных, хранящихся на удаленных площадках, всегда будет разной. В случае синхронной репликации Active/Active (см. рис. 1)нагрузка будет зависеть от балансировки ввода-вывода приложения между двумя ЦОДами. Если используется Active/Passive, копия основных данных находится в ожидании «часа икс», когда основной набор станет недоступен и ей потребуется отвечать за весь ввод-вывод. И в том и в другом случае для хранения дополнительного набора данных нужны ресурсы: дисковые, вычислительные и т. д.
Рис. 1. Удаленная синхронная репликация в режиме Active-Active |
Необходимость использования флеш-дисков и одинаковых вычислительных контроллеров СХД для обоих наборов данных зависит от того, какую производительность ввода-вывода должна обеспечить оставшаяся СХД после выхода из строя основной системы. Если до устранения аварии допускаются снижение производительности СХД и ухудшение работы ИТ-системы, то для хранения второго набора данных достаточно ресурсов с меньшей производительностью.
Как правило, такие схемы применяются в тех случаях, когда финансовые потери от ухудшения работы ИТ-системы меньше стоимости хранения второго набора данных на высокопроизводительных СХД. Если же отказ одного из ЦОДов приведет к финансовым потерям, превышающим стоимость хранения копии данных на высокопроизводительной СХД, то использование тех же самых ресурсов для хранения пусть даже неактивной копии данных обязательно.
ПРОИЗВОДИТЕЛЬНОСТЬ СХД ПРИ СБОЯХ
Производительность СХД при аппаратных сбоях — не менее важный момент, на который ИТ-специалисты не всегда обращают внимание при выборе конфигурации СХД. Производительносфть СХД всегда оценивается в тот момент, когда все ее составляющие функционируют в штатном режиме. Но так бывает не всегда: иногда выход из строя одних компонентов СХД не оказывает никакого влияния на производительность, в то время как поломка других приводит к ее существенному снижению.
Например, при выходе из строя вычислительного контроллера в двухконтроллерной СХД производительность может снизиться более чем в два раза. Это связано с обеспечением защиты целостности данных: при работе на запись кеш переводится в режим Write-through (см. рис. 2), что наряду с потерей вычислительной мощности одного контроллера приводит к дальнейшему уменьшению производительности СХД.
Рис. 2. Функционирование кеша в режиме сквозной записи (write-through) |
Таким образом, чтобы при выходе из строя любого компонента производительность по-прежнему соответствовала определенным требованиям, в конфигурации СХД приходится предусматривать дополнительные ресурсы, которые в штатном режиме работы СХД использоваться не будут. Если же предполагается применение удаленной синхронной репликации для защиты от сбоя СХД, в случае сильного снижения производительности основной СХД, вызванного сбоем одного из ее компонентов, ввод-вывод ИТ-системы может переключаться на резервную площадку.
ПРОБЛЕМА ВЫБОРА КОНФИГУРАЦИИ
Выбор конфигурации как СХД, так и решения в целом зависит от требований к производительности ИТ-системы и от возможных финансовых потерь при ухудшении качества ее работы.
Мы затронули далеко не все аспекты выбора конфигурации СХД и планирования ее эксплуатации, связанные с производительностью. Существует множество различных методик оптимизации конфигурации решения, в которых учитываются исходные требования, тип приложения и многое другое. Более того, с изменением подхода к хранению данных — от частных хранилищ к облачным, от блочного хранения данных к файловому и объектному хранению — будут трансформироваться и методики расчета параметров хранилищ данных, обеспечивающие необходимые эксплуатационные характеристики. Однако можно с уверенностью утверждать, что тема производительности хранения данных была, есть и будет важной составляющей при выборе любого современного ИТ-решения.
Алексей Силин, консультант-эксперт компании Hitachi Data Systems