LINUX.ORG.RU

Онлайн-дедупликация переоценена. Я всё жду, пока Zygo запилит поверх того же движка умный «анти-дефрагментатор» экстентов.

У btrfs есть одна очень забавная проблема. Предположим, у тебя есть файл, состоящий из одного экстента размером 100 MiB. Ты берёшь и перезаписываешь 50 MiB посередине файла. Суммарное занятое место на диске — 150 MiB.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от greenman

Проблемы терминологии. Да и не важно. Дедупликация в рамках одного датасета всё равно переоценена. Она имеет смысл только для снапшотов/бэкапов.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от greenman

Ты тупо реагируешь на ключевые слова в моих комментариях?

Снапшоты в btrfs и так дедуплицированы по определению. Их не нужно дедуплицировать отдельным демоном. Я отметил снапшоты отдельно, потому что тут персонажи любят докапываться вида «ну раз дедупликация переоценена, так зачем ты вообще btrfs со снапшотами используешь, тоже ведь дедупликация, гы-гы, противоречие».

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Дедупликация в рамках одного датасета всё равно переоценена. Она имеет смысл только для снапшотов/бэкапов.

А почему она не имеет смысла в случае с кучей похожих виртуалок/контейнеров, например?

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

в случае с кучей похожих виртуалок

При дедупликации образов виртуалок, ИМХО, можно нехило отгрести по производительности. А в случае контейнеров все и так используют Docker (который внутри себя использует снапшоты) или ещё более продвинутые системы content-addressable storage, так что отдельная дедупликация опять же не нужна.

Но в целом ты прав, это частые случаи, которые могут быть исключениями.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от greenman

А зачем тогда Zygo пишет про это?

Zygo скорее имеет в виду, что его демон не ломается (и не приводит к «раздедупликации»), если его натравить на пачку снапшотов.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

[-3]Зачем вам это? Почему я сижу на ext3 на последнем Mint'е на SSD и меня всё устраивает?[/-3]

xwicked ★★☆
()
Ответ на: комментарий от Black_Shadow

В продакшене - нет, но на своей машине пробовал. ИМХО, сомнительно и того не стоит. На типичной разносортной помойке десктопа, лишь 5 процентов данных оказались пригодными для дедупликации. Памяти эта радость поглотила около 400Мб (При ~250Гб занятого места). При этом у неё ещё есть два режима: с полной проверкой на то что два блока одинаковые (Вынуждает ZFS читать блок перед записью, вероятно некэшированный) и доверием хэшу (Нет потребности читать блок, но звучит как-то ненадёжно, хотя ман утверждает что на деле коллизии - штука исчезающе редкая). Напоминаю, на всякий случай, в ZFS есть только онлайн дедупликация.

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

И я когда-то говорил @mord0d -у : «Зачем мне твоя ZFS, когда есть mdadm+ext4?». Оказалось, что причины есть. С Btrfs - аналогично.

Заставили меня читать про btrfs, что это такое. То есть, грубо говоря, что она эффективна на буках с 32ГБ SSD с включённым сжатием на лету?
Допустим у меня архив моего кроссворда весит 100МБ, я делаю бэкапы каждый день, когда производил изменения. И через месяц я потеряю 3ГБ памяти на архивы, а в случае с btrfs и включённой дедупликацией фактически будет занято 150МБ? 100МБ на оригинал и 50МБ на изменения?

xwicked ★★☆
()
Ответ на: комментарий от intelfx

При дедупликации образов виртуалок, ИМХО, можно нехило отгрести по производительности...

А что будет, потеря скорости? За счёт чего?

xwicked ★★☆
()
Ответ на: комментарий от anonymous-angler

Вот и я об этом. Я не пробовал, но все пишут, что потребляет много памяти, а пользы мало, лучше использовать сжатие.

Black_Shadow ★★★★★
()
Ответ на: комментарий от xwicked

Да, примерно так. Но для описанного тобой случая не нужна дедупликация, достаточно снапшотов, прозрачного сжатия и send/recv.

anonymous-angler ★☆
()
Ответ на: комментарий от Black_Shadow

Польза есть, но не на десктопе.

Да, сжатие - вещь. Системые разделы давятся в 1.5-1.7 раза, при том почти бесплатно (По использованию CPU и RAM). Игры тоже неплохо жмутся, примерно тот же результат.

anonymous-angler ★☆
()
Ответ на: комментарий от xwicked

Он скорее про «во время дедупликации». После неё никаких проблем с производительностью быть не должно, даже наоборот.

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

Системые разделы давятся в 1.5-1.7 раза

Слабо 8-)

Type       Perc     Disk Usage   Uncompressed Referenced
TOTAL       44%      4.0G         9.2G         9.6G
none       100%      980M         980M         991M
zlib        54%      8.3K          15K          15K
zstd        37%      3.1G         8.2G         8.7G

token_polyak ★★★★
()
Ответ на: комментарий от greenman

Зато там нет всего остального, что есть в Btrfs или ZFS, что делает F2FS куда менее интересной.

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

«Зачем мне твоя ZFS, когда есть mdadm+ext4?»

И я устал повторять что это разные вещи. ☺

Btrfs

Тоже до ZFS не дотягивает. А дефрагментация сбоку — это вообще детский сад.

// Объявись в ирк, пни меня по нику ("в личку").

mord0d ★★★★★
()
Ответ на: комментарий от token_polyak

Слабо, потому что я использую lz4 (Хотя gzip и zstd тоже доступны).

# zfs get -t filesystem -r compression,compressratio zpool0/gentoo zpool0/arch
NAME                       PROPERTY       VALUE           SOURCE
zpool0/arch                compression    lz4             inherited from zpool0
zpool0/arch                compressratio  1.56x           -
zpool0/gentoo              compression    lz4             local
zpool0/gentoo              compressratio  1.71x           -
zpool0/gentoo/home         compression    lz4             inherited from zpool0/gentoo
zpool0/gentoo/home         compressratio  1.00x           -
zpool0/gentoo/repos        compression    lz4             local
zpool0/gentoo/repos        compressratio  1.10x           -
zpool0/gentoo/tmp-portage  compression    lz4             local
zpool0/gentoo/tmp-portage  compressratio  2.30x           -
anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

Фринода перестала принимать мой сертификат

Так его обновлять периодически надо. Вообще, создавать самоподписанный серт более чем на год — плохая затея. Всегда так было.

чуть позже

Если долго не буду отвечать, значит отошёл. В любом случае вернусь, но по времени ничего конкретного сказать не могу.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Тоже до ZFS не дотягивает.

В чём-то не дотягивает, а в чём-то — перетягивает. Зачем мне ваша ZFS при всех её преимуществах, если в ней нельзя добавлять диски в рейд по одному и менять режим избыточности? У меня дома нет серверной стойки, в которую я бы мог докидывать диски пачками. Для меня это шоу-стоппер.

Case in point: у меня было четыре диска по 500GB в RAID5. В течение нескольких лет я менял их по одному на двухтерабайтники. В середине этого процесса один из дисков начал сдыхать, я тупо выкинул его из массива и продолжил пользоваться массивом из трёх дисков, пока не появилась возможность его заменить. В середине прошлого года мне стало не хватать места, я купил 2x16TB, ввёл в массив, перекинул на них все данные в режиме RAID1, а старые из массива вывел. Неделю назад место снова кончилось, я пошёл в магазин, купил третий 16-терабайтник и тупо добавил его к RAID1 с перебалансировкой данных. Всё это можно сделать в онлайне без единого перемонтирования и уж тем более без пересоздания ФС с нуля.

Caveat emptor: RAID5 в Btrfs нестабилен, пользоваться им не рекомендуется (я просто очень аккуратно ходил по минному полю и никаких проблем не словил). История не про это, а про то, насколько гибкая архитектура Btrfs — надо только починить баги.

А дефрагментация сбоку — это вообще детский сад.

В ZFS дефрагментации вообще нет и не будет, потому что архитектура не позволяет. :) Возможно, ты имел в виду дедупликацию?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от anonymous-angler

Это так, смехуечки. Естественно в ZFS есть более эффективные/более прожорливые алгоритмы. А в btrfs сам использовал когда-то LZO/LZ4.

На более серъёзной ноте, в btrfs мне не хватает только zdev (или как оно называется), в общем, блочных устройств поверх массива. Донедавна не хватало >2 копий, но чех из SuSE запилил.

token_polyak ★★★★
()
Ответ на: комментарий от intelfx

В чём-то не дотягивает, а в чём-то — перетягивает.

Нену, у них так-то уровень разный. Никто в здравом уме не станет тащить Btrfs в прод (давай будем объективными, она недостаточно стабильна), а ZFS для дома — лютейший оверхед.

нельзя добавлять диски в рейд по одному

В RAID-0/1 — сколько угодно. И удалять/заменять/сплитать тоже.

менять режим избыточности

Не представляю зачем это может быть нужно, но этого нет.

RAID5

RAID1

А вот с этим в ZFS вообще специфичная ситуация. RAIDZ-1/2 (в некотором роде аналог RAID-5/6) не может быть перестроен или конвертирован в другой RAID (stripe/mirror) или развален/сплитнут. Именно это останавливает меня от использования RAIDZ-1/2.

mord0d ★★★★★
()
Ответ на: комментарий от token_polyak

Оно называется zvol.

Мне помимо этого ещё не хватает в Btrfs атомарных рекурсивных снапшотов и стабильного RAID6.

С другой стороны, у ZFS тоже проблем хватает. Swap на zvol - и система вешается, если память забита под завязку. А если попытаться сделать на такой swap suspend-to-disk, то после пробуждения будет поломанный пул, который ничем не восстановить.

anonymous-angler ★☆
()
Ответ на: комментарий от mord0d

Никто в здравом уме не станет тащить Btrfs в прод

Фейсбук?

ZFS для дома — лютейший оверхед

Это не оверхед. Это просто неприспособленность.

В RAID-0/1 — сколько угодно. И удалять/заменять/сплитать тоже.

Вот хоть убей не помню, чтобы так было можно. Есть ссылки на доки?

Не представляю зачем это может быть нужно, но этого нет.

Это всё ещё про конверсию между уровнями RAID.

А вот с этим в ZFS вообще специфичная ситуация. RAIDZ-1/2 (в некотором роде аналог RAID-5/6) не может быть перестроен или конвертирован в другой RAID (stripe/mirror) или развален/сплитнут.

А между stripe, mirror и просто пулом из нескольких дисков как будто можно конвертировать?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

В ZFS дефрагментации вообще нет и не будет, потому что архитектура не позволяет. :)

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

Возможно, ты имел в виду дедупликацию?

Нет, я имел в виду именно дефрагментацию.

mord0d ★★★★★
()
Ответ на: комментарий от intelfx

Фейсбук?

Вообще, да. Но они же её вроде бы использовали для чего-то некритического.

<всё остальное>

  • Пул в ZFS - это stripe из одного/нескольких vdev, каждый из которых может быть одним из: single, n-way mirror, raidz1 (RAID5), raidz2 (RAID6), raidz3 (???).
  • Каждый vdev можно беспрепятственно добавлять/убирать из пула.
  • Каждый отдельный vdev из single можно превратить в n-way mirror в любое время, обратное - тоже легко. RAIDZ{1,2,3} нельзя собрать или разобрать по частям и нельзя сконвертировать во что либо иное.

Так что да, в этом ZFS значительно менее гибкая.

anonymous-angler ★☆
()
Ответ на: комментарий от intelfx

Никто в здравом уме не станет тащить Btrfs в прод

Фейсбук?

В здравом уме. ^_~

Это не оверхед. Это просто неприспособленность.

Приспособлено оно. Но на десктопе и 10% возможностей не будешь юзать.

В RAID-0/1 — сколько угодно. И удалять/заменять/сплитать тоже.

Вот хоть убей не помню, чтобы так было можно. Есть ссылки на доки?

zpool(8):

  • zpool attach/zpool detach;
  • zpool add/zpool remove;
  • zpool split.

Это всё ещё про конверсию между уровнями RAID.

Вот поэтому невозможно RAIDZ-1/2 <-> RAID-0/1 в ZFS.

А между stripe, mirror и просто пулом из нескольких дисков как будто можно конвертировать?

zpool split, zpool add.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

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

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

Но зато в ZFS есть L2ARC который это позволяет компенсировать с помощью SSD. Имею такую гибридную сборку. Вполне себе годно.

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

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

Вот поэтому оно крайне неэффективно — целостность данных важнее их фрагментации.

У меня есть пара пулов с фрагментацией (свободного пространства) более пятидесяти процентов.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Мне не нужно.

И да, впопенсорс в этих ваших бздях, у нас Free (Libre) Software.

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)
Ответ на: комментарий от intelfx

В смысле переоценена? Как ещё мне пихать 5ТБ срезов репозитория на двухтерабайтный диск?

Нужно, годно.

Суммарное занятое место на диске — 150 MiB.

Повторный проход спасёт тебя, а лучшее — враг хорошего.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256

В смысле переоценена? Как ещё мне пихать 5ТБ срезов репозитория на двухтерабайтный диск?

Снапшотами и рсинком.

Повторный проход спасёт тебя, а лучшее — враг хорошего.

Повторный проход чего?

intelfx ★★★★★
()
Ответ на: комментарий от anonymous-angler

потому и использую

Не только поэтому. ^_~

mord0d ★★★★★
()
Ответ на: комментарий от intelfx

Снапшотами и рсинком.

Там хардлинками не обойдешься, не войдет. Я опечатался, это разные репозитории разных RH-based.

Повторный проход чего?

Повторный проход блочного дедупликатора.

t184256 ★★★★★
()

хм. неужто добавили.
надо бы попробовать, но пока нет возможности.

darkenshvein ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.