Тестируем 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_1.gif

Казалось бы, существенно отстаёт ext4 — вместе с ZFS, кстати, которая отстаёт ещё больше. Однако глянем левее, на абсолютные значения — и увидим, что результаты, можно считать, равны (и не потому, что играли одни…ну сами знаете кто).

Едем дальше, видим дерево портежей (а это бессчётное количество мелких, от менее чем килобайт, файлов, суммарным объемом, зато, более 240 Мбайт) и… копируем его:

ext4_2.gif

После чего с удивлением убеждаемся, что  наша героиня не просто идёт нога в ногу с лучшими из лучших (ZFS и btrfs) — но даже их чуть-чуть, но опережает.

Тут  пред нами вырастает гора — avi-фильм в 2,7 Гбайт. Преодолев его посредством копирования, сравниваем показатели:

ext4_3.gif

За ext4 — не рекорд, оранжевая майка лидера одета на btrfs, — но результат существенно лучший, чем у всех остальных участников гонки, ибо даже ZFS остаётся во втором эшелоне.

Завершающий барьер — iso-образ в 586 Мбайт — ext4 преодолевает легко, занимая почётное 2-е место (после опячть же btrfs):

ext4_4.gif

Что же, состязание окончено, забудьте? Не совсем — за спиной остались угли сгоревших мостов, в виде груды файлов. Правила хорошего тона требуют ликвидировать следы своей жизнедеятельности. С этой задачей все участники соревнования справляются на ура — только вот зола от сожженных портежей убирается ими довольно долго:

ext4_5.gif

И тут, дорогие телезрители и радиослушатели, внимание: у безраздельного чемпиона по приборке, reiserf, впервые за все годы проведения наших товарищеских раундов, впервые появился равный соперник. Нет, это не Володя Лямин, это файловая система ext4. Ноздря в ноздрю они сносят с винта последние осколки дерева портежей…

Венков и медалей присуждать не будем — это обыкновенная товарищеская встреча, не имеющая серьёзного спортивного значения. Но выводы сделаем:

  • ext4 — обыкновенная файловая система, и только; и это, в сравнении с ZFS и btrfs, минус;
  • зато она не требует ни отдельного инструментария, ни каких-либо непривычных манипуляций; и это, безусловно, плюс;
  • по быстродействию он, безусловно, принадлежит не к лучшим из худших — даже болонка мадам Бонасье согласится, что это плюс не меньший;
  • и самое главное — она есть; тогда как ZFS нет, а btrfs то ли есть, то ли нет; и тут уж даже любимый кот кардинала вынужден будет признать, что живой пёс лучше льва неизвестно живого ли.

Остальные выводы предоставляются читателю.

Тестируем ext4: 12 комментариев

  1. Гм, пожалуй я таки поставлю Ubuntu 9.04, изза свежей midori, заодно и на ext4 погляжу :)

  2. У меня разбивка / и /home
    С установкой 9.04 / уже в ext4, а вот с /home всё сложнее — там надо данные сохранить. Поэтому выберу время и скопирую содержимое на ещё один винт, форматирую раздел и скопирую обратно.

    Фиг с ней, со скоростью, но вот ждать по 10-15 минут окончания рутинного fsck уже притомило.

  3. А почему уважаемый Автор не обработал статистически свои данные? (т.е., значимы отличия между сравниваемыми системами или ими можно пренебречь?)

  4. Спасибо за познавательную статью, пойду пробовать ext4

  5. alv, Вы в очередной раз выступили змеем искусителем.
    Попробую ext4 на Kubuntu 9.04.

  6. а где NTFS или FAT32 интерестно сравнить … NTFS > EXT4

  7. На днях решил «потрогать» Slackware-current — позырить на 4-е Кеды. При установке выбрал ext4 — тоже из интереса. Что сказать — был приятно удивлен: на той же машине основная Слака-12.2 на ext3 визуально работала не быстрее тестовой оси. Склонен думать, что ext4 заслуживает внимания.

  8. Пугает, что эксперементально оно =(
    А с учетом отсутствия драйверов для моей атишной видяхи для ядер выше 28ого, дожить до момента стабилизации мне не светит, придется так и сидеть на 28ом ядре(

  9. Давно хочу попробовать перейти на ext4. Но смущает одно обстоятельство, а именно, иногда есть необходимость читать и писать линуксовые разделы из оффтопика. ext2ifs и ext2fsd её не держат. Есть ли другой способ?
    Притом модули для total commander (если таковые вообще есть) не катят, нужен драйвер, чтобы все приложения работали с этой FS. Чтобы, например, можно было беспрепятственно запускать игрушки с раздела ext4.
    Создавать ещё один раздел fat или ntfs не вариант.

  10. Если наплевать очередной раз на маковку оффтопику (и не забыть ногой перекреститься, что он, сла-бо, вообще не нужен)…
    Сегодня ровно как три месяца бытия на ext4 — ни одного сбоя, и иногда интересуюсь арифметикой — так прирост производительности при
    при чтении/записи файла ~500M составляет 30-50%. Грубо говоря, там где при ext3 была скорость 70 — теперь 100.

  11. Весьма информативно. Жаль некуда информацию со своего файлового сервачка слить (более 400 ГБ на томе 0,9 ТБ), а так бы я уже на неё (ext4) перешел. Придется подождать следующего апдейта по железу(по нынешним темпам это будет через год — полтора), думаю тогда уже вступят в силу для меня некоторые ограничения старой ext3.

Обсуждение закрыто.