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.