Loading AI tools
файловая система Linux компании Oracle. Из Википедии, свободной энциклопедии
Btrfs (B-tree FS, «Better FS» или «Butter FS») — файловая система для Linux, основанная на структурах B-деревьев и работающая по принципу «копирование при записи» (copy-on-write). Опубликована корпорацией Oracle в 2007 году под лицензией GNU General Public License[4]. Среди первоначальных целей разработки было обеспечение конкуренции файловой системе ZFS (использование которой в Linux было затруднено лицензионными ограничениями) и избавление от недостатков, присущих ранним файловым системам для Linux. Основной автор — Крис Мэйсон (англ. Chris Mason) — отмечал также наличие простого интерфейса управления файловой системой в качестве одной из целей создания[5].
Btrfs | |
---|---|
Разработчик | Oracle, Fujitsu, Red Hat[1] |
Файловая система | Btrfs |
Дата представления |
4.18: август 2018 года[2] (Linux) |
Структура | |
Содержимое папок | B-tree |
Размещение файлов | экстент |
Ограничения | |
Максимальный размер файла | 16 ЭиБ |
Максимальная длина имени файла | 255 байт[3] |
Максимальный размер тома | 16 ЭиБ |
Допустимые символы в названиях | Все байты, кроме NUL и '/' |
Возможности | |
Атрибуты | POSIX |
Права доступа | POSIX, ACL |
Фоновая компрессия | Да (LZO, zlib начиная с ядра 4.14: — zstd) |
Фоновое шифрование | нет |
Поддерживается ОС | Linux |
Медиафайлы на Викискладе |
Изначально планировалось выпустить Btrfs v1.0 и зафиксировать формат хранения в конце 2008 года[6], однако формат был зафиксирован только 12 июня 2010 года[7].
Btrfs включена в основную ветвь ядра Linux начиная с версии 2.6.29-rc в статусе экспериментальной. Проведённая ресурсом Phoronix оценка производительности показала, что Btrfs с включённым режимом сжатия иногда опережает по производительности Ext4[8].
Считается, что Btrfs имеет ряд решений, впервые появившихся в ReiserFS[9], при этом не поддерживает некоторые базовые функции. Список возможностей системы по состоянию на 2011 год[10]:
Несмотря на то, что Btrfs изначально не способна вести себя как распределённая (сетевая) файловая система, компания Oracle принялась за реализацию сетевого протокола файловой системы CRFS[14], который спроектирован и оптимизирован как раз под Btrfs.
В ранних версиях поддерживалась миграция с файловых систем ext3 и ext4 и обратно (до момента обновления), но начиная с версии ядра 4.0 использование функции не рекомендовано в связи с потенциальной опасностью[15].
Создание файла подкачки в Btrfs возможно с марта 2019 года (Linux kernel 5.0), файл при этом создается с флагом nocow и должен располагаться на одном накопителе[16].
Нельзя использовать снимки LVM и копии тома, сделанные с помощью dd
, так как у них будут одинаковые UUID, что может привести к записи не в ту копию и повреждению всех данных[17]; вместо использования LVM и dd
в Btrfs необходимо использовать специальные утилиты Btrfs по управлению подтомами и механизм работы со снимками.
В связи с использованием по умолчанию техники копирования при записи, при большом количестве перезаписей случайных фрагментов файлов может возникать значительная фрагментация[18]; решением может стать отключение COW (возможно только для новых и пустых каталогов/файлов).