Btrfs
Btrfs | |
---|---|
Разработчик | Oracle, Fujitsu, Red Hat[1] |
Файловая система | Btrfs |
Дата представления |
4.18: август 2018 года[2] (Linux) |
Структура | |
Содержимое папок |
B-tree |
Размещение файлов | экстент |
Ограничения | |
Максимальный размер файла | 16 ЭиБ |
Максимальная длина имени файла | 255 байт[3] |
Максимальный размер тома | 16 ЭиБ |
Допустимые символы в названиях | Все байты, кроме NUL и '/' |
Возможности | |
Атрибуты | POSIX |
Права доступа |
ACL |
Фоновая компрессия |
Да ( zstd ) |
Фоновое шифрование | нет |
Поддерживается ОС | Linux |
![]() |
Btrfs (
Изначально планировалось выпустить Btrfs v1.0 и зафиксировать формат хранения в конце 2008 года[6], однако формат был зафиксирован только 12 июня 2010 года[7].
Btrfs включена в основную ветвь ядра Linux начиная с версии 2.6.29-rc в статусе экспериментальной. Проведённая ресурсом Phoronix оценка производительности показала, что Btrfs с включённым режимом сжатия иногда опережает по производительности Ext4[8].
Возможности
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Btrfs_filesystem_usage_screenshot.png/330px-Btrfs_filesystem_usage_screenshot.png)
Считается, что Btrfs имеет ряд решений, впервые появившихся в ReiserFS[9], при этом не поддерживает некоторые базовые функции. Список возможностей системы по состоянию на 2011 год[10]:
- Проверка целостности без размонтирования;
- Доступные для записи снимки (writeable snapshots);
- Динамическое выделение индексных дескрипторов inode (нет ограничения на максимальное количество файлов в файловой системе);
- Добавление и удаление устройств хранения при смонтированной файловой системе (накопители и разделы легко подключаются в Btrfs и заменяются или удаляются при необходимости);
- Поддержка сложных многодисковых конфигураций — уровней 0, 1, 5, 6 и 10 (реализовано, но 5 и 6 пока не считаются стабильными), а также реализация различных политик избыточности на уровне объектов файловой системы — то есть возможно назначить, к примеру, зеркалирование для какого-либо каталога или файла (в планах).
- Сжатие (;
- Подтома (subvolumes);
- Эффективное клонирование файловой системы и создание инкрементальных архивов;
- Дефрагментация смонтированной файловой системы.
- Журналирование с копированием при записи.
- Лимиты (отдельно для каждого подтома или группы подтомов, по фактически занимаемому месту или по «официальному»)
- Контроль целостности блоков данных и метаданных с помощью контрольных сумм.
- Зеркалирование метаданных даже в конфигурации с одним накопителем (отключается на SSD).
- Полностью распределённое блокирование.
- Поддержка ACL.
- Защита от потери данных.[прояснить]
- Выбор хеш-алгоритма для контроля целостности данных и метаданных (SHA256, BLAKE2B.
- Поддержка NFS (пока неполная).
- Флаги совместимости, необходимые для изменения дискового формата в новых версиях Btrfs с сохранением совместимости со старыми.
- Резервные копии суперблока, по крайней мере по одной на устройство.
- Гибридные пулы (в планах) — btrfs старается перемещать наиболее используемые данные на самое быстрое устройство, вытесняя с него «залежавшиеся» блоки, эта политика хорошо согласуется с моделью использования SSD-накопителей совместно с дисковыми.
- Балансировка данных между устройствами в Btrfs возможна сразу после добавления диска к пулу, отдельной командой, а не только постепенно, в процессе использования (как это реализовано в ZFS).
- Диски для горячей замены, поддержка которых появилась и в ZFS (в планах).
- Офлайн-дедупликация (в примонтированном виде, но после окончания записи — ядро 3.12 и новее), в перспективе — дедупликация будет осуществляться во время записи файла.
Несмотря на то, что Btrfs изначально не способна вести себя как
В ранних версиях поддерживалась миграция с файловых систем ext3 и ext4 и обратно (до момента обновления), но начиная с версии ядра 4.0 использование функции не рекомендовано в связи с потенциальной опасностью[15].
Создание
Недостатки
Нельзя использовать
dd
, так как у них будут одинаковые UUID, что может привести к записи не в ту копию и повреждению всех данных[17]dd
в Btrfs необходимо использовать специальные утилиты Btrfs по управлению подтомами и механизм работы со снимками.
В связи с использованием по умолчанию техники копирования при записи, при большом количестве перезаписей случайных фрагментов файлов может возникать значительная
Примечания
- ↑ Which companies contribute to Btrfs? gmane.org (24 апреля 2014). Дата обращения: 18 июня 2014. Архивировано из оригинала 16 февраля 2018 года.
- ↑ список изменений . Дата обращения: 13 июля 2010. Архивировано 10 февраля 2010 года.
- ↑ Linux/VLFN - Исследование Etersoft на предмет увеличения длины имени файла . Дата обращения: 1 ноября 2014. Архивировано 1 ноября 2014 года.
- ↑ Btrfs Wiki: Main Page (англ.). Архивировано из оригинала 28 июня 2012 года.
- ↑ Sean Michael Kerner. A Better File System For Linux (англ.). InternetNews.com (30 октября 2008). — «The main goal is to let it {Linux} scale for the storage that will be available. Scaling is not just about addressing the storage but also means being able to administer and to manage it with a clean interface that lets people see what's being used and makes it more reliable.» Дата обращения: 30 октября 2008. Архивировано из оригинала 28 июня 2012 года.
- ↑ Btrfs Wiki: Development timeline (англ.). Архивировано 20 декабря 2008 года.
- ↑ [https://web.archive.org/web/20100612201526/http://lkml.org/lkml/2010/6/12/66 Архивная копия от 12 июня 2010 на Wayback Machine LKML: Christian Kujau: [PATCH] Remove EXPERIMENTAL flag from Btrfs]
- ↑ Where The Btrfs Performance Is At Today . Phoronix.com (9 июня 2010). Дата обращения: 9 июля 2010. Архивировано из оригинала 28 июня 2012 года.
- ↑ Theodore Ts’o. Re: reiser4 for 2.6.27-rc1 (1 августа 2008). Дата обращения: 22 января 2009. Архивировано из оригинала 28 июня 2012 года.
- ISSN 1470-4234.
- ↑ LZ4 Compression Support Is Unlikely For Btrfs — Phoronix . Дата обращения: 18 августа 2017. Архивировано 18 августа 2017 года.
- ↑ Compression — btrfs Wiki . Дата обращения: 18 августа 2017. Архивировано 12 июня 2017 года.
- ↑ Btrfs hilights in 5.5: new hashes . Дата обращения: 29 августа 2020. Архивировано 10 сентября 2020 года.
- ↑ Coherent Remote File System . Дата обращения: 31 мая 2009. Архивировано 20 февраля 2009 года.
- ↑ Conversion from Ext3 . Дата обращения: 31 мая 2009. Архивировано 19 февраля 2009 года.
- ↑ Релиз ядра Linux 5.0 Архивная копия от 14 мая 2019 на Wayback Machine — opennet 04.03.2019 «Добавлена возможность размещения раздела подкачки в файлах внутри ФС Btrfs…»
- ↑ Gotchas — btrfs Wiki . Дата обращения: 13 февраля 2017. Архивировано 14 июня 2017 года.
- ↑ Josef Bacik. Btrfs: The Swiss Army Knife of Storage (1 февраля 2012). Дата обращения: 13 июля 2010. Архивировано из оригинала 28 июня 2012 года.
Ссылки
- На английском языке
- Официальная страница Btrfs
- Первый анонс Btrfs
- Coherent Remote File System, основана на btrfs.
- A Better File System for Linux?
- На русском языке
- Btrfs — статья на Xgu.ru
- help.ubuntu.ru/wiki/btrfs — большая статья о btrfs на Ubuntu.ru
- Алексей Федорчук. Btrfs: прикинем быстродействие (16 января 2009). Дата обращения: 13 июля 2010. Архивировано из оригинала 19 мая 2012 года.
- Алексей Федорчук. Файловая система btrfs: Linux-ответ ZFS? (28 сентября 2009). Дата обращения: 13 июля 2010. Архивировано из оригинала 26 августа 2011 года.