FAST Cache: мифы, архитектура, применение. Часть 1.

В этом цикле статей я собираюсь осветить специфику применения флэш дисков как «кэширующего» уровня систем хранения, реализация которого в системах EMC CLARiiON и VNX называется FAST Cache.

Эта разработка EMC, на мой взгляд, крайне интересная с инженерной точки зрения, и в своем роде уникальная.
Так что я хочу, чтобы вы, дорогие читатели, лучше знали как она работает и какие ваши задачи решает, чтобы вы знали о том, что от нее ожидать, и о том, чего ожидать от нее нельзя.
Мы рассмотрим сходства и различия FAST Cache с обычным кэшем СХД, а также сходства и различия FAST Cache с обычным автоматическим многоуровневым хранением (FAST VP).

Так же я поделюсь реальными историями и результатами применения этих технологий.

Ну, и под конец, рискну привести свои соображения, почему эта FAST Cache прижился в CLARiiON, Celerra и VNX, но не в Symmetrix.

Ваши пожелания в ходе публикации этих статей помогут мне скорректировать курс по наиболее интересному для вас маршруту. Так что — комментарии welcome!

Для затравки я собрал несколько основных мифов. Потом, по ходу повествования я буду пояснять детали. Итак…

Мифы о FAST Cache:

Миф №1 FAST Cache — это тоже, что Мифыи обычный кэш, но на флэш дисках, он работает так же, и нужен, чтобы количественно компенсировать качественно плохую работу кэша (неверно)

Миф №2 FAST Cache — это тоже, что и обычный кэш, он может заменить обычный кэш (неверно)

Миф №3 FAST Cache – поглощает всплески нагрузки (да, но не так как это делает обычный кэш)

Миф №4 FAST Cache и многоуровневое хранение – одно и то же, поэтому достаточно одного из двух (неверно)

Миф №5 FAST Cache – не имеет отношения к FAST VP, и две технологии надо рассматривать отдельно (неверно)

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

Откуда есть пошла…

В самом начале, когда FAST Cache только собирался появиться на свет, мы были полны ожиданий от применения этой технологии. Все это происходило на фоне внутренних дебатов о том, что надо бы больше кэша ставить в CLARiiON-ы, а то в конкурирующих системах равного класса его бывает физически больше. Обсуждалась и возможность апгрейда кэша в уже инсталлированных машинах. И вот, приходит FAST Cache

На этом фоне, возникло несколько естественных заблуждений. Название-то подразумевало, что это обыкновенное кэширование данных, но только перенесенное на уровень флэш дисков.

Позволю напомнить, что свойствами обычной кэш памяти СХД является:

  1. кэширование любых операций записи (кроме супер больших)
  2. объединение блоков при случайной записи
  3. запись из кэша на жесткие диск полными страйпами
  4. дополнение неполных страйпов до полных
  5. кэширование любых операций чтения (кроме опять же супер-больших)
  6. упреждающее кэширование последовательных цепочек чтения
  7. если обычная кэш-память сломалась – нужен ремонт с остановом контроллера

Интересно заметить, что из приведенного списка характерных особенностей обычной кэш-памяти FAST cache не обладает ни одной.

Естественно! Все эти вещи делать с FAST Cache-м – ненужная роскошь. Ведь флэш диски находятся на дисковых петлях, а не на материнской плате. Скорость доступа к ним – как к SAS дискам (6Гбит/c на VNX), а не как к памяти (десятки ГБайт/с на VNX). Очевидно, что кэшировать данные на флэш диски надо по-другому. Более экономно и более эффективно.

Когда мы изучили документацию по данной теме, большая часть опасений и заблуждений была развеяна. Кстати, довольно хорошо все описано в этой статье: http://www.emc.com/collateral/software/white-papers/h8046-clariion-celerra-unified-fast-cache-wp.pdf

По применению есть понятная картинка с цифрами по улучшению производительности, которая неправильно илюстрирует архитектуру.

Виден выигрыш от использования FAST Cache и FAST VP, но неправильно с точки зрения архитектуры

И есть несколько менее путанная картинка по архитектуре, вызывающая другие вопросы:

Путанная картинка по FAST Cache

Показано, что FAST Cache и обычный кэш — разные вещи, но возникают другие вопросы

Так что важные детали остались не до конца понятыми, не только заказчиками, партнерами и конкурентами, но и нашими сотрудниками.

Я до сих пор на слышу на маркетинговых выступлениях EMC, что FAST Cache – это расширение кэша на флэш диски. Если совсем упростить, это конечно, так. Но если пойти в детали, то совсем даже наоборот. Плюс такого заявления состоит в том, что оно прокидывает понятную аналогию для неспециалистов. А минус – в том, что работает принципиально по-другому. Кому нужны такие нюансы? Как кому? Пресейлу, который проектирует дизайн решения!
Поэтому, я считаю довольно важным здесь аргументировано развеять сложившиеся мифы, и очертить корректные области применения этой довольно интересной технологии.

Идем дальше…
Что же такое FAST Cache?
FAST Cache это технология автоматического многоуровневого хранения, которая позволяет использовать флэш диски в качестве сверх быстрого уровня хранения, и реагируя в реальном времени размещать на флэш дисках блоки данных к которым произошло N обращений, на чтение или запись где N>;;;;;;2.
Примечание 1: Размер блока, которым оперирует FC составляет 64КБ.
Примечание 2: Мониторинг статистики обращений к данным ведется непрерывно.
Примечание 3: Реагирование и перенос данных происходит в реальном времени.
Примечание 4: Триггер для перемещения данных в FAST Cache срабатывает в отдельности для каждого блока данных в тот момент, когда количество обращений достигает порогового значения.
Примечание 5: обратите внимание, что здесь нигде не указан период времени за который считается количество обращений к блокам данных.

Из данного определения, следует, что FAST Cache занят по большей части тем, что …. не кэширует. В самом деле, алгоритм его работы заключается в том, чтобы отслеживать частоту обращений к блокам данных, и на флэш диски помещать лишь те, к которым обратились повторно как минимум больше двух раз, да и то, есть исключения из этого правила.

То есть, FAST Cache, в отличие от обычной кэш-памяти :

  • не кэширует любые операций чтения/записи
  • не занимается объединением записанных блоков в страйпы
  • не делает упреждающее кэширование последовательных цепочек чтения

Таким образом, , FAST Cache это, принципиально новый промежуточный слой хранения данных, в общем то не являющийся кэшем.

Еще раз, повторюсь, что FAST Cache — это сверх-быстрый уровень хранения на флэш дисках обновляемый в реальном времени.
Он не заменяет собой обычный кэш и имеет абсолютно другую логику работы, восполняющую недостатки работы обычного кэша….

Недостатки обычного кэша?
Да, у обычного кэша есть недостатки. Их проявления в реальных задачах, способы их компенсации при помощи FAST Cache, и точки взаимодействия этих двух технологий я хочу подробно обсудить в следующей статье….

FAST Cache: мифы, архитектура, применение. Часть 1.: 2 комментария

  1. По каким метрикам можно определить, что FAST cache уже перегружен?
    Другими словами, как определить, что n томов с x-IOPS нагрузкой для FAST cache 2x SSD 100GB нормально, а при n+1 томе накладные расходы на конкуренцию за его ресурсы начинают перекрывать положительный эффект?

    • Hen, спасибо за комментарий! Смотрите в корень. Коротко говоря, тут есть зависимость
      1) от общего полезного объема этих томов
      2) от загруженности flash дисков используемых для FAST Cache

      Я собирался разобрать это в третьей статье.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s