Назад в библиотеку

Источник: Наука и Образование: научный рецензируемый электронный журнал — 2024. — Москва: НИУ ВШЭ, 2024. — Т. 7. — № 4.

УДК 621.39

РАБОТА С ТОМАМИ BTRFS, EXT3, EXT4 В ОС АЛЬТ

Роман Романович Романов
студент <rrromanow@bk.ru>

Егор Алексеевич Лукьянов
студент РГУ нефти и газа (НИУ) им. И. М. Губкина
Москва, Россия
Аннотация:
В статье рассматриваются особенности работы с файловыми системами Btrfs, Ext3 и Ext4 в операционной системе Альт Линукс, что актуально для эффективного управления данными и обеспечения их надежности в различных условиях эксплуатации. Исследование включает сравнительный анализ функциональных возможностей этих файловых систем, таких как поддержка RAID, снимков и дедупликации в Btrfs, журналирование в Ext3 и Ext4, а также управление фрагментацией в Ext4. Особое внимание уделено экспериментальному тестированию производительности и времени восстановления данных после повреждений.
Ключевые слова:
Btrfs, Ext3, Ext4, ОС Альт, файловая система, восстановление данных, производительность, безопасность.
Abstract:
The article examines the features of working with Btrfs, Ext3, and Ext4 file systems in the Alt Linux operating system, which is crucial for efficient data management and ensuring reliability under various operating conditions. The study includes a comparative analysis of the functional capabilities of these file systems, such as RAID support, snapshots, and deduplication in Btrfs, journaling in Ext3 and Ext4, and fragmentation management in Ext4. Special attention is given to experimental testing of performance and data recovery time after failures.
Keywords:
Btrfs, Ext3, Ext4, OS Alt, file system, data recovery, performance, security.

Введение

Файловая система — это способ организации данных на носителе информации, предоставляющий механизмы хранения, доступа и управления файлами. Работа с файловыми системами — важный аспект администрирования операционных систем, обеспечивающий управление данными и доступ к ним. В этой работе рассматриваются три популярных файловые системы в ОС Альт: Ext3, Ext4 и Btrfs. Эти системы имеют разные характеристики, влияющие на их производительность, устойчивость к сбоям и возможности восстановления данных. Знание этих различий помогает выбрать оптимальную файловую систему в зависимости от потребностей и условий эксплуатации.

Ext3 и Ext4 — классические решения для Linux. Ext3 известна своей стабильностью, но ограничена по скорости и функционалу. Ext4, более новая версия предполагает лучшую производительность, поддержку больших объёмов данных и улучшенные возможности восстановления. И, наконец, Btrfs — современная файловая система с поддержкой снимков, управления томами и другими функциями, что делает её интересной для сложных задач.

В данной работе описаны, проведённые эксперименты по повреждению и восстановлению разделов с обозначенными выше файловыми системами. Особое внимание уделено времени восстановления и эффективности работы утилит для восстановления данных. Цель работы — определить скорости восстановления данных в различных файловых системах (Ext3, Ext4 и Btrfs) и подобрать оптимальные утилиты для восстановления данных в зависимости от файловой системы.

Объект исследования — файловые системы Ext3, Ext4 и Btrfs в ОС Альт. Предмет исследования — методы восстановления файловых системе в ОС Альт.

Краткая характеристика файловых систем

Файловые системы Btrfs, Ext3 и Ext4 разработаны в соответствии с современными стандартами LSB, POSIX, FHS, которые определяют их функциональность, совместимость и область применения в операционных системах на базе Linux.

POSIX (Portable Operating System Interface) — набор стандартов, обеспечивающий совместимость между различными UNIX-подобными операционными системами. Файловые системы Ext3, Ext4 и Btrfs соответствуют требованиям POSIX, что гарантирует их корректную работу в среде Linux. Например, поддержка прав доступа, ссылок и атрибутов файлов является обязательной частью стандарта [11].

LSB (Linux Standard Base) — стандарт, разработанный для унификации программного обеспечения на Linux. Ext3 и ext4 изначально проектировались с учетом требований LSB, что делает их подходящими для широкого спектра приложений. Btrfs, хотя и обладает более широкими возможностями, такими как снимки и дедупликация, также соответствует базовым требованиям LSB, что обеспечивает её совместимость в стандартных окружениях [14].

FHS (Filesystem Hierarchy Standard) — стандарт, определяющий расположение файлов и каталогов в файловых системах Linux. Ext3, ext4 и Btrfs полностью поддерживают этот стандарт, что упрощает управление томами и делает файловые системы удобными для пользователей и разработчиков. Btrfs (B-tree File System) — современная файловая система для Linux, предназначенная для работы с большими системами хранения данных. Она поддерживает снэпшоты, дедупликацию, RAID и самовосстановление данных. Эти функции позволяют эффективно управлять данными и обеспечивать их защиту [10].

Снапшоты позволяют быстро создавать точки восстановления данных, что важно для обеспечения их целостности при сбоях. Дедупликация помогает экономить место на диске, удаляя повторяющиеся данные. RAID в Btrfs поддерживает несколько уровней избыточности (например, RAID 0, 1, 10), что улучшает отказоустойчивость. Самовосстановление данных исправляет ошибки на уровне файловой системы.

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

Ext3 (Third Extended File System) и Ext4 (Fourth Extended File System) — популярные файловые системы для Linux, эволюционно связанные между собой. Ext3 включает в себя механизм журналирования, который ускоряет восстановление после сбоев и обеспечивает надежность данных, а простота использования и стабильность делают Ext3 подходящей для старых или маломощных систем.

Ext4 же предлагает поддержку больших файлов и разделов, улучшенные алгоритмы управления свободным пространством (extent-based allocation), что минимизирует фрагментацию и увеличивает производительность. Он больше подходит для систем с высокими требованиями к производительности, но не имеет встроенной поддержки снэпшотов и дедупликации.

Таблица 1 — Сравнительная характеристика файловых систем Ext3, Ext4, Btrfs
Параметр Btrfs Ext3 Ext4
Поддержка RAID RAID 0, 1, 10 Нет Нет
Снапшоты Да Нет Нет
Дедупликация Да Нет Нет
Журналирование Да Да Да
Управление фрагментацией Автоматическое Нет Extent-based
Максимальный размер файла 16 экзабайт 2 терабайта 16 терабайт
Максимальный объем раздела 16 экзабайт 32 терабайта 1 экзабайт

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

Подготовка к проведению эксперимента

В данном эксперименте используется ОС Альт, которая поддерживает все три файловые системы. Тестирование проводилось в виртуальной среде VirtualBox под управлением Alt Linux. Конфигурация виртуальной машины включала 4 ГБ оперативной памяти, три ядра процессора Intel Core i5-11400H и виртуальный диск, размещенный на SSD-накопителе хостовой системы. На виртуальный диск было выделено 30 гигабайт, а на каждый раздел по 10 гигабайт.

С помощью утилиты fdisk создаются отдельные разделы для каждой файловой системы. Fdisk — инструмент для управления разделами дисков, позволяет создавать, изменять и удалять разделы на накопителях. Разделы форматируются командами mkfs.ext3, mkfs.ext4 и mkfs.btrfs соответственно. Mkfs — утилита для форматирования разделов и создания файловых систем. Тестирование производительности чтения и записи производится при помощи команды dd. Dd - утилита для побайтового копирования данных, используется для создания образов, записи данных и симуляции повреждений файловых систем.

Для проверки и восстановления данных применяются утилиты e2fsck и btrfsck. E2fsck и btrfsck — это утилиты для проверки и устранения ошибок в файловых системах Ext3, Ext4 и Btrfs.

Для тестирования производительности в качестве исходных данных используются файлы большого размера. После чего происходит запись файлов на диск и чтение, чтобы проверить зависимость производительности от типа файловой системы. Генерация данных выполняется с использованием утилиты dd[7].

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

Тестирование скорости файловых систем

Для проверки скорости работы файловых систем (Ext3, Ext4 и Btrfs) использовались стандартные утилиты, доступные в ОС Альт. Целью тестов будет измерение скорости записи и чтения данных на каждом из томов.

Тесты проводятся с одинаковыми условиями, чтобы минимизировать влияние системных нагрузок. Использование параметра oflag=dsync для команды записи обеспечивает запись данных непосредственно на диск, исключая кэширование в памяти и тем самым повышая точность измерений. Для проверки скорости записи используется команда dd if=/dev/zero of=/mnt/<filesystem>/testfile bs=1G count=1 oflag=dsync, а для проверки скорости чтения dd if=/mnt/<filesystem>/testfile of=/dev/null bs=1G, где <filesystem> - файловая система ext3, ext4 или btrfs [7].

Таблица 2 — Результаты тестирования скорости записи и чтения
Файловая система Скорость записи Скорость чтения
Ext3 82,9 MB/s 156 MB/s
Ext4 95,1 MB/s 153 MB/s
Btrfs 83,2 MB/s 152 MB/s

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

Восстановление файловых систем

В данном разделе представлены результаты эксперимента по восстановлению данных после повреждений на файловых системах Ext3, Ext4 и Btrfs. Для оценки скорости восстановления используются утилиты fsck, btrfs check и специализированные инструменты восстановления данных. Эксперимент состоит из повреждения файловых систем, а затем их восстановления и измерения времени, затраченного на процесс восстановления. Файловые системы повреждаются при помощи команды «dd if=/dev/urandom of=/dev/*наименование_раздела* bs=1M count=100», которая записывает случайные данные на устройство и повреждает его структуру. Файловые системы Ext3 и Ext4 восстановляются при помощи встроенной утилиты e2fsck, а Btrfs при помощи утилиты btrfsck. Результаты эксперимента приведены в таблице 3.

Таблица 3 — Результаты тестирования восстановления файловых систем
Файловая система Время восстановления, секунды Комментарий
Ext3 3,63 Легко восстанавливает как файлы, так и структуру файловой системы.
Ext4 4,56 Более производительная с большими объемами данных. В процессе восстановления производит больше проверок, что делает ее более устойчивой к сбоям.
Btrfs 16,14 Много методов защиты, таких как снапшоты и дедупликация. Позволяет восстанавливать более тяжелые сбои

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

Ext4 вносит несколько улучшений по сравнению с Ext3, включая поддержку больших томов, более эффективное выделение и освобождение блоков, а также введение наносекундных временных меток. Эти улучшения требуют более сложной обработки при восстановлении, что и объясняет увеличение времени. Также, Ext4 поддерживает функции, такие как размещение данных в "extent" (непрерывные блоки), что требует дополнительных проверок при восстановлении.

Btrfs разработана с акцентом на расширенные функции, такие как снимки (snapshots), дедупликация, сжатие, шифрование и динамическое изменение размера томов. Эти функции требуют более сложной структуры данных и, соответственно, более сложного процесса восстановления. Btrfs использует систему B-tree для хранения данных, что позволяет ей эффективно управлять большими объемами информации, но при этом процесс восстановления становится более длительным из-за необходимости проверки и восстановления всех этих сложных структур.

Заключение

Эксперимент по восстановлению данных показал, что Ext3 является наиболее быстрой в восстановлении благодаря своей простоте и стабильности, подходя для систем, где скорость восстановления критична. Ext4 предлагает улучшенную производительность и поддержку больших объемов данных. Такой вариант подходит для приложений с большими массивами данных, но требует больше времени на восстановление. Btrfs, несмотря на самое большое время восстановления, предоставляет расширенные функции для обеспечения высокой надежности и защиты данных, что делает её идеальной для систем, где важна функциональность и гибкость.

Список литературы

  1. Уймин А. Практикум. Демонстрационный экзамен базового уровня. Сетевое и системное администрирование. СПб. Лань, 2024.
  2. Альт Рабочая станция 10.2 // URL: https://docs.altlinux.org/ru-RU/alt-workstation/10.2/html/altworkstation/index.html
  3. Смирнов П. Управление файловыми системами в Linux: теория и практика. М.: Наука, 2022.
  4. Btfrs Documentation // URL: https://btrfs.readthedocs.io/en/latest/
  5. Ext4 General Information // https://docs.kernel.org/admin-guide/ext4.html
  6. Зинченко, И. Операционные системы и файловые системы: Структура и производительность. СПб. Питер, 2021.
  7. Использование утилиты dd для проверки производительности файловых систем в Linux // Майкл Керриск. URL: https://man7.org/linux/man-pages/man1/dd.1.html
  8. Гилмор Д. Администрирование файловых систем Linux. М.: ДМК Пресс, 2020.
  9. Файловая система ext3 // URL: https://lin.in.ua/articles/14-Istoriia/82-Fajlovaia_sistema_ext3.html
  10. Filesystem Hierarchy Standard 2.3 // URL: https://www.pathname.com/fhs/pub/fhs-2.3.pdf
  11. Information technology — Portable Operating System Interface (POSIX®) Base Specifications, Issue 7
  12. Багров С. Полный гид по файловым системам Linux. М.: Инфра-М, 2022.
  13. Файловая система Ext4 // URL: https://losst.pro/fajlovaya-sistema-ext4
  14. Linux Standard Base (LSB) core specification 3.1 / ISO/IEC 23360-1:2006
  15. Пантелеев Н. Н., Панов С. С., Матвеев А. В. Сравнение характеристик и возможностей современных файловых систем Linux: Ext4, Xfs, Btrfs // E-Scio. 2022. №11 (74).

Статья поступила в редакцию 11.11.2024; одобрена после рецензирования 20.12.2024; принята к публикации 25.12.2024.

The article was submitted 11.11.2024; approved after reviewing 20.12.2024; accepted for publication 25.12.2024.