Jump to content

ext3

ext3
Разработчик(и) Стивен Твиди
Полное имя Третья расширенная файловая система
Представлено Ноябрь 2001 г. с Linux 2.4.15.
Предшественник ext2
Преемник ext4
Идентификаторы разделов 0x83 ( МБР )
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT )
Структуры
Содержимое каталога Таблица, хешированное B-дерево с включенным dir_index
Распределение файлов растровое изображение (свободное пространство), таблица (метаданные)
Плохие блоки Стол
Пределы
Максимальный размер тома 4 ТиБ – 32 ТиБ
Максимальный размер файла 16 ГиБ — 2 ТиБ
Макс нет. файлов Переменная, выделенная во время создания [1]
Максимальная длина имени файла 255 байт
Разрешенное имя файла
персонажи
Все байты, кроме NUL («\0») и «/».
Функции
Даты записи модификация (mtime), модификация атрибута (ctime), доступ (atime)
Диапазон дат 14 декабря 1901 г. - 18 января 2038 г.
Разрешение даты 1 с
Атрибуты разрешить восстановление удаления, только добавление, h-дерево (каталог), неизменяемый, журнал, без времени, без дампа, безопасное удаление, синхронная запись, верх (каталог)
Файловая система
разрешения
Разрешения Unix, списки ACL POSIX и произвольные атрибуты безопасности (Linux 2.6 и более поздние версии)
Прозрачный
сжатие
Нет
Прозрачный
шифрование
Нет (предоставляется на уровне блочного устройства)
Дедупликация данных Нет
Другой
Поддерживается
операционные системы
Линукс , БСД , РеактОС , [2] Windows (через IFS )

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

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

[ редактировать ]

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

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

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

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

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

[ редактировать ]

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

Размер блока Максимум
размер файла
Максимум
размер файловой системы
1 КиБ 16 ГиБ 2 ТБ
2 КиБ 256 ГиБ 8 ТБ
4 КиБ 2 ТБ 16 ТБ
8 КиБ [ограничения 1] 2 ТБ 32 ТиБ
  1. ^ В Linux размер блока 8 КиБ доступен только на архитектурах, которые допускают страницы размером 8 КиБ , таких как Alpha .

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

[ редактировать ]

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

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

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

Недостатки

[ редактировать ]

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

[ редактировать ]

Поскольку ext3 стремится быть обратно совместимой с более ранней версией ext2, многие структуры на диске аналогичны структурам ext2. Следовательно, в ext3 отсутствуют последние функции, такие как экстенты , динамическое выделение индексных дескрипторов и подраспределение блоков . [15] Каталог может иметь не более 31998 подкаталогов , поскольку индексный дескриптор может иметь не более 32 000 ссылок (каждый прямой подкаталог увеличивает счетчик ссылок на индексный дескриптор родительской папки в ссылке «..»). [16]

В ext3, как и в большинстве современных файловых систем Linux, системный инструмент « fsck » не следует использовать, пока файловая система смонтирована для записи. [6] Попытка проверить файловую систему, которая уже смонтирована в режиме чтения/записи, (весьма вероятно) обнаружит несоответствия в метаданных файловой системы. Если метаданные файловой системы меняются, и fsck применяет изменения, пытаясь привести «несогласованные» метаданные в «согласованное» состояние, попытка «исправить» несоответствия приведет к повреждению файловой системы.

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

[ редактировать ]

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

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

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

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

Восстановить удаление

[ редактировать ]

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

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

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

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

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

Близкое исчезновение из-за ограничения отметки даты

[ редактировать ]

Ext3 хранит даты как время Unix, используя четыре байта в заголовке файла. 32-битная версия не дает достаточных возможностей для продолжения обработки файлов после 18 января 2038 года — проблемы 2038 года . [43]

Зависимость времени fsck от количества индексных дескрипторов (ext3 или ext4)

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

См. также

[ редактировать ]
  1. ^ Максимальное количество индексных дескрипторов (и, следовательно, максимальное количество файлов и каталогов) устанавливается при создании файловой системы. Если V — размер тома в байтах, то количество индексных дескрипторов по умолчанию определяется как V /2. 13 (или количество блоков, в зависимости от того, что меньше), а минимум на В /2. 23 . Значение по умолчанию считается достаточным для большинства приложений. Максимальное количество подкаталогов в одном каталоге фиксировано — 32000.
  2. ^ «Выпущена ReactOS 0.4.2» . http://reactos.org . Проверено 17 августа 2016 г.
  3. ^ Стивен С. Твиди (май 1998 г.). «Журналирование файловой системы ext2fs Linux» (PDF) . Материалы 4-й ежегодной LinuxExpo, Дарем, Северная Каролина . Проверено 23 июня 2007 г.
  4. ^ Стивен С. Твиди (17 февраля 1999 г.). «Re: fsync для больших файлов» . Список рассылки ядра Linux .
  5. ^ Роб Радез (23 ноября 2001 г.). «2.4.15-финал» . Список рассылки ядра Linux .
  6. ^ Перейти обратно: а б «Глава 6. Файловая система Ext4 Red Hat Enterprise Linux 6» .
  7. ^ Пищ, Джастин. «Бенчмаркинг файловых систем, часть II» . Linux Gazette (122).
  8. ^ Айверс, Ганс. «Сравнение файловых систем (ext3, reiser, xfs, jfs) в Debian Etch» . Архивировано из оригинала 13 сентября 2008 г. Проверено 3 ноября 2010 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  9. ^ Смит, Родерик В. (9 октября 2003 г.). «Введение в файловые системы и файлы Linux» . Linux.com. Архивировано из оригинала 30 августа 2011 года.
  10. ^ Трагезер, Джеймс (23 апреля 2010 г.). «Какую файловую систему Linux выбрать для своего ПК? Ext2, Ext3, Ext4, ReiserFS (Reiser3), Reiser4, XFS, Btrfs» .
  11. ^ Цао, Минмин. «Индексация каталогов» . Возможности, имеющиеся в Linux 2.6 . Архивировано из оригинала 18 июля 2019 г. Проверено 1 апреля 2009 г.
  12. ^ Мэтью Уилкокс. «Документация/файловые системы/ext2.txt» . Исходная документация ядра Linux .
  13. ^ Перейти обратно: а б Дэниел Роббинс (1 декабря 2001 г.). «Общие темы: Руководство по внедрению расширенной файловой системы, часть 8» . IBM DeveloperWorks . Архивировано из оригинала 13 октября 2007 г.
  14. ^ любопытный наблюдатель: Ускорение файловых систем ext3 . Evuraan.blogspot.com (9 января 2007 г.). Проверено 22 июня 2013 г.
  15. ^ Радез, Роб (2005). «Экстенты, отложенное распределение» . будущее ext3 . Архивировано из оригинала 8 июля 2008 г. Проверено 30 июля 2008 г.
  16. ^ Роберт Николс (03.04.2007) Re: Сколько подкаталогов? Архивировано 6 октября 2008 г. на Wayback Machine linux.derkeiler.com.
  17. ^ Андреас Дилгер. «Опубликовать в списке рассылки ext3-users» . Сообщение в списке рассылки ext3-users .
  18. ^ Встряхнуть . Влеу.нет. Проверено 22 июня 2013 г.
  19. ^ Дефрагментация, написанная в оболочке . Ck.kolivas.org (19 августа 2012 г.). Проверено 22 июня 2013 г.
  20. ^ Дефрагментация, написанная на Python . Базар.launchpad.net. Проверено 22 июня 2013 г.
  21. ^ RE: поиск программы дефрагментации/перемещения файлов ext3 . Redhat.com (04 марта 2005 г.). Проверено 22 июня 2013 г.
  22. ^ 5.10. Файловые системы . Tldp.org (09.11.2002). Проверено 22 июня 2013 г.
  23. ^ «#849 закрыто. Улучшение (исправлено) — предварительное выделение для предотвращения фрагментации» . trac.transmissionbt.com . Файловая система Ubuntu по умолчанию («ext3») фрагментирует большие (>1 ГБ) медленно растущие файлы (<1 МБ/с).
  24. ^ Оливер Дидрих (27 октября 2008 г.). «Настройка файловой системы Linux Ext3» . Мы обнаружили сильно фрагментированные свободные области на интенсивно используемом сервере IMAP, который хранит все свои электронные письма в отдельных файлах, хотя более 900 ГБ из общего дискового пространства в 1,4 ТБ все еще были доступны.
  25. ^ Ext4 — Новички в ядре Linux . Kernelnewbies.org (19 мая 2011 г.). Проверено 22 июня 2013 г.
  26. ^ Часто задаваемые вопросы по Linux ext3 . Batleth.sapienti-sat.org. Проверено 22 июня 2013 г.
  27. ^ КАК восстановить удаленные файлы в файловой системе ext3 . Архивировано 19 сентября 2010 г. на Wayback Machine . Xs4all.nl (07.02.2008). Проверено 22 июня 2013 г.
  28. ^ PhotoRec – Восстановление файлов под лицензией GPL . Cgsecurity.org. Проверено 22 июня 2013 г.
  29. ^ Стандартное восстановление UFS Explorer, версия 4 . Ufsexplorer.com. Проверено 22 июня 2013 г.
  30. ^ e3compr — сжатие ext3 . Sourceforge.net. Проверено 22 июня 2013 г.
  31. ^ Джонатан Корбет. «Файловая система Next3» . ЛВН.
  32. ^ Перейти обратно: а б Re: Частое повреждение метаданных при ext3 + принудительное отключение. Архивировано 28 сентября 2007 г. на Wayback Machine . Archives.free.net.ph. Проверено 22 июня 2013 г.
  33. ^ Re: Частое повреждение метаданных при использовании ext3 + принудительное отключение. Архивировано 28 сентября 2007 г. на Wayback Machine . Archives.free.net.ph. Проверено 22 июня 2013 г.
  34. ^ Red Hat Enterprise Linux, Глава 20. Барьеры записи.
  35. ^ ext4: Добавьте функцию контрольной суммы журнала . Article.gmane.org (26 февраля 2008 г.). Проверено 22 июня 2013 г.
  36. ^ Re: поддерживается или нет барьер записи через устройство отображения устройств? Архивировано 4 мая 2009 г. в Wayback Machine . Oss.sgi.com. Проверено 22 июня 2013 г.
  37. ^ XFS и обнуленные файлы. Архивировано 30 апреля 2008 г. на Wayback Machine . Мэддак.нет (11 июля 2008 г.). Проверено 22 июня 2013 г.
  38. ^ Барьерная синхронизация . forums.opensuse.org (март 2007 г.)
  39. ^ Re: Предложение по «правильным» надежным функциям fsync() и fdatasync() . Mail-archive.com (26 февраля 2008 г.). Проверено 22 июня 2013 г.
  40. ^ Барьеры ввода-вывода, начиная с версии ядра 2.6.31 . Mjmwired.net. Проверено 22 июня 2013 г.
  41. ^ Режимы виртуализации и ввода-вывода = Дополнительная сложность . Mysql Performanceblog.com (21 марта 2011 г.). Проверено 22 июня 2013 г.
  42. ^ SSD, XFS, LVM, fsync, кэш записи, барьер и потерянные транзакции . Mysql Performanceblog.com (2 марта 2009 г.). Проверено 22 июня 2013 г.
  43. ^ Кларк, Либби (19 февраля 2015 г.). «10 основных моментов отчета Джона Корбета о ядре Linux» . Проверено 26 января 2019 г.
  44. ^ «Теодор Ц'о»: Предложение и план будущих разработок ext2/3 . ЛКМЛ. Проверено 22 июня 2013 г.
  45. ^ Райан Пол (13 апреля 2009 г.). «Участники дискуссии размышляют о ядре на саммите Linux Collaboration Summit» . Арс Техника . Проверено 22 августа 2009 г.
  46. ^ Теодор Цо (1 августа 2008 г.). «Re: reiser4 для 2.6.27-rc1» . linux-kernel (список рассылки) . Проверено 31 декабря 2010 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f124516d4f58a10412dceeca7c0f3133__1713879960
URL1:https://arc.ask3.ru/arc/aa/f1/33/f124516d4f58a10412dceeca7c0f3133.html
Заголовок, (Title) документа по адресу, URL1:
ext3 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)