Файловая система — это способ организации данных на носителе информации, предоставляющий механизмы хранения, доступа и управления файлами. Работа с файловыми системами — важный аспект администрирования операционных систем, обеспечивающий управление данными и доступ к ним. В этой работе рассматриваются три популярных файловые системы в ОС Альт: 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), что минимизирует фрагментацию и увеличивает производительность. Он больше подходит для систем с высокими требованиями к производительности, но не имеет встроенной поддержки снэпшотов и дедупликации.
| Параметр | 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].
| Файловая система | Скорость записи | Скорость чтения |
|---|---|---|
| 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.
| Файловая система | Время восстановления, секунды | Комментарий |
|---|---|---|
| Ext3 | 3,63 | Легко восстанавливает как файлы, так и структуру файловой системы. |
| Ext4 | 4,56 | Более производительная с большими объемами данных. В процессе восстановления производит больше проверок, что делает ее более устойчивой к сбоям. |
| Btrfs | 16,14 | Много методов защиты, таких как снапшоты и дедупликация. Позволяет восстанавливать более тяжелые сбои |
Результаты эксперимент показали, что Ext3, благодаря своей простой архитектуре и проверенной стабильности, обеспечивает наименьшее время восстановления. Ext3 использует журналирование для обеспечения целостности данных, что означает, что система записывает все изменения в журнал перед их применением. Это позволяет быстро восстанавливать данные после сбоя, так как система просто "перематывает" журнал, чтобы вернуться к последнему стабильному состоянию. Ее простая структура и проверенная стабильность также способствуют быстрому восстановлению.
Ext4 вносит несколько улучшений по сравнению с Ext3, включая поддержку больших томов, более эффективное выделение и освобождение блоков, а также введение наносекундных временных меток. Эти улучшения требуют более сложной обработки при восстановлении, что и объясняет увеличение времени. Также, Ext4 поддерживает функции, такие как размещение данных в "extent" (непрерывные блоки), что требует дополнительных проверок при восстановлении.
Btrfs разработана с акцентом на расширенные функции, такие как снимки (snapshots), дедупликация, сжатие, шифрование и динамическое изменение размера томов. Эти функции требуют более сложной структуры данных и, соответственно, более сложного процесса восстановления. Btrfs использует систему B-tree для хранения данных, что позволяет ей эффективно управлять большими объемами информации, но при этом процесс восстановления становится более длительным из-за необходимости проверки и восстановления всех этих сложных структур.
Эксперимент по восстановлению данных показал, что Ext3 является наиболее быстрой в восстановлении благодаря своей простоте и стабильности, подходя для систем, где скорость восстановления критична. Ext4 предлагает улучшенную производительность и поддержку больших объемов данных. Такой вариант подходит для приложений с большими массивами данных, но требует больше времени на восстановление. Btrfs, несмотря на самое большое время восстановления, предоставляет расширенные функции для обеспечения высокой надежности и защиты данных, что делает её идеальной для систем, где важна функциональность и гибкость.
Статья поступила в редакцию 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.