LXF115:Что за штука

Материал из Linuxformat.

Перейти к: навигация, поиск

Что за штука… ext4?

Дефрагментатор-рецидивист Пол Хадсон объясняет, почему потомку ext3 тяжело будет стать таким же долгожителем, как его родитель.
  • Минуточку, а раньше я слыхал про ext3?..
    Это нынешний стандарт для Linux. Скорее всего, именно этой файловой системой пользуются все ваши компьютеры.
  • Ну и что тут особенного? У Windows – NTFS, у Mac OS X – HFS, и обе системы – стандартный выбор пользователей.
    Да, но к тому же и почти единственный выбор на этих ОС. В Linux, напротив, ext3 – только одна из многих ФС, среди которых ext2, JFS, XFS, ReiserFS, OCFS, GFS, Lustre и прочая. Многие из них технически совершеннее ext3, да и быстрее ее. Тем удивительнее, что ext3 столь широко распространена.
  • А почему так, в самом деле?
    Ну, причин немало. Но главная из них, вероятно, та же, что и у 30-летней популярности процессоров x86: обратная совместимость. Например, если пользователю ext2 хотелось перейти на новую систему, перед ним вставал выбор: отформатировать винчестер и попробовать что-нибудь свеженькое вроде XFS, либо сохранить все свои данные и без хлопот переключиться на ext3.
  • Значит, ext2 и ext3 очень схожи?
    Да. Фактически, кроме журналирования (благодаря ему ФС легко восстанавливается после сбоя питания), новая система отличается от старой лишь рядом мелких функций, и кому они были не нужны, те просто возвращались к старой системе (если хотели).
  • Но… с чего это они хотели?
    Давайте вспомним времена перехода ext2/ext3. Например, у вас два ядра: одно из них поддерживает ext3, другое нет. Что оставалось делать? Кроме того, в ext2 имелось множество программ для обслуживания дисков, и почти все они плавно перетекли на ext3.
  • Ладно, мы отклонились от темы. Займемся ext4.
    Я просто поясняю, почему ext4 обречена на популярность. Она совместима «вперед» и совместима «назад», с ext3, и можно не только переключиться с ext3 на ext4 без форматирования, но и вернуть все обратно.
  • Сдается мне, что все эти «передние» и «задние» совместимости означают практическое отсутствие реальных изменений…
    Это не совсем так. В данном случае, совместимость достигается необязательностью некоторых функций. Например, одно из новшеств для ext4 – это упреждающий запас. Linux отводит для каждого файла некоторое дополнительное пространство, и последующие записи в этот файл не приводят к его фрагментации. Если вы активируете эту функцию для ext4, то обратной совместимости с ext3 уже не будет.
  • И чем так уж опасна фрагментация?
    Судите сами: кому понравится постоянная дефрагментация системы, хотя бы и «на лету»? Я вот только что купил новый ноутбук, и это, видимо, последний приобретенный мной компьютер с магнитным носителем (я про жесткий диск). Будущее за флеш-накопителями, но (по крайней мере, пока) количество циклов записи для этих устройств ограниченно. Если ext4 устранит нужду в дефрагментации (а это сотни тысяч циклов записи), флеш-диски станут более долговечными.
  • А есть другие средства борьбы с фрагментацией?
    А как же: например, предварительное размещение, отсроченное размещение и многоблочное размещение. Все эти меры служат одной цели – точному расчету места, необходимого для каждого файла в системе. Оставить слишком много – будет перерасход и неизбежная фрагментация. Отвести слишком мало – фрагментация начнется еще раньше.
  • Ну, вы совсем меня… озадачили! Приведите хоть пример.
    ОК, возьмем предварительное размещение. Например, вы загружаете нечто огромное, размером, скажем, в 1 ГБ. При предварительном размещении программа может запросить у Linux свободное место для записи размером 1 ГБ, даже если пока загружается всего 10 МБ. Linux постарается отвести для нового файла сплошной (непрерывный) участок размером именно 1 ГБ, который не будет разбросан по всему диску. Таким образом, эта функция позволит Linux более расчетливо выделять место для хранения файлов (если программы обеспечат подобные сведения).
  • А отсроченное размещение?
    Эта функция использует кэширование диска. При этом блоки для хранения выделяются только тогда, когда в этом возникает необходимость. Например, программа может запросить 50 МБ места, а занять всего 38 МБ. Нынешняя система выделит под запись 50 МБ, остальное будет пустовать. При отсроченной записи ext4 подождет очистки кеша (т.е. непосредственной записи на диск), и только потом решит, сколько же места выделять для файла.
  • И фрагментации станет меньше…
    Верно – сведения, необходимые для записи различных файлов, ext4 будет использовать более «разумно», чем ее предшественница, а это уже хорошо.
  • Что нового в ext4, кроме предупреждения фрагментации?
    Как, например, насчет поддержки дат файлов, созданных после 2038 года?
  • Не понял…
    А вы вспомните, как остро стояла «проблема 2000 года» несколько лет назад: если на сведения о годах отводится двузначное число, то нелегко различить, например, годы 2009 и 1909. Для Unix проблема еще сложнее: у нас даты хранятся в виде 32-разрядных чисел, поэтому последней надежно сохраняемой датой будет 3 часа 14 минут 07 секунд во вторник, 19 января 2038 года. После этого летосчисление вернется к 13 декабря 1901 года, что, согласитесь, отдает катастрофой!
  • А ext4 все это разрулит, да?
    Отчасти. В ext4 появится наносекундная градация временных штампов (сейчас используется секундная), и для хранения временных данных понадобится больше места. Часть этого места отведут на данные о годах, тем самым сдвинув предел с 2038-го на 2514-й год – временное, но решение.
  • Уже радует. Но на революцию как-то не тянет… Удивите же меня, наконец!
    Ну, вот пример: работая с ядром 2.6.24, ext4 может помечать неиспользуемые секторы диска закрытыми для fsck, что значительно сокращает время полной проверки файловой системы – fsck будет проверять лишь области, действительно содержащие данные.
  • Ну, это уже кое-что: ненавижу fsck за медлительность. Но где же радикальные перемены?
    Честно говоря, их нет. Разработчики ext4 на встрече в прошлом году, обсуждая будущее файловых систем, согласились на том, что ext4 будет только мостом между ext3 и другой файловой системой, совершенно нового поколения. Названные мной улучшения увидят свет уже сейчас, а под их прикрытием программисты будут разрабатывать нечто новое, лучшее и совершенное.
  • Попробую угадать… ext5?
    Мимо! Это называется Btrfs (произносится «Баттер ФС» [Butter FS]), и работа над ней сейчас в разгаре. Система задумана как «наш ответ ZFS от Sun», и получит следующие функции: снимки состояния, зеркалирование и чересполосицу, копирование при записи и т.п. Планируется оптимизация для твердотельных накопителей, что обеспечит долголетие системы.
  • А нужно ли будет форматировать диск под Btrfs?
    Разработчики пытаются обеспечить базовую совместимость новой системы с ext3 – не такую, конечно, как с ext4, но достаточную для конвертации одного в другое «на месте», с помощью простой программы-конвертора.
  • Вот так уже интереснее. А где можно узнать подробности о ext4 и Btrfs?
    Особых подробностей не ждите – это неизведанные глубины Ядра, и на всех углах об этом не болтают! Ну, разве что на Heise Online опубликованы краткие заметки об ext4 и предстоящей миграции на Btrfs – зайдите на http://tinyurl.com/ext4btrfs. А уж для самых смелых есть wiki-страничка проекта Btrfshttp://btrfs.wiki.kernel.org

LXF

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию