Пошаговые заметки
Главная
Вход
Регистрация
Воскресенье, 03.08.2025, 10:06Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
Сеть [5]
Зоны [3]
Сервера и сервисы [7]
Управление пользователями [4]
ZFS [1]

Всего материалов
Комментариев: 2
Форум: 1/2
Новостей: 4
Файлов: 3
Статей: 35

Вход

Главная » Статьи » Solaris » ZFS

Как определить размер памяти для дедупликации ZFS

Ноябрь 2011

Доминик Кэй

Источник: How to Size Main Memory for ZFS Deduplication

Как определить, просядет ли производительность системы, если мы включим на файловой системе ZFS дедупликацию, которая удаляет избыточную информацию с диска.

Что такое дедупликация ZFS?

В Oracle Solaris 11 вы можете использовать свойство дедупликацию (dedup) для того чтобы удалить из файловой системы ZFS избыточную информацию. Если свойство файловой системы dedup включено, то повторящиеся блоки данных удаляются во время записи данных на диск. В результате, только уникальные данные хранятся на диске, а общие компоненты распределяются между файлами, как это показано на Рисунке 1.

Рисунок 1. На диск записываются только уникальные данные.

В некоторых случаях это может привести к огромной экономии дискового пространства и уменьшению стоимости хранения информации. Дедупликация включается в файловой системе всего одной командой, например:

# zfs set dedup=on mypool/myfs

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

Перед тем как приступить к использованию дедупликации, нужно рассмотреть более подробно две возникающие трудности:

  • Стоит ли использовать дедупликацию для хранения конкретного типа
  • информации?
  • Достаточно ли памяти установлено на сервере для проведения дедупликации?
Рекомендации для поиска ответа на эти два вопроса приведены ниже.

Стоит ли использовать дедупликацию для хранения конкретного типа информации?

Для того, чтобы определить, подходят ли данные для применения дедупликации и получите ли вы выгоду, используйте отладчик ZFS -

zdb

. Если получится, что данные не подходят для дедупликации, то не имеет смысла ее использовать.

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

Таким образом, процесс дедупликации при попытке обработать неподходящие для дедуплицирования данные просто попусту тратит процессорное время. Дедупликация встроена в ZFS, поэтому потеря процессорного времени будет происходить во время записи на диск.

Например, если коэфициент дедупликации больше 2, вы можете получить экономию дискового пространства. В примере на Листинге 1 коэфициент дедупликации меньше 2, поэтому включение дедупликации не рекомендуется.

Листинг 1: Определение коэфициента дедупликации

# zdb -S tank
Simulated DDT histogram:
bucket allocated referenced
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
 1 2.27M 239G 188G 194G 2.27M 239G 188G 194G
 2 327K 34.3G 27.8G 28.1G 698K 73.3G 59.2G 59.9G
 4 30.1K 2.91G 2.10G 2.11G 152K 14.9G 10.6G 10.6G
 8 7.73K 691M 529M 529M 74.5K 6.25G 4.79G 4.80G
 16 673 43.7M 25.8M 25.9M 13.1K 822M 492M 494M
 32 197 12.3M 7.02M 7.03M 7.66K 480M 269M 270M
 64 47 1.27M 626K 626K 3.86K 103M 51.2M 51.2M
 128 22 908K 250K 251K 3.71K 150M 40.3M 40.3M
 256 7 302K 48K 53.7K 2.27K 88.6M 17.3M 19.5M
 512 4 131K 7.50K 7.75K 2.74K 102M 5.62M 5.79M
 2K 1 2K 2K 2K 3.23K 6.47M 6.47M 6.47M
 8K 1 128K 5K 5K 13.9K 1.74G 69.5M 69.5M
 Total 2.63M 277G 218G 225G 3.22M 337G 263G 270G
dedup = 1.20, compress = 1.28, copies = 1.03,
dedup * compress / copies = 1.50

Достаточно ли у сервера установлено памяти для проведения дедупликации?

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

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

Calculate memory requirement as follows: Расчет требуемой для дедупликации памяти проводится так:

Каждая запись в таблице дедупликации занимает приблизительно 320 байт. Нужно умножить количество распределенных блоков на 320. Вот пример с использованием данных из Листинга 1:

Размер таблицы дедупликации = (2.63M) x 320 = 841.60M

Заключение

После того, как вы вычислите два ограничения на дедупликацию - коэфициент дедупликации и требования к памяти - вы можете принять решение, включать ли дедупликацию и получите ли вы выгоду от этого.

Категория: ZFS | Добавил: forest (09.06.2012)
Просмотров: 5536 | Рейтинг: 0.0/0
Поиск

Друзья сайта
  • Антиболото
  • Суть времени
  • Специстория
  • Газета "Суть времени"
  • Суть времени ВКонтакте-1
  • Суть времени ВКонтакте-2

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Copyright MyCorp © 2025