LINUX.ORG.RU

Эдуард Шишкин выступил с критикой Btrfs

 


0

0

Эдуард Шишкин - один из разработчиков Reiser4, на данный момент является сотрудником RedHat. Эдуард опубликовал на lkml результаты тестирования и ревью исходного кода входящей в состав ядра linux-2.6.33 файловой системы Btrfs.

Было обнаружено следующее:

  • При заполнении пустого 659-мегабайтного раздела Btrfs файлами размером в 2 килобайта, лишь 17% дискового пространства отводится под собственно содержимое файлов, а оставшиеся 83% Btrfs расходует на свои служебные данные.
  • Столь низкая эффективность использования дискового пространства, похоже, является фундаментальным свойством тех алгоритмов, которые положены в основу Btrfs. А именно, Btrfs пытается хранить блоки переменного размера («inline extents», xattr, и тд) в структуре данных «B-tree». Однако B-tree предоставляет гарантии эффективного использования памяти лишь для блоков постоянного размера.

Несмотря на то, что первое сообщение было опубликовано в начале июня, переписка между Эдуардом Шишкиным и разработчиком Btrfs Крисом Мейсоном продолжнается на lkml и по сей день. Приятного чтения!

>>> Подробности

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: annoynimous (всего исправлений: 2)
Ответ на: комментарий от anonymous

> с помощью dd iso-образ харда

гы, образ харда, конечно же будет не iso, но суть, надеюсь, понятна :)

anonymous
()

Зачет Эдуарду за тонкий троллинг.

goose
()
Ответ на: комментарий от anonymous

Сломал мозг.

очень захотелось захотелось сделать с помощью dd iso-образ харда, на всякий случай. Так, вот, при 100Gb разницы, только XFS смогла вместить образ, остальные ФС не смогли.

Сломал мозг. Можно описать подробнее что вы хотели и что получилось?

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

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

Хз как умудряются такое сделать. За многие годы работы на куче хостов не было потеряно ни одного байта. Хотя бывало всякое.

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

>у кого-нибудь наберется файлов такого размера на пару мегабайт?!

Название: Qt
Тип: папка с файлами
Размер: 2,76 Гб
Содержит: Файлов: 68 267; Папок: 6850

и это просто первое что попалось на глаза

devnullopers
()

Вообще-то Шишкин всё делает по заданию редхата - видимо он один из больших специалистов по ФС, особенно с b-tree. И рейзер4 тут непричём, там вопросы скорее к тому, можно ли использовать btrfs вообще, а не «стоит ли менять её на рейзер4».

anonymous
()

>The original test (2K files) is utterly pathological for disk drives with 4K physical sectors, such as those now shipping from WD, Seagate, and others. Some of the SSDs have larger (16K0 or smaller blocks (2K). There is also the issue of btrfs over RAID (which I know is not entirely sensible, but which will happen).

Типа btrfs не виновата, это железо/тесты неправильные =)

frame ★★★
()

>Internal fragmentation is a horror for file systems, the enemy #1

(which is completely defeated in the last century BTW)


а это такой тонкий намёк на reiserfs, если кто не догадался :)

frame ★★★
()
Ответ на: Сломал мозг. от Camel

> Сломал мозг.

Блииин, sorry. Свежий backup есть?

что вы хотели и что получилось?

Всё что хотели получилось. Спасибо за участие. И ещё раз sorry за мозг.

anonymous
()
Ответ на: комментарий от frame

суть не в размерах блока/кластера, суть в размерах метаданных на объект. чем меньше объект - тем больше будет это соотношение

devnullopers
()

правильный тест, который еще раз доказывает, что до вменяемого состояния btrfs еще пилить и пилить. да, и все же хотелось бы видеть либо развивающийся reiser4, либо zfs

George
()
Ответ на: комментарий от frame

>Эдуард сделал объективное замечание

Где его объективный тест того же самого, только с reiser4 и без шаманства с опциями формата?

devl547 ★★★★★
()
Ответ на: комментарий от X-Pilot

> Это такой стеб или вы действительно можете поделиться своей «success story» при использовании Reiser4?

Поделись хотя бы одной историей успеха, когда R4 рухнула. Вот и посмотрим. Фрагментируется - да, но не умирает.

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

Надо ещё подробнее.

Хотел сделать резервную копию раздела в виде одного файла, очевидно же.

А что за 100 Гб разницы и почему кто-то влез, а кто-то не влез? Если я буду делать dd'шный слепок раздела на котором размещена какая-то файловая система, то размер слепка не зависит от используемой ФС. Хотя...

Camel ★★★★★
()
Ответ на: комментарий от X-Pilot

Не знаю, про какие вы девайсы, но на ноуте я Meego запустил и вполне успешно (правда, с флешечки). Всё оборудование определилось, всё работало на отлично. Только вот досадно было, что Meego «искаропки» не умеет pppoe. А ставить в оффлайне со всеми зависимостями pppoeconf или rp-pppoe - ну его нафиг.

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

ZFS sucks!

хотелось бы видеть либо развивающийся reiser4, либо zfs

ZFS не будет, оно некошерно.

Таки после того обсуждения которое запустил Эдуард для Линуса самым разумным было бы выкинуть из основной ветки Btrfs и принять reiser4-for-2.6.*.patch.

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

Не его.

Где его объективный тест того же самого, только с reiser4 и без шаманства с опциями формата?

Его тест не может быть объективным. Надо чтобы ответный тест провёл кто-то из «разработчиков» Btrfs. Но им видимо не удаётся получить столь плачевные результаты, потому тесты они не обнародуют.

Camel ★★★★★
()
Ответ на: ZFS sucks! от Camel

> самым разумным было бы выкинуть из основной ветки Btrfs и принять reiser4-for-2.6.*.patch.

Иметь кривоватую фс с ОГРОМНОЙ фрагментацией, без дефрагментатора и рассчитанную на 700 метровые диски?

devl547 ★★★★★
()

Попробовал повторить тест. На разделе 667 Мб полезной информации 129 Мб. Это ужоснах!

anonymous
()
Ответ на: комментарий от devl547

P.S. хотя модульность - да.. огромный плюс для рейзера

devl547 ★★★★★
()

Да причем тут вообще рейзер, Шишкин указал конкретно на большие недостатки btrfs, а не на то, что надо рейзер воткнуть в ядро.

anonymous
()

Пока эстеты меряются пис^фс, менее привередливые пользователи успешно решают свои задачи на ext4

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

>Для больших файлов есть XFS, которая, кстати, меньше плодит метаданные.

А можно еще сделать так, чтобы она не портила файлы, открытые на запись при холодном ребуте?

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

там в одном комментарии говорится про то, что b-tree в btrfs не балансируется должным образом при определённых входных данных, т.е. довольно сильно вырождается, что и приводит к известному результату, размер метаданных тут дело второе

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

Ога, в ZFS все гораздо лучше. На таком же разделе в 659MiB создал пул с параметрами по умолчанию и прогнал тот же тест:

bash-4.0# /sbin/zpool list pool
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
pool   652M   622M  30.0M    95%  1.00x  ONLINE  -
bash-4.0# /sbin/zfs list pool
NAME   USED  AVAIL  REFER  MOUNTPOINT
pool   620M      0   619M  /pool
bash-4.0# /usr/sbin/zdb -d pool
Dataset mos [META], ID 0, cr_txg 4, 1.09M, 193 objects
Dataset pool [ZPL], ID 21, cr_txg 1, 619M, 284184 objects
bash-4.0# ls /pool | wc -l
  284177
bash-4.0# 

Итог - 284177 файлов размером 2KiB, то есть 568354KiB или чуть более 555MiB места под блоки файлов.

Из 659MiB размера раздела 7MiB ушло на служебные цели типа меток и зарезервированных областей (4.5MiB) и неиспользуемый хвост (2.5MiB), оставив 652MiB для использования собственно для хранения данных и метаданных файловых систем и пула, и которых, в свою очередь, 32MiB зарезервированы для функционирования ZFS, и 620MiB доступно для данных и метаданных. Таким образом, на метаданные для хранения 284177 двухкилобайтных файлов ушло 65MiB или чуть меньше 10.5% если считать от доступного для использования файлами места

anonymous
()

У меня как раз завалялся ненужный раздел на 30 гигов...

# mkfs.btrfs /dev/sdb2

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on /dev/sdb2
        nodesize 4096 leafsize 4096 sectorsize 4096 size 30.00GB
Btrfs Btrfs v0.19
# mkdir /mnt/btr
# mount /dev/sdb2 /mnt/btr
# cd /mnt/btr
# for i in $(seq 1000000000);\
> do dd if=/dev/zero of=/mnt/file_$i bs=2048 count=1; done

теперь надо подождать, пока заполнится...

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

вроде виной всему - неверный подход к балансировке (top-down)

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

>1. Пусть для начала прикрутит дефраг для рейзера

и ресайз!

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

>Пока эстеты меряются пис^фс, менее привередливые пользователи успешно решают свои задачи на ext4

Половая жизнь хомячков «эстетов» не интересует.

Led ★★★☆☆
()

Мне с SSD как то фиолетово, откроется файл за 2 секунды или за 1.5.

Но Шишкин молодец ваще, такими темпами его скоро возьмут работать в Фороникс.

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

блин, я буду ждать вечность... но сейчас создано ~9000 файлов, а занято ~39 МиБ.

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

>Brtfs - скорее всего наше всё, но она должна такой быть не из-за того, что задавили конкурентов!

Что-то мне это все сильно напоминает. Оракл?

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

> а вполне перспективную reiser4 беспощадно баннят и у неё разрабов и тестеров единицы!

Вот только не надо поминать reiser4, мы все знаем, что Ганс уби^W^W ничего несправедливого там нет. Сначала её 100 лет не могли стабилизировать (и до сих пор так и остались глюки), потом самого Ганса посадили. Кто теперь будет включать недописанный неподдерживаемый код в ядро?

Теперь уже и не включат. Некоторые сущности нужны в единственном экземпляре. Я вон хотел, чтобы в ядро включили ngpt и evms, но включили nptl и lvm2. Тоже пойти порыдать о вселенской несправедливости?

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

Одно другому не мешает. Имею рейзер3.6 на / и ext4 на /home.

post-factum ★★★★★
()

Да на самом деле непонятно почему очень сырую бтрфс включили в мэйнстрим так и не дописав, а уже годами использующийся reiser 4 включать отказываются по причине его «не доработанности» - да, пусть не доработан, но ведь в таком случае бтрфс еще более не доработан?

Явно «по блату» протолкнули )))

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

Да нет, всё гораздо проще. Имеется ZFS, весьма годная для своих целей, а в линуксе подобной ФС ещё не было. Вот и взяли. А reiser4 для всякого энтерпрайза не очень подходит, вот и не берут.

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

>>>При заполнении пустого 659-мегабайтного раздела Btrfs файлами размером в 2 килобайта

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

А вдруг внезапно потребуется, начнешь писать, думая что у тебя вагон места - и обломаешься..

Да кому могут потребоваться такие огромные файлы, по целых два килобайта?! А вот вдруг внезапно потребуется много файлов по одному байту, начнешь писать <...далее по тексту>. Вот где настоящая проблема!!

vadic
()
Ответ на: комментарий от valich

> Несмотря.

Только сейчас понял, как полезны были для меня последние два года упорного чтения каментов на ЛОРе. Я в совершенстве овладел исскуством родной речи!

иСкуССтвом? в совершенстве?

anonymous
()
Ответ на: комментарий от vadic

> Да кому могут потребоваться такие огромные файлы, по целых два килобайта?! А вот вдруг внезапно потребуется много файлов по одному байту, начнешь писать <...далее по тексту>. Вот где настоящая проблема!!

Знаю товарищей, у которых где-то так с четверть миллиарда небольших файлов занимает средним размером файла где-то в районе 12-13К. Думаю, десяток-другой миллионов с размером 2К и меньше там наберется.. Но у них, слава богу, не btrfs ;-)

anonymous
()
Ответ на: комментарий от vadic

> Да кому могут потребоваться такие огромные файлы, по целых два килобайта?! А вот вдруг внезапно потребуется много файлов по одному байту, начнешь писать <...далее по тексту>. Вот где настоящая проблема!!

Знаю товарищей, у которых где-то так с четверть миллиарда небольших файлов занимает чуть больше 3ТБ средним размером файла где-то в районе 12-13КБ. Думаю, десяток-другой миллионов с размером 2КБ и меньше там наберется.. Но у них, слава богу, не btrfsб так что свободное место еще есть ;-)

anonymous
()
Ответ на: комментарий от atrus

> Вот только не надо поминать reiser4, мы все знаем, что Ганс уби^W^W ничего несправедливого там нет.

Мы все знаем что твоя личная неприязнь аргументом не является, ни разу

Led ★★★☆☆
()

А есть графики зависимости процента занимаемого метаданными от размера раздела и размера файлов/количества файлов его заполняющих? ИМХО Без этого некорректно наезжать на ФС.

georgii
()
Ответ на: комментарий от anonymous

>> Имеется ZFS, весьма годная для своих целей

4.2

Аргументы?

Аргументы «годности»? Я их тут не вижу.

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