Страницы

понедельник, 1 февраля 2021 г.

Рекомендации по проектированию VMware vSAN: Дедубликация и сжатие

В предыдущей статье «Рекомендации по проектированию VMware vSAN: Использование устройств хранения большого объема» мы рассмотрели множество базовых вещей по поводу применения двухуровневой системы хранения vSAN и того как оборудование может менять производительность системы. Остался не закрытым вопрос, связанный с программными параметрами – как дедубликация и сжатие влияют на производительность? Сегодня мы рассмотрим, что это такое, как они применяются в vSAN, а также как и при каких условиях влияют на производительность.


Дедупликация и сжатие.

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

Метод, который используется для достижения эффективности пространства зависит от конечного решения и может оказывать влияние на уровень сохранения пространства, а также на требуемую нагрузку для достижения результата. Не имеет значения, какой метод используется, обе техники (дедубликация и сжатие) условно патогенные возможности обеспечения эффективности пространства: уровень сохраненного пространства не гарантируется. Для сравнения, техники размещения данных с использованием очищающего кодирования (Erasure Codes), такие как RAID5 или RAID6 детерминированы: они предоставляют гарантированный уровень эффективности пространства для данных, сохранённых устойчивым образом.


Реализация дедубликации и сжатия в vSAN.

Дедубликация и сжатие (DD&C) в vSAN включаются на уровне кластера, как единая возможность эффективности пространства. Процесс выполняется, когда данные достигают уровня хранения (Capacity Tier) – сразу после отправки уведомления обратно в виртуальную машину. Минимизация любых форм манипуляции данными до отправки уведомления позволяет сохранять низким уровень задержки, наблюдаемый в виртуальной машине.

После доставки данных, процесс дедубликации будет искать возможность выполнить дедубликацию блока данных (4КБ) в рамках дисковой группы: домена дедубликации vSAN. Эта задача сопровождается процессом сжатия. Если блок данных (4КБ) может быть сжат до 50% объема или более – то он сжимается, иначе блок остаётся прежним и сохраняется на уровне хранения (Capacity Tier).

Такое применение DD&C позволяет избежать удара по производительности, который происходит в линейных системах, выполняющих дедубликацию данных до отправки ответа гостевой системе. Это также позволяет избежать дополнительных нагрузок, связанных с дедубликацией уже хранящихся данных. Несмотря на то, что процесс DD&C происходит после отправки подтверждения записи гостевой виртуальной машине, включение его в vSAN может повлиять на производительность в ряде случаев, которые мы рассмотрим дальше.


Основы двухуровневой системы хранения.

VMware vSAN – это двухуровневая распределенная система хранения. Входящие данные записываются в буфер записи с последующей отправкой подтверждения гостевой системе, а перемещение их на уровень хранения (Capacity Tier) происходит позже с интервалом, определяемым vSAN. Данная архитектура предоставляет наивысший уровень производительности хранилища, при этом сохраняя стоимость гигабайта/терабайта на приемлемом уровне.

Двухуровневые системы, такие как vSAN, имеют два теоретических максимума производительности: Burst Rate, представляющий возможности буферного уровня (Buffer Tier) и Steady-State Rate, представляющий возможности уровня хранения (Capacity Tier). Лежащее в основе каждого уровня оборудование имеет огромное влияние на производительность каждого из уровней, в то же время программные параметры, приложения и рабочие нагрузки также могут оказывать влияние.

Максимумы производительности хостов vSAN будут находится где-то между максимальными значениями Burst Rate и Steady-State Rate. Длительные синтетические тесты с использованием HCIBench создают достаточную нагрузку в окружении для расчета примерных значений при помощи временных графиков. Производственные нагрузки могут превысить максимально возможные значения при неправильном дизайне решения.


Потенциальное влияние на производительность.

Дедубликация и сжатие создают вычислительные нагрузки на оперативную память и дополнительный ввод/вывод. Это в любом случае так, вне зависимости от способа реализации. Все зависит от того, когда, где и как это происходит. В vSAN это происходит при перемещении данных с буферного уровня на уровень хранения, что в свою очередь, снижает эффективную пропускную способность уровня хранения (Capacity Tier). Далее это может снизить максимальное значение Steady-State Rate, которое мог бы предоставить кластер. Другими словами, кластер с включённым DD&C имеет такую же производительность, что и кластер с отключенным DD&C, у которого менее производительные устройства на уровне хранения.

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

  • Буфер записи может заполняться быстрее, так как разница в производительности между уровнями увеличилась за счёт снижения производительности уровня хранения (Capacity Tier).
  • Буфер записи будет очищаться медленнее из-за снизившейся производительности доставки.
  • Время подтверждения записи (задержка записи) гостевой виртуальной машины может быть поражено, если начнется доставка. Уровень влияния зависит от нескольких факторов, в том числе и от скорости доставки на уровень хранения (Capacity Tier). Это наиболее частый сценарий, когда агрегированный рабочий набор данных значительно превышает ёмкость буферного уровня (Buffer Tier) или при быстром цикле загрязнения, который в значительной степени зависит от уровня хранения (Capacity Tier).
  • Время подтверждения записи (задержка записи) гостевой виртуальной машины останется неизменным если буфер не достигнет какого-либо предела. Это типично для малых агрегированных рабочих наборов, которые свободно помещаются на уровне буфера (Buffer Tier) и не испытывают проблем с доставкой буфера.

Алгоритмы оценки vSAN определяют различные условия, которые помогают понять, когда и как много доставок должно произойти. Они постепенно реализуют доставки, т.е. не так быстро, как это возможно, а так быстро как это необходимо. Это помогает удерживать в буфере горячие данные для последующих перезаписей, что в свою очередь, снижает активность ненужной доставки и потенциальное влияние на производительность.

Очищающее кодирование (Erasure Coding) RAID5/6 – это другая опция эффективности пространства, включаемая на уровне виртуальной машины или виртуального диска (VMDK) при помощи политик хранилища (Storage Policy). Совместное использование техник эффективности хранения также может привести к заметному влиянию на производительность.


Опции настройки.

Архитектура vSAN даёт клиентам ряд опций для настройки кластеров в соответствии с требованиями. Корректное проектирование и масштабирование обозначает точное понимание требований и приоритетов. Например, в одном кластере наивысший приоритет может иметь емкость, а в другом – производительность. Эти приоритеты будут влиять на аппаратные и программные параметры. В случае, когда требуется получить наивысший уровень производительности, но при этом выбираются самые низкокачественные компоненты в сочетании с техниками эффективности пространства – решение явно противоречит поставленной цели. Эффективность пространства может быть обеспечена путем достижения требуемой ёмкости, но при этом достаточно затратным.

Как только приоритеты установлены, можно выполнить настройку для получения необходимого окружения, включающую в себя:

  • Более быстрые устройства на уровне хранения (Capacity Tier). Если при включении DD&C задержка виртуальных машин будет больше, чем ожидалось, необходимо рассмотреть более быстрые устройства на уровне хранения. Это может помочь противодействовать сокращённой производительности при включенном DD&C. Недостаточно производительные устройства на уровне хранения (Capacity Tier) – одна из наиболее частых причин ошибок производительности.
  • Использование большего числа дисковых групп. Это будет добавлять больше ёмкости буфера, увеличивая ёмкость для горячих рабочих наборов данных и сокращая безотлагательность доставки данных. Необходимо использовать минимум две дисковые группы, рекомендованная конфигурация – три дисковые группы.
  • Следует обратить внимание на новые устройства хранения высокой плотности для уровня хранения, чтобы соответствовать требованиям объема (ёмкости). Если они будут соответствовать требованиям производительности, то это может позволить отказаться от использования DD&C. Подробнее об этом я писал в предыдущей статье: «Рекомендации по проектированию VMware vSAN: Использование устройств хранения большого объема».
  • Использование новейшей версии vSAN. Последние редакции vSAN сфокусированы на улучшении производительности для кластеров с DD&C: улучшении целостности задержки в виртуальных машинах и увеличении скорости доставки через программные оптимизации.
  • Выборочное включение DD&C. Необходимо включать DD&C только в тех кластерах, которые представляют подходящую производительность для поддержки необходимых рабочих нагрузок. Опционально, политики хранилища для эффективности пространства, такие как RAID-5/6 должны быть применены для отдельных рабочих нагрузок, где они наиболее чувствительны. Также существуют компромиссные решения для производительности за счёт использования очищающего кодирования (Erasure Coding).


Итоги.

Дедубликация и сжатие – это простая и результативная возможность обеспечения эффективности пространства. Правильное проектирование и использование DD&C в vSAN предоставляет путь удержания низкой задержки в виртуальных машинах. Несмотря на то, что двухуровневая архитектура vSAN помогает минимизировать влияние на производительность, некорректная конфигурация оборудования или большой набор рабочих нагрузок могут привести к увеличению задержки виртуальных машин. 


P.S. Предыдущие статьи цикла:

Комментариев нет:

Отправить комментарий