Операционная система Linux поддерживает достаточно широкий выбор файловых систем. В этой статье мы рассмотрим преимущества и недостатки использования файловой системы Btrfs
Содержание
- Что являет собой файловая система Btrfs?
- Возможности файловой системы Btrfs
- Структура файловой системы Btrfs
- Главные недостатки файловой системы Btrfs
- Возможности восстановления файловой системы Btrfs
- Как открыть накопитель Btrfs в Windows?
- Лучшие альтернативы файловой системе Btrfs?
Что являет собой файловая система Btrfs?
Btrfs – это сравнительно новая файловая система для UNIX-подобных операционных систем, которая обладает многими современными функциями и в то же время обеспечивает высокую производительность.
Изначально файловая система Btrfs была разработана в качестве альтернативы ZFS. Все дело в том, что ZFS это разработка компании SunMicrosystems, соответственно она распространяется на проприетарной основе. Это противоречит философии Linux, которая предоставляется бесплатно. Кроме того, разработчики ставили перед собой цель преодолеть многие недостатки, которые присутствовали в файловых системах Linux, плюс управление Btrfs должно было быть максимально простым.
Первая версия файловой системы Btrfs появилась еще в 2007 году. Ее представила компания Oracle. Также, как и многие другие файловые системы Btrfs использовала адреса блоков данных для хранения информации. Однако структура метаданных, в которой хранились адреса блоков была организована в виде B-деревьев.
Но самым главным нововведением стало то, что теперь при внесении изменений в файлы пользователя – меняется не весь файл полностью, а только та часть, которая содержит изменения.
Использование B-деревьев позволило реализовать метод «копирования при записи», суть которого заключается в использовании общей копии блоков данных при чтении информации. Благодаря такому подходу сильно возрастает производительность файловой системы. В некоторых случаях скорость работы даже выше чем в Ext4. Кроме того, такая структура позволяет делать мгновенные снапшоты файловой системы практически без падения производительности.
На сегодняшний день файловая система Btrfs активно развивается и все чаще в интернете появляются новости о возможности использования Btrfs вместо Ext4 в новых дистрибутивах Linux. Это является причиной повышенного внимания к этой файловой системе как среди профессионалов, так и среди обычных пользователей Linux.
Возможности файловой системы Btrfs
Структура файловой системы Btrfs в виде B-деревьев позволила разработчикам внести целый ряд современных функций, которых нет, к примеру, в Ext4. Среди наиболее значимых можно выделить следующие:
1) Максимальный размер записываемого файла заметно вырос. Теперь он составляет 16 Экзабайт (вместо 1 Экзабайта в Ext4);
2) Возможность создавать снапшоты (снимки файловой системы) без потери производительности. Теперь пользователи могут создавать снапшоты для чтения или для записи;
3) Возможность провести проверку целостности файловой системы без ее размонтирования. В Btrfs проверка целостности производится при помощи нескольких команд;
4) Появился новый фоновый процесс, главной задачей которого является обнаружение и исправление ошибок. Этот же процесс автоматически производит дефрагментацию и дедупликацию данных;
5) Количиество inodes выделяется динамически. Это означает, что вы никогда не столкнетесь с ситуацией, когда у вас есть свободное пространство на диске, но вы не можете создать файл из-за отсутствия свободных inodes.
6) Использование контрольных сумм как для данных, так и для метаданных. Для их расчёта используется алгоритм crc32. Такой подход позволяет быстро определять повреждения блоков;
7) Btrfs полностью оптимизирована для установки и работы на SSD накопителях. Определение типа накопителя происходит автоматически и применяются соответствующие параметры файловой системы;
8) Появилась возможность внедрения сложных многодисковых конфигураций. То есть теперь вы можете создать некий аналог RAID 0, 1, 5, 6 или 10 используя возможности файловой системы. Уровни 5 и 6 пока что находятся на экспериментальной стадии. В будущем также планируется реализовать избыточность для отдельных файлов и папок.
9) Внедрена поддержка сжатия. Для этого используется Zlib и LZO;
10) Поддержка подтомов;
Разработчики приложили огромное количество усилий, что позволило им создать достаточно эффективную файловую систему, которая уже внедрена во многие дистрибутивы Linux, на экспериментальном уровне. Это может служить подтверждением тому, что в ближайшем будущем Btrfs будет использоваться в Linux на постоянной основе.
Структура файловой системы Btrfs
Структура файловой системы Btrfs немного отличается от структуры обычных файловых систем. Схематически она выглядит примерно следующим образом:
Эту схему следует рассматривать снизу-вверх. Сначала мы видим блоки памяти, которые выделила файловая система в соответствующем порядке. После этого они объединяются в некое логическое адресное пространство. То есть, на этом уровне каждому блоку присваивается адрес.
Затем, в ход идут метаданные и экстенты, адресация которых происходит уже на логическом уровне. На этом же уровне происходит реализация избыточности (аналог RAID 0, 1, 5, 6, 10).
Предпоследним уровнем являются субтома (Subvolumes). На этом уровне происходит инкапсуляция нижних слоев. Это дает возможность отображать данные в том виде, к какому мы все привыкли – файлы и папки.
На верхнем уровне находятся данные пользователя уже в обычном виде.
Более опытные пользователи могли заметить, что Btrfs не использует суперблок, и другие привычные всем элементы файловой системы. Все дело в том, что такая структура более эффективно использует дисковое свободное пространство накопителя и увеличивает производительность файловой системы.
Несмотря на все преимущества файловой системы Btrfs, недостатков у нее тоже немало. Об этом пойдет речь в следующем пункте этой статьи
Главные недостатки файловой системы Btrfs
Большинство преимуществ файловой системы Btrfs уже упоминались во втором пункте этой статьи в виде нововведений. Поэтому пересчитывать их второй раз — нет смысла. Мы же предлагаем рассмотреть главные недостатки Btrfs, которых тоже немало:
- Высокий уровень фрагментации данных – возникает из-за использования технологии «копирования при записи». Чаще всего наблюдается при перезаписи большого количества мелких блоков данных.
- Активная разработка – хоть файловая система Btrfs и является достаточно стабильной, из-за активной разработки в ней регулярно появляются новые функции, либо модернизируются старые. Это может привести к проблемам и потенциальной потере данных. В некоторых случаях после модернизации разных функций файловой системы, программы которые их использовали начинают вести себя не корректно.
- Слишком мало документации – несмотря на то, что с момента релиза файловой системы Btrfs прошло уже более десяти лет (фактически она только на год моложе Ext4), на сегодняшний день документации не слишком много. Соответственно у пользователей могут возникать вопросы, ответы на которые найти будет нелегко.
- Для работы со снапшотами лучше использовать специальную утилиту Btrfs, так как использование стандартного функционала Linux не всегда работает корректно и может привести к повреждениями информации.
Несмотря на то, что плюсов заметно больше, чем минусов, мы рекомендуем тщательно все взвесить перед тем, как начать использовать ту или иную файловую систему. Это позволит избежать многих проблем в будущем.
Возможности восстановления файловой системы Btrfs
Во втором пункте этой статьи мы вскользь упоминали работу с субтомами и работу с метаданными. Давайте рассмотрим эти процессы более детально.
Начнем с того, что поскольку файловая структура Btrfs позволяет объединять несколько дисков в одно логическое пространство (некий аналог LVM) – это позволяет применять зеркалирование как для метаданных, так и для субтомов. Этот параметр настраивается при создании файловой системы.
Однако суть вот в чем: если пользователь настроил зеркалирование метаданных – в случае повреждения файла или структуры файловой системы, в качестве источника информации для восстановления будет взята одна из копий. Но самое главное, поскольку метаданные намного меньше по объему, нежели данные пользователя – производительность практически не падает.
Если в обычном RAID 1 массиве скорость записи будет в два раза ниже чем при записи на обычный диск, то в Btrfs вы практически не ощутите снижения скорости.
Помимо RAID 1 вы можете использовать все классические типы RAID массивов.
Чтобы выбрать тип массива RAID для субтомов – прочтите статью «Что такое RAID массивы и как их использовать?» Там вы найдете много полезной информации по этому вопросу.
Еще одним важным моментом является использование контрольных сумм для данных пользователя и для метаданных. При чтении файла Btrfs постоянно их анализирует и в случае малейших несовпадений, при помощи одной из копий метаданных система автоматически восстановит информацию.
Таким образом, файловая система Btrfs позволяет эффективно выявлять скрытые повреждения и исправлять поврежденные файлы.
Как открыть накопитель Btrfs в Windows?
Нередко у пользователей Linux возникает необходимость открыть флэшку или съемный диск в операционной системе Windows — начиная от обычного копирования файлов и заканчивая более специфичными задачами. Но так или иначе, при подключении накопителя с файловой системой Btrfs вы увидите ошибку.
Все дело в том, что операционная система Windows по умолчанию может распознать только три типа файловых систем: NTFS, FAT (16, 32) и exFat. Все остальные она не понимает.
Однако есть несколько сравнительно простых способов как открыть Btrfs накопитель в Windows.
Первый (и наиболее правильный) способ заключается в использовании программы RS Partition Recovery. Вы просто устанавливаете программу и сразу же можете работать с Btrfs накопителем. Все предельно просто.
RS Partition Recovery очень проста в использовании и абсолютно не требовательна к ресурсам компьютера.
Но самое главное, RS Partition Recovery позволяет восстановить утерянные данные. Если вы случайно удалите важный файл или отформатируете накопитель – вы без проблем сможете вернуть важные данные.
На додачу, RS Partition Recovery поддерживает ВСЕ современные файловые системы, соответственно вы сможете отрыть в Windows практически любой накопитель. Независимо от типа файловой системы.
Все вышеперечисленные пункты делают программу RS Partition Recovery практически универсальным инструментом, который должен быть в арсенале каждого пользователя.
Второй способ заключается в установке специального драйвера, который обеспечит чтение файловой системы Btrfs. На сегодняшний день существуют два драйвера от разных производителей – WinBtrfs и Btrfs for Windows.
Оба этих драйвера работают, хоть и на небольшой скорости. Но самым главным недостатком этого способа является то, что нередко эти драйвера конфликтуют с драйверами устройств Windows.
Таким образом, достаточно часто вместо поддержки файловой системы Btrfs пользователи получают нерабочую Windows. Кроме того, нередко из-за конфликта драйверов система некорректно работает с Btrfs накопителем и данные повреждаются.
Также часто восстановить работоспособность системы получается только после полной переустановки Windows, что ведет к потере данных на диске С:\
Поэтому мы рекомендуем использовать первый способ, так как он более эффективен и безопасен.
Лучшие альтернативы файловой системе Btrfs?
Несмотря на то, что файловая система Btrfs обеспечивает высокую производительность и обладает всеми современными функциями, многие до сих пор боятся не хотят ее использовать, мотивируя это тем, что надежность гораздо важнее производительности.
Тут следует отметить, что на сегодняшний Btrfs достаточно надежна и уже добавлена во многие дистрибутивы Linux на тестовом уровне. Если этот довод вас не убедил – тогда лучшей альтернативой Btrfs для домашнего использования будет старая добрая Ext4.
Она проверена временем и все знают, чего от нее ожидать. Однако вам придется пожертвовать многими современными фичами. В том числе и некоторыми функциями безопасности, которые есть в Btrfs.
Если же речь идет об использовании на сервере – тогда лучшей альтернативой будет файловая система ZFS. Однако для ее использования вам придется изучить множество команд и утилит. В противном случае вы не сможете раскрыть весь ее потенциал и смысла в такой затее не будет.
Поэтому вы должны тщательно взвесить все варианты и выбрать вариант, который наиболее точно соответствует вашим требованиям.
Мы же надеемся, что смогли максимально облегчить вам выбор файловой системы для использования.