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

Обновлено: 06.07.2024

Форматирование накопителя в файловой системе EXT4 рекомендуем выполнять из дистрибутива GNU/Linux средствами операционной системы или с помощью специальных программ и утилит для работы с дисками. Ext4 не нуждается в дефрагментации не имееет ограничений на количество вложенных директорий.

13 любопытных особенностей и фактов об Ext4

1. Файловая система Ext4 не такая уж и новая. Она была представлена в 2006 году — 12 лет назад. Но оказалась настолько удачной, что сейчас мало кто испытывает баттхёрт из-за каких либо ограничений. Быстрая, удобная и очень надежная файловая система.

2. Автор разработки — Теодор Цао — называл Ext4 временным решением, которое должно снять текущие ограничения Ext3, из-за которых у линуксоидов уже начинало-таки бомбить, но и сохранить совместимость с предыдущими версиями Ext.

3. Ext4 внешне слабо отличается от Ext3, но внутренние изменения очень серьезные — новая ФС обладала более лучшей производительностью и более надежной надёжностью. Но есть и принципиальные отличия.

4. Совместимость реализована на высшем уровне. Драйвер Ext4 умеет монтировать Ext3 и работать в соответствующем режиме. Пользователям Linux Mint выгоды от этого никакой, а вот разработчикам проще поддерживать и развивать кодовую базу ядра.

5. Максимальный размер файла составляет 16 тебибайт, а размер раздела — 1 эксбибайт 1 Чтобы переполнить такие объемы и испытать из-за этого страдания нужно постараться. На серверах, где сопоставимые объемы возможны, вместо Ext4 используются распределенные, кластерные файловые системы. Можно смело утверждать, что на ПК Ext4 хватит еще надолго.

6. Red Hat, по отдельному контракту, предоставляет некоторым клиентам поддержку компов с файловой системой Ext4 и размером файлов до 50 тебибайт.

7. Превосходство Ext4 над Ext3 в плане производительности достигнуто за счет более интеллектуального алгоритма выделения блоков. Скорость чтения и записи у Ext4 заметно выше. Например, Ext3 вызывает функцию выделения блоков каждый раз, когда нужно записать отдельный блок. Если два и более параллельных процесса пишут на диск, то файлы отказываются сильно фрагментированными и будут читаться в разы медленнее. Ext4 умеет выделять блоки пачками, за счет чего запись осуществляется быстрее — головке магнитного диска приходится меньше скакать над поверхностью диска. Меньшая степень фрагментации положительно сказывается и на скорости чтения.

8. В файловой системе Ext3 может быть не более 32 тысяч поддиректорий. В Ext4 используется быстрый алгоритм хранения индексов — HTree — и количество поддиректорий не ограничено. Теоретически, Ext3 тоже может хранить кучу вложенных директорий, но с каждой новой будет падать производительность.

9. Надежность. Ext3 — это тоже журналируемая ФС. Но для Ext4 к журналам добавили контрольные суммы. Если что-то пойдет не так, то Ext3 теоретически может-таки потерять данные. Ext4 способна самовосстанавливаться.

10. Проверка целостности Ext4 осуществляется намного быстрее, чем аналогичная проверка для Ext3. Достигается это за счет того, что Ext4 помечает невыделенные блоки особым образом и не проверяет их. А Ext3 по старинке сканирует всё подряд.

11. Дефрагментация. Честно говоря, все три ФС прекрасно фрагментируются. Но все три имеют разные подходы к дефрагментации. Для Ext2 нужно размонтировать раздел и запустить e2defrag. Если этот раздел системный, то придется поднапрячься. Ext3 менее подвержена проблеме фрагментации, но есть другая проблема: блондинки 2 часто по ошибке запускали e2defrag на Ext3 и получали полностью неработающие системы. Ext4 дефрагментирует сама себя и не требует размонтажа.

12. Ext4 более не развивается. Это миф. Разработчики готовятся нас удивить. Скоро будут запилены технологии, позволяющие удобно управлять квотами, будет улучшено журналирование, появятся блоки размером 8К.

13. Ext4 не лишена и недостатков. Журнал Ext4 весьма хорош, но если изловчиться, то потерять данные всё же можно — эта ФС не гарантирует целостность всех данных. Другой недостаток файловой системы Ext4 заключается в том, что это просто файловая система. А хотелось бы, как минимум, еще и навороченный Volume Manager.

EXT4 на USB-накопителях

Форматирование в Linux

Обычно в дистрибутиве ОС GNU/Linux имеется какая-нибудь графическая утилита для форматирования USB-накопителей и жестких дисков (например, в Linux Mint — утилита Mintstick, в Ubuntu — Gnome Disk Utility и др.), а также утилита для управления дисками GParted 0.25.0.

Приведём пример форматирования USB-накопителя (флешки) с помощью утилиты Mintstick.


Универсальным способом форматирования USB-накопителя является использование утилиты для управления дисками GParted 0.25.0. Обычно она уже установлена в ОС, но при необходимости её можно установить из официальных репозиториев (выполните sudo apt install gparted или sudo yum install gparted в зависимости от дистрибутива).

Важно! Накопитель с файловой системой EXT4 нельзя использовать в ОС Windows. Если нужно подключить накопитель с EXT4 в Windows, можно воспользоваться специальным драйвером ext2fsd, разработанный сообществом открытого программного обеспечения для файловых систем семейства ext.

Форматирование в Windows

При необходимости можно произвести форматирование из ОС Windows. Например, можно воспользоваться бесплатной версией программы MiniTool Partition Wizard Free Edition или Paragon Partition Manager Free.

В большинстве современных дистрибутивов Linux по умолчанию используется файловая система Ext4. В предыдущих версиях использовалась Ext3, ещё раньше Ext2 и если вернуться достаточно далеко, то и Ext. Без сомнения, на момент написания статьи, это самая популярная файловая система для Linux.

В этой статье мы поговорим об истории развития Ext4, разберемся чем она отличается от Ext, Ext2 и Ext3, с чего всё началось, а также рассмотрим основные возможности этой файловой системы в наше время.

Краткая история Ext4

Прежде чем появилась файловая система Ext существовала файловая система MINIX. Если вы не знакомы с историей развития Unix, раньше существовала небольшая операционная система MINIX, которая работала на IBM PC. Эндрю Танненбаум разработал её для обучения и выпустил исходный код в 1987 году.

Эта операционная система не была бесплатной. Она прилагалась к книге, которая стояла 69 долларов. Однако, это было не очень дорого, поэтому девяностых годах MINIX начали внедрять повсеместно. Благодаря чему молодой Линус Торвальдс разработал своё ядро Linux на основе MINIX и выпустил его в 1992 году.

Так вот. У MINIX была своя файловая система, которую и использовали первые версии Linux. Она могла работать с хранилищами до 64 мегабайт, а размер имён файлов не мог превышать 14 символов. В 1991 году средний размер жестких дисков был 40-140 мегабайт, поэтому для Linux было нужно что-нибудь другое.

Именно по этой причине Реми Кард в 1992 году разработал первую файловую систему семейства Ext. Она решала большинство проблем MINIX. Новая файловая система использовала новую прослойку VFS в ядре Linux и теперь могла работать с дисками до 2 гигабайт, а имена файлов могли состоять из 255 символов. Но у Ext был один недостаток. Она имела только одну временную метку для файла, вместо теперешних трёх: даты создания, даты доступа и даты модификации.

Реми Кард очень быстро создал Ext, и за следующий год он разработал Ext2 для её замены. Это уже была серьёзная файловая система коммерческого уровня. Она была быстро реализована в ядре Linux и MINIX, а затем и внешних модулях, которые сделали её доступной для Windows и MacOS. Здесь были снова увеличены лимиты файловой системы, однако у неё оставалась ещё одна проблема. Как и все файловые системы того времени, при выключении питания в момент записи файловая система становилась неработоспособной.

  • Журнал - самый безопасный режим. В журнал записываются данные и метаданные, перед тем, как они будут сохранены на диск. Это обеспечивает полную сохранность записываемого файла, но снижает производительность.
  • Упорядоченный - этот режим используется по умолчанию во многих дистрибутивах. Метаданные записываются в журнал, но данные для записи сразу же записываются в файловую систему. Тут порядок работы такой: сначала метаданные записываются в журнал, затем данные записываются в файловую систему, и только после этого метаданные тоже записываются в файловую систему. При сбое новые метаданные находятся только в журнале и файловая система может очень просто восстановится, будут повреждены только те файлы, которые записываются в момент сбоя, все остальные останутся впорядке.
  • Обратная запись - менее безопасный метод журналирования. Здесь в журнал тоже запиваются только метаданные, но в файловую систему они могут записываться вместе с данными, для улучшения производительности. Несмотря на то, что файлы, записываемые во время сбоя могут быть утеряны, для файловой системы в целом этот режим гарантирует безопасность.

Как и в Ext2, в Ext3 используется 16-ти битная адресация, это значит, что при размере блока 4 килобайта самый большой файл может иметь размер 2 терабайта, а максимальный размер файловой системы - 16 терабайт.

Файловая система Ext4 была анонсирована в 2006 году и ею занимался уже другой разработчик. Его имя Теодор Цо. Журналирование Ext4 тоже поддерживается. В ядро Linux эта файловая система попала спустя два года после анонса. Файловая система значительно расширила возможности Ext4, но по прежнему опиралась на старую технологию.

Ext4 была совместима с Ext3 и старую файловую систему можно было с легкостью конвертировать в новую. Кроме того, драйвер Ext4 может монтировать файловую систему в режиме Ext3, поэтому теперь нет необходимости поддерживать две отдельных кодовых базы.

Ещё одно улучшение по сравнению с Ext3 - это то, что блоки данных выделяются до записи их на диск, что тоже значительно увеличивает как производительность чтения так и записи. Кроме того, в файловую систему были добавлены екстенты. Это блоки до 128 мегабайт, которые можно резервировать и обращаться к ним по одному адресу. Это уменьшает количество Inode необходимых для записи одного файла, а также увеличивает производительность.

Одним из ограничений Ext3 была максимальная вложенность подкаталогов - 32 000. Начиная с ядра 2.6.23 в Ext4 улучшена работа с большим количеством подкаталогов и теперь их может быть неограниченное количество.

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

Разработка Ext4

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

Разработчики хотят научить файловую систему считать контрольные суммы для метаданных. Это позволит выявлять повреждённые суперблоки и использовать вместо них альтернативные. Сейчас это можно сделать только вручную. Ещё один момент, который хотят улучшить разработчики - это квоты. Сейчас они находятся в пространстве пользователя, но их надо перенести в ядро чтобы улучшить производительность. Кроме того надо увеличить максимальный размер блока. В наше время SSD уже используют размер блока в 8 килобайт, а Ext4 все ещё может выделять блоки до 4 килобайт. Это ещё больше уменьшит фрагментацию и улучшит производительность.

Плюсы и минусы Ext4

К плюсам этой файловой системы можно отнести такие её особенности:

  • Журналирование;
  • Поддержка шифрования;
  • Высокая стабильность, так как она проверена временем;
  • Поддержка по умолчанию во многих дистрибутивах;
  • Активная разработка;
  • Не подвержена фрагментации;
  • Лимитов вполне достаточно обычному пользователю, так и для серверных систем;

Минусов у файловой системы тоже хватает:

  • Не поддерживаются функции файловых систем следующего поколения, такие как управление томами, дедупликация данных;
  • Отсутствие проверки контрольных сумм для данных, что делает невозможным обнаружение повреждения данных из-за аппаратных сбоев оборудования.
  • Плохая масштабируемость. Несмотря на то, что заявленный максимальный размер раздела один экзабайт, на деле лучше не создавать разделы больше 50 - 100 терабайт.

Использование Ext4

Я уже подробно рассказывал как создавать разделы Ext3 и Ext4 в отдельной статье. Сегодня я упомяну об этом только кратко. Чтобы создать раздел Ext4 выполните:

sudo mkfs -t ext4 /dev/sdb1


Здесь /dev/sdb1 - имя вашего раздела, на котором надо создать файловую систему. Куда интереснее разобраться с опциями монтирования Ext4:

  • atime/noatime - обновлять или не обновлять временную метку последнего доступа к файлам;
  • journal_checksum/nojournal_checksum - добавляет контрольные суммы для записей журнала, это позволяет лучше находить повреждения;
  • barrier/nobarier - сбрасывать данные на диск, прежде, чем применять изменения для метаданных файловой системы. По умолчанию включено;
  • min_batch_time - время между сбросами данных на жесткий диск. По умолчанию 0 миллисекунд. Увеличение этого параметра улучшит пропускную способность файловой системы, но увеличит задержки;
  • discard/nodiscard - определяет надо ли выполнять команду discard/trim для диска при освобождении блоков, полезно для SSD, выключено по умолчанию;
  • max_dir_size_kb - максимальный размер одной папки в килобайтах;
  • data - определяет режим журналирования, о котором мы говорили выше: journal, ordered, writeback. По умолчанию используется ordered;
  • acl/noacl - включает или отключает поддержку ACL списков
  • quota - включает поддержку управления квотами в файловой системе, для управления используются специальные утилиты;
  • commit - записывать изменения сохраненные в журнале в файловую систему каждые n секунд. По умолчанию - каждые 5 секунд;
  • errors - указывает что надо делать при ошибке. Доступные значения: ontinue, remount-ro, panic.

Здесь перечислены далеко не все опции, а только самые интересные. Более подробное описание опций монтирования смотрите выполнив команду:

Монтирование Ext4 выполняется с помощью команды mount:

sudo mount /dev/sdb1 /mnt

Во время монтирования можно указать желаемые опции, например:

sudo mount -o data=journal,commit=60,noatime /dev/sdb1 /mnt


Например, здесь мы включили максимальный уровень журналирования, увеличили время между записями данных в файловую систему из журнала до 60 секунд, а также отключили обновление метки atime. Аналогично, опции можно задать в /etc/fstab. Для этого добавьте их в четвертую колонку строки монтирования диска:

/dev/sdb1 / ext4 defaults,data=journal,commit=60,noatime 1 0


Параметр defaults удалять не следует, просто добавляйте нужные вам опции после него.

Выводы

В этой статье мы рассмотрели историю файловой системы Ext4, а также её основные опции, монтирования, а также как и где их указывать. Про настройку Ext4 уже подробно рассказано в другой статье, поэтому здесь я решил не повторяться. А какие опции монтирования используете вы? Напишите в комментариях!

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

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

Рядовому пользователю компьютерных электронных устройств редко, но приходится сталкиваться с таким понятием, как «выбор файловой системы». Чаще всего это происходит при необходимости форматирования внешних накопителей (флешек, 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 поиск выполняется быстрее. Аналогичных примеров оптимизации работы с различными накопителями за счет правильного использования возможностей файловых систем существует множество.

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

ext4 против Btrfs: какую файловую систему Linux использовать?

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

У пользователей Windows и MacOS нет особых причин для поиска, так как у них есть только один выбор для своей системы - NTFS и HFS+ соответственно. Linux, с другой стороны, имеет множество различных файловых систем, по умолчанию это Fourth Extended Filesystem (ext4). Вы давно хотели сменить ее на B-Tree (Btrfs)? Давайте разберемся, что лучше.

Что делают файловые системы?


Image Credit: Maksym Kaharlytskyi/Unsplash

Как и физические файловые системы, такие как папки и шкафы, цифровые файловые системы управляют файлами. Они контролируют то, как ваша операционная система хранит данные, которые не используются, какую другую информацию (известную как метаданные) к данным прикрепляют, кто или что имеет доступ к данным и так далее.

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

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

Зачем переключать файловые системы?

Ни один код не подходит для всех вариантов использования, это также относится и к файловым системам. Некоторые файловые системы выделяют по разным причинам. Файловая система File Allocation Table (FAT) поддерживается практически всеми современными операционными системами.

USB флэш-накопители и SD-карты используют FAT-систему, так что ваш компьютер может читать их независимо от того, работаете ли вы под Linux, Windows, macOS или другой операционной системой.

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

Текущая файловая система Linux

Большинство версий настольных дистрибутивов Linux по умолчанию используют файловую систему ext4. Она стала улучшенной версией файловой системы ext3, которая до этого была улучшена по сравнению с файловой системой ext2.

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

Понимание ext4: плюсы и минусы


Ограничения ext4 остаются довольно впечатляющими. Самый большой объём/раздел, который можно создать с помощью ext4 - 1 эксбибайт, что эквивалентно примерно 1 152 921,5 терабайт. Максимальный размер файла составляет 16 тебибайт или примерно 17,6 терабайт, что намного больше, чем у любого жесткого диска, который обычный пользователь может купить в настоящее время.

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

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

Theodore Ts’o, разработчик, сыгравший ключевую роль в создании ext4, назвал ее релизом, основанным на устаревшей технологии 1970-х годов и поверил, что Btrfs предложит лучшее развитие. Это было более десяти лет назад.

Понимание Btrfs: плюсы и минусы


Btrfs, которую можно произнести как "Butter FS", "Better FS" или "B-Tree FS", является более новой файловой системой, переделанной с нуля. Btrfs существует, потому что разработчики хотели расширить функциональность файловой системы, включив в нее дополнительную функциональность, такую как объединение в пулы, снимки и контрольные суммы.

Проект начался в компании Oracle, но с тех пор в разработке принимали участие и другие крупные компании. Список включает Facebook, Netgear, Red Hat и SUSE.

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

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

Конечно, вы все еще можете создавать несколько разделов, чтобы не зеркалировать все. Максимальный размер раздела файловой системы btrfs составляет 16 эксбибайт, так же как максимальный размер файла.

Учитывая, что btrfs сможет охватить несколько жёстких дисков, хорошо, что она поддерживает в 16 раз больше дискового пространства, чем ext4.

Дистрибутивы Linux сделали переход?

Btrfs является стабильной частью ядра Linux с 2013 года, и вы можете переформатировать жесткие диски уже сегодня. Но btrfs не является файловой системой Linux по умолчанию. Большинство дистрибутивов продолжают использовать ext4 по умолчанию.

Почему? Файлы - это самые важные данные на вашем жестком диске. Личные данные незаменимы. Вы можете переустановить ОС и перезагрузить приложения, но без резервной копии потерянные файлы пропадут навсегда. Вот почему очень важно, чтобы файловая система была проверена на надежность, прежде чем переключать миллионы людей на ее использование по умолчанию.

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

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

Один известный дистрибутив определил, что прошло достаточно времени, чтобы переключиться. OpenSUSE теперь использует btrfs по умолчанию для раздела /root, в котором находится операционная система. Однако для раздела /home, в котором хранятся ваши личные файлы, openSUSE решила использовать вместо него файловую систему XFS.

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

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