The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Код Bcachefs принят в основной состав ядра Linux 6.7, opennews (??), 31-Окт-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


32. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Вася (??), 31-Окт-23, 09:46 
а чего не так, он хороший вопрос задал - такие вещи обычно закладываются архитектурно.

да, оно экспериментальное - но при этом ей уже 3 года и ее берут в состав ядра. Вероятно, это значит, что некоторую стабильность она все же имеет.

Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

39. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 31-Окт-23, 10:05 
> а чего не так, он хороший вопрос задал - такие вещи обычно
> закладываются архитектурно.

Оно и заложено архитектурно. Какая из букв в "CoW" тебе не понятна?

Ответить | Правка | Наверх | Cообщить модератору

45. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (45), 31-Окт-23, 10:16 
Тут скорее именно вам стоит разобраться в предметной области: CoW и дедупликация - это ортогональные понятия. Наличие CoW не означает обязательное наличие дудпликации. Как и наличие дудпликации не означает обязательного наличия CoW.
Например, как вы даже при наличии CoW собираете определять дублирующийся блок, если у вас в метаданных не предусмотрено хранение хэша блока? А ведь и просто хранить хэш мало, ещё нужно уметь эффективно в процессе записи искать совпадения по всей таблице этих хэшей. Как вам тут CoW поможет?
Ответить | Правка | Наверх | Cообщить модератору

46. "Код Bcachefs принят в основной состав ядра Linux 6.7"  –2 +/
Сообщение от Аноним (5), 31-Окт-23, 10:19 
> Например, как вы даже при наличии CoW собираете определять дублирующийся блок, если
> у вас в метаданных не предусмотрено хранение хэша блока?

Посчитать. С остальным не вижу смысла за тебя разбираться.

Ответить | Правка | Наверх | Cообщить модератору

48. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +3 +/
Сообщение от Аноним (45), 31-Окт-23, 10:31 
> Посчитать.

При записи каждого нового блока будем вычитывать данные из всей ФС, чтобы посчитать хеши для всех уже записанных блоков? Оригинальное решение, конечно

Ответить | Правка | Наверх | Cообщить модератору

64. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +1 +/
Сообщение от User (??), 31-Окт-23, 11:13 
"Идите нафиг, мыши! Я стратег, а не тактик!" (Ц)
Ответить | Правка | Наверх | Cообщить модератору

106. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 31-Окт-23, 13:07 
Ты, конечно, удивишься, но архитектура ПО и алгоритмы верхнего уровня - это стратегия, а не тактика. А умение скопировать со Стековерфлоу реализацию CRC32 в программированию вообще не относится.
Ответить | Правка | Наверх | Cообщить модератору

183. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +2 +/
Сообщение от User (??), 31-Окт-23, 20:15 
Делоите хорошо - а плохо не делоите! Я тоже могу в архитектуру!
Ответить | Правка | Наверх | Cообщить модератору

199. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 31-Окт-23, 23:36 
> Делоите хорошо - а плохо не делоите! Я тоже могу в архитектуру!

Ну так где твои дизайны и твоя команда, архитект? :)

Ответить | Правка | Наверх | Cообщить модератору

240. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от User (??), 01-Ноя-23, 07:29 
>> Делоите хорошо - а плохо не делоите! Я тоже могу в архитектуру!
> Ну так где твои дизайны и твоя команда, архитект? :)

Где мои деньги? Насобираешь на патреоне тысячи хотя бы три - приходи, поговорим.

Ответить | Правка | Наверх | Cообщить модератору

245. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 01-Ноя-23, 08:19 
>>> Делоите хорошо - а плохо не делоите! Я тоже могу в архитектуру!
>> Ну так где твои дизайны и твоя команда, архитект? :)
> Где мои деньги? Насобираешь на патреоне тысячи хотя бы три - приходи, поговорим.

Если я насобираю на патреоне тыщи три - зачем мне вы? Есть подозрение что из всех кто сюда притусил я возможно один из самых продвинутых в структурах современных файлух. И без понятных мне пруфов что вы взяли хотя-бы такой уровень, вы от меня не получите ни цента.

Ответить | Правка | Наверх | Cообщить модератору

304. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +1 +/
Сообщение от User (??), 01-Ноя-23, 19:51 
Ну вот и все у вас так - денег нет, но чего-то требуете. Не можете не патреоне - ну вот на онлифанс сходите, что ли...
Ответить | Правка | К родителю #245 | Наверх | Cообщить модератору

331. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (331), 02-Ноя-23, 05:16 
> Ну вот и все у вас так - денег нет, но чего-то требуете.
> Не можете не патреоне - ну вот на онлифанс сходите, что ли...

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

Ответить | Правка | К родителю #304 | Наверх | Cообщить модератору

228. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 01-Ноя-23, 05:51 
Пока ты даже не смог прочесть #105 и увидеть там алгоритм, которому ваши бзики с O(n!) не требуются.
Ответить | Правка | К родителю #183 | Наверх | Cообщить модератору

242. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от User (??), 01-Ноя-23, 07:43 
> Пока ты даже не смог прочесть #105 и увидеть там алгоритм, которому
> ваши бзики с O(n!) не требуются.

Уоу! Ща напишу Кенту чтоб реализовал - описание хорошее, подробное - в три строчки уложилось, наверное быстро справится, да?

Ответить | Правка | Наверх | Cообщить модератору

246. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 01-Ноя-23, 08:37 
>> Пока ты даже не смог прочесть #105 и увидеть там алгоритм, которому
>> ваши бзики с O(n!) не требуются.
> Уоу! Ща напишу Кенту чтоб реализовал - описание хорошее, подробное - в
> три строчки уложилось, наверное быстро справится, да?

Как показать всему миру что вы ламо? Попытаться поумничать не будучи вхожим в тему.

Кенту вообще-то надо не так уж и много: уметь в 3 IOCTL'а в его ФС: ioctl_ficlone, ioctl_ficlonerange, и ioctl_fideduperange. Это покрывает весь ассортимент дедупа и рефлинков которые можно в линухе. Остальное - дедупалки сами умеют, by design, и им класть что там за чексумы у ФС, они сами дубликаты ищут, как им удобнее, не уповая на чексумы ФС. В вон те ioctl'ы чексумы файлух не входят, дедупалка ничего про это не знает. Она сама находит дупы как ей удобно и сабмитит кандидатов файлухе. Такой вот интерфейс.

В нем фигурируют файлы и смещения. Дальше это уже проблемы файлухи что она сделает с этим знанием. По идее должна проверить что и правда - совпадает, и если и правда так, поставить на одного из новый референс и деаллоцировать другого. Для CoW это в общем то штатные операции и оно 95% этого всяко умеет, для реализации CoW/снапшотов и проч.

При том как минимум частичные кишки вот этого вот - я даже в коде bcachefs вижу. Линух делает какую-то достаточно дурацукю индирекцию, поэтому я пока не полностью одуплил что из этого и в каком виде реально можно уже дергать в вот этой версии bcachefs, но кент явно в курсе всех этих вещей и как минимум основу накатал.

Ответить | Правка | Наверх | Cообщить модератору

305. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от User (??), 01-Ноя-23, 19:53 
Угу. Но ответ на стартовый вопрос - "нету", так?
Ответить | Правка | К родителю #246 | Наверх | Cообщить модератору

490. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 08-Ноя-23, 14:28 
> Угу. Но ответ на стартовый вопрос - "нету", так?

Похоже что ответ все же "да". В коде угадывается характерный ioctl с интерфейсом "как у btrfs" и он там явно не для красоты. Насколько эта команда в этом бортовом компьютере этого крейсера реально работает станет понятнее когда -rc1 выкатят. Кент все же не зря 10 лет пахал. По коду видно.

Ответить | Правка | К родителю #305 | Наверх | Cообщить модератору

267. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 01-Ноя-23, 11:52 
Напиши, конечно. В рассылку и кидай сюда ссылку. Будем знать героев, кто принял юзерленд за ядро.
Ответить | Правка | Наверх | Cообщить модератору

320. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (320), 02-Ноя-23, 00:39 
> Напиши, конечно. В рассылку и кидай сюда ссылку. Будем знать героев, кто
> принял юзерленд за ядро.

Я уже кажись локализовал кусок отвечающий за дедуп, на вид сделан примерно как у бтрфсников, т.е. умеет только "неточный" дедуп когда файлуха может урезать осетра и дедупнуть меньше чем запрошено. Насколько это еще и работает - после -rc1 станет понятнее.

Ответить | Правка | К родителю #267 | Наверх | Cообщить модератору

100. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 31-Окт-23, 12:53 
Открою тебе секрет - контрольную сумму, если она уже есть в метаданных, следует считать и при чтении, что бы отловить деградацию данных или ошибки в ФС.
Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

102. "Код Bcachefs принят в основной состав ядра Linux 6.7"  –1 +/
Сообщение от Аноним (5), 31-Окт-23, 12:59 
> При записи каждого нового блока будем вычитывать данные из всей ФС, чтобы
> посчитать хеши для всех уже записанных блоков? Оригинальное решение, конечно

Не угадал. Я напишу три буквы: CBC. Ты примешься сначала гуглить расшифровку этой аббревиатуры, потом читать, что это такое и в каких случаях требуется. Если случится чудо, то до тебя дойдёт, что лучше бы ты дальше рассказывал, что криптовалюта спасёт мир от злых банкиров, а не писал вот это вот всё.

Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

107. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (244), 31-Окт-23, 13:17 
>> Посчитать.
> При записи каждого нового блока будем вычитывать данные из всей ФС,

Так тут вроде про _оффлайн_ дедуп. А вы про откровенный такой онлайн. Такое требование только для онлайн дедупа есть.

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

Программы дедупалки почти так и работают. С той разницей что они могут вести базу хешей и пытаться ресканить только изменения, если по умному.

Онлайн дедуп видите ли подперт реальным временем и это заставляет хранить все мыслимые хеши в оперативе, хешировать на ходу, постоянно лукапать то что нахешировалось в немеряном списке кандидатов, и это получается накладно и по RAM и по CPU так то.

Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

111. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 31-Окт-23, 13:30 
>>> Посчитать.
>> При записи каждого нового блока будем вычитывать данные из всей ФС,
> Так тут вроде про _оффлайн_ дедуп. А вы про откровенный такой онлайн.
> Такое требование только для онлайн дедупа есть.

И то, если делать непосредственно при записи. Что не обязательно и не факт, что быстрее.

Ответить | Правка | Наверх | Cообщить модератору

105. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (105), 31-Окт-23, 13:04 
> Тут скорее именно вам стоит разобраться в предметной области: CoW и дедупликация
> - это ортогональные понятия. Наличие CoW не означает обязательное наличие дудпликации.

Вообще, CoW технически как правило означает "достаточно гибкий аллокатор" для возможности вот это самое, и метаданные способные в "write anywhere layout" (или какое-то приближение). И к этому приделать возможность сослаться на 1 экстент эн раз - решаемо. Какой-то эрзац даже к ZFS прикрутили, хоть и через десяток лет.

CoW делает ключевую вещь: когда копии расходятся, он пишет измененную часть в сторонку. Вот без этой части - у вас точно не получится. А с остальным более-менее можно жить с теми или иными сложностями. Для поддержания иллюзии независимости копий файла главное это вон то. А что там надо костыльнуть чтобы >1 раза на регион сослаться - от "ничего" до "терпимо".

> Как и наличие дудпликации не означает обязательного наличия CoW.

Наличие CoW обычно таки означает достаточно гибкую аллокацию - и умение разбивать разошедшиеся версии. А сама по себе возможность сослаться 2 раза (и даже эн раз) на 1 аллоцированый регион мало чему противоречит.

> Например, как вы даже при наличии CoW собираете определять дублирующийся блок, если
> у вас в метаданных не предусмотрено хранение хэша блока?

Ну вот так:
1) Прога-дедубликатор сама считает хеши.
2) Найдя кандидаты она сабмитит их IOCTL "same extent"
3) Файлуха может дополнительно прочекать что блоки идентичны и если все прокатило, вторая копия заменяется ссылью на первую и после этого можно де-аллокацию дубликату сделать.

Это то как реально работают bees, jdupes, duperemove, ... и в этой схеме нигде нет никакого требования для хранения хешей блоков. Такая ерунда. Более того - это вроде на минималках даже на ZFS как-то прикрутили (рефлинки примерно так же работают) хотя там даже и экстентов толком нет.

> А ведь и просто хранить хэш мало, ещё нужно уметь эффективно в процессе
> записи искать совпадения по всей таблице этих хэшей. Как вам тут CoW поможет?

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

Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

109. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 31-Окт-23, 13:28 
> Ну вот так:
> 1) Прога-дедубликатор сама считает хеши.
> 2) Найдя кандидаты она сабмитит их IOCTL "same extent"
> 3) Файлуха может дополнительно прочекать что блоки идентичны и если все прокатило,
> вторая копия заменяется ссылью на первую и после этого можно де-аллокацию
> дубликату сделать.

И кстати этот алгоритм годится даже для прозрачной дедупликации, если запускать его в фоне. Как оно делается для страниц ОЗУ.

Ответить | Правка | Наверх | Cообщить модератору

112. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 31-Окт-23, 13:36 
> И кстати этот алгоритм годится даже для прозрачной дедупликации, если запускать его
> в фоне. Как оно делается для страниц ОЗУ.

Ну так в лине и есть KSM - это такой инверсный вариант RCU, когда идентичные страницы можно сколлапсировать. А RCU так то - диалект CoW по смыслу, без него опять же нихрена не получилось бы т.к. при расхождении копий надо уметь их разбивать на независимые куски.

Ответить | Правка | Наверх | Cообщить модератору

116. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 31-Окт-23, 13:49 
Точнее, таблица страниц позволяет реализовать и CoW, и KSM. Если где-то реализовано CoW, значит есть аналог той таблицы. Следовательно, архитектура позволяет дедупликацию.
Ответить | Правка | Наверх | Cообщить модератору

287. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 01-Ноя-23, 16:31 
> эффективно в процессе записи

вам еще не возразили, зачем это делать в процессе записи? Для начала надо понимать четко, что есть дедупликация, какова ее функция, где необходима и т.д., а не задаваться вопросом есть ди в той или иной ФС функция дедупликации, а если ее там нет то фиии плохая фс (ФСпалм)


Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

71. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Вася (??), 31-Окт-23, 11:29 
>> а чего не так, он хороший вопрос задал - такие вещи обычно
>> закладываются архитектурно.
> Оно и заложено архитектурно. Какая из букв в "CoW" тебе не понятна?

D

Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру