Файловая система Btrfs: Определение, особенности, плюсы и минусы

Что такое файловая система Btrfs и стоит ли ее использовать?

обзор файловой системы btrfs

У вас есть новое устройство Linux, и оно уже хочет, чтобы вы принимали важные решения? Какой зануда! Выбор файловой системы для Linux может оказаться непростой задачей, поэтому мы можем с этим справиться. К счастью для вас, мы также много знаем об этом.

Сегодня мы обсудим файловую систему Btrfs и ее преимущества перед конкурирующей файловой системой EXT4.

Объяснение файловых систем

файловая система linux btrfs

Самый простой способ объяснить файловую систему — это база данных всех файлов в операционной системе. В каждой ОС есть файловая система, которая помогает эффективно хранить данные и извлекать их при необходимости. Файловая система указывает, где и как хранится тот или иной файл.

Как вы понимаете, файловая система имеет огромное значение для нормального функционирования вашей машины и всей ее системы хранения данных.

Если вы хотите узнать больше, смотрите видео ниже:

Скачать бесплатно

Для Windows XP/Vista/7/8/10/11

Скачать бесплатно

Для macOS X 10.10 или более поздней версии

Хотя в Windows и macOS есть файловые системы по умолчанию, которые невозможно заменить, Linux в этом отношении уникален и немного более требователен.

При установке Linux на устройство необходимо выбрать между Ext, Ext2, Ext3, Ext4, JFS, ReiserFS, XFS, Btrfs, ZFS и файловыми системами подкачки. По умолчанию для ОС Linux используется Ext4, но все больше и больше пользователей предпочитают заменять его на Btrfs.

Почему?

Давайте узнаем.

Что такое файловая система Btrfs?

структура файловой системы btrfs

Как и все остальные файловые системы, она контролирует, что происходит с файлами после их изменения. У Btrfs есть уникальный подход к этому. Основной характеристикой этой файловой системы является так называемая технология управления ресурсами при копировании при записи (COW). Этот механизм не заменяет файлы измененными версиями, но сохраняет обе версии, сохраняя копию нового файла.

Отличная особенность файловой системы Btrfs заключается в том, что она не создает дубликатов путем создания копий.

Как это возможно, спросите вы?

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

По этой и другим причинам Btrfs стала очень популярной с появлением Fedora в начале 2000-х годов, особенно для сценариев использования, связанных с большим объемом памяти и высокой производительностью.

Файловая система Btrfs также называется файловой системой B-tree. Она стабильно работает в ядре Linux с 2013 года и остается полностью открытым исходным кодом.

Особенности файловой системы Btrfs

Btrfs - это один из многочисленных вариантов файловой системы для устройств под управлением Linux.

Помимо моментальных снимков, которые позволяют хранить до 16 экзбибайтов или 18446,7 петабайта данных, файловая система Btrfs предлагает ряд других возможностей. Пользователи Linux могут найти их ценными и предпочтительными по сравнению с альтернативными возможностями файловой системы.

Среди лучших возможностей файловой системы Btrfs можно назвать следующие.

  • Моментальные снимки

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

создание моментальных снимков в файловой системе btrf
  • Клонирование файлов

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

  • Дедупликация

Чтобы увеличить потребление метаданных и сэкономить место на диске, Btrfs выполняет дедупликацию данных, ища файлы с одинаковыми блоками данных и удаляя одну копию блоков данных, а остальные части объединяя в виде копий-клонов файлов.

  • Файловое хранилище на основе экстентов

Btrfs — это файловое хранилище на основе расширений, то есть для каждого файла, который вы храните в Linux, требуется отдельный экстент. Большие файлы иногда могут распространяться по нескольким экстентам, и в этом случае метаданные соединяют их. Btfrs позволяет изменять весь экстент данных, копируя его в другое место, чтобы предотвратить потерю данных из-за отключения электроэнергии.

  • Замена файлов и разделов

Файловая система Btrfs позволяет создавать своп-файлы на всех устройствах, использующих Linux Kernel 5.0 или новее.

  • Онлайн-дефрагментация

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

  • Подтома

Корневое дерево файловой системы Btfrs разветвляется на двоичные деревья. Каждое двоичное дерево — это отдельное пространство имен, которое мы называем субтомом.

btrfs subvolume
  • Сжатие файлов

Файловая система автоматически сжимает и распаковывает файлы Btrfs в фоновом режиме.

  • Динамическое распределение индексов

Динамическое распределение индексов позволяет хранить столько файлов, сколько вам нужно, пока у вас есть свободное место на диске. Оно распределяет индексные индексы по файлам, а не фиксированное количество индексных узлов.

  • Поддержка RAID

Одна из самых привлекательных особенностей Btrfs - поддержка нескольких уровней RAID, включая Btrfs RAID 0, RAID 1, RAID 10, RAID 5 и RAID 6.

  • Самовосстановление

Файлы Btfr самовосстанавливаются с помощью контрольных сумм данных и метаданных. Система создает две копии метаданных для каждого файла, а затем проверяет обе. Обнаружив две несовпадающие копии, оно идентифицирует поврежденный файл, сравнивая его с другой копией (зеркальное отображение метаданных). В качестве последнего шага для восстановления поврежденных данных используются тома RAID.

Стабильность Btrfs

Файловая система Btrfs работает стабильно с 2013 года. Это означает, что Btrfs уже давно можно использовать и полностью функционировать, но достаточно ли он надежен? Может ли оно поддерживать большие объемы данных и обеспечивать высокую производительность? Ну, это зависит от того, кто спрашивает.

Если вы планируете использовать его в производственной среде, возможно, некоторые функции еще не готовы. Мы рекомендуем проверить официальную страницу Status -Btrfs Wiki, где команда Btrfs делится информацией о текущем прогрессе. На данный момент страница выглядит следующим образом:

«Кодовая база Btrfs стабильна. Однако новые функции все еще находятся в стадии разработки. Прилагаются все усилия для обеспечения стабильного и быстрого выполнения каждого обязательства. Такие быстрые темпы разработки означают, что файловая система заметно улучшается с каждым новым выпуском Linux, поэтому пользователям настоятельно рекомендуется использовать самое современное ядро».

Преимущества файловой системы Btrfs

Это самые заметные преимущества файловой системы Btrfs.

  • Гибкое и быстрое изменение размера с помощью подтомов

Новым пользователям Linux, возможно, будет легче понять концепцию подтомов, если сравнить их с разделами. Однако, несмотря на то, что они ведут себя одинаково, это не одно и то же. Фактически, подтома Btrfs больше напоминают тома в диспетчере логических томов (LVM), чем традиционные разделы диска.

Как бы то ни было, подтома Btfsr обеспечивают гибкое и быстрое изменение размера.

Как это может быть полезно на практике?

Например, подтома позволяют создавать root и home отдельно при установке Linux. Это автоматически разделит пространство, что избавит вас от необходимости выбирать размеры разделов для root и home.

  • Сжатие данных (больше свободного места)

Btrfs очень серьезно относится к эффективности управления ресурсами.

Одним из наиболее убедительных преимуществ этой файловой системы является ее способность значительно уменьшить размер файла. Это дает ряд замечательных преимуществ, и речь идет не только о большем пространстве для хранения данных, что является очевидным преимуществом сжатия данных.

Еще один положительный побочный эффект сжатия данных в файловой системе Btrfs заключается в том, что оно менее утомительно для устройств хранения данных на основе флэш-памяти, что означает увеличение срока службы устройства.

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

  • Использование моментальных снимков

Снимки - это наиболее ценная особенность файловой системы Btfrs, поскольку они упорядочивают пространство хранения и позволяют легко восстанавливать данные.

Снимки Btrfs настолько малы, что не занимают дополнительного места для хранения. Тем не менее, они хранят копии всего, что находится в файловой системе.

Это огромное преимущество для частных и корпоративных пользователей, поскольку оно устраняет одну из главных проблем, с которыми сталкиваются современные пользователи, — человеческий фактор. Если вы случайно удалите или потеряете хотя бы часть файла, использование снимков избавит вас от необходимости работать с поврежденными или утерянными данными.

Недостатки файловой системы Btrfs

Следующие недостатки — самые слабые стороны Btrfs.

  • Сложное восстановление после повреждений

Хотя контрольные суммы и работают, они довольно сложны. Другая проблема заключается в том, что вы не можете использовать восстановление поврежденных файлов Btrfs в несмонтированных версиях.

  • Нет шифрования на уровне файловой системы

При использовании Btrfs невозможно быстро защитить файлы из-за отсутствия встроенного шифрования Btrfs. Вы можете добавить его через сторонних поставщиков, если не против преодолеть дополнительные трудности.

  • Фрагментация

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

Фрагментация является проблемой, поскольку она снижает производительность.

Пользователи Btrfs могут решить эту проблему с помощью онлайн-дефрагментации, которая в некоторой степени работает. Дефрагментация — не лучшее решение, поскольку она создает еще одну копию файла и увеличивает размер снимка.

  • Нестабильная поддержка Raid

Все верно — хотя файловая система Btrfs стабильна, RAID является одним из элементов, которые все еще находятся в стадии разработки.

Btrfs против EXT4 — какая из них лучше?

сравнение btrfs и ext4

Остается главный вопрос: что лучше: Btrfs или Ext4? Ранее мы упоминали, что Ext4 — это файловая система Linux по умолчанию. Если вы с ним не знакомы, то все, что вам нужно знать, - это то, что Ext4 - давно известный и очень надежный.

Многочисленные различия между Btrfs и Ext4 связаны с их фундаментальным различием: Btrfs — это файловая система типа копирования на запись, а Ext4 — система журналирования. Файловые системы журналирования хранят метаданные в журнале, что помогает им отслеживать файлы и изменения в них.

К сожалению для Ext4, в системах журналирования отсутствуют многие важные возможности систем COW.

Благодаря механизму COW в Btrfs есть снимки, дедупликация и сжатие, а в Ext4 — нет. По сути, это означает, что Btrfs может экономить место и хранить гораздо больше данных, чем Ext4 — до 16 раз больше.

Кроме того, Btrfs может управлять несколькими устройствами благодаря поддержке RAID. Ext4 не может.

Еще одно важное отличие - наличие контрольной суммы, которая позволяет Btrfs самовосстанавливаться и восстанавливать поврежденные данные, в то время как Ext4 не может помочь с поврежденными данными.

С другой стороны, Ext4 имеет шифрование на системном уровне, в отличие от Btrfs. Конечно, в Btrfs всегда можно добавить шифрование от сторонних производителей, но это все же довод в пользу Ext4. Поскольку это не файловая система COW, Ext4 не создает проблем с фрагментацией, что является еще одним преимуществом.

Итак, кто из них победитель?

В конечном счете, это вопрос качества и количества. Нельзя сказать, что Btrfs — это некачественная система, но она все же недостаточно стабильна по сравнению с проверенной временем Ext4. Btrfs предоставляет больше места, но может вас подвести. Ext4 намного меньше, но зато прочен и надежен.

Как восстановить файлы из файловой системы Btrfs?

Допустим, вы решили использовать Btrfs, потому что вам нужны снимки, дедупликация и сжатие, так что это вполне разумно. Однако что, если у вас все же не получится? Если Btrfs потеряет ваши данные, вы можете что-то с этим сделать?

К счастью, да!

Существует не только способ восстановления данных из Btrfs, но и три разных метода:

  1. Скрипт «Удалить Btrfs»
  2. Утилита восстановления Btrfs
  3. Программное обеспечение для восстановления данных Linux

Вы можете ознакомиться с пошаговым руководством по восстановлению файлов из Btrfs на странице.

Сразу скажем — первые два метода требуют программирования. Если вы не знаете, как это сделать, или все еще являетесь программистом-любителем, возможно, лучше потренировать свои навыки в другом случае. Ошибка в кодировании может создать более серьезные проблемы, чем потеря данных.

Самый простой (и безопасный) способ восстановить данные с Btrfs - это использовать программу для восстановления данных Linux, например Wondershare Recoverit. Wondershare Recoverit - это инструмент для восстановления данных, который может помочь вам восстановить более 1000 типов файлов в более чем 500 сценариях потери данных, а в случае с Linux он также работает через удаленное соединение.

Вот видеоинструкция о том, как использовать Wondershare Recoverit Linux File Recovery для восстановления удаленных файлов с Btrfs.

Скачать бесплатно

Для Windows XP/Vista/7/8/10/11

Скачать бесплатно

Для macOS X 10.10 или более поздней версии

Часто задаваемые вопросы о файловой системе Btrfs

И да, и нет. Хотя Btrfs имеет множество отличных возможностей управления файловой системой, включая функцию самовосстановления, она все еще находится в стадии разработки, и многие пользователи сообщают о проблемах с Btrfs RAID 5.

Это исключительно косвенное доказательство. Btrfs и ZFS предлагают различные возможности, которые пользователи сочтут более или менее ценными. Пользователи, которым требуется много свободного места для хранения, предпочитают Btrfs, но ZFS, как правило, более надежна.

Да, вы можете использовать Btrfs в Windows. Существует также Btrfs для устройств Mac, но ни один из них не имеет официальной поддержки.

Вывод

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

Кроме того, Btrfs - единственный претендент на звание лидера, имеющий снимки COW и другие функции для уменьшения размеров файлов и самовосстановления. Если вам нужно много свободного места, это несомненный выбор. Даже если Btrfs не сможет защитить ваши данные, вы всегда можете воспользоваться Wondershare Recoverit, чтобы восстановить утраченное.

Статьи по теме