Это диверсия со стороны fb – рассказать всем про то как они «используют в продакшене» этот кусок г-на, чтобы потенциальные конкуренты образоваться не могли.
%))) да и у красношапки, помню, первым вариантом файловой системы стоял btrfs, как сейчас - не знаю
Вот и рассказываешь ты, что твоё ненужно лучше всех, просто враги его оклеветали, всё остальное - говно, а ты - непризнанный гений.
Шишкин прямо признался в интервью, что Reiser4 - это его хобби и в продакшен ещё не совсем готово. Так что мимо тазика. Он там явно не Reiser4 занимается в хуавее
Когда пишешь под ядро, временами начинаешь говорить с точки зрения именно ядра. В данном случае, я воспринял это вполне как: вызвать из кода драйвера фс. Но это заморочки. Нужно его конкретно спросить, что он имел ввиду.
Плевать, что конкретно он имел в виду. Он сделал два утверждения, оба неверны, с какой стороны на них ни посмотреть. ФС умеют чинить повреждения автоматически в момент чтения.
Я думаю процентов 10-20 программистов 40 лет и старше сидят по подобным синекурам. Кто на старой системе документооборота, кто на сайте, с бэкендом на перле. Единственное что рейзерфс известнее, но программисты в основном аутисты, им слава не особо нужна.
Ну, я отбросил варианты, что он работает в хуавее сторожем или там на телефоне в русскоязычной техподдержке сидит. Предположил, что на нём важный проект. Какой? Нанимать чувака с 10 годами опыта в разработке FS на написание графического стека было бы странно, видимо чем-то связанным с файловыми системами занят. С другой стороны, если бы он пилил новую суперфайловую систему теперь уже с прыгающими деревьями, то, наверное, ненужнофс4 он бы забросил. Так что, я думаю, правдоподобно выглядит версия, что наняли его, ну например чтоб допилить рейзер3 (или кастрировать рейзер4) для какой-то особой нужды. Ну или адаптировать что-то из файловых систем под их новую гармоньОС и, возможно, даже разработать всю подсистему операционки по работе с файловыми системами.
В общем, если мои предположения верны, то он вполне мог надеяться протолкнуть свою прелесть в энтерпрайз и быть жёстко разочарован, если китайцы сказали, мол, спасибо, вот сделай вот это, а рейзер4 нам пока что не к чему.
Я бы почитал интервью хоть с каким-нибудь разработчиком Reiser4, но таких не осталось. Эдуард не разрабатывает сейчас, а только обновляет паччик для совместимости со свежими Linux’ами.
Помнится, Шишкин лет десять назад уже слал POC, и все признали проблему.
Сейчас на этом POC Btrfs изящно делает abort transaction:
https://www.opennet.ru/openforum/vsluhforumID3/124332.html#380
а на сайте Btrfs вывесили FAQ, что такие проблемы присущи всем FS.
Очень простая: «Не мечите бисер перед свиньями…», обоснуйте разумность вашего требования. Вполне возможно что вы неспособны ни понять ни оценить POC, либо просто не собираетесь этого делать, а требуете просто желая вывернуться из неудобного положения в дискуссии. Попросту говоря,есть подозрение что вы следуете вполне типичным путем форумного демагога.
Вполне возможно что вы неспособны ни понять ни оценить POC
Как будем оценивать возможность?
обоснуйте разумность вашего требования
Очень сложно обсуждать голословные заявления, вот и всё. «Btrfs плохо, пнятненько?»
Во-вторых, словам этого человека в адрес btrfs очень мало доверия, т. к. в своих высказываниях он допускает грубейшие ошибки, в общем-то несовместимые с его компетенциями (см. мой первый пост в треде).
Вполне возможно что вы неспособны ни понять ни оценить POC, либо просто не собираетесь этого делать
Аргумент из серии «джентльменам верят на слово».
Даже если мы не сможем понять всю глубину мысли POC, то наблюдать его вполне практический эффект и его последствия мы, наверное, как нибудь осилили-бы.
Так никто не спорит, что умеют. Вопрос - как. Путём сканирования из отдельного (а может и не отдельного) процесса внутри ядра (или тасклета, или work), запущенного драйвером ФС, или просто тыканием в нужное место без сканирования.
Т.е. я понял, что процесс сканирования запускается самим драйвером, ты, что это должен делать пользователь.
Это всё бесполезное жонглирование словами. Есть ровно две принципиально разных ситуации: либо ФС знает, где конкретно повреждение и где брать запасную копию — и тогда она может сделать это автоматически, незаметно для пользователя, с минимальным оверхедом — либо ФС этого не знает, и тогда нужно сканировать все блоки перебором в поисках того, который не совпадает. Третьего не дано. Когда говорят «скраб», подразумевают (2). Шишкин утверждает, что (1) умеет только рейзер4, а zfs и btrfs вынуждены делать (2). Но он обосрался, что очевидно любому, кто имел хоть какое-нибудь дело с этими ФС проверяется экспериментально или путём чтения кода.
Скраб — это процедура, предполагающая перебор блоков в поисках повреждённых. Тут был ещё один персонаж, который пытался докопаться до формулировок на тему «откуда ты знаешь, что скраб — это перебор всех блоков, вдруг там перебор двух блоков и он запускается автоматически, тогда это тоже номинально скраб и обосрался ты». Но это всё опять же бесполезное жонглирование словами, потому что на практике таких пограничных случаев существовать не может — у них нет причин для существования.
У меня делает. Правда я не запускаю параллельно как ты, может от этого, что зависит и версия более старая.
btrfstest# dd if=/dev/zero of=btrfs.img bs=1G count=1
btrfstest# mkfs.btrfs btrfs.img
btrfs-progs v4.20.1
See http://btrfs.wiki.kernel.org for more information.
Label: (null)
UUID: 42226b01-b0b7-44bd-ac8e-4ecb812724a5
Node size: 16384
Sector size: 4096
Filesystem size: 1.00GiB
Block group profiles:
Data: single 8.00MiB
Metadata: DUP 51.19MiB
System: DUP 8.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 1
Devices:
ID SIZE PATH
1 1.00GiB btrfs.img
# mount -o loop btrfs.img t
# for i in $(seq 1000000); do dd if=/dev/zero of=t/file_$i bs=2048 count=1; done
# ls t|wc -l
203375
# journalctl -ke -n10
< skip >
May 27 17:01:34 pr1 kernel: loop: module loaded
May 27 17:01:34 pr1 kernel: BTRFS: device fsid 42226b01-b0b7-44bd-ac8e-4ecb812724a5 devid 1 transid 5 /dev/loop0
May 27 17:01:34 pr1 kernel: BTRFS info (device loop0): disk space caching is enabled
May 27 17:01:34 pr1 kernel: BTRFS info (device loop0): has skinny extents
May 27 17:01:34 pr1 kernel: BTRFS info (device loop0): flagging fs with big metadata feature
May 27 17:01:34 pr1 kernel: BTRFS info (device loop0): checking UUID tree
Утилизация меньше 40%. У тебя, кстати, тоже не так чтобы очень хорошо было, что 82%, хотя значительно лучше. Может какие костыли к 5-й версии прикрутили, но если верить Шишкину проблема фундаментальная и они могли только частные юзкейсы поправить.
А что у тебя «делает»? Никаких ядерных ошибок (о которых писал комментатор на опеннете) я не вижу, аномального перерасхода места — тоже (см. ниже).
Утилизация меньше 40%.
А знаешь, почему?
Block group profiles:
Data: single 8.00MiB
Metadata: DUP 51.19MiB
Мелкие файлы в btrfs для экономии места хранятся внутри метаданных, прямо в узлах дерева хранения (о чём, собственно, и весь разговор — Шишкин считает, что так извращаться над B-деревьями категорически нельзя). Если создавать раздел на HDD, btrfs по умолчанию хранит метаданные в двух копиях. Вот и вся загадка. Working as intended.
У тебя, кстати, тоже не так чтобы очень хорошо было, что 82%
А где ты вообще видел ФС с нулевым оверхедом?
Попробуй заполнить 2K-файлами какую-нибудь ext4. Полезный объём будет примерно 41%(!) без всякого дублирования. (Это на самом деле тоже легко объяснимо. ext2 и производные не умеют упаковывать файлы такого размера в метаданные, поэтому под каждый файл выделяется полный блок, т. е. 4 килобайта. Но даже в пересчёте на четырёхкилобайтные файлы эффективность хранения тоже как бы не 100%.)
А ZFS вон в принципе загружать файлами более чем на 80% от общего объёма пула категорически не рекомедуется.
Напомню, Ганс Райзер посажен не на 25 и не на 30 лет, а отбывает пожизненное наказание. Но есть шанс, что в какой-то момент его освободят по процедуре аналогичной российскому УДО. Так что нет, Ганс не разработчик.
Достаточно забыть (или не знать в моем случае) поставить бит nodatocow на один файл и все станет раком,я не про файл подкачки.Есть такая либа sqlite2 ,в багтрейдах 10 летней давности она убивала btrfs.Сейчас убивает Cow журнал.Хоть в sqlite3 кое-что поправили,до сих пор в firefox ошибка extents found встречаеться. И самое обидное что практически btrfs не ремонтируется,утилиты починки до сих пор сырые. Так она еще может встать колом на ровном месте.Был у меня продублированный бэкап с чек сумами и верифицированными файлами с кодами рида-соломона 4-5 летней давности.,понадобился архив,только чтение,ошибка чек-сумм.Хрен чиниться,даже снес суммы,падает btrfs check на 43% .....Ну ладно скопировал архив с обоих дисков,проверил,данные целые ! Что не понравилось btrfs и отчего глюк не кто не смог обьяснить (железо было целое). Единственное я позже вспомнил ,возможно раздел конвертированный с ext4,но снапшот ext4 я точно снес,данные дописывал и не каких проблем с тем диском не было.
Поставить бит
Как я понял
человек не знал что на файл Бд sqlite2-3 нужно поставить бит nodatacow.
Часто перезаписываемые мелкими изменениями файлы БД «забивает» COW журнал фрагментами,возникаеют ошибки типа нет места,ошибка записи,достит предел extents.Фоновая балансировка может не успеть справиться с ситуацией.
Потому что (как я понимаю) он работал над поддержкой этого всего, когда он работал в Red Hat: https://habr.com/ru/post/108629/ Модуль, грузящий btrfs с мультиустройств, уместился у меня в 62 сектора.
Вот ты когда прекращаешь истерить и начинаешь спокойно обсуждать технические проблемы - ну адекватный же человек. Как только встаешь в позу и начинаешь ВЕЩАТЬ - ну школьник школьником. Пустырника, что ли попей.
В сабжевой статье часто упоминается ZFS, и почти везде (специально не считал) Шишкину что-то там не нравится.
EDIT:
Возможно, куда-то ещё будут портировать модную ZFS там, где её ещё нет. Но она, как и все ФС из апстрима, напоминает новогоднюю ёлку: если сверху ещё что-то из мелочи повесить можно, то глубже уже не подлезешь. Я допускаю, что построить серьёзную энтерпрайз-систему на базе ZFS можно, но поскольку мы сейчас обсуждаем будущее, то мне остаётся с сожалением констатировать, что ZFS в этом плане безнадёжна
Достаточно ядовито, лол)
ZFS - это вчерашний день. А ext4 и XFS - уже даже не позавчерашний.
А вот рейзер4 будущее будущее. Она правда не разрабатывается и несколько отстает. Но вот в сферической теории в вакууме, она топчик. Может быть. Потанцевально.
Для кого? Я думал, что для разработчика ФС «Я допускаю, что построить серьёзную энтерпрайз-систему на базе ZFS можно» - это значит рассыпаться в комплиментах.
Ну если кто не в курсе, то энтерпрайз-системы как раз строятся на базе ZFS и btrfs, и им не нужна такая похвала от Шишкина, а вот reiser4 могла бы поконкурировать с «позавчерашней» ext4, вот только reiser4 не так хорошо вылизана в плане багов, не включена в ядро, надо собирать ядро самому, да и там нету некоторых банальных вещей типа resize. В общем грусть-печаль.