Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Файловая система ext (ext2, ext3, ext4)

15 февр. 2014

В мире файловых систем Linux доминируют различные версии ext. Короткая экскурсия по истории.

ext, то есть первая версия файловой системы ext, недолго применялась на заре Linux (в 1992 году). Максимальный размер файловой системы составлял 2 Гбайт.

ext2 была основной файловой системой Linux с 1993 по 2001 год. В этой версии максимальный размер файловой системы составлял 8 Тбайт.

Важнейшими нововведениями, появившимися в системе ext3, были функции журналирования и поддержка контрольных списков доступа (с версиями ядра 2.6 и выше). Победное шествие ext3 с 2002 года было обусловлено не в последнюю очередь полной совместимостью: имеющиеся системы ext2 не требовалось форматировать заново, с них можно было перейти на ext3 с минимальными усилиями. Если файловая система корректно отключалась командой unmount, она даже могла далее использоваться как система ext2.С 2006 года началась разработка ext4. В конце 2008 года было официально объявлено, что эта система готова и многие современные дистрибутивы уже используют ext4 по умолчанию (Fedora — с версии 11, openSUSE — с версии 11.2, Ubuntu — с версии 9.10).

Важнейшие нововведения: максимальный размер файловой системы достиг 1 Эбайт (1 048 576 Тбайт), время изменения файлов также протоколируется точнее, чем ранее. Так называемые экстенты позволяют запрашивать прилегающие друг к другу блоки данных файловой системы как группы, благодаря чему существенно упрощается управление крупными файлами. Кроме того, во многом была оптимизирована скорость работы: и удаление крупных файлов, и проверка файловой системы теперь проводятся в разы быстрее, чем в ext3.

Не остались без внимания и проблемы совместимости: миграция с ext3 на ext4 проходит без малейших проблем. Однако имейте в виду, что при такой миграции обратного пути уже нет!

Совместимость различных версий файловой системы ext выражается и в том, что многие инструменты администрирования до сих пор содержат в имени команды номер версии 2, хотя могут применяться и при работе с новыми версиями (например, tune2fs).

/etc/fstab. Записи в файле /etc/fstab, касающиеся файловых систем ext3 и ext4, обычно выглядят так же, как в следующем примере.

<code># /etc/fstab: Файловые системы Linux

/dev/sdb8 / ext4 defaults 1 1

/dev/sdb9 /boot ext3 defaults 0 0

/dev/sdb9 /data ext4 acl,user_xattr 0 0</code>

GRUB.

Версия GRUB 0.97 несовместима с ext4!
Если хотите загрузиться прямо с системного раздела, содержащего систему ext4, найдите пропатченную версию GRUB 0.97 (поставляется, например, с Ubuntu 9.04, Fedora 12 и openSUSE 11.2, но не поставляется с Fedora 11) либо воспользуйтесь GRUB 2.

Если в вашем дистрибутиве применяется оригинальная система GRUB 0.97 без патча для ext4, то вам потребуется отдельный раздел диска с файловой системой в формате ext2 или ext3!

Журналирование



Файловая система ext (версия 3 и выше) поддерживает функции журналирования. Необходимый для этого файл обычно использует специальные индексные дескрипторы и, следовательно, не виден в файловой системе. В нем содержится информация только о тех файлах, которые были неполностью сохранены на жестком диске. Когда изменения будут выполнены, запись считается зафиксированной и может быть заменена новыми записями. Можно (но не принято) записывать файлы журналирования на отдельном устройстве.

В файловой системе ext различается три метода журналирования. data=ordered — в этом режиме в журнале сохраняются метаданные, то есть данные о файлах, но не информация, содержащаяся в файлах. В журнале файл обозначается как зафиксированный только тогда, когда он полностью сохранен на жестком диске. После аварийного завершения работы файловая система восстанавливается очень быстро, так как по сведениям журнала можно сразу узнать, какие файлы были сохранены неполностью. Однако такие файлы нельзя восстановить.

В режиме data=ordered журнал каждые 5 секунд синхронизируется с жестким диском. В результате в ext3 все данные по тем или иным файлам физически сохраняются на жестком диске. Такой стандартный метод не очень эффективен, зато очень надежен: даже при общем коллапсе системы или отключении электричества серьезные потери информации практически исключены. В ext3 за data=ordered замечен неприятный побочный эффект: при каждом вызове функции fsync синхронизируется не только определенный файл, но и вся файловая система. Это может существенно замедлять работу системы.

В ext4 журнал также синхронизируется с системой каждые 5 секунд, но изменения вносятся в файлы гораздо позже, с использованием технологии отложенного выделения. Чтобы немедленно сохранить файл, необходимо специально вызвать функцию fsync (правда, в ext4 для выполнения команды fsync не требуется синхронизировать всю файловую систему целиком, поэтому функция выполняется гораздо быстрее). data=writeback — этот режим напоминает ordered. Единственное отличие заключается в том, что работа журнала и операции с файлами не всегда протекают синхронно. Файловая система помечает в журнале данные как фиксированные, не дожидаясь окончательного сохранения информации на диск. В случае аварийного отключения последующая целостность данных гарантирована достаточно надежно. Однако не исключено, что в измененных файлах будут содержаться старые данные. Эта проблема не возникает, если процессы сохранения в пользовательских программах — в соответствии со стандартом POSIX — завершаются командой fsync. data=journal — в отличие от двух предыдущих режимов, при этом в журнале сохраняются не только метаданные, но и сами файлы. Все изменения приходится сохранять дважды (сначала в журнале, а затем в конкретном файле), поэтому система ext3 работает значительно медленнее. Данный метод позволяет восстановить после аварийного отключения и те файлы, изменения которых уже были записаны в журнале, но еще не сохранились в файле.

В принципе информация из журнала переносится на жесткий диск каждые 5 секунд. Этот промежуток можно изменить с помощью параметра commit команды mount. Если у вас установлен и сконфигурирован пакет laptop-mode и ноутбук работает от батареи, то промежуток commit будет значительно дольше.

Внутри системы работает демон журналирования kjournald, интегрированный в ядро и предназначенный для регулярного обновления файла журнала. Этот процесс запускается автоматически, как только к дереву каталогов командой mount подключается файловая система ext3 или ext4.

Отложенное выделение



Важнейшее нововведение системы ext4, влияющее на скорость ее работы, — это так называемое отложенное выделение — функция, действующая и во многих других современных файловых системах (например, brtfs, HFS+, reiser4, xfs и ZFS). Отложенное выделение заключается в том, что при внесении изменений в блоки с данными эти блоки резервируются не сразу, а в момент физического сохранения данных на диске — на это может потребоваться до полуминуты. Такой метод имеет два значительных достоинства: во-первых, операции сохранения данных можно выполнять группами, благодаря чему повышается скорость работы и снижается степень фрагментации файловой системы. Во-вторых, временные файлы, которые иногда существуют в течение всего нескольких секунд, зачастую вообще не сохраняются физически.

К сожалению, у отложенного выделения есть и недостатки: основная проблема заключается в том, что метаданные (то есть информация о состоянии файла) часто записываются в систему еще до того, как соответствующие изменения заносятся в файл. При использовании исходного варианта драйвера ext4 случалось так, что измененный, но еще не синхронизированный файл после аварийного отключения системы и последующего восстановления оказывался пуст. Эта проблема особенно часто происходила с конфигурационными файлами. (Многих пользователей устроит, если файл после восстановления системы просто сохранится в исходном состоянии. Однако полная потеря содержимого файла, а вместе с ним и конфигурации программы неприемлема.)

Теодор Цо (Theodore Ts'o), главный разработчик всех версий ext, считает, что потери данных обусловлены лишь тем, что во многих программах не выполняется команда fsync. Однако, в соответствии со стандартом POSIX, только выполнение этой команды гарантирует, что изменения действительно будут сохранены. В версии ядра 2.6.30 все же появились различные изменения драйвера ext4, призванные свести проблему к минимуму: если при изменении имеющихся файлов используются функции rename или ftruncate (как обычно), то ext4 отказывается от отложенного выделения. Вы можете полностью отключить его, задав параметр nodelalloc команды mount. Правда, при этом значительно снижается эффективность работы и часть достижений ext4 в области производительности сводится на нет.

Стандартная работа системы и дополнительные параметры


Если режим журналирования и распределения данных специально не установить в команде mount или файле /etc/fstab, то по умолчанию будут действовать следующие настройки:

ext3 до версии ядра 2.6.29 — data=ordered;

ext3 после версии ядра 2.6.30 — data=writeback;

ext4 — data=ordered с отложенным выделением.

Изменение стандартного режима работы файловой системы ext3 в версии ядра 2.6.30 вызвало немало споров. Еще неизвестно, воспримут ли это изменение все дистрибутивы. Более вероятно, что в отдельных дистрибутивах конфигурация ядра будет изменена так, что ext3 будет работать как раньше, то есть в режиме data=ordered. В принципе режим журналирования можно изменить при каждом процессе mount, то есть данная настройка свободно задается при форматировании файловой системы.


Администрирование



Создание файловой системы


Файловые системы ext2, ext3 и ext4 форматируются с помощью команд mkfs.ext2, mkfs.ext3 и mkfs.ext4.

Проверка файловой системы



Файловые системы ext регулярно проверяются на наличие ошибок при запуске компьютера, а именно после выполнения определенного количества операций mount (по умолчанию 36) либо по истечении определенного времени (6 месяцев) в зависимости от того, какое из условий будет выполнено раньше. Обратите внимание: в некоторых дистрибутивах максимальное количество операций mount, после которых запускается проверка, либо временной интервал имеют большее значение или это значение равно 0 (проверка не выполняется). Кроме того, в большинстве дистрибутивов конфигурация fstab такова (если она вообще задается), что проверяется только системный раздел.

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

Чтобы проверить файловую систему вручную, можно просто выполнить команду fsck.ext2/ext3/ext4. Во время контроля проверяемый раздел не может использоваться, то есть при необходимости сначала выполните unmount.
root# fsck.ext4 -f /dev/mapper/vg1-test

e2fsck 1.41.4 (27-Jan-2009)

Процесс 1: Проверка индексных дескрипторов, блоков и величин
Процесс 2: Проверка структуры каталогов
Процесс 3: Проверка связей между каталогами
Процесс 4: Проверка счетчика обращений Процесс
5: Проверка общей информации о группе /dev/mapper/vgl-test: 21357/1310720 файлов (1.3Ж без взаимосвязей), 2062135/5242880 блоков

Обычно после проверки оказывается, что все в порядке. В противном случае в каталоге /lost+found каждого раздела сохраняются остатки тех файлов, которые уже невозможно восстановить. Если это текстовые файлы, то из их остатков вы, возможно, сможете извлечь крупицы полезной информации.

Настройка интервала для автоматической проверки системы


Действующие интервалы для автоматической проверки файловой системы можно определить и изменить с помощью команды tune2fs. Здесь с использованием параметра -c вы указываете максимальное количество операций mount, а с помощью параметра -i — временной интервал в днях:

<code>root# tune2fs -l /dev/mapper/vg1-test

Mount count: 1

Maximum mount count: 35

Last checked: Wed Jul 15 11:45:54 2009

Check interval: 15552000 (6 months)

root# tune2fs -c 100 -i 90 /dev/mapper/vg1-test</code>

Установка максимального количества подключений 100 Установка интервала между проверками 7776000 секунд

Настройка названий разделов


С помощью команды e2label можно узнать, настроить или изменить внутреннее название файловой системы ext3 (имя тома файловой системы):

root# e2label /dev/sda1 mylabel


Это имя можно задать в первом столбце файла /etc/fstab вместо названия устройства.

Настройка уникального идентификационного номера


При создании файловая система автоматически получает уникальный идентификатор (UUID), узнать который можно, выполнив команду vol_id или /lib/udev/vol_id. При необходимости эти номера можно изменить с помощью команды tune2fs -U. Такое изменение можно внести на ходу, использовать команду umount не требуется.

<code>root# tune2fs -U random /dev/sda1 (Случайные UUID)

root# tune2fs -U f7c49568-8955-4ffa-9f52-9b2ba9877021 /dev/sda1 (Собственные UUID)</code>


Изменение размера файловой системы


Команда resize2fs позволяет увеличить или уменьшить размер файловой системы ext. Обратите внимание, что при увеличении системы нужно сначала увеличить раздел или логический том, в котором она находится, а при уменьшении файловой системы нужно сначала уменьшить файловую систему, а потом — раздел диска или логический том.
root# lvextend -L 40G /dev/mapper/vg1-test


Расширение тестирования логического тома до 40,00 Гбайт Тестирование логического тома выполнено, изменение размера

root# resize2fs /dev/mapper/vg1-test

resize2fs 1.41.4 (27-Jan-2009)


Файловая система на /dev/mapper/vg1-test подключена к /test;

Необходимо изменить размер онлайн old desc_blocks = 2, new_desc_blocks = 3 Выполнение изменения размера онлайн /dev/mapper/vg1-test на 10485760 (4к) блоков. Файловая система на /dev/mapper/vgl-test теперь имеет размер 10485760 блоков.

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

Фрагментация файловой системы



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

Драйверы ext2/3/4 пытаются, насколько это возможно, избежать фрагментации. Это, однако, удается сделать лишь в том случае, когда файловая система заполнена не более чем на 90 %.

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

Доступ к файловым системам ext2 и ext3 из Windows



Вы можете обращаться к данным, сохраненным в Linux, и из системы Windows. Для этого существует несколько программ. По собственному опыту я рекомендую работать с Explore2fs. Это своего рода файловый менеджер, с помощью которого можно считывать файлы из систем ext2/3, но нельзя их изменять.

На первый взгляд драйвер файловой системы ext кажется еще элегантнее. После его установки вы можете без малейших сложностей работать в Windows с любыми данными из разделов, отведенных под Linux, и даже изменять эти данные. При этом обязательно учитывайте, что, покидая одну систему и переходя в другую, нужно полностью завершать работу Windows или Linux (а не переводить ее в ждущий или спящий режим). Иначе вы рискуете повредить файловую систему и потерять данные.

Ни Explore2fs, ни драйвер файловой системы ext не совместимы с ext4.
Читайте так же:
Файловая система xfs






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать