BTRFS или EXT4: обзор систем, производительность, преобразование
В Linux все является файлом. Тип организации в Linux является хорошей основой повышения безопасности ОС. Системы монтируются в каталог, файлы которого формируют его содержимое. Такой каталог называется точкой монтирования. Когда файловая система BTRFS и EXT4 смонтирована, собственные файлы точки монтирования будут обнаруживаться ею. Эта замечательная особенность Linux, позволяет оперативно монтировать и деинсталлировать различные файловые системы, без необходимости применения драйверов. Это дает пользователям и разработчикам свободу выбора для обработки документов.
История развития файловой системы
При написании исходного ядра Linux Линусу Торвальдсу нужна была новая файловая система, но он не хотел писать ее и просто использовал Minix, написанную Эндрю С. Таненбаумом и являющуюся частью ОС Unix-подобной ОС Minix, написанной для образовательных целей. Ее код до сих пор находится в свободном доступе и имеет соответствующую лицензию.
Minix имеет структуры, большинство из которых расположены в разделе, где генерируется файловая система - это загрузочный сектор в первом секторе жесткого диска, где он установлен. Загрузочный блок включает в себя загрузочную запись и таблицу разделов.
Оригинальная файловая система EXT (Extended) была написана Rémy Card и выпущена совместно с Linux в 1992 году, для преодоления некоторые ограничений размера Minix. Основные структурные изменения коснулись метаданных ОС, основанной на Unix (UFS), также известной как FFS. EXT имела значительные проблемы и была быстро заменена EXT2, а затем EXT3.
EXT4 – последняя модификация оригинальной файловой системы. Она повышает производительность, функциональность и пропускную способность ОС. Для безопасности были добавлены метаданные и контрольные суммы журнала. Временные метки были улучшены с добавлением интервалов вплоть до наносекунд.
В 2014 году произошли значительные изменения - два наиболее важных профессиональных дистрибутива Linux Red Hat и SUSE, попрощались с классической файловой системой EXT и выпустили новые стандарты - BTRFS и XFS. B-tree - это файловая система следующего поколения для Linux, произносится как Butter FS или B-tree FS. BTRFS имеет ряд функций, которые делают его привлекательным решением для локального дискового хранилища. Тем не менее окончательный выбор BTRFS или EXT4 остается за пользователем.
Типы файлов
В Linux все рассматривается как файл, даже такие устройства, как принтеры и дисководы. Поскольку все данные, по сути, представляют собой поток байтов, каждое устройство может логически рассматриваться как файл.
Для того чтобы правильно сделать выбор – BTRFS или EXT4, нужно понимать строение файловой системы. Все файлы в Unix можно условно разделить на 3 типа, а именно:
- Обычные;
- каталоги;
- устройства.
Последние два интуитивно не похожи на файлы, поэтому считаются «специальными». Первый тип, перечисленный выше, является обычным файлом, то есть без "специального назначения". Он состоит из потоков данных (байтов), хранящихся на каком-то физическом устройстве. Примеры - простые текстовые документы, приложения, содержащие исходный код высокого уровня, исполняемые текстовые и двоичные файлы.
Второй тип - специальный файл, называемый каталогом. Этот тип выступает в качестве контейнера для других категорий, называемых подкаталогом. Они не содержат данных в пользовательском смысле, а только ссылки на файлы, содержащиеся в них.
Третья категория, упомянутая выше, является устройством. Это еще один специальный тип, который используется для описания физического устройства, такого как принтер или портативный накопитель. В этом случае BTRFS или EXT4 не будут содержать никаких данных, а просто отображают информацию, поступающую на описываемое устройство.
BTRFS: масштабирование для хранилищ
BTRFS основан на B-дереве копирования при записи COW. По словам Криса Мейсона, автора BTRFS, его цель состояла в том, чтобы позволить Linux масштабироваться для доступных хранилищ. Масштабирование - это не только обращение к хранилищу, но и возможность администрирования и управления с помощью простого интерфейса, позволяющего пользователям видеть, что используется, делая процесс более надежным. Поэтому выбор BTRFS или EXT4 имеет больше преимуществ у первого стандарта.
BTRFS также является системой хранения на основе экстентов, таких как XFS. Он экономит место для небольших файлов и индексированных каталогов и поддерживает динамическое размещение "inode". Он обрабатывает несколько устройств хранения и обеспечивает поддержку чередования RAID, зеркалирования, а также совместное чередование и зеркалирование. Он также имеет поддержку флэш-накопителей с прямой поддержкой операций TRIM/сброс.
Система поддерживает сжатые, записываемые и доступные данные для чтения снимков, а также эффективное инкрементное резервное копирование. Эпитома позволяют разделять внутренние корни файловой системы, а также реализацию квот и внешней дедупликации. Эти функции очень полезны во встроенных системах высокой доступности.
BTRFS имеет минимальную информацию, хранящуюся в фиксированных местах. Это является преимуществом для миграции EXT2/3/4, поскольку преобразование на месте возможно при условии наличия достаточного свободного места. Кроме того, стандарт является базой хранения для Ceph, файловой системы кластера. Для пользователя достаточно этих аргументов при выборе BTRFS и EXT4.
Расширенная система
Этот многолетний стандарт является семейством, которое включает в себя EXT2, EXT3 и EXT4 и до сих пор де-факто широко используется.
EXT2 был представлен в 1993 году и поддерживал функции Linux, такие как символические ссылки и длинные имена файлов, обрабатывал тома до 32 ТБ и файлы размером до 2 ТБ. Формат по-прежнему используется во многих хранилищах на основе флэш-памяти вместе с FAT. В нем отсутствует система журналов, присущая стандартам EXT3 и EXT4. Для размещения EXT2 используется многоуровневая иерархия, которая обеспечивает быстрый доступ к файлам меньшего размера. Большие файлы добавляют одно- и двухуровневую ссылку, прежде чем станут доступны.
EXT4 обладает рядом функций, включая файловые системы размером до 1 байта и файлы до 16 Тбайт. Экстенты заменяют традиционный механизм отображения блоков, использовавшийся с более ранними родственниками. Несмотря на обратную совместимость, EXT4 не может быть смонтирована как EXT3, если включены более новые функции, такие как поддержка экстентов.
EXT4 поддерживает постоянное предварительное распределение - полезно для приложений, таких как потоковое мультимедиа, где производительность последовательного доступа является первостепенной. Он также поддерживает отложенное распределение, моноблочный распределитель, быструю проверку и журналы для повышения надежности.
Формат следующего поколения
BTRFS - стандарт следующего поколения для Linux, предназначен для больших файлов и системы с нуля, моментальных снимков, упрощенного администрирования, интегрированного RAID и управления томами.
BTRFS имеет преимущества по отношению EXT4:
- Встроенная целостность данных - контрольные суммы и метаданные.
- Обнаружение и устранение повреждения данных, улучшает общую надежность файловой системы.
- Создание облегченных копий и клонов файлов или целых структур каталогов с минимальными дополнительными требованиями к дисковому пространству. Эта функция особенно полезна в сочетании с технологиями виртуализации, например, для хранения образов виртуальных машин и контейнеров Linux.
- Быстро находит последние изменения файла.
- Улучшает операции резервного копирования, вместо необходимости обходить всю структуру каталогов для файлов, которые были изменены, файловая система может предоставить эту информацию напрямую.
- Поддержка Discard и TRIM.
- Оптимизированная поддержка твердотельных (Flash) устройств хранения, позволяющая им восстанавливать сектора из удаленных файлов для будущих операций записи.
- Интеграция моментальных снимков с управлением пакетами yum.
- Позволяет быстро откатить обновления программного обеспечения и ОС или быстро загрузиться на более старый уровень исправления.
- Онлайн-дефрагментация. Предотвращает фрагментацию, когда множество мелких файлов создаются и удаляются в быстрой последовательности и, таким образом, повышается общая производительность файловой системы за счет уменьшения количества обращений к диску.
- Очистка с исправлением ошибок. Находит и исправляет повреждения файловой системы автоматически.
- Онлайн-сжатие данных. Увеличивает емкость хранилища, и уменьшает количество операций ввода-вывода.
- Интегрированная поддержка нескольких устройств. Позволяет охватить одну файловую систему на нескольких дисках без отдельного менеджера томов и обеспечивает функциональность RAID для повышения избыточности или производительности.
Сравнение: BTRFS vs EXT4
Не так давно пользователи Linux еще работали с файловыми системами, которые мало изменились со времен Unix, например, EXT3. Стандарт использует указатели блоков, индекс каждого файла центральной структуры данных, содержащий всю информацию о файле и список указателей на каждый отдельный блок.
Более поздние стандарты EXT4 используют указатели на «экстенты». Каждый представляет собой группу смежных блоков. Поскольку они работают с непрерывным хранением данных на основе экстентов, что значительно снижает издержки на управление пространством файла.
BTRFS также использует экстенты, но они существенно отличается от других ОС Linux и способны копировать при записи COW. Когда данные перезаписываются в EXT4, новые данные записываются поверх существующих на устройстве хранения, уничтожая старую копию. BTRFS перемещает перезаписанные блоки в другое место и запишет туда новые, оставив прежнюю копию на месте.
Еще одна важная функция BTRFS - встроенный менеджер. BTRFS может охватывать несколько физических устройств в ряде конфигурациях RAID. Любой том - набор из одного или нескольких физических дисков также можно разделить на «подъемы», которые рассматривают, как независимые системы, совместно использующие один набор физических томов. Таким образом, BTRFS позволяет сгруппировать часть или все хранилище в большой пул, а затем разделить этот пул между набором файловых систем, каждая из которых имеет свои собственные ограничения.
BTRFS предлагает широкий спектр других функций, не поддерживаемых иными файловыми стандартами Linux. Он может выполнять полное контрольное суммирование, как данных, так и метаданных, что делает его надежным перед возможным повреждением данных на оборудовании. Полная контрольная сумма обходится дорого, поэтому будет использоваться лишь в небольшом количестве установок.
Данные могут храниться на диске в сжатом виде. Функция приема/передачи используется, как часть дополнительных схем резервного копирования. Механизм оперативной дефрагментации исправляет фрагментированные файлы в работающей системе. В ядре 3.12 добавлена функция автономной дедупликации, просматриваемой блоки, содержащие дублированные данные, и сворачивает их в одну общую копию.
Несмотря на то что сравнение EXT4 и BTRFS в пользу последнего стандарта, великолепная новая функциональность BTRFS не бесплатна. Во многих случаях администраторы могут решить, что затраты, связанные с BTRFS, перевешивают преимущества. Как только станет общепринятым, что BTRFS готов к общедоступному использованию в реальном мире, есть вероятность, что стандарт появится во многих системах.
Выбор модели для SSD
При настройке новой установки Linux с SSD многие пользователи не знают, с какой файловой системой работать. Это понятно, поскольку когда пользователи устанавливают Linux, часто они выбирают параметры по умолчанию.
SSD-BTRFS имеет много противников. Они говорят, что он нестабилен, и это похоже на правду, так как он до сих пор находится в сложной стадии развития. Тем не менее, на самом деле это довольно солидная файловая система для базового применения, тем более для твердотельных накопителей.
BTRFS не ведет журнал в отличие от других систем, экономя драгоценное пространство для SSD. Он также поддерживает TRIM, важную функцию для владельцев твердотельных дисков. TRIM позволяет стирать неиспользуемые блоки, что крайне важно для поддержания работоспособности такого диска в Linux.
SSD-EXT4 - сегодня это наиболее используемая и надежная система в Линукс. Он используется в крупных центрах обработки данных и на производстве, на всех типах жестких дисков, включая твердотельные накопители.
Конвертация файлов
Во время загрузки с Live USBumount нужно корневой раздел каталога конвертировать EXT4 в BTRFS. В противном случае нельзя будет выполнить команду BTRFS-convert, когда будет предложено: /dev/sda1 is mounted.
Алгоритм выполнения:
- Заходят в Приложение> Ubuntu Software Center из меню Правка> Источники программного обеспечения.
- Проверяют весь список: Retry apt-get install BTRFS-tools. Рекомендуется использовать обновленную версию BTRFS-tools. Например, получить BTRFS-tools_0.19+20100601-3ubuntu3_amd64.deb и прописать: sudo dpkg -i BTRFS-tools v0.19+20100601-3ubuntu3 _amd64.deb
- Без этого обновленного инструмента нельзя удалить snapshot из BTRFS.
- Если удалось преобразовать EXT4 в BTRFS и выполнена функция BTRFS-convert, то будут отображены следующие сообщения.
Далее изменяют UUID в menu.lst файле. С Grub Legacy нужно изменить root=UUID значение в menu.lst файле для BTRFS-раздела вручную. Для этого используют следующие строки для Grub s menu.lst файла. Поскольку скрипты и перехваты добавляются initramfs, initrd, изображения в boot-каталоге должны быть обновлены.
Преобразование раздела диска
Перед выполнением преобразования корневой файловой системы предварительно выполняют полную резервную копию ОС, для возможного будущего восстановления.
Процесс преобразования EXT2, EXT3 или EXT4 в корневые файлы BTRFS:
- Выполняют команду mount, чтобы определить устройство, которое смонтировано, как корневое и тип файловой системы.
- Используют команду ls -l, чтобы определить, что сопоставленное устройство соответствует /dev/vg hostol6/lv_root, а корневая файловая система соответствует разделу диска /dev/sda2.
- Выключают ПК.
- Загружают с загрузочного компакт-диска Oracle Linux, DVD или ISO.
- В меню установки выбирают Rescue Installed System. При появлении запроса выбирают язык и клавиатуру, локальный CD/DVD в качестве установочного носителя, и далее «Нет», чтобы обойти запуск сетевого интерфейса.
- Выбирают «Пропустить», чтобы обойти выбор среды восстановления.
- Выбирают Start shell, чтобы получить bash - приглашение оболочки (bash-4.1#) внизу экрана.
- Если существующая корневая система настроена, как том LVM, используют следующую команду для запуска группы томов: vg_hostol6.
- Запускают правильную версию fsck, например, fsck.ext3 или fsck. ext4, чтобы проверить и исправить целостность системы.
- Преобразовывают систему в BTRFS.
- Создают точку монтирования (/mnt 1) для преобразованной корневой системы.
- Используют команду для редактирования файла /mnt1/etc/fstab и изменяют тип корневой системы BTRFS.
- Создают файл .autorelabel в корне смонтированной системы.
- Наличие .autorelabel файла указывает SE Linux воссоздать атрибуты безопасности для всех файлов в системе.
- Размонтируют преобразованную корневую систему.
- Извлекают загрузочный CD, DVD или ISO и перезагружают систему.
Synology: оптимизация SSD
BTRFS сравнительно недавно появился на syno, и уже считается стабильным решением и предлагается в качестве стандарта в большинстве дистрибутивов. Выбирая файловую систему для SSD - BTRFS и EXT4, базируются на следующих аргументах.
BTRFS - это многокорневая файловая система, встроенная в ядро Linux в 2013 году и объявленная стабильной. Она может хранить 16 миллионов ТБ по объему (16 Eo) и предоставляет множество функций:
- Автоматическое обнаружение и оптимизация SSD. Диски без пластин выигрывают от определенных оптимизаций и это проблема разработки. Изначально рассматривается SF, особенно в EXT4, если необходимо отключить определенные опции во время редактирования, такие как время записи файла.
- Линейный RAID полезен, когда у пользователя есть различные и разнообразные носители данных, которые нужно объединить для переработки, например, NAS, добавив сервер NFS. Это невозможно с картой RAID, с MDADM или с LVM. BTRFS JBOD предлагает больше шансов на сохранение данных, особенно с небольшим количеством дисков, поэтому выбор стандарта для Synology - BTRFS и EXT4, остается за первым типом.
- После первоначального полного копирования только для чтения BTRFS может выполнять инкрементное резервное копирование с ротацией, например, хранить одну резервную копию в день, затем одну в месяц, затем одну в год. Перенос моментальных снимков также происходит постепенно, легче и быстрее, чем при использовании «rsync», поскольку система может различать удаление файла и простое переименование дерева.
BTRFS - файловая система Linux следующего поколения и меняет предпочтения пользователей в отношении выбора. Это настоящий мобильный инструмент, который требует обучения по мере роста потребительских запросов.