Btrfs

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Btrfs
Разработчик

Oracle Corporation

Файловая система

Btrfs

Дата представления

Стабильная: 3.7.0, 11 декабря 2012[1][2]
Нестабильная: 3.4.3, май 2012 (Linux)

Структура
Содержимое папок

B-tree

Размещение файлов

экстент

Ограничения
Максимальный размер файла

16 Эксабайт

Максимальная длина имени файла

255 байт

Максимальный размер тома

16 EB

Допустимые символы в названиях

Все байты кроме NUL и '/'

Возможности
Атрибуты

POSIX

Права доступа

POSIX, ACL

Фоновая компрессия

Да (LZO, gzip)

Фоновое шифрование

нет

Поддерживается ОС

Linux

Btrfs (B-tree FS, «Better FS» или «Butter FS») — файловая система (ФС) для Linux, основанная на структурах Б-деревьев и работающая по принципу «копирование при записи» (copy-on-write). Опубликована компанией Oracle Corporation в 2007 году под лицензией GNU General Public License (GPL).[3] Одной из первоначальных целей разработки данной файловой системы было обеспечение достойной конкуренции популярной ZFS. Btrfs будет избавлена от многих недостатков, присущих другим современным файловым системам для Linux.

Btrfs считается стабильной, однако по состоянию на 2010 год не создано инструмента для проверки файловой системы и исправления ошибок[4]. Версия Btrfs v0.19 выпущена в июне 2009 года.[5]

Изначально планировалось выпустить Btrfs v1.0 (и зафиксировать формат хранения на диске) в конце 2008 года,[6] однако формат был зафиксирован только 12 июня 2010 года[7].

В одном из интервью Крис Мэсон (Chris Mason (англ.)), директор по разработке ядра Linux компании Oracle Corporation, основатель Btrfs, сказал:[8]

Основная задача — позволить ФС масштабироваться под вновь появляющиеся системы хранения. Масштабирование — это не просто возможность адресовать доступное пространство, это возможность управлять ФС с помощью простого интерфейса. Это сделает ФС более надёжной, и позволит видеть используемые ресурсы.

Btrfs включена в основную ветвь ядра Linux начиная с версии 2.6.29-rc,[5] но остаётся экспериментальной и не готова для промышленного использования. В июне 2010 года разработчики не рекомендовали использовать данную ФС ни для чего кроме тестирования, так как, по словам одного из разработчиков, она «могла съесть ваши данные» (англ. may eat your data).[9] Проведённая ресурсом Phoronix оценка производительности показала, что Btrfs с включённым режимом хранения данных в сжатом виде иногда опережает по производительности ФС Ext4.[10]

Возможности[править | править вики-текст]

Теодор Цо (англ.), разработчик файловых систем ext3 и ext4, сказал, что Btrfs «имеет несколько решений, присутствующих в ReiserFS/Reiser4».[11] В настоящее время Btrfs не поддерживает некоторые базовые функции, тем не менее, список текущих (и планируемых) возможностей Btrfs таков:

  • эффективная упаковка мелких файлов и индексированных каталогов;
  • динамическое выделение inode (нет ограничения на максимальное количество файлов в файловой системе);
  • снимки (snapshots) и снимки снимков;
  • различные внутренние корни файловых систем (подтома);
  • объектный уровень зеркалирования и расслоения данных;
  • Хеши на данные и метаданные (улучшенная гарантия целостности, текущий алгоритм хешей — CRC-32C, аппаратное ускорение которого реализовано в наборе инструкций SSE 4.2, альтернативные в планах;[12])
  • прозрачная компрессия (в данный момент доступно zlib (по умолчанию) и lzo, активируется при монтировании с опцией -o compress или -o compress=<тип>);
  • журналирование чтений-записей всех данных и метаданных;
  • сильная интеграция с Device mapper для поддержки многочисленных устройств с несколькими встроенными алгоритмами для работы с RAID;
  • эффективное инкрементальное резервное копирование и зеркалирование файловой системы;
  • миграция с файловой системы ext3 (ext4) и обратно (до момента обновления);[13]
  • режим оптимизированной работы под SSD (активируется при монтировании с опцией -o ssd[14]);
  • дефрагментация в рабочем режиме;

Планируемые возможности:[15]

Несмотря на то что Btrfs изначально неспособна вести себя как распределённая (сетевая) файловая система, компания Oracle принялась за реализацию сетевого протокола файловой системы CRFS[16], который спроектирован и оптимизирован как раз под Btrfs.

Недостатки[править | править вики-текст]

  • При большом количестве перезаписей случайных фрагментов файлов возникает фрагментация (из-за copy-on-write)[17]

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Oracle Announces Production Release of Unbreakable Enterprise Kernel Release 2 for Oracle Linux
  2. SUSE Linux Says Btrfs is Ready to Rock | Linux.com
  3. Btrfs Wiki: Main Page (англ.). Архивировано из первоисточника 28 июня 2012.
  4. Re: 2.6.36-rc1 btrfs still unstable
  5. 1 2 Btrfs Wiki: Changelog (англ.). Проверено 13 июля 2010.
  6. Btrfs Wiki: Development timeline (англ.)(недоступная ссылка — история). Архивировано из первоисточника 20 декабря 2008.
  7. LKML: Christian Kujau: [PATCH] Remove EXPERIMENTAL flag from Btrfs
  8. Sean Michael Kerner. A Better File System For Linux (англ.). InternetNews.com (30 October 2008). Проверено 30 октября 2008. Архивировано из первоисточника 28 июня 2012.
  9. Colin Watson. btrfs installations ready for testing (англ.). Проверено 13 июля 2010.
  10. Where The Btrfs Performance Is At Today. Phoronix.com (09 июня 2010 г.). Проверено 9 июля 2010. Архивировано из первоисточника 28 июня 2012.
  11. Theodore Ts'o. Re: reiser4 for 2.6.27-rc1 (1 августа 2008). Проверено 22 января 2009. Архивировано из первоисточника 28 июня 2012.
  12. Wiki FAQ: What checksum function does Btrfs use?
  13. Conversion from Ext3
  14. Btrfs and Solid State Disks (SSD) (англ.). Архивировано из первоисточника 28 июня 2012.
  15. Amanda McPherson. A Conversation with Chris Mason on BTRfs: the next generation file system for Linux (22 июня 2009). Проверено 13 июля 2010. Архивировано из первоисточника 28 июня 2012.
  16. Coherent Remote File System
  17. Josef Bacik. Btrfs: The Swiss Army Knife of Storage (1 февраля 2012). Проверено 13 июля 2010. Архивировано из первоисточника 28 июня 2012.

Ссылки[править | править вики-текст]

На английском языке[править | править вики-текст]

На русском языке[править | править вики-текст]