On 21.11.2014 08:20, Golub Mikhail wrote:
1. Да.

Это совсем тяжелый случай. При удалении любого снепшота ZFS хочет получить памяти на хранение всей транзакции. Обычно транзакции небольшие - пара метров пришло, пара метров ушло. Но когда удаляется нечто лежащее в dedup ему нужно держать в памяти всю часть дерева до и после удаления данных. Соответственно вся другая активность на диске замирает до завершения транзакции, которая будет весить в случае со снепшотом весьма не слабо.

Если памяти на машине для удаления снепшота не хватит вы получите кору. После перезагрузки вы опять получите кору. И так до тех пор пока dedup index не станет влезать в память. У меня один раз уложило машину удаление одного снепшота на 14G, ZFS захотел 6G оперативы. Пока не получил - не загрузился.

Ситуация частично исправляется добавлением в ZFS отложенного удаления, а с приходом 10.1 - ограничения на размер транзакции. Но это не спасает. Без наличия на машине охренительных объёмов памяти и хорошего лога машина будет адски тормозить. Сам недавно проверял на виртуалках под 10-STABLE, при вырастании dedup выше ~1500000 блоков виртуалки начинают тормозить адски, потому что на запись каждого блока нужно пройтсь по индексу его поискать а индекс под нагрузкой имеет свойство из памяти улетучиваться. Выключение dedup = исчезание всех тормозов.

2. FreeBSD 8.4, zpool v 28

Для экономии места больше подходит сжатие lz4, оно кстати и ускорение даёт. При работе со снепшотами помогает ещё ставить sha256 хешем, при этом на свежей ZFS блоки у которых хеш не отличается на диск не пишутся и снепшоты соответственно не растут. Но для вас это всё в будущем - в 8.4 очень многих вкусностей у ZFS нет.


dedup так влияет?

Ну и не топ-постите плиз, глаза ломает.

ЗЫЖ Очень красиво dedup сделан в HAMMER, но рекомендовать Dragonfly на продакшн - не буду. Да и HAMMER2 ждём-с...



-----Original Message-----
From: Volodymyr Kostyrko [mailto:[email protected]]
Sent: Friday, November 21, 2014 1:13 AM
To: Golub Mikhail; [email protected]
Subject: Re: [freebsd] zfs destroy very slow

On 20.11.2014 17:54, Golub Mikhail wrote:
Доброго времени суток.

Имеется zfs с несколькими snapshot-ами.
На этой zfs лежит сайт - куча мелких и не очень файлов, которые меняются
довольно часто (кеши и т.п.).
Каждый день делается snapshot. И таких снимков более 10.
И вот когда удаляю сайт, то выполняю "zfs destroy -rf фс".
Это приводит к тому, что сервер стает "колом".
zfs list тупо замирает. Дисковая активность высокая.

Как более безболезненно удалить все снимки вместе с конкретной zfs?
Чтобы сервер "на дыбы" не ставал ...


1. dedup есть?
2. не так давно в код zfs добавляли планку сколько данных можно пуржить
за раз. Как раз для случаев когда за один раз несколько десятков гигов
пуржится. vfs.zfs.free_max_blocks, в 10.1 уже есть.



--
Sphinx of black quartz judge my vow.

Ответить