Лінус Торвальдс затвердив запит на включення файлової системи Bcachefs до основного складу ядра Linux і додав реалізацію Bcachefs до репозиторію, в якому розвивається гілка ядра 6.7, реліз якої очікується на початку січня. Доданий до ядра патч включає близько 95 тисяч рядків коду. Проект вже більше 10 років розвиває Кент Оверстріт (Kent Overstreet), який також розробив систему кешування блокових пристроїв, що входить до складу ядра, на SSD-накопичувачах Bcache.
Спроби просування Bcachefs в основний склад ядра почалися в 2020 році, після чого ще майже три роки знадобилося усунення зауважень і недоробок, виявлених після рецензування. Навесні цього року було запропоновано оновлений набір патчів, який кілька разів відхилявся, але в кінцевому рахунку у вересні був прийнятий у гілку linux-next, призначену для тестування можливостей для майбутніх випусків ядра Linux.
Bcachefs розвивається з використанням технологій, вже випробуваних при розробці блокового пристрою Bcache, призначеного для кешування доступу до повільних жорстких дисків на швидких SSD-накопичувачах (входить до ядра, починаючи з випуску 3.10). В Bcachefs використовується механізм Copy-on-Write (COW), при якому зміни не призводять до перезапису даних - новий стан записується в місце, після чого змінюється покажчик актуального стану.
В Bcachefs зроблено спробу домогтися поєднання рівня продуктивності, надійності і масштабованості, властивого XFS, і розширеної функціональності, що є в Btrfs і ZFS, такий як включення в розділ декількох пристроїв, багатошарові розкладки накопичувачів, реплікація (RAID 1/10), кешування, прозор даних (режими LZ4, gzip та ZSTD), зрізи стану (снапшоти), верифікація цілісності за контрольними сумами, можливість зберігання кодів корекції помилок Ріда-Соломона (RAID 5/6), зберігання інформації в зашифрованому вигляді (використовуються ChaCha20 і Poly1305). За продуктивністю Bcachefs випереджає Btrfs та інші ФС на базі механізму Copy-on-Write і демонструє швидкість роботи, близьку до Ext4 та XFS.
Особливістю Bcachefs є підтримка багатошарового підключення накопичувачів, при якому сховище компонується з декількох шарів - до нижнього шару підключаються найбільш швидкі накопичувачі (SSD), які використовуються для кешування часто використовуваних даних, а верхній шар утворюють більш ємні та дешеві диски, що забезпечують зберігання . Між шарами може застосовуватися кешування як відкладеного запису (writeback). Накопичувачі можна динамічно додавати та від'єднувати від розділу без зупинки використання файлової системи (дані мігрують автоматично).
Джерело: opennet.ru
