Что такое inline data compaction?
Сегодня у нас перевод статьи из рассылки Tech ONTAP про новую функцию для повышения эффективности хранения, которая появилась в NetApp ONTAP 9 — inline data compaction.
...
В NetApp ONTAP 9 мы добавили новую функцию для увеличения эффективности хранения, которая называется inline data compaction (уплотнение данных на лету). Так как эта концепция нова для большинства, я решил потратить немного времени на объяснение в этой статье как работает уплотнение и как эта технология взаимодействует с другими технологиями повышения эффективности хранения.
Данные уплотняются последовательно в том же порядке, что они и попадают на контроллер. Пока данные в памяти контроллера, мы берём “куски” данных, каждый из которых в обычной ситуации занял бы целый 4KB блок (если кто забыл ONTAP оперирует данными с гранулярностью в 4KB — прим. переводчика), и уплотняем их. Благодаря уплотнению больше одного “куска” данных помещаются в 4KB физический блок. Это можно сравнить с упаковкой чемодана или рюкзака. Мы можем взять блоки, часть которых содержит нули или пустое пространство, избавиться от пустого пространства и тем самым уплотнить их.
Операция уплотнения происходит в процессе создания consistency point (CP). Это часть сборки “тетриса”: у меня есть несколько маленьких “кусков” данных. Могу ли я быстро их совместить так, чтобы они уместились в один физический блок до того как я запишу его на носитель? Пока мы разрабатывали технологию уплотнения, мы подали на регистрацию немало патентов. Наш метод инновационный. Уплотнение работает по-умолчанию в системах All-flash FAS. И его опционально можно включить на обычных FAS системах, как на HDD агрегатах, так и на Flash Pool агрегатах. В любой случае, вы ничего не платите за эту функцию, она находится в ядре ONTAP, как дедупликация и компрессия.
Уплотнение это механизм дополняющий существующие технологии. Оно ортогонально дедупликации, но очень хорошо работает совместно с адаптивной компрессией (алгоритм, который используется в AFF и использует 8KB группы — прим. переводчика). При использовании адаптивной компрессии на лету, мы создаём группы компрессии, когда данные можно сжать на 50 и более процентов. После сжатия данных мы смотрим можно ли совместить в одном физическом 4KB блоке несколько мелких “кусков”, которые получились после сжатия. Так как это всё происходит в процессе CP, то операция уплотнения требует очень мало ресурсов, максимум 1% или 2% CPU. У вас никогда не должно быть ситуации, когда дополнительные 1%-2% нагрузки на CPU, критически меняют ситуацию с загрузкой. В такой ситуации ваша система уже перегружена.

Хотя компрессия и уплотнение отлично работают вместе, использовать их совместно необязательно. Например, том с большим количеством мелких файлов может быть хороший целью для уплотнения, но при этом не будет никакой выгоды от использования компрессии.
Вот как хронологически работают технологии эффективности на контроллере, при условии, что все они активны:
- В первую очередь мы детектируем любые блоки, состоящие целиком из нулей. Такие блоки мы вообще не записываем, мы лишь обновляем метаданные. По существу эти блоки лишь увеличивают счётчик ссылок.
- После мы применяем адаптивную компрессию. Этот процесс очень эффективен с точки зрения производительности. Мы определяем можно ли сжать блок на 50% и более. Мы не тратим циклы CPU, пытаясь сжать данные на 49% (это не даст никакой выгоды).
- Дальше работает инлайн дедупликация. Эта функция появилась в ONTAP 8.3.2. В данном алгоритме сравниваются и дедуплицируются только блоки, которые находятся в памяти. В ONTAP 9.0 расширили размер хранилища хэшей отпечатков и туда теперь включаются блоки, которые были недавно записаны. Если вы хотите увеличить выигрыш от дедупликации, то мы советуем в дополнение использовать фоновую дедупликацию по расписанию.
- И наконец, срабатывает уплотнение. Любые данные, которые уже были сжаты, или наоборот не рассматривались, в качестве кандидатов на сжатие, подходят для уплотнения. Это могу быть, например, маленькие несжатые файлы или данные сжатые на 75% и более. Процесс уплотнения собирает физический 4KB блок из двух или более таких “кусков”. Чем выше степень сжатия или чем меньше файлы, тем выше выгода от уплотнения. То есть мы можем получить множественный эффект, совмещая малые блоки, сжатие и уплотнение. Вы скорее всего не узнаете какой эффект от уплотнения вы можете получить, пока не начнёте использовать эту технологию. При уплотнении используется эвристический анализ во время CP. Алгоритм динамически меняет количество ресурсов, которые затрачиваются на уплотнение. Цель — найти оптимальное соотношение затраченных ресурсов на полученную степень уплотнения.
Вы можете использовать уплотнение данных без компрессии и дедупликации. Допустим у вас среда, в которой хранятся только очень маленькие файлы, 2KB и меньше. Эти файлы не сжимаются и скорее всего от дедупликации будет мало толку. Зато при использовании уплотнения вы получите выигрыш всякий раз, когда два или более файла будут сохраняться в одном 4KB физическом блоке.

В случае с репликацией, если источник и получатель использует одни и те же политики эффективности, то выгода от технологий эффективности будет сохранятся. Нет никакой необходимости заново прогонять данные через все алгоритмы на получателе. К примеру, вы используете систему AFF, на которой все процессы эффективности включены по-умолчанию, и реплицируете данные с неё на обычный FAS с помощью SnapVault. Если вы хотите сохранить выгоду от дедупликации, компрессии и уплотнения в процессе передачи данных, то вам необходимо, чтобы соответсвующие поликти были включены на FAS системе.
Суммируя, уплотнение данных на лету никак не изменяет сами данные. Мы просто пытаемся более эффективно упаковать данные. Если у вас не хранится множество мелких файлов, то проще всего думать об уплотнении, как о технологии, которая повышает эффективность работы адаптивной компрессии. Уплотнение поможет вам, если у вас есть операции меньше 4KB. Учитывая то, что уплотнение почти не тратит ресурсы CPU, при этом даёт дополнительное полезное пространство, его однозначно стоит использовать с All-flash FAS.
...
На самом деле примерно оценить эффективность работы уплотнения, как и компрессии с дедупликацией можно с помощью утилиты SSET (Space Savings Estimation Tool). Она доступна для партнёров и клиентов NetApp на support-сайте.