ReiserFS

Журналируемая файловая система
ReiserFS 3.6
Разработчик(и)Namesys
Полное имяReiserFS
Введено2001 ; 24 года назад с Linux 2.4.1 ( 2001 )
Идентификаторы разделов
Структуры
Содержимое каталогаB+ дерево
Распределение файловРастровое изображение [1]
Пределы
Максимальный размер тома16 ТиБ [2]
Максимальный размер файла1 ЭБ (8 ТиБ на 32-битных системах) [2]
Макс . кол- во файлов2 32 −3 (~4 миллиарда) [2]
Максимальная длина имени файла4032 байта, ограничено 255 байтами Linux VFS
Допустимые
символы в имени файла
Все байты, кроме NUL и '/'
Функции
Даты записаныИзменение (mtime), изменение метаданных (ctime), доступ (atime)
Диапазон дат14 декабря 1901 г. – 18 января 2038 г. (32-битное время Unix)
Разрешение даты1 с
ВилкиРасширенные атрибуты

Разрешения файловой системы
Разрешения Unix, списки контроля доступа и произвольные атрибуты безопасности
Прозрачное
сжатие
Нет
Прозрачное
шифрование
Нет
Другой
Поддерживаемые
операционные системы
Linux, ReactOS

ReiserFS — это универсальная журналируемая файловая система , изначально разработанная и реализованная командой Namesys под руководством Ганса Рейзера и лицензированная по GPLv2 . Представленная в версии 2.4.1 ядра Linux , она была первой журналируемой файловой системой, включенной в стандартное ядро. ReiserFS была файловой системой по умолчанию в SUSE Linux Enterprise от Novell , пока Novell не решила перейти на ext3 для будущих выпусков 12 октября 2006 года. [3]

Версия ReiserFS 3.6, теперь иногда называемая Reiser3, представила новый формат на диске, позволяющий файлы большего размера. Namesys посчитала ReiserFS стабильной и функционально полной и прекратила разработку, чтобы сосредоточиться на ее преемнике Reiser4 , хотя она продолжала выпускать обновления безопасности и исправления критических ошибок. Namesys прекратила свою деятельность в 2008 году после осуждения Рейзера за убийство. В настоящее время продукт поддерживается как открытый исходный код добровольцами. [4] Reiserfsprogs 3.6.27 были выпущены 25 июля 2017 года. [5]

Начиная с Linux 6.12, ReiserFS поддерживается в Linux без поддержки квот. Из-за технических проблем, присущих файловой системе, и отсутствия обслуживания сообщество Linux обсуждало удаление ReiserFS из основной ветки по крайней мере с начала 2022 года. ReiserFS была удалена из ядра Linux в версии 6.13. [6] [7]

Функции

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

Дизайн

ReiserFS хранит метаданные файлов («stat items»), записи каталогов («directory items»), списки блоков inode («indirect items») и хвосты файлов («direct items») в одном объединенном дереве B+ , ключом которого является универсальный идентификатор объекта. Дисковые блоки, выделенные узлам дерева, являются «форматированными внутренними блоками». Блоки для листовых узлов (в которых элементы упакованы сквозным образом) являются «форматированными листовыми блоками». Все остальные блоки являются «неформатированными блоками», содержащими содержимое файлов. Элементы каталога со слишком большим количеством записей или косвенные элементы, которые слишком длинные для размещения в узле, перетекают в правого листового соседа. Распределение блоков отслеживается с помощью битовых карт свободного пространства в фиксированных местах.

Напротив, ext2 и другие файловые системы Berkeley FFS того времени просто использовали фиксированную формулу для вычисления местоположений inode, тем самым ограничивая количество файлов, которые они могли содержать. [9] Большинство таких файловых систем также хранят каталоги как простые списки записей, что делает операции поиска и обновления каталогов линейными по времени и снижает производительность на очень больших каталогах. Единая конструкция дерева B+ в ReiserFS позволяет избежать обеих этих проблем благодаря лучшим свойствам масштабируемости.

Производительность

По сравнению с ext2 и ext3 в версии 2.4 ядра Linux, при работе с файлами размером менее 4  КБ и включенной упаковке хвостов, ReiserFS может быть быстрее. [10]

До Linux 2.6.33 [11] ReiserFS активно использовала большую блокировку ядра (BKL) — глобальную блокировку всего ядра, — которая плохо масштабируется для систем с несколькими ядрами, [12] поскольку критические части кода выполняются только одним ядром за раз.

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

ReiserFS была файловой системой по умолчанию в SUSE Linux, начиная с версии 6.4 (выпущенной в 2000 году) [13] [14] до перехода на ext3 в SUSE Linux Enterprise 10.2 и openSUSE 11, анонсированного в 2006 году. [15] [16]

Джефф Махони из SUSE написал пост 14 сентября 2006 года, предлагая перейти с ReiserFS на ext3 для установочной файловой системы по умолчанию. [12] Причины, которые он упомянул, включали масштабируемость, «проблемы производительности с расширенными атрибутами и ACL », «небольшое и сокращающееся сообщество разработчиков», и то, что « Reiser4 не является инкрементным обновлением и требует переформатирования, что неразумно для большинства людей». [12] 4 октября он написал ответный комментарий в блоге, чтобы прояснить некоторые вопросы. [17] Он написал, что его предложение о переходе не было связано с тем, что Ганс Райзер находится под судом за убийство. [18] [ проверка не удалась ] Махони написал, что он «обеспокоен тем, что люди установят связь там, где ее не было», и что «время полностью случайно, а мотивация не имеет отношения к делу». [17]

ReiserFS обсуждался на предмет удаления из ядра Linux с начала 2022 года из-за отсутствия поддержки в апстриме и технических проблем, присущих файловой системе, таких как проблема 2038 года ; [19] [20] [21] он был объявлен устаревшим в Linux 5.18, [22] и помечен как устаревший в Linux 6.6, [23] с запланированным полным удалением в Linux 6.13. [24] [25] [26] ReiserFS был удален из основной ветки во время цикла разработки Linux 6.13. [7] [6]

Критика

Некоторые операции с каталогами (включая unlink (2)) не являются синхронными в ReiserFS, что может привести к повреждению данных в приложениях, в значительной степени зависящих от блокировок на основе файлов (например, агенты передачи почты, такие как qmail [27] и Postfix [28] ), если машина останавливается до того, как она синхронизирует диск. [29]

Нет программ для специальной дефрагментации файловой системы ReiserFS, хотя были написаны инструменты для автоматического копирования содержимого фрагментированных файлов в надежде на то, что можно будет найти больше смежных блоков свободного пространства. Однако для следующей файловой системы Reiser4 был запланирован инструмент «перепаковки», чтобы справиться с фрагментацией файлов. [30] Фрагментация по-прежнему является проблемой SSD независимо от файловой системы. [31]

fsck

Fsck ReiserFS 3 способен перестроить все дерево в рамках спасения в случае его полного повреждения. Это действие должно быть явно инициировано администратором и не является частью нормальной работы. Как и ожидалось, этот процесс является разрушительным и может еще больше повредить существующие файлы или ввести новые записи с неожиданным содержимым, что было раскритиковано как не самый оптимальный метод. [32]

Образы ReiserFS v3 не следует хранить на разделе ReiserFS v3 (например, резервные копии или образы дисков для эмуляторов) без их преобразования (например, путем сжатия или шифрования), чтобы избежать путаницы при перестроении. Переформатирование существующего раздела ReiserFS v3 также может оставить данные, которые могут запутать операцию перестроения и привести к повторному появлению файлов из старой системы. Это также позволяет злоумышленникам намеренно хранить файлы, которые запутают перестроителя. Поскольку метаданные всегда находятся в согласованном состоянии после проверки файловой системы, повреждение здесь означает, что содержимое файлов объединяется неожиданным образом с метаданными содержащейся файловой системы. Это похоже на проблему FSID в btrfs . Преемник ReiserFS, Reiser4, устраняет эту проблему.

ReiserFS в версиях ядра Linux до 2.4.16 считалась компанией Namesys нестабильной и не рекомендовалась для использования в производственных целях, особенно в сочетании с NFS . [33]

Ранние реализации ReiserFS (до Linux 2.6.2) также были подвержены рискам неупорядоченной записи. Но текущая реализация журналирования в ReiserFS теперь находится на одном уровне с "упорядоченным" уровнем журналирования ext3 . [ необходима цитата ]

Смотрите также

Ссылки

  1. ^ Схема узла Reiser FS, Namesys, заархивировано из оригинала 2006-06-14
  2. ^ abc "Reiser FS Specifications", FAQ , Namesys, заархивировано из оригинала 2006-07-05
  3. ^ Шенкленд, Стивен (16 октября 2006 г.). «Novell меняет программное обеспечение для хранения файлов». Business Tech . cnet..
  4. ^ Шенкленд, Стивен (16 января 2008 г.). «Namesys исчезает, но проект Reiser продолжает жить». CNet . Архивировано из оригинала 27 марта 2016 г. Получено 26.01.2008 .
  5. ^ ""Fossies" - свежий архив программного обеспечения с открытым исходным кодом". 25 июля 2017 г. Получено 25 июля 2019 г.
  6. ^ ab "Объединить тег 'reiserfs_delete'". git.kernel.org . Получено 2024-11-24 .
  7. ^ ab Larabel, Michael (21.11.2024). «ReiserFS удалена из ядра Linux». www.phoronix.com . Получено 24.11.2024 .
  8. ^ Райзер, Ганс. "Reiser4 is Released!". Архивировано из оригинала 2007-10-24 . Получено 2006-07-15 .
  9. ^ Минмин Цао; Теодор Й. Цо ; Бадари Пулаварти; Супарна Бхаттачарья (2005-07-26). «Современное состояние дел: где мы находимся с файловой системой Ext3». Симпозиум Linux 2005 года . Оттава, Канада: IBM Linux Technology Center . Получено 2007-03-08 .
  10. ^ "PHP Manual". php.net . PHP Group . Получено 5 декабря 2018 г. .
  11. ^ "kill-the-BKL". git.kernel.org .
  12. ^ abc Джефф Махони (2006-09-14). "Предложение: изменение FS по умолчанию для релизов >= 10.2". gmane.org . Получено 2009-08-23 ..
  13. ^ "Архив:SuSE Linux 6.4". openSUSE wiki . Получено 28.06.2017 .
  14. ^ "Руководство по администрированию SUSE LINUX 9.1: основные файловые системы в Linux". Novell . Получено 28.06.2017 .
  15. ^ Шенкленд, Стивен (16 октября 2006 г.). «Novell меняет программное обеспечение для хранения файлов». CNET .
  16. ^ Шарма, Маянк (12 октября 2006 г.). «Novell перейдет с ReiserFS на ext3». Linux.com .
  17. ^ ab комментарий Джеффа Махони (2006-10-04). "SUSE 10.2 отказывается от ReiserFS как своей [sic] файловой системы по умолчанию? (комментарий 29)". linux.wordpress.com . Архивировано из оригинала 2006-11-09 . Получено 2009-08-23 .
  18. ^ CBS 5 / AP / BCN (2006-09-14). "Полиция Окленда обыскивает дом бывшего пропавшего без вести мужчины". Архивировано из оригинала 2006-11-06 . Получено 2009-08-23 .{{cite web}}: CS1 maint: числовые имена: список авторов ( ссылка )
  19. ^ "Разработчики Linux обсуждают прекращение поддержки и удаление ReiserFS". www.phoronix.com . Получено 10.03.2022 .
  20. ^ "Пришло ли время удалить reiserfs? - Мэтью Уилкокс". lore.kernel.org . Получено 24.02.2022 .
  21. ^ "Re: Пришло ли время удалить reiserfs? - Дэйв Чиннер". lore.kernel.org . Получено 2022-03-10 .
  22. ^ "Linux_5.18". Linux Kernel Newbies . Получено 2022-05-23 .
  23. ^ Перди, Кевин (2023-08-31). «ReiserFS теперь «устарела» в ядре Linux и должна исчезнуть к 2025 году». Ars Technica . Получено 2023-09-01 .
  24. ^ Ларабель, Майкл. «План Linux ReiserFS — сделать его устаревшим и удалить файловую систему в 2025 году». Phoronix . Получено 20 июня 2023 г.
  25. ^ "kernel/git/torvalds/linux.git - Исходное дерево ядра Linux". git.kernel.org . Получено 2022-05-22 .
  26. ^ Ларабель, Майкл. «Ожидается, что файловая система ReiserFS будет удалена с Linux 6.13». Phoronix . Получено 20 октября 2024 г.
  27. ^ Дэниел Роббинс (2001), "Руководство по внедрению расширенных файловых систем". Получено 5 июля 2006 г.
  28. ^ Маттиас Андре (2001), LKML- запись о предположениях синхронности Postfix. Получено 15 июля 2006 г.
  29. ^ NEOHAPSIS - Душевное спокойствие через целостность и проницательность
  30. ^ Ганс Райзер, дизайн Reiser4, перепаковщик Архивировано 24 октября 2007 г. на Wayback Machine . Получено 5 июля 2006 г.
  31. ^ Мартин Фарах-Колтон, «Старение файловой системы», архив веб-архива, 2021 г.
  32. ^ Theodore Ts'o LKML post. Получено 5 июля 2006 г.
  33. ^ Страница загрузки ReiserFS, см. предупреждение. Получено 5 июля 2006 г.
  • ReiserFS 3.6 в репозитории Git Линуса Торвальдса – в настоящее время (2019) основной ресурс для разработки ReiserFS 3
  • ReiserFS и Reiser4 вики
  • Reiserfsprogs
  • convertfs — утилита, которая выполняет преобразование на месте между любыми двумя файловыми системами с поддержкой разреженных файлов
  • Ссылка на форум Gentoo – обсуждение фрагментации ReiserFS, включая скрипт для измерения фрагментации и дефрагментации файлов
  • Утилиты Windows для доступа к ReiserFS: YAReG – Yet Another R(eiser)FStool GUI, rfsd – ReiserDriver.
Взято с "https://en.wikipedia.org/w/index.php?title=ReiserFS&oldid=1272515269"