Home » Bcachefs публикует патчи для перезаписи дискового учета

Bcachefs публикует патчи для перезаписи дискового учета

Кент Оверстрит в субботу вечером опубликовал набор из 21 патча для пересмотра кода учета диска для файловой системы Bcachefs. Это изменение нарушает совместимость с существующим форматом учета дисков на диске и, следовательно, потребует обновления при переходе на новую версию, которая может появиться для Linux v6.9.

Оверстрит некоторое время работал над переписыванием дискового учета Bcachefs и на этих выходных опубликовал первую серию патчей. Он объяснил эту переписывание:

Старая схема учета дисков была быстрой, но имела некоторые ограничения:

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

– расширять было сложно, поэтому до сих пор у нас не было надлежащего учета сжатых данных, а для получения степени сжатия требовалось полное сканирование btree.

В новой схеме:

– каждый набор счетчиков является bkey, ключом в btree (BTREE_ID_accounting). это означает, что они не закреплены в журнале

– ключ имеет структуру и является расширяемым. disk_accounting_key — это объединение тегов, и оно просто объединено через bpos

– счетчики являются дельтами, пока они не будут сброшены в базовое btree, это означает, что обновления счетчиков являются обычными обновлениями btree; буфер записи btree делает обновление счетчиков эффективным.

Поскольку чтение счетчиков из btree требует больших затрат (для получения актуальных счетчиков потребуется очистка буфера записи), мы также поддерживаем параллельный набор учетных записей в памяти, что немного похоже на старую схему, но без пожурнальной записи. -шардинг буфера. Счетчики в памяти индексируются в дереве Эйцингера с помощью disk_accounting_key/bpos, а сами счетчики являются percpu u64s.

Это нарушает формат файловой системы на диске и, следовательно, требует восстановления учета при обновлении (или понижении версии) предыдущей новой версии. Это должно происходить прозрачно через ядро ​​fsck, но на данный момент существуют некоторые известные ограничения для пользователей Linux 6.7. Мы надеемся, что эта перезапись учета дисков потенциально будет готова для Bcachefs в Linux v6.9.

Read more:  Google добавляет визуальные примеры в генеративные ответы поиска AI

Более подробную информацию об этом новом коде можно найти в серии патчей.

2024-02-25 11:26:00


1708862126
#Bcachefs #публикует #патчи #для #перезаписи #дискового #учета

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.