Файловая система ext3 что это

Обновлено: 07.07.2024

Содержание

Описание

Стандартом предусмотрено три режима журналирования:

  1. writeback: в журнал записываются только метаданные файловой системы, то есть информация о её изменении. Не может гарантировать целостности данных, но уже заметно сокращает время проверки по сравнению с ext2;
  2. ordered: то же, что и writeback, но запись данных в файл производится гарантированно до записи информации об изменении этого файла. Немного снижает производительность, также не может гарантировать целостности данных (хотя и увеличивает вероятность их сохранности при дописывании в конец существующего файла);
  3. journal: полное журналирование как метаданных ФС, так и пользовательских данных. Самый медленный, но и самый безопасный режим; может гарантировать целостность данных при хранении журнала на отдельном разделе (а лучше — на отдельном жёстком диске).

Указывается режим журналирования в строке параметров для программы mount, например:

либо в файле /etc/fstab .

Файловая система ext3 может поддерживать файлы размером до 1 ТБ. С Linux-ядром 2.4 объём файловой системы ограничен максимальным размером блочного устройства, что составляет 2 терабайта. В Linux 2.6 (для 32-разрядных процессоров) максимальный размер блочных устройств составляет 16 ТБ, однако ext3 поддерживает только до 4 ТБ.

Ext3 имеет одно значительно преимущество перед другими журналируемыми файловыми системами - она полностью совместима с файловой системой ext2. Это делает возможным использование всех существующих приложений разработанных для манипуляции и настройки файловой системы ext2. Ext3 поддерживается ядрами Linux версии 2.4.16 и более поздними, и должна быть активизирована использованием диалога конфигурации файловых систем (Filesystems Configuration) при сборке ядра. В Linux дистрибутивы, такие как Red Hat 7.2 и SuSE 7.3 уже включена встроенная поддержка файловой системы ext3. Вы можете использовать файловую систему ext3 только в том случае, когда поддержка ext3 встроена в ваше ядро и у вас есть последние версии утилит "mount" и "e2fsprogs". Описываемая файловая система предоставляет значительные преимущества для большого круга пользователей Linux: минимизирует задержки при перезагрузке системы, сводит к минимуму возможность появления ошибок в ФС, является высокопроизводительной, а ее утилиты делают перевод системы из ext2 в ext3 очень простым. Эта совместимость так же увеличивает возможность использование всех утилит, созданных для работы с ext2.

Ext3.jpg

Из ext2 в ext3

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

Например, перевод файловой системы ext2 расположенной на разделе /dev/hda5 в файловую систему ext3 может быть осуществлен с помощью следующей команды:

Опция '-j' команды 'tune2fs' создает журнал ext3 на существующей ext2 файловой системе. После перевода файловой системы ext2 в ext3, нужно так же должны внести изменения в записи файла /etc/fstab, для указания что теперь раздел является файловой системой 'ext3'. Также, можно использовать авто определение типа раздела (опция "auto"), но все же рекомендуется явно указывать тип файловой системы. Следующий пример файл /etc/fstab показывает изменения до и после перевода файловой системы для раздела /dev/hda5:

Последнее поле в /etc/fstab указывает этап в загрузке, во время которого целостность файловой системы должна быть проверена с помощью утилиты "fsck". При использовании файловой системы ext3, вы можете установить это значение в '0', как показано на предыдущем примере. Это означает что программа 'fsck' никогда не будет проверять целостность файловой системе, в связи с тем что целостность файловой системы гарантируется путем отката в журнале.

Перевод корневой файловой системы в ext3 требует особого подхода, и лучше всего его проводить в режиме одного пользователя (single user mode) после создания RAM диска поддерживающего файловую систему ext3.

Ограничения размеров

Максимальное число блоков для ext3 равняется 2 32 . Размер блока может быть различным, что влияет на максимальное число файлов и максимальный размер файла в файловой системе.

Размер блока Max размер файла Max размер ФС
1 KiB 16 GiB до 2 TiB
2 KiB 256 GiB до 8 TiB
4 KiB 2 TiB до 16 TiB
8 KiB (+прим.) 2 TiB до 32 TiB

(+прим.) Размер данного блока в Linux доступен только на архитектурах, поддерживающих страницы в 8 KiB, например, Alpha.

ext3 , или третья расширенная файловая система , представляет собой журналируемую файловую систему, которая обычно используется ядром Linux . Раньше это была файловая система по умолчанию для многих популярных дистрибутивов Linux . Стивен Твиди впервые сообщил, что он работает над расширением ext2 в журнале файловой системы Linux ext2fs в статье 1998 года, а затем в публикации списка рассылки ядра в феврале 1999 года. Файловая система была объединена с основным ядром Linux в ноябре 2001 г., начиная с версии 2.4.15. Его основным преимуществом перед ext2 является журналирование , которое повышает надежность и устраняет необходимость проверять файловую систему после некорректного завершения работы. Его преемник - ext4 .

СОДЕРЖАНИЕ

Преимущества

Производительность (скорость) ext3 менее привлекательна, чем у конкурирующих файловых систем Linux, таких как ext4, JFS , ReiserFS и XFS , но ext3 имеет значительное преимущество в том, что она позволяет выполнять обновление с ext2 на месте без необходимости резервного копирования и восстановления данных. . Тесты показывают, что ext3 также использует меньше мощности процессора, чем ReiserFS и XFS. Он также считается более безопасным, чем другие файловые системы Linux, из-за его относительной простоты и более широкой базы тестирования.

ext3 добавляет в ext2 следующие функции:

  • журнал
  • Рост файловой системы в Интернете
  • Индексирование HTree для больших каталогов

Без этих функций любая файловая система ext3 также является допустимой файловой системой ext2. Эта ситуация позволила хорошо протестированным и зрелым утилитам обслуживания файловой системы для обслуживания и восстановления файловых систем ext2 также использоваться с ext3 без значительных изменений. Файловые системы ext2 и ext3 используют один и тот же стандартный набор утилит, e2fsprogs , который включает инструмент fsck . Тесная взаимосвязь также упрощает преобразование между двумя файловыми системами (как прямую, так и обратную на ext2).

ext3 не хватает «современных» функций файловой системы, таких как динамическое выделение inode и экстентов . Иногда такая ситуация может быть недостатком, но с точки зрения возможности восстановления это существенное преимущество. Все метаданные файловой системы находятся в фиксированных, хорошо известных местах, а структуры данных имеют некоторую избыточность. При значительном повреждении данных ext2 или ext3 могут быть восстановлены, а файловая система на основе дерева - нет.

Ограничения по размеру

Максимальное количество блоков для ext3 - 2 32 . Размер блока может варьироваться, что влияет на максимальное количество файлов и максимальный размер файловой системы:

Размер блока Максимальный
размер файла
Максимальный
размер файловой системы
1 КБ 16 ГиБ 2 ТиБ
2 КБ 256 ГиБ 8 ТиБ
4 КБ 2 ТиБ 16 ТиБ
8 КБ 2 ТиБ 32 ТиБ

  1. ^ В Linux размер блока 8 КиБ доступен только на архитектурах, которые допускают страницы размером 8 КиБ, например Alpha .

Уровни ведения журнала

В реализации ext3 для Linux доступны три уровня журналирования :

Журнал (наименьший риск) И метаданные, и содержимое файла записываются в журнал перед фиксацией в основной файловой системе. Поскольку журнал на диске относительно непрерывен, это может повысить производительность, если в журнале достаточно места. В других случаях производительность ухудшается, потому что данные должны быть записаны дважды - один раз в журнал и один раз в основную часть файловой системы. Заказано (средний риск) Журналируются только метаданные; содержимого файла нет, но гарантируется, что содержимое файла будет записано на диск до того, как связанные метаданные будут помечены как зафиксированные в журнале. Это значение по умолчанию во многих дистрибутивах Linux. Если произойдет отключение питания или паника ядра во время записи или добавления файла, в журнале будет указано, что новый файл или добавленные данные не были «зафиксированы», поэтому они будут удалены в процессе очистки. (Таким образом, добавляемые и новые файлы имеют тот же уровень защиты целостности, что и уровень «журналирования».) Однако перезаписываемые файлы могут быть повреждены, поскольку исходная версия файла не сохраняется. Таким образом, можно получить файл в промежуточном состоянии между новым и старым без достаточной информации для восстановления одного или другого (новые данные никогда не попадают на диск полностью, а старые данные нигде не хранятся). Хуже того, промежуточное состояние может перемежать старые и новые данные, потому что порядок записи оставлен на усмотрение оборудования диска. Обратная запись (самый высокий риск) Журналируются только метаданные; содержимое файла нет. Содержание может быть написано до или после обновления журнала. В результате файлы, измененные непосредственно перед сбоем, могут быть повреждены. Например, добавляемый файл может быть отмечен в журнале как больший, чем есть на самом деле, что приведет к появлению мусора в конце. Более старые версии файлов также могут неожиданно появиться после восстановления журнала. Отсутствие синхронизации между данными и журналом во многих случаях происходит быстрее. JFS использует этот уровень ведения журнала, но гарантирует, что любой «мусор» из-за незаписанных данных будет обнулен при перезагрузке. XFS также использует эту форму ведения журнала.

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

Недостатки

Функциональность

Поскольку ext3 стремится быть обратно совместимой с более ранней версией ext2, многие структуры на диске аналогичны структурам ext2. Следовательно, ext3 не хватает недавних функций, таких как экстенты , динамическое выделение inodes и суб-выделение блоков . Каталог может иметь не более 31998 подкаталогов , потому что индексный дескриптор может иметь максимум 32 000 ссылок (каждый прямой подкаталог увеличивает счетчик ссылок на индексный дескриптор родительской папки в ссылке "..").

Дефрагментация

Не существует онлайн- инструмента дефрагментации ext3 , который работал бы на уровне файловой системы. Существует автономная ext2 дефрагментатор, e2defrag . Однако e2defrag может уничтожить данные, в зависимости от битов функций, включенных в файловой системе; он не знает, как работать со многими новыми функциями ext3.

Существуют инструменты дефрагментации пользовательского пространства, такие как Shake и defrag. Встряхивание работает, выделяя пространство для всего файла как одну операцию, что обычно заставляет распределитель находить непрерывное дисковое пространство. Если есть файлы, которые используются одновременно, Shake попытается записать их рядом друг с другом. Дефрагментация копирует каждый файл поверх самого себя. Однако эта стратегия работает только в том случае, если в файловой системе достаточно свободного места. Настоящего инструмента дефрагментации для ext3 не существует.

Однако, как указано в Руководстве системного администратора Linux: «Современные файловые системы Linux сводят фрагментацию к минимуму, сохраняя все блоки в файле близко друг к другу, даже если они не могут быть сохранены в последовательных секторах. Некоторые файловые системы, такие как ext3, эффективно выделить свободный блок, ближайший к другим блокам в файле. Поэтому не нужно беспокоиться о фрагментации в системе Linux ».

В то время как ext3 устойчив к фрагментации файлов, ext3 может фрагментироваться с течением времени или для определенных шаблонов использования, таких как медленная запись больших файлов. Следовательно, ext4 (преемник ext3) имеет онлайн-утилиту дефрагментации файловой системы e4defrag и в настоящее время поддерживает экстенты (смежные области файлов).

Отменить удаление

ext3 не поддерживает восстановление удаленных файлов. Драйвер ext3 активно удаляет файлы, стирая inodes файлов из соображений безопасности при сбоях.

Есть еще несколько методов и несколько бесплатных и проприетарных программ для восстановления удаленных или утерянных файлов с помощью анализа журнала файловой системы; однако они не гарантируют восстановление какого-либо конкретного файла.

Сжатие

e3compr - это неофициальный патч для ext3, который выполняет прозрачное сжатие . Это прямой порт для e2compr, и он все еще нуждается в доработке. Он компилируется и хорошо загружается с вышестоящими ядрами, но ведение журнала еще не реализовано.

Отсутствие поддержки снимков

В отличие от ряда современных файловых систем, ext3 не имеет встроенной поддержки моментальных снимков , т.е. способности быстро фиксировать состояние файловой системы в произвольное время. Вместо этого он полагается на менее эффективные по занимаемому пространству моментальные снимки уровня тома, предоставляемые Linux LVM . Next3 файловая система представляет собой модифицированную версию ext3 , который предлагает снимки поддержки, но сохраняет совместимость с ext3 на диске формата.

Нет контрольной суммы в журнале

ext3 не производит контрольную сумму при записи в журнал. На запоминающем устройстве с дополнительным кешем, если в качестве параметра монтирования не включен барьер = 1 (в / etc / fstab ), и если оборудование выполняет кэширование записи вне очереди, существует риск серьезного повреждения файловой системы во время авария. Это связано с тем, что устройства хранения с кешами записи сообщают системе, что данные были полностью записаны, даже если они были записаны в (энергозависимый) кеш.

Если записи на жесткий диск выполняются не по порядку (из-за того, что современные жесткие диски кэшируют записи, чтобы амортизировать скорость записи), вполне вероятно, что один из них запишет блок фиксации транзакции до того, как будут записаны другие соответствующие блоки. Если сбой питания или неисправимый сбой произойдет до того, как будут записаны другие блоки, систему придется перезагрузить. После перезагрузки файловая система воспроизведет журнал как обычно и воспроизведет «победителей» (транзакции с блоком фиксации, включая указанную выше недопустимую транзакцию, которая помечена действительным блоком фиксации). Незавершенная запись на диск, указанная выше, будет продолжена, но с использованием поврежденных данных журнала. Таким образом, файловая система по ошибке перезапишет обычные данные поврежденными при воспроизведении журнала. Если бы использовались контрольные суммы, где блоки транзакции «ложного победителя» были помечены взаимной контрольной суммой, файловая система могла бы знать лучше и не воспроизводить поврежденные данные на диске. Контрольная сумма журнала была добавлена ​​в ext4.

Файловые системы, проходящие через интерфейс устройства сопоставления (включая программные реализации RAID и LVM), могут не поддерживать барьеры и будут выдавать предупреждение, если используется этот параметр монтирования. Есть также некоторые диски, которые не реализуют должным образом расширение очистки кеша записи, необходимое для работы барьеров, что вызывает аналогичное предупреждение. В этих ситуациях, когда барьеры не поддерживаются или не практичны, надежное упорядочение записи возможно путем отключения кеша записи диска и использования data=journal опции монтирования. Отключение кеша записи на диске может потребоваться даже при наличии барьеров.

Такие приложения, как базы данных, ожидают вызова fsync () для сброса отложенных записей на диск, а реализация барьера не всегда очищает кеш записи диска в ответ на этот вызов. Также существует потенциальная проблема с реализацией барьера, связанная с обработкой ошибок во время событий, таких как сбой диска. Также известно, что иногда некоторые технологии виртуализации неправильно перенаправляют команды fsync или flush на базовые устройства (файлы, тома, диск) из гостевой операционной системы. Точно так же некоторые жесткие диски или контроллеры осуществляют очистку кеша неправильно или не реализуют очистку кеша, но по-прежнему объявляют, что она поддерживается, и не возвращают никаких ошибок при ее использовании. Существует так много способов обработки fsync и некорректной обработки кеша записи, что безопаснее предположить, что очистка кеша не работает, если она не проверена явным образом, независимо от того, насколько надежными считаются отдельные компоненты.

Ближайшее исчезновение из-за ограничения даты

Ext3 хранит даты как время Unix, используя четыре байта в заголовке файла. 32 бита не дают достаточно возможностей для продолжения обработки файлов после 18 января 2038 года - проблемы 2038 года . Ожидается, что это «Тысячелетие компьютерщиков» вызовет массовые сбои, если не будет своевременно устранено.

28 июня 2006 г. Теодор Ц'о , главный разработчик ext3, анонсировал расширенную версию под названием ext4. 11 октября 2008 г. патчи, помечающие ext4 как стабильный код, были объединены в репозитории исходного кода Linux 2.6.28, что ознаменовало завершение фазы разработки и рекомендовало его принятие. В 2008 году Ц'о заявил, что хотя ext4 имеет улучшенные функции, такие как намного более быстрая, чем ext3, это не является большим достижением, она использует старую технологию и является временным препятствием; Ц'о считает, что Btrfs - лучшее направление, потому что «он предлагает улучшения в масштабируемости, надежности и простоте управления». Btrfs также имеет «ряд тех же дизайнерских идей, что и у reiser3 / 4 ».

Файловые системы накопителей

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

Существует больше 30 файловых систем (ФС), большая часть которых имеет специфическое применение. Например, ФС под названием XFS создана исключительно для операционной системы IRIX, а DTFS — это файловая система, специализирующаяся на сжатии данных.

Если говорить относительно обычных пользователей ПК на Windows, MacOS и Linux, то для них список можно сократить до нескольких самых распространенных.

FAT32

Файловая система, разработанная компанией Microsoft на замену FAT16. Структурно вся область диска в FAT32 делится на кластеры размером от 512 байт до 32 Кбайт. Представьте себе тетрадь в клеточку. Каждая клетка — это кластер, в который может быть записан файл или его часть. Таким образом, большие файлы состоят из цепочки кластеров, которые совсем не обязательно будут располагаться друг за другом.

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

Главное и пока неоспоримое достоинство этой файловой системы — ее универсальность. FAT32 работает практически со всеми операционными системами Windows, а также без проблем распознается linux, MacOS, операционными системами игровых приставок и даже Android (если в смартфоне предусмотрена поддержка OTG).

Именно поэтому флеш-накопители чаще всего форматируют в FAT32, чтобы не иметь проблем с совместимостью на различных устройствах. С завода больше 90% всех флешек поставляется с этой ФС. Параллельно к плюсам относится высокая скорость работы с малыми и средними файлами (десятки/сотни мегабайт) и нетребовательность к объему ОЗУ.


Однако почтенный возраст FAT32 (больше 24 лет, что по меркам IT-индустрии просто огромный срок) накладывает ряд неприятных ограничений.

Несмотря на то, что размер тома с технической точки зрения может доходить до 8 ТиБ (тебибайт), что составляет около 8,7 ТБ, по факту в операционных системах Windows из-за встроенного ограничения вы не сможете создать том больше 32 ГБ. Соответственно, разметить большие жесткие диски, по крайней мере в Windows, в FAT32 не получится. Возникнут проблемы и с флешками на 64 ГБ.

Другое, более существенное ограничение — размер одного файла не может превышать 4 ГБ. Учитывая, что бэкапы, фильмы в высоком разрешении и архивы с различной информацией весят больше этого предела, ограничение доставляет массу неудобств.


exFAT

Одна из самых последних «новинок», созданная в 2008 году как расширенная версия FAT32 (extended FAT). Майкрософт решила взять лучшее и избавиться от самых неприятных недостатков.

exFAT ориентирована сугубо на переносные накопители — флешки, SD-карты и съемные жесткие диски. Размер кластера был увеличен до 32 мегабайт, благодаря чему размер файла теперь достигает целых 16 эксабайт (1 эксабайт = 1 048 576 ТБ). Задел на будущее у exFAT довольно внушительный.

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

Ощутимый минус только один — незначительная потеря совместимости. exFAT поддерживает Windows XP SP2 и более новые ОС. Соответственно, Windows 2000, NT и все, что старше, остается «за бортом». Усложнение структуры также привело к большим затратам вычислительной мощности компьютера. Однако на фоне современных процессоров с их потенциалом этим недостатком можно пренебречь.

New Technology File System разработали еще в 1993 году, однако, как и FAT32, используют по сей день. Сходство с FAT проявляется и в том, что, пространство делится на кластеры заданного размера. Однако высокую гибкость NTFS обеспечивает именно структура.

Первые 12% диска выделяются под MFT-зону — специальное служебное пространство, где хранится различная информация для работы всей ФС. Эта зона никогда не фрагментируется. В отличие от FAT используется бинарная структура.


NTFS обладает множеством достоинств. Максимальный размер тома на практике — 256 ТБ. Размера файла также хватит с запасом — около 16 ТБ. Помимо этого, за счет функции журналирования NTFS — отказоустойчивая система. Проще говоря, ФС либо выполняет действие до конца, либо откатывает все до состояния, когда действие еще не было совершено. Промежуточных «ошибочных» состояний практически не бывает. Имеется встроенное сжатие, средства разграничения прав объектов и шифрование данных.

К главному минусу NTFS относится низкая совместимость — не поддерживается все, что ниже Windows NT. Это не столь печально, но вот на MacOS и Linux записывать файлы на диски с NTFS не получится — только чтение. Игровые консоли Playstation и Xbox 360 также с этой файловой системой не работают.

Например, в PS4 можно отформатировать внешний жесткий диск, но только в формате самой приставки для обеспечения совместимости.


Таким образом, благодаря своему функционалу и поддержке больших объемов пространства NTFS — это отличный вариант для накопителей HDD и SSD. Несмотря на это, вы вполне можете создать на NTFS и флешку, но скорость ее работы по сравнению с FAT будет ниже.

Сравнительная таблица

Три приведенных файловых системы являются самыми популярными и наиболее совместимыми среди всех. Для удобства приведем основные параметры в общую таблицу.

Типы файловых систем

Рядовому пользователю компьютерных электронных устройств редко, но приходится сталкиваться с таким понятием, как «выбор файловой системы». Чаще всего это происходит при необходимости форматирования внешних накопителей (флешек, microSD), установке операционных систем, восстановлении данных на проблемных носителях, в том числе жестких дисках. Пользователям Windows предлагается выбрать тип файловой системы, FAT32 или NTFS, и способ форматирования (быстрое/глубокое). Дополнительно можно установить размер кластера. При использовании ОС Linux и macOS названия файловых систем могут отличаться.

Возникает логичный вопрос: что такое файловая система и в чем ее предназначение? В данной статье дадим ответы на основные вопросы касательно наиболее распространенных ФС.

Что такое файловая система

Обычно вся информация записывается, хранится и обрабатывается на различных цифровых носителях в виде файлов. Далее, в зависимости от типа файла, кодируется в виде знакомых расширений – *exe, *doc, *pdf и т.д., происходит их открытие и обработка в соответствующем программном обеспечении. Мало кто задумывается, каким образом происходит хранение и обработка цифрового массива в целом на соответствующем носителе.

Операционная система воспринимает физический диск хранения информации как набор кластеров размером 512 байт и больше. Драйверы файловой системы организуют кластеры в файлы и каталоги, которые также являются файлами, содержащими список других файлов в этом каталоге. Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.

Запись файлов большого объема приводит к необходимости фрагментации, когда файлы не сохраняются как целые единицы, а делятся на фрагменты. Каждый фрагмент записывается в отдельные кластеры, состоящие из ячеек (размер ячейки составляет один байт). Информация о всех фрагментах, как части одного файла, хранится в файловой системе.

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

На физическом уровне драйверы ФС оптимизируют запись и считывание отдельных частей файлов для ускоренной обработки запросов, фрагментации и «склеивания» хранящейся в ячейках информации. Данный алгоритм получил распространение в большинстве популярных файловых систем на концептуальном уровне в виде иерархической структуры представления метаданных (B-trees). Технология снижает количество самых длительных дисковых операций – позиционирования головок при чтении произвольных блоков. Это позволяет не только ускорить обработку запросов, но и продлить срок службы HDD. В случае с твердотельными накопителями, где принцип записи, хранения и считывания информации отличается от применяемого в жестких дисках, ситуация с выбором оптимальной файловой системы имеет свои нюансы.

Основные функции файловых систем

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

Основными функциями файловой системы являются:

  • размещение и упорядочивание на носителе данных в виде файлов;
  • определение максимально поддерживаемого объема данных на носителе информации;
  • создание, чтение и удаление файлов;
  • назначение и изменение атрибутов файлов (размер, время создания и изменения, владелец и создатель файла, доступен только для чтения, скрытый файл, временный файл, архивный, исполняемый, максимальная длина имени файла и т.п.);
  • определение структуры файла;
  • поиск файлов;
  • организация каталогов для логической организации файлов;
  • защита файлов при системном сбое;
  • защита файлов от несанкционированного доступа и изменения их содержимого.

VDS Timeweb арендовать

Задачи файловой системы

Функционал файловой системы нацелен на решение следующих задач:

  • присвоение имен файлам;
  • программный интерфейс работы с файлами для приложений;
  • отображение логической модели файловой системы на физическую организацию хранилища данных;
  • поддержка устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;
  • содержание параметров файла, необходимых для правильного взаимодействия с другими объектами системы (ядро, приложения и пр.).

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

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

Операционные системы и типы файловых систем

Существует три основных вида операционных систем, используемых для управления любыми информационными устройствами: Windows компании Microsoft, macOS разработки Apple и операционные системы с открытым исходным кодом на базе Linux. Все они, для взаимодействия с физическими носителями, используют различные типы файловых систем, многие из которых дружат только со «своей» операционкой. В большинстве случаев они являются предустановленными, рядовые пользователи редко создают новые дисковые разделы и еще реже задумываются об их настройках.

В случае с Windows все выглядит достаточно просто: NTFS на всех дисковых разделах и FAT32 (или NTFS) на флешках. Если установлен NAS (сервер для хранения данных на файловом уровне), и в нем используется какая-то другая файловая система, то практически никто не обращает на это внимания. К нему просто подключаются по сети и качают файлы.

На мобильных гаджетах с ОС Android чаще всего установлена ФС версии ext4 во внутренней памяти и FAT32 на карточках microSD. Владельцы продукции Apple зачастую вообще не имеют представления, какая файловая система используется на их устройствах – HFS+, HFSX, APFS, WTFS или другая. Для них существуют лишь красивые значки папок и файлов в графическом интерфейсе.

Более богатый выбор у линуксоидов. Но здесь настройка и использование определенного типа файловой системы требует хотя бы минимальных навыков программирования. Тем более, мало кто задумывается, можно ли использовать в определенной ОС «неродную» файловую систему. И зачем вообще это нужно.

Рассмотрим более подробно виды файловых систем в зависимости от их предпочтительного использования с определенной операционной системой.

Файловые системы Windows

Исходный код файловой системы, получившей название FAT, был разработан по личной договоренности владельца Microsoft Билла Гейтса с первым наемным сотрудником компании Марком Макдональдом в 1977 году. Основной задачей FAT была работа с данными в операционной системе Microsoft 8080/Z80 на базе платформы MDOS/MIDAS. Файловая система FAT претерпела несколько модификаций – FAT12, FAT16 и, наконец, FAT32, которая используется сейчас в большинстве внешних накопителей. Основным отличием каждой версии является преодоление ограниченного объема доступной для хранения информации. В дальнейшем были разработаны еще две более совершенные системы обработки и хранения данных – NTFS и ReFS.

FAT (таблица распределения файлов)

Числа в FAT12, FAT16 и FAT32 обозначают количество бит, используемых для перечисления блока файловой системы. FAT32 является фактическим стандартом и устанавливается на большинстве видов сменных носителей по умолчанию. Одной из особенностей этой версии ФС является возможность применения не только на современных моделях компьютеров, но и в устаревших устройствах и консолях, снабженных разъемом USB.

Пространство FAT32 логически разделено на три сопредельные области:

  • зарезервированный сектор для служебных структур;
  • табличная форма указателей;
  • непосредственная зона записи содержимого файлов.

К недостатком стандарта FAT32 относится ограничение размера файлов на диске до 4 Гб и всего раздела в пределах 8 Тб. По этой причине данная файловая система чаще всего используется в USB-накопителях и других внешних носителях информации. Для установки последней версии ОС Microsoft Windows 10 на внутреннем носителе потребуется более продвинутая файловая система.

С целью устранения ограничений, присущих FAT32, корпорация Microsoft разработала обновленную версию файловой системы exFAT (расширенная таблица размещения файлов). Новая ФС очень схожа со своим предшественником, но позволяет пользователям хранить файлы намного большего размера, чем четыре гигабайта. В exFAT значительно снижено число перезаписей секторов, ответственных за непосредственное хранение информации. Функция очень важна для твердотельных накопителей ввиду необратимого изнашивания ячеек после определенного количества операций записи. Продукт exFAT совместим с операционными системами Mac, Android и Windows. Для Linux понадобится вспомогательное программное обеспечение.

NTFS (файловая система новой технологии)

Стандарт NTFS разработан с целью устранения недостатков, присущих более ранним версиям ФС. Впервые он был реализован в Windows NT в 1995 году, и в настоящее время является основной файловой системой для Windows. Система NTFS расширила допустимый предел размера файлов до шестнадцати гигабайт, поддерживает разделы диска до 16 Эб (эксабайт, 10 18 байт ). Использование системы шифрования Encryption File System (метод «прозрачного шифрования») осуществляет разграничение доступа к данным для различных пользователей, предотвращает несанкционированный доступ к содержимому файла. Файловая система позволяет использовать расширенные имена файлов, включая поддержку многоязычности в стандарте юникода UTF, в том числе в формате кириллицы. Встроенное приложение проверки жесткого диска или внешнего накопителя на ошибки файловой системы chkdsk повышает надежность работы харда, но отрицательно влияет на производительность.

ReFS (Resilient File System)

Последняя разработка Microsoft, доступная для серверов Windows 8 и 10. Архитектура файловой системы в основном организована в виде B + -tree. Файловая система ReFS обладает высокой отказоустойчивостью благодаря реализации новых функций:

  • Copy-on-Write (CoW) – никакие метаданные не изменяются без копирования;
  • данные записываются на новое дисковое пространство, а не поверх существующих файлов;
  • при модификации метаданных новая копия хранится в свободном дисковом пространстве, затем система создает ссылку из старых метаданных на новую версию.

Все это позволяет повысить надежность хранения файлов, обеспечивает быстрое и легкое восстановление данных.

Файловые системы macOS

Для операционной системы macOS компания Apple использует собственные разработки файловых систем:

Файловые системы macOS

  1. HFS+, которая является усовершенствованной версией HFS, ранее применяемой на компьютерах Macintosh, и ее более соверешенный аналог APFS. Стандарт HFS+ используется во всех устройствах под управлением продуктов Apple, включая компьютеры Mac, iPod, а также Apple X Server.
  2. Кластерная файловая система Apple Xsan, созданная из файловых систем StorNext и CentraVision, используется в расширенных серверных продуктах. Эта файловая система хранит файлы и папки, информацию Finder о просмотре каталогов, положениях окна и т.д.

Файловые системы Linux

В отличие от ОС Windows и macOS, ограничивающих выбор файловой системы предустановленными вариантами, Linux предоставляет возможность использования нескольких ФС, каждая из которых оптимизирована для решения определенных задач. Файловые системы в Linux используются не только для работы с файлами на диске, но и для хранения данных в оперативной памяти или доступа к конфигурации ядра во время работы системы. Все они включены в ядро и могут использоваться в качестве корневой файловой системы.

Файловая система Линукс

Основные файловые системы, используемые в дистрибутивах Linux:

Ext2, Ext3, Ext4 или Extended Filesystem – стандартная файловая система, первоначально разработанная еще для Minix. Содержит максимальное количество функций и является наиболее стабильной в связи с редкими изменениями кодовой базы. Начиная с ext3 в системе используется функция журналирования. Сегодня версия ext4 присутствует во всех дистрибутивах Linux.

JFS или Journaled File System разработана в IBM в качестве альтернативы для файловых систем ext. Сейчас она используется там, где необходима высокая стабильность и минимальное потребление ресурсов (в первую очередь в многопроцессорных компьютерах). В журнале хранятся только метаданные, что позволяет восстанавливать старые версии файлов после сбоев.

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

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

Btrfs или B-Tree File System легко администрируется, обладает высокой отказоустойчивостью и производительностью. Используется как файловая система по умолчанию в OpenSUSE и SUSE Linux.

Другие ФС, такие как NTFS, FAT, HFS, могут использоваться в Linux, но корневая файловая система на них не устанавливается, поскольку они для этого не предназначены.

Дополнительные файловые системы

В операционных системах семейства Unix BSD (созданы на базе Linux) и Sun Solaris чаще всего используются различные версии ФС UFS (Unix File System), известной также под названием FFS (Fast File System). В современных компьютерных технологиях данные файловые системы могут быть заменены на альтернативные: ZFS для Solaris, JFS и ее производные для Unix.

Кластерные файловые системы включают поддержку распределенных хранилищ, расширяемость и модульность. К ним относятся:

  • ZFS – «Zettabyte File System» разработана для распределенных хранилищ Sun Solaris OS;
  • Apple Xsan – эволюция компании Apple в CentraVision и более поздних разработках StorNext;
  • VMFS (Файловая система виртуальных машин) разработана компанией VMware для VMware ESX Server;
  • GFS – Red Hat Linux именуется как «глобальная файловая система» для Linux;
  • JFS1 – оригинальный (устаревший) дизайн файловой системы IBM JFS, используемой в старых системах хранения AIX.

Практический пример использования файловых систем

Владельцы мобильных гаджетов для хранения большого объема информации используют дополнительные твердотельные накопители microSD (HC), по умолчанию отформатированные в стандарте FAT32. Это является основным препятствием для установки на них приложений и переноса данных из внутренней памяти. Чтобы решить эту проблему, необходимо создать на карточке раздел с ext3 или ext4. На него можно перенести все файловые атрибуты (включая владельца и права доступа), чтобы любое приложение могло работать так, словно запустилось из внутренней памяти.

Операционная система Windows не умеет делать на флешках больше одного раздела. С этой задачей легко справится Linux, который можно запустить, например, в виртуальной среде. Второй вариант - использование специальной утилиты для работы с логической разметкой, такой как MiniTool Partition Wizard Free . Обнаружив на карточке дополнительный первичный раздел с ext3/ext4, приложение Андроид Link2SD и аналогичные ему предложат куда больше вариантов.

Файловая система для microSD

Флешки и карты памяти быстро умирают как раз из-за того, что любое изменение в FAT32 вызывает перезапись одних и тех же секторов. Гораздо лучше использовать на флеш-картах NTFS с ее устойчивой к сбоям таблицей $MFT. Небольшие файлы могут храниться прямо в главной файловой таблице, а расширения и копии записываются в разные области флеш-памяти. Благодаря индексации на NTFS поиск выполняется быстрее. Аналогичных примеров оптимизации работы с различными накопителями за счет правильного использования возможностей файловых систем существует множество.

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

Читайте также: