Linux изменить файловую систему
Linux изменить файловую систему
Во время выполнения различных задач по администрированию системы может понадобится работать с файловой системой Linux, форматировать разделы, изменять их размер конвертировать файловые системы, может понадобиться дефрагментация в Linux или восстановление файловых систем. Многие из этих действий выполняются в графическом интерфейсе, многие и вовсе автоматически. Но может возникнуть ситуация, в которой придется делать все через терминал. Также при администрировании удаленных серверов работать с ними приходится только через ssh, а это означает недоступность графического интерфейса.
В этой статье мы рассмотрим как выполняется работа с файловой системой Linux в терминале. За основу возьмем семейство файловых систем ext2/3/4, так как они самые распространенные среди большого многообразия дистрибутивов Linux.
Основные команды
Для управления файловой системой ext в Linux используется целый набор команд из пакета e2progs. Сюда входят как команды для управления флагами файлов, создания и изменения файловых систем, так и утилиты для отладки файловой системы.
Рассмотрим основные утилиты, которые будем использовать:
- badblocks – если у вас старый жесткий диск и на нем накопилось много битых блоков, вы можете с помощью этой утилиты пометить их все на уровне файловой системы, чтобы больше не использовать.
- e2label – позволяет изменить метку раздела с файловой системой ext.
- fsck – проверка файловой системы linux и исправление найденных ошибок
- mkfs – позволяет создать файловую систему Linux.
- resize2fs – изменить размер раздела с файловой системой
- tune2fs – позволяет изменить файловую систему Linux, настроить ее параметры.
А теперь будет рассмотрена работа с файловой системой linux на примерах.
Работа с файловой системой в Linux
Перед тем как переходить к работе с реальным жестким диском важно попрактиковаться. Если сменить метку или проверить на битые сектора можно и рабочий диск, то создавать новую файловую систему, изменять ее размер, рискуя потерять данные на реальном диске не рекомендуется. Можно отделить небольшой раздел диска для экспериментов с помощью Gparted и выполнять все действия в нем. Допустим, у нас этот раздел будет называться /dev/sda6.
Создание файловой системы
Создать файловую систему linux, семейства ext, на устройстве можно с помощью команды mkfs. Ее синтаксис выглядит следующим образом:
sudo mkfs -t тип устройство
Доступны дополнительные параметры:
- -с – проверить устройство на наличие битых секторов
- -b – размер блока файловой системы
- -j – использовать журналирование для ext3
- -L – задать метку раздела
- -v – показать подробную информацию о процессе работы
- -V – версия программы
Создаем файловую систему на нашем устройстве. Будем создавать ext3:
sudo mkfs -t ext4 -L root /dev/sda6
Creating filesystem with 7847168 4k blocks and 1962240 inodes
Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Изменение метки файловой системы
Утилита e2label позволяет изменить или посмотреть метку раздела диска. Принимает всего два параметра – устройство и новую метку если нужно.
sudo e2label /dev/sda6
sudo e2label /dev/sda6 root1
Настройка файловой системы linux
Различные параметры файловой системы, такие как размер блока данных, иноды или зарезервированное место под данные пользователя root можно настроить. Для этого существует утилита tune2fs.
Синтаксис команды очень прост:
$ tune2fs опции устройство
Поддерживаются следующие опции:
- -j – создать файл журнала. Позволяет превратить файловую систему ext2 в ext3.
- -J – настроить параметры журнала
- -l – получить содержимое суперблока
- -L – изменить метку раздела
- -m – изменить процент дискового пространства, зарезервированного для суперпользователя
- -M – изменить последнюю папку монтирования
- -U – задать UUID файловой системы
- -C – изменить значение счетчика монтирования
- -T – изменить последнюю дату проверки файловой системы
- -с – изменить периодичность проверок файловой системы с помощью fsck
- -O – изменить опции файловой системы.
Изменить размер зарезервированного места для суперпользователя до пяти процентов:
sudo tune2fs -m 5 /dev/sda6
Setting reserved blocks percentage to 5% (392358 blocks)
Посмотреть информацию из суперблока, эта команда показывает всю доступную информацию параметрах файловой системы:
Filesystem volume name: root
Last mounted on: /
Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg spar
se_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Изменить счетчик количества монитрований:
tune2fs -C 0 /dev/sda6
Setting current mount count to 0
Думаю тут смысл понятен, нужно только немного со всем этим поэкспериментировать.
С помощью опции -O мы вообще можем превратить нашу ext3 в ext4 следующей командой:
sudo tune2fs -O extents,uninit_bg,dir_index
После этого действия нужно выполнить проверку файловой системы на ошибки в fsck. Подробнее об этом поговорим ниже.
sudo fsck -np /dev/sda6
Таким образом вы можете изменить файловую систему linux, и настроить по своему усмотрению любые ее параметры.
Изменение размера файловой системы Linux
Раньше такая функция поддерживалась в утилите parted, но потом ее убрали и для этого действия приходится использовать утилиту из набора e2fsprogs – resize2fs.
Запустить утилиту очень просто. Ей нужно передать всего два параметра:
$ resize2fs [опции] устройство размер
Доступны также опции:
- -M уменьшить файловую систему до минимального размера
- -f – принудительное изменение, не смотря на потерю данных
- -F – очистить буфер файловой системы
Размер передается, как и во многих других утилитах, целым числом с указанием единиц измерения, например, 100М или 1G.
Для примера уменьшим размер нашего раздела до 400 Мегабайт:
sudo resize2fs /dev/sda6 400M
Resizing the filesystem on /dev/sda7 to 102400 (4k) blocks.
The filesystem on /dev/sda7 is now 102400 blocks long
Проверка файловой системы Linux
При неправильном отключении носителей или неожиданном отключении питания, файловая система Linux может быть повреждена. Обычно проверка корневой файловой системы и домашнего каталога на ошибки выполняется во время загрузки. Но если эта проверка не была выполнена или нужно поверить другой носитель, придется все делать вручную. Для этого есть утилита fsck.
$ fsck [опции] устройство
- -p – автоматическое восстановление
- -n – только проверка, без восстановления
- -y – ответить да на все запросы программы
- -с – проверить на битые сектора (аналог badblocks
- -f – принудительная проверка, даже если раздел помечен как чистый
- -j – внешний журнал файловой системы
Проверка файловой системы Linux выполняется такой командой, проверим диск /dev/sda6, заметьте, что диск должен быть не примонтирован:
sudo fsck -a /dev/sda6
root: clean, 11/32704 files, 37901/102400 blocks
Дефрагментация файловой системы
Хотя и фрагментация нехарактерное явление для файловых систем семейства ext, при очень интенсивном использовании может накапливаться фрагментированость, что будет замедлять работу файловой системы. Для дефрагментации можно использовать стандартную утилиту e4defrag. Просто выполните:
Чтобы проверить нужна ли дефрагментация в Linux выполните эту же команду с опцией -c:
Total/best extents 26247/24953
Average size per extent 1432 KB
Fragmentation score 0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This device (/dev/sda6) does not need defragmentation.
Done.
В поле Fragmentation score отображен процент фрагментации, как видите, у меня 0, нормой считается до 30, 31-55 небольшие проблемы, и больше 56 – нужна дефрагментация.
Выводы
В одной из предыдущих статей мы рассмотрели как выполняется разметка диска с помощью parted. Из этой статьи вы узнали все что нужно о работе с файловой системой. Теперь у вас не возникнет проблем если у вас вдруг не будет доступа к графическим утилитам и нужно будет исправлять ошибки или настраивать файловую систему. Если остались вопросы, спрашивайте в комментариях!
Примечание. Изменение размера файловой системы на разделе диска может быть опасным и привести к потере данных. Убедитесь, что у вас есть резервная копия, прежде чем выполнять действия, описанные ниже.
Предостережения
1. Файловая система, размер которой вы хотите изменить, должен находиться на последнем разделе диска. В этом случае потери данных не происходит, поскольку мы воссоздаем раздел, не уничтожая фактические данные на нем.
2. Если это не последний раздел, вы должны уничтожить данные и воссоздать новый раздел с желаемым размером.
Расширение файловой системы на основе разделов
1. Сначала проверьте существующий размер файловой системы.
Устанавливаю Ubuntu рядом с Windows 7, причем хочу, чтобы не потерялись данные. Проблема возникает на этапе уменьшения размера диска, чтобы создать раздел для ubuntu. Пробовал изменять файловую систему как во время установки, так и через GParted , загрузившись в Ubuntu. Вот текст ошибки:
Как-то странно разделы отображаются в Ubuntu: разделы D, E, L выглядят как один. В разделе L у меня 60 Гб свободно, а я уменьшаю объем на 40.
Всего у меня 6 разделов в Windows: зарезервированный для Bitlocker 1 мб, зарезервированный системой 100 мб, раздел с системой (диск С в wibdows) и 3 пользовательских раздела. В Linux же я вижу только 4. Что я делаю не так и как создать раздел для Linux без потерь данных?
Разметка жёсткого диска для Ubuntu вручную
При установке операционной системы Ubuntu существует возможность указать размеры разделов жёсткого диска вручную.
При этом директории, необходимые для функционирования ОС задаёт пользователь. Здесь необходимо взвешенно подойти к назначению размеров некоторых разделов.
В предыдущей статье мы узнали как установить Ubuntu на новый компьютер или ноутбук, при этом был рассмотрен пример автоматического перераспределения дискового пространства самой ОС.
- Корневой раздел — «/», сама система плюс сопутствующие библиотеки, устанавливаемые позднее — кодеки, обновления, здесь же будут находиться и все установленные приложения.
- swap раздел — своеобразный аналог файла подкачки в системе Windows.
- Раздел home — пользовательская директория, хранящая документы, аналогично каталогу «Мои документы» в Windows.
Приступим к установке, делаем всё так, как описано в предыдущей статье.
В начале установки выбираем пункт «Другой вариант», после чего запустится утилита, которая поможет в разметке диска.
На изображении можем видеть устройство: /dev/sda — это и есть наш жёсткий диск.
Чтобы начать разметку, необходимо кликнуть мышкой по строке «свободное место». После этого жмём кнопку «Добавить».
Создание корневого раздела. Если вы будете устанавливать Ubuntu 16.04 LTS, то понадобиться минимум 25 Гб дискового пространства.
В данном примере рассмотрена установка Ubuntu версии 12.04 LTS, поэтому выделяем не менее 10 Гб. Указываем размер в мегабайтах, а именно, 10000 Мб.
Выбираем тип файловой системы «Ext4». В графе «Точка монтирования» выбираем слеш «/» и жмём «ОК».
Распределим оставшееся свободное место на диске. Вновь кликнем по строке «свободное место», после чего жмём кнопку «Добавить».
Добавляем swap-раздел. Выделим под него 4 Гб, введём значение 4000 Мб. Укажем в поле «Использовать как» значение «раздел подкачки».
Жмём «ОК», чтобы перейти к следующему этапу.
Как видим, у нас осталось 20 Гб свободного места. Оставим его под пользовательскую директорию.
Нажимаем снова кнопку «Добавить».
Размер раздела менять не нужно, тип файловой системы выберем «Ext4».
В поле «Точка монтирования» установим значение «/home», жмём «ОК».
Перед тем, как продолжить установку системы, убедимся, что всё сделано правильно.
Можно посмотреть созданную нами структуру жёсткого диска как в графическом виде, так и в виде таблицы.
Русские Блоги
В этой статье описывается некоторый анализ структуры диска и метаданных файловой системы Ext4, который также применим к файловым системам Ext3 и Ext2, за исключением функций Ext4, которые они не поддерживают. Весь анализ разделен на два сообщения в блоге, которые соответственно описывают макет и подробно описывают структуру данных и организационные методы адресации каждого макета. Заинтересованным посетителям обращайте внимание и направляйте!
1. Обзор структуры файловой системы Ext4
Файловая система Ext4 разделена на несколько групп блоков. Чтобы уменьшить узкое место производительности, вызванное фрагментацией диска, распределитель блоков пытается сохранить блоки данных каждого файла в одной и той же группе блоков, тем самым сокращая время поиска. Если взять в качестве примера блок данных размером 4 КБ, группа блоков может содержать 32768 блоков данных, то есть 128 МБ.
1.1 Структура диска
Стандартная структура диска файловой системы Ext4 выглядит следующим образом:
Файловая система Ext4 в основном использует суперблок и таблицу дескрипторов группы блоков в группе блоков 0, а также существуют избыточные резервные копии суперблока и таблицы дескрипторов группы блоков в некоторых других конкретных группах блоков. Если в группе блоков нет резервной копии, то группа блоков начинается с битовой карты блока данных. Когда отформатированный диск становится файловой системой Ext4, mkfs выделяет зарезервированные блоки данных таблицы GDT («Зарезервированные блоки GDT») за таблицей дескрипторов группы блоков для будущего расширения файловой системы. Сразу после зарезервированного блока данных таблицы GDT находится битовая карта блока данных и битовая карта таблицы inode, эти две битовые карты соответственно представляют использование блока данных и таблицы inode в группе блоков, а блок данных таблицы inode является файлом хранения. Блок данных. Среди этих различных блоков суперблок, GDT, битовая карта блока и битовая карта Inode являются метаданными всей файловой системы.Конечно, таблица inode также является метаданными файловой системы, но таблица inode соответствует файлу однозначно. Да, я предпочитаю рассматривать индексный дескриптор как метаданные файла, потому что, когда файловая система фактически отформатирована, в других таблицах индексных дескрипторов фактически нет данных, за исключением десяти или около того уже используемых, пока не появится соответствующий Файл разместит таблицу inode, а файловая система запишет информацию об индексе, относящуюся к файлу, в таблицу inode.
1.2 Гибкая группа блоков (flex_bg)
Гибкая группа блоков (flex_bg) — это новая функция, представленная в Ext4. В flex_bg несколько блоков сгруппированы вместе, чтобы сформировать логическую группу блоков flex_bg. Пространство точечных рисунков и табличное пространство индексных дескрипторов в первой группе блоков Flex_bg расширяется, чтобы включить растровые изображения и таблицы индексных дескрипторов других групп блоков в flex_bg.
Например, flex_bg содержит 4 группы блоков, группа блоков 0 будет последовательно включать суперблок, таблицу дескрипторов группы блоков, битовую карту блока данных группы блоков 0-3, битовую карту inode группы блоков 0-3 и группу блоков 0-3. В таблице индексных дескрипторов другое пространство в группе блоков 0 используется для хранения данных файла. В то же время битовая карта блока данных, битовая карта индексного дескриптора и метаданные таблицы индексного дескриптора в других группах блоков не существуют, но SB и GDT все еще существуют.
Функция группы гибких блоков:
(1) Сбор метаданных для ускорения загрузки метаданных;
(2) Делайте большие файлы на диске как можно более непрерывными;
Даже если функция flex_bg включена, резервная копия суперблока и дескриптора группы блоков все еще находится в начале группы блоков. Число групп блоков в Flex_bg задается как 2 ^ ext4_super_block.s_log_groups_per_flex.
1.3 Группы мета-блоков (группы мета-блоков)
Обычно за каждым избыточным резервным суперблоком находится резервная копия полной таблицы дескрипторов группы блоков (включая все дескрипторы группы блоков). Это приведет к ограничению. Исходя из размера дескриптора группы блоков Ext4 в 64 байта, в файловой системе может быть не более 2 ^ 21 групп блоков, то есть максимальный размер файловой системы составляет 256 ТБ.
Используя функцию Meta Block Groups, каждая группа блоков содержит резервную копию своего собственного дескриптора. Следовательно, можно создать 2 ^ 33 групп блоков, то есть максимальная файловая система — 1EB. 48-битные блоки данных, каждая группа блоков 128 МБ, поэтому можно создать 2 ^ 33 группы блоков.
Группа метаблоков на самом деле представляет собой набор групп блоков, который может быть описан блоком дескриптора группы блоков.Проще говоря, он состоит из ряда групп блоков, и дескрипторы группы блоков, соответствующие этим группам блоков, хранятся в одном блоке. Его внешний вид вносит определенные изменения в структуру диска Ext3 и Ext4. Раньше за суперблоком следовал блок GDT переменной длины. Теперь суперблок по-прежнему зависит от того, является ли он степенью 3, 5 или 7, и блок Блок дескриптора группы хранится в начале первой, второй и последней группы блоков группы кортежей (см. Рисунок ниже).
Мы можем использовать этот новый макет в двух ситуациях:
(1) Когда файловая система создана. Пользователь может указать использовать этот макет. Чтобы
(2) Когда файловая система растет и зарезервированные блоки дескрипторов группы исчерпаны. В настоящее время в суперблоке есть поле s_first_meta_bg для описания первой группы блоков, которая использует группу кортежей. Чтобы
При добавлении новой группы блоков нам не нужно резервировать место для таблицы дескрипторов группы, а просто добавить новую группу кортежей непосредственно за текущей файловой системой.
1.4 Ленивая инициализация группы блоков
Если соответствующий флаг в группе блоков установлен, то битовая карта inode и таблица inode в группе блоков не будут инициализированы. Это может уменьшить время mkfs.Если функция контрольной суммы дескриптора группы блоков включена, даже группа блоков не может быть инициализирована.
1.5 Специальные иноды
Ext4 резервирует некоторые inodes для специальных функций, см. Следующую таблицу:
Таблица 1 Специальный индексный дескриптор Ext4
Номер инода Назначение
1 Связанный список поврежденных блоков данных
2 Корневой каталог
6 Неудаленный каталог
7 Зарезервированный индекс дескриптора группы блоков
11 Первый незарезервированный индексный дескриптор, обычно каталог lost + found
1.6 Стратегия распределения блоков данных и индексов
На механическом диске хранение связанных блоков данных рядом друг с другом может занять общее время движения головки, тем самым ускоряя ввод-вывод диска. Хотя на SSD нет вращения головы, локализация данных может увеличить размер данных каждой передачи запроса ввода-вывода, тем самым уменьшая количество передач в ответ на запрос ввода-вывода. Локальность данных влияет на запись одного блока стирания, что может увеличить скорость перезаписи файла. Следовательно, необходимо минимизировать фрагментацию. Стратегия распределения inode и блока данных может обеспечить частичную концентрацию данных. Ниже приводится стратегия распределения inode и блока данных:
(1) Многоблочное размещение может уменьшить фрагментацию диска. Когда файл создается впервые, распределитель блоков предсказуемо выделяет для файла 8 КБ дискового пространства. Когда файл закрывается, неиспользуемое пространство, естественно, освобождается. Но если предположение верно, то данные файла будут записаны в многоблочном формате.
(2) Задержка в распределении. Когда файлу требуется больше блоков данных, чтобы вызвать операцию записи, файловая система откладывает решение, где хранить новые данные на диске, до тех пор, пока грязный буфер не будет записан на диск.
(3) Постарайтесь сохранить блок данных файла и его индексный дескриптор в одной группе блоков. Может сократить время поиска диска.
(4) Постарайтесь сохранить все inodes в том же каталоге, в той же группе блоков, что и каталог. Предпосылка этого предположения состоит в том, что файлы в каталоге связаны.
(5) Объем диска разделен на группы блоков по 128 МБ. При создании каталога в корневом каталоге, распределитель inode сканирует группу блоков и помещает новый каталог в группу блоков с наименьшей нагрузкой, которую он находит. Это может обеспечить рассредоточение каталога на диске.
(6) Даже если указанный выше механизм недействителен, вы все равно можете использовать e4defrag для дефрагментации файлов.
Тестируем ext4
Этот рассказ я хочу начать со старого одесского анекдота — интерпретируемого применительно к случаю, соответственно (ну и с исключением той лексики, которую принято называть обсценной):
Вi думаете, Одессу брали регулярные части Красной Армии?
Фиг с маслом, пьяная матросня…
…
Они протестировали ext2 — вi думаете, она им понравилась?
Фиг с маслом, они сказали, что она неустойчива к сбоям.
Они протестировали ext3 — вi думаете, она им понравилась?
Фиг с маслом, они сказали, что она непредсказуема.
Они протестировали XFS, JFS и reiserfs — вi думаете, они им понравились?
Фиг с маслом, они нашли в них кучу недостатков.
Они протестировали ZFS и btrfs — вi думаете, они им понравились?
Фиг с маслом, они сказали, что первая не будет работать в Линуксе, а вторая экспериментальна.
И вi думаете, на этом всё кончилось?
Фиг с маслом, они сказали, что будут тестировать ext4!
Когда-то, во дни первого приобщения в Linux’у, файловая система его, тогда единственная, ext2, произвела на меня совершенно неизгладимое впечатление: все варианты FAT, Mac’овская HFS, ранние версии NTFS по сравнению с ней выглядели жалким убожеством, и даже казавшаяся несравненной HPFS от умиравшей в то время OS/2 меркла на её фоне. Особенно рельефно достоинства ext2 проступали на фоне UFS — соплеменной, но более архаичной, хотя и усовершенствованной за счёт механизма SoftUpdates. Конечно, аварийный останов системы мог иметь для неё тяжкие последствия — но от этого вполне страховал бесперебойник.
Потом начались разговоры о журналируемых файловых системах — сначала платонические, а потом, где-то с первого года нашего тысячелетия, и вполне практические. И ext2 тихо отошла в тень, единственным её местопребыванием остался, пожалуй, /boot, если он располагался на самостоятельном разделе. Хотя все тесты, начиная с первого и кончая квази-последним, показывали её несравненное быстродействие по большинству показателей не только в сравнении с эпонимом журналируемых систем, JFS, или её собственным журналируемым отпрыском, ext3, но и с reiserfs, державшей в этом отношении пальму первенства среди всех файловых гиен и шакалов.
К слову сказать, собственно ext3, то есть ext2 с прикрученным к ней пассатижами журналом, в плане быстродействия файловых операций особыми достоинствами вообще не блистала. Тем более, что изменение режима журналирования в ней давало совершенно непредсказуемый эффект в отношении быстродействия. И вообще, главным её достоинством была совместимость с ext2 — как с точки зрения преобразования одной в другую, так и в отношении инструментария для манипулирования ими. Во всех остальных отношениях она проигрывала быстрой reiserfs или XFS, способной эффективно работать с очень большими разделами.
И потому работы по кардинальному совершенствованию линии ext велись на протяжении длительного периода — впервые поддержка очередного её вариант, получишего имя ext4, появилась в 2006 году. Ныне, в ядрах 2.6.28 и выше, она стала штатной опцией, хотя и сохраняющей статус экспериментальной.
Но тем временем приспели более иные файловые системы, совмещавшие в себе как файловые системы в собственном смысле слова, так и системы управления томами — сначала ZFS, а затем и btrfs. Если применение первой как нативной для Linux оказалось невозможным по лицензионным соображениям (она используется только через механизм FUSE, что лишает её большинства преимуществ), то вторая сразу же по включении её в ядро продемонстрировала замечательные качества — как с точки зрения простоты использования, так и быстродействия.
На таком фоне ext4, остающаяся чисто файловой системой, большого интереса у меня не вызывала. И, не смотря на близкие к восторгу описания, ничего особо выдающегося я от неё не ждал. Тем не менее, в силу ряда независимых причин устанавливая очередную версию *buntu (9.04 в её Xubuntu-модификации), где эта файловая система предлагается в качестве одной из штатных, хотя и не умолчальной, я решил с нею ознакомиться.
Тем более, что развитие btrfs после победных реляций конца прошлого — начала текущего годов несколько застопорилось, а надёжность её в существующем виде продолжала внушать сомнения. Да и будущее её, после того, как факт покупки Sun’а Oracle’м можно считать (почти) свершившимся, стало не столь ясным: ведь будущему новому хозяину ZFS ничего не стоит изменить лицензию последней для отправки в плавание по безбрежному GPL-океану…
В общем, долго сказка сказывается, да быстро дело делается: в ходе установки Xubuntu создал я специальный раздел /home/test с файловой системой ext4, каковую и подверг серии издевательств, описанных ранее. Тех самых, которым я подвергал все файловые системы, с которыми мне приходилось иметь дело, включая btrfs. На железе, описанном здесь.
Так что бодро рапортую о результатах — материалы для сравнения взяты из указанных выше источников — про последнее тестирование и про btrfs (данные по всякого рода программным RAID’ам и двухдисковым конфигурациям исключены единообразия ради).
Для начала — голимая цифирь:
Операция | Копирование | Удаление | |||
Объект | Музыка | Portage | Avi | Iso | Portage |
ext4 | 00:10 | 00:15 | 01:44 | 00:19 | 00:04 |
btrfs | 00:07 | 00:24 | 01:25 | 00:17 | 00:22 |
ZFS | 00:12 | 00:29 | 02:30 | 00:21 | 00:16 |
ext2 | 00:08 | 01:28 | 03:09 | 00:31 | 00:18 |
ext3 | 00:06 | 01:41 | 02:36 | 00:25 | 00:17 |
reiser | 00:07 | 01:29 | 02:37 | 00:25 | 00:04 |
Которую можно проиллюстрировать. Например, копирование набора flac-файлов (357 Мбайт):
Казалось бы, существенно отстаёт ext4 — вместе с ZFS, кстати, которая отстаёт ещё больше. Однако глянем левее, на абсолютные значения — и увидим, что результаты, можно считать, равны (и не потому, что играли одни…ну сами знаете кто).
Едем дальше, видим дерево портежей (а это бессчётное количество мелких, от менее чем килобайт, файлов, суммарным объемом, зато, более 240 Мбайт) и… копируем его:
После чего с удивлением убеждаемся, что наша героиня не просто идёт нога в ногу с лучшими из лучших (ZFS и btrfs) — но даже их чуть-чуть, но опережает.
Тут пред нами вырастает гора — avi-фильм в 2,7 Гбайт. Преодолев его посредством копирования, сравниваем показатели:
За ext4 — не рекорд, оранжевая майка лидера одета на btrfs, — но результат существенно лучший, чем у всех остальных участников гонки, ибо даже ZFS остаётся во втором эшелоне.
Завершающий барьер — iso-образ в 586 Мбайт — ext4 преодолевает легко, занимая почётное 2-е место (после опячть же btrfs):
Что же, состязание окончено, забудьте? Не совсем — за спиной остались угли сгоревших мостов, в виде груды файлов. Правила хорошего тона требуют ликвидировать следы своей жизнедеятельности. С этой задачей все участники соревнования справляются на ура — только вот зола от сожженных портежей убирается ими довольно долго:
И тут, дорогие телезрители и радиослушатели, внимание: у безраздельного чемпиона по приборке, reiserf, впервые за все годы проведения наших товарищеских раундов, впервые появился равный соперник. Нет, это не Володя Лямин, это файловая система ext4. Ноздря в ноздрю они сносят с винта последние осколки дерева портежей…
Венков и медалей присуждать не будем — это обыкновенная товарищеская встреча, не имеющая серьёзного спортивного значения. Но выводы сделаем: