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

Файловая система - часть операционной системы, которая обеспечивает чтение и запись файлов на дисковых носителях информации. Файловая система устанавливает физическую и логическую структуру файлов, правила их создания и управления ими, а также сопутствующие данные файла и идентификацию. Конкретная файловая система определяет размер имени файла, максимальный возможный размер файла. Операционная Система Linux поддерживает множество файловых систем, в том числе и используемые в Windows файловые системы FAT, FAT32, NTFS, но при установке OC Linux рекомендуем выбрать родную систему Extfs, Ext2, Ext3, Ext4, ReiserFS, XFS.

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

В начале каждой файловой системы есть чистый бит. При подключении файловой системы этот бит стирается. Это означает, что файловая система используется в данный момент, а при завершении работы этот бит заменяется обратно в чистый. Если при загрузке чистый бит не установлен, то ОС запускает средство проверки файловой системы. В Windows это программа – scandisk, а в Linux программа fsck. Программы проверяют целостность файловой системы.

Чистый бит не устанавливается по причинам отключение питания, сбой программ, или перезагрузке компьютера кнопкой Reset.

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

А вот еще один нюанс, представим такую ситуацию. У нас жесткий диск 500 Гб, и вы поленились разбить его на разделы и у вас один большой раздел 500 Гб. Представляете время такой проверки. Все это справедливо для не журнальной файловой системы.

Рассмотрим как работает журнальная файловая система на примере Ext3. Обычная файловая система выполняет просто запланированные команды, а вот журнальная файловая система перед каким либо действием записывает план действий в специальный файл, который называется журнальный. Например, скопировать файл file.txt в файл file.Txt, а затем удалить файл file.txt. Здесь нужно отметить, что ОС Linux чувствительна к регистру и это два разных файла. Как только журнальная файловая система убедится, что стратегический план действий полностью завершен и данные успешно записаны на диск она вычеркивает этот пункт из журнала. Теперь в случае сбоя компьютера и перезагрузки его, при следующем запуске программа проверки файловой системы будет проверять не все данные на диске, а только те файлы, которые находятся в журнале, ведь если и будут ошибки, то они будут в файлах, которые не успели записаться. Но ведь ошибок может и не быть по причине того, что запись в журнальный файл ведется до начало операции по работе с диском и в момент отключения питания процесс записи на диск еще не начался.

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

Рассмотрим файловые системы более подробно

Файловая система Extfs (Extended File System) расширенная файловая система - первая файловая система, разработанная специально для ОС на ядре Linux. Наибольший возможный размер раздела файла  - 2 Гб. Максимальная длина имени файла - 255 символов. Вытеснена файловыми системами Ext2 и Ext3.

Файловая система Ext2 расширенная файловая система достаточно быстрая но не является журналируемой файловой системой и это её главный недостаток. Развитием Ext2 стала журналируемая файловая система Ext3, полностью совместимая с ext2.

Файловая система Ext3 принадлежит к новому поколению журналируемых систем, на данном этапе она является системой по умолчанию в большинстве современных дистрибутивов Linux. В некоторых источниках вы могли встречать информацию, что максимальный размер файла для Ext3 равен 2 Гб, что делает ее не пригодной для использовании на сервере. Это ограничение существовало раньше при ядре 2.2. В настоящее время файловая система Ext3 поддерживает файлы размером до 1 Тб.
Раздел Ext3 могут читать Windows-программы (например, Total Commander).

Файловая система ext4 принадлежит к новому поколению журналируемых систем, основана на ext3 и совместимая с ней (прямо и обратно). Отличается от Ext3 поддержкой групп смежных физических блоков, управляемых как единое целое, повышенной скоростью проверки целостности и рядом других усовершенствований. Максимальный размер файловой системы не может превышать 16 Тбайт, это связано с тем, что существующая mkfs не умеет пока что работать в 64-битном режиме (но поддержка со стороны ядра есть). В октябре 2008 была переименована из ext4dev в ext4, что символизирует то, что с точки зрения разработчиков она достаточно стабильна. В ядре 2.6.28 (вышедшем 25.12.2008) файловая система уже называется ext4 и считается стабильной. Считается, что файловая система ext4 рассматривается как промежуточный шаг на пути к файловой системе следующего поколения Btrfs, которая претендует на звание основной файловой системы Linux в будущем. Однако это будущее наступит не раньше чем через 2-3 года. Из всего перечисленного можно сделать вывод, что файловая система ext4 находится в состоянии развития. Её уже можно использовать для экспериментов, но пока что не рекомендуется хранить на ней ценные данные.

Файловая система ReiserFS относится к новому поколению журналируемых систем разработанная специально для Linux. В настоящее время ReiserFS поддерживается только под GNU/Linux. Считается самой экономичной, поскольку позволяет хранить несколько файлов в одном блоке, что позволяет использовать каждый байт вашего компьютера. Обычные файловые системы могут хранить в одном блоке один файл или одну его часть. Версии ReiserFS признаны нестабильными компанией Namesys и не рекомендованы для промышленного использования, особенно в связке с NFS. Обычно под словом ReiserFS понимают третью версию, а четвёртую называют Reiser4. В настоящий момент разработка Reiser3 прекращена.

Файловая система XFS высокопроизводительная журналируемая файловая система разработана компанией Silicom Graphics в 2001г. Отличается от других файловых систем тем, что она изначально была рассчитана для использования на дисках большого объема, более 2 Тбайт. Существует возможность потери данных во время записи при сбое питания, так как большое количество буферов хранится в памяти. Процесс восстановления потерянных файлов в XFS очень сложный, поэтому на данный момент не существует программного обеспечения для восстановления.

СВами.