Reiserfs файловая система что это

Обновлено: 04.07.2024

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

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

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

ReiserFS сохраняет файл метаданные ( «стат элементы»), каталог записи ( «пункты каталога»), инод списки блоков ( «косвенные пункты»), и хвосты файлов ( «прямые ЗАПИСИ») в одном сочетании B + дереве шпоночных по а универсальный идентификатор объекта. Блоки диска, выделенные узлам дерева, являются «форматированными внутренними блоками». Блоки для конечных узлов (в которых элементы упакованы непрерывно) являются «форматированными конечными блоками». Все остальные блоки представляют собой «неформатированные блоки», содержащие содержимое файла. Элементы каталога со слишком большим количеством записей или косвенные элементы, которые слишком длинные для размещения в узле, переходят в правого соседнего листа. Распределение блоков отслеживается по битовым картам свободного пространства в фиксированных местах.

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

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

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

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

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

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

Процесс восстановления дерева fsck ReiserFS вызвал много критики со стороны сообщества * nix: если файловая система настолько сильно повреждена, что ее внутреннее дерево станет непригодным для использования, выполнение операции восстановления дерева может привести к дальнейшему повреждению существующих файлов или появлению новых записей с неожиданным содержимым, [21], но это действие не является частью нормальной работы или обычной проверки файловой системы и должно быть явно инициировано и подтверждено администратором.

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

Предыдущие выпуски

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

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

ReiserFS — журналируемая файловая система, разработанная специально для Linux компанией Namesys под руководством Ганса Рейзера; этим наименованием обозначают третью версию семейства файловых систем Рейзера (тогда как четвёртую называют Reiser4).

Содержание

Разработка

Поддерживается только под Linux. Стала первой журналируемой файловой системой, включённой в ядро Linux (в версии 2.4.1); является стандартной файловой системой в дистрибутивах Elive, Xandros, Linspire, GoboLinux, Yoper Linux, ранее была стандартной в SuSE (Enterprise, до октября 2006), Ubuntu, Gentoo, Archlinux, Slackware, также рекомендуется в Calculate Linux. Версии ReiserFS, включённые в ядро Linux старых версий (младше версии 2.4.10), признаны нестабильными компанией Namesys и не рекомендованы для промышленного использования, особенно в связке с NFS. Для создания структур файловой системы используется команда mkreiserfs.

Система поддерживает конфигурируемое блочное перераспределение — возможность упаковки нескольких небольших файлов в один блок во избежание фрагментации и потери дискового пространства. Из-за сильной потери производительности Namesys рекомендует отключить эту возможность на чувствительных к ресурсам машинах. Также реализовано несколько режимов журналирования (можно подвергать журналированию только метаданные, либо все данные — аналогично Ext3). Важной особенностью системы является возможность изменения размера файловой системы «на лету», без размонтирования тома.

Среди недостатков файловой системы — вероятность повреждения файловой системы в целом при сильно повреждённых метаданных и неэффективность единственного известного способа дефрагментации, требующего снятия полного дампа и последующего восстановления (в Reiser4 реализован переупаковщик, решающий эту проблему). [3]

Работа с маленькими файлами

Как происходит размещение в файловой системе большого числа маленьких порций информации? В Namesys решили, по крайней мере, для начала, сосредоточится на одном из аспектов работы файловой системы - работе с маленькими файлами. Строго говоря, файловые системы наподобие ext2 и ufs в этой области ведут себя неэффективно, часто вынуждая разработчиков проектировать базы данных или использовать другие "фокусы" для получения удовлетворительной производительности. Такой подход приводит к "изобретению множества велосипедов" и порождает огромное число несовместимых API узкоспециального назначения.

За счет чего ext2 поощряет этот вид "велосипедного" программирования? Ext2 хороша для хранения достаточно большого числа файлов размером более двадцати килобайт каждый, но совсем не идеальна для хранения 2,000 50-байтовых файлов. Мало того, что заметно снижается производительность, но и само хранение маленьких файлов на ext2 приводит к неэффективному использованию дискового пространства, так как ext2 ассигнует под каждый файл целое число 1-2-4 KB блоков (размер блока устанавливается при формировании файловой системы).

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

Как на практике ReiserFS работает с большим числом маленьких файлов? Удивительно, но очень хорошо. Фактически, ReiserFS при обработке файлов размером меньше одного K выигрывает в скорости у ext2 в восемь - пятнадцать раз! Вообще, ReiserFS превосходит по быстродействию ext2 в почти каждой области, но действительно сияет, когда сравнивается обработка маленьких файлов.

Технология ReiserFS

За счет чего ReiserFS эффективно работает с маленькими файлами? ReiserFS использует специально оптимизированные сбалансированные деревья (b* balanced tree - одно на файловую систему) для организации всех данных файловой системы. Одно это дает большое увеличение производительности, а также снимает ряд искусственных ограничений на размещение файловой системы. Например, становится возможным иметь каталог, содержащий 100,000 других подкаталогов. Еще одна выгода от использования b*tree в том, что ReiserFS, подобно большинству других filesystems нового поколения, динамически ассигнует информационные узлы (inodes) вместо их статического набора, образующегося при создании "традиционной" файловой системы. Это дает большую гибкость и оптимальность в формировании пространства хранения. [4]

ReiserFS также имеет ряд особенностей, нацеленных специально для улучшения работы с маленькими файлами. ReiserFS не связана ограничением в ассигновании памяти для файла в целом числе 1-2-4 KB блоков. По необходимости для файла может ассигноваться точный размер. ReiserFS также включает некоторые виды специальной оптимизации файловых "хвостов" для хранения конечных частей файлов, меньших, чем логический блок файловой системы. Для увеличения скорости, ReiserFS способен хранить содержимое файлов непосредственно внутри дерева b*tree, а не в виде указателя на дисковый блок (в ext2 есть понятие fastlink, когда содержимое "мягкой" ссылки до 60 байт хранится в inode).

Тем самым достигается две вещи. Первое, сильно увеличивается производительность, так как данные и метаданные (stat_data, иначе говоря, inode) информация может хранится рядом и считываться одной дисковой операцией ввода/вывода. Второе, ReiserFS способен упаковать хвосты (tail) файлов, экономя дисковое пространство. Фактически, при разрешении ReiserFS выполнять упаковку хвостов (значение по умолчанию) будет экономиться примерно шесть процентов дискового пространства (в сравнении с ext2).

Следует иметь в виду, что упаковка хвостов требует дополнительной работы, так как при изменении размеров файлов необходима "переупаковка". По этой причине в ReiserFS упаковка хвоста может отключаться, позволяя администратору выбрать между скоростью и эффективностью использования дискового пространства. [5]

Файловая система ReiserFS была разработана специально для операционной системы Linux Гансом Райзером и компанией Namesys. Она стала первой журналированной файловой системой, которую приняли в ядро и развивалась тогда, когда про журналирование файловых систем Ext еще не планировалось.

Первая версия ReiserFS вышла в 2001 году, на то время, файловая система была очень интересна и имела множество новых возможностей, но потом ее развитие замедлилось и теперь ее обогнали такие известные файловые системы, как Btrfs и ZFS. В этой статье будет рассмотрена файловая система ReiserFS, мы поговорим о ее особенностях, а также детально разберем как создавать разделы и работать с ней.

Особенности файловой системы ReiserFS

Как я уже сказал, первая версия файловой системы ReiserFS вышла в 2001 году и на то время, она была очень перспективной. Это эффективная файловая система, которая очень быстро работает с небольшими файлами и поддерживает журналирование для быстрого восстановления в случае проблем. В основе структуры файловой системы, также как и для ReiserFS лежат деревья. Максимальный размер файла составляет 1 экзабайт, а количество файлов, которые находятся на одном разделе около четырех миллиардов.

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

На этом особенности Reiserfs не завершаются. Она позволяет помещать небольшие файлы и хвосты файлов в один блок, это снижает занимаемое ими место.

На данный момент существуют две стабильные версии файловой системы. Это Reiser3 или как ее еще называют ReiserFS и новая версия Reiser4. В ней было добавлено шифрование, улучшена производительность и многое другое. Она вышла в 2004 году. Но после ареста руководителя, Ганса Рейзера, разработка файловой системы замедлилась, а новая версия до сих пор не включена в состав ядра. Поэтому мы будем рассматривать только возможности Reiser3.

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

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

Для работы с ReiserFS нам понадобится набор утилит Reiserfsprogs. Обычно, этот пакет уже установлен в большинстве дистрибутивов, но если у вас его нет, то вы можете его очень просто установить. Для этого наберите:

sudo apt install reiserfsprogs

После этого можно перейти к работе с файловой системой. Бывает, что система говорит, что утилита установлена, но команд для работы с файловой системой нет. Тогда просто удалите ее и установите заново:

sudo apt purge reiserfsprogs && sudo apt install reiserfsprogs

1. Создание раздела

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

$ sudo mkreiserfs опции устройство размер

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

  • -b - размер одного блока файловой системы, может быть от 512 до 8192 байт;
  • -h -указать хэш функцию, с помощью которой будут сортироваться файлы и директории r5, rupasov или tea;
  • -u - позволяет задать UUID раздела;
  • -l - метка раздела;
  • -j - файл, в котором будет размещен журнал;
  • -s - размер журнала файловой системы;
  • -B - файл с адресами битых блоков;
  • -d - вывести отладочную информацию.

Но большинство из них вам не понадобится. Вы можете создать раздел и нормально им пользоваться используя опции по умолчанию. Например, создадим файловую систему на разделе /dev/sda20:

sudo mkreiserfs /dev/sda20

После ввода команды вам придется подтвердить форматирование раздела.

2. Монтирование ReiserFS

Монтирование файловой системы аналогично другим популярным ФС, таким как Ext4 или XFS. Для этого используется команда mount:

sudo mount /dev/sda20 /mnt/


Все, после этого вы можете пользоваться этим разделом и копировать на него файлы. Некоторыми возможностями файловой системы можно управлять через опции монтирования. Но большинство из них стандартны для всех файловых систем, поэтому мы не будем их рассматривать. Но есть и особенные опции. Как вы помните, файловая система Reiserfs позволяет упаковывать хвосты файлов в один блок, что позволяет экономить пространство. Но это снижает производительность. Чтобы отключить эту возможность используется опция notail:

sudo mount -o notail /dev/sda20 /mnt/


Также вы можете указать эту опцию во время автоматического монтирования с помощью /etc/fstab:

sudo vi /etc/fstab

/dev/sda20 /mnt reiserfs notail 0 0

Эта строчка сообщает системе инициализации, что раздел /dev/sda20 стоит монтировать в папку /mnt с опцией notail.

3. Изменение раздела

Утилита reiserfstune позволяет изменить параметры, которые вы могли задать во время создания файловой системы. Например, можно изменить размер журнала, адрес журнала, UUID, файл битых секторов, а также частоту проверок на ошибки. Синтаксис такой же, как и у mkreiserfs:

$ sudo reiserfstune опции устройство

Опции те же, но только стоит выделить несколько из них:

  • -c - установить интервал в днях между проверками файловой системы на ошибки;
  • -C - установить дату последней проверки;
  • -m - установить максимальное количество монтирований перед проверкой;
  • -M - установить текущее количество монтирований с момента текущей проверки.

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

sudo reiserfstune -c 1 /dev/sda20

4. Восстановление Reiserfs

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

sudo reiserfsck --check /dev/sda20


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

sudo reiserfsck --scan-whole-partition --rebuild-tree /dev/sda20


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

sudo reiserfsck --rebuild-sb /dev/sda20


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

Выводы

В этой статье мы рассмотрели файловую систему ReiserFS. Это была очень перспективная файловая система на момент начала ее разработки, но после ареста создателя разработка очень замедлилась. Такие современные файловые системы, как Btrfs и ZFS уже давно ее обогнали. Надеюсь информация из статьи была полезной для вас. На завершение видео для начинающих, зачем разделать диск на разделы и зачем нужны файловые системы:

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

Версия 4 ReiserFS в настоящее время полностью поддерживается ядром Linux. Существует экспериментальная поддержка для FreeBSD , так что только для операций чтения. Коммерческие драйверы также доступны для операционных систем Microsoft .

Оглавление

ReiserFS, версии 1 и 2

ReiserFS основана на структуре данных дерева B +, разработанной Рудольфом Байером . Это относится к версиям с 1 по 3.

ReiserFS, версия 3

В версии 3 в ReiserFS был добавлен журнал. Первоначально недостатком ReiserFS по сравнению с некоторыми другими системами журналирования было то, что журналирование было доступно только для метаинформации , т.е. ЧАС. для каталогов и секторов управления, но не для полезной нагрузки в самих файлах. Это было исправлено в ядре 2.6.

Reiser4

Reiser4 совершенно новый, и его не следует путать со старым ReiserFS. Поэтому он не продается как «ReiserFS 4». Используется модификация структуры дерева B * , так называемые танцующие деревья . Основное отличие состоит в том, что недостаточно заполненные узлы объединяются не при каждой модификации дерева, а только тогда, когда требуется обратная запись в постоянное хранилище из-за нехватки памяти или завершения транзакции.

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

Кроме того, была добавлена ​​гибкая структура подключаемых модулей , с помощью которой можно реализовать специальные типы метаданных , шифрование и сжатие . В Reiser4 метаданные файла, такие как название и исполнитель музыкального файла, могут храниться в файловой системе, а не в приложениях. Отличие, например, от тегов ID3 ​​из файлов MP3 и сопоставимых систем метаданных состоит в том, что система метаданных интегрирована в файловую систему, а не в формат контейнера файла, который может быть одинаковым для всех файлов. Если бы этот подход когда-либо был реализован, не было бы необходимости беспокоиться о том, понимает ли приложение все типы метаданных, с которыми оно может контактировать. Он мог получить доступ к метаданным прозрачно через функцию файловой системы. Хотя это может улучшить совместимость приложений, это затрудняет совместимость файловой системы, поскольку метаданные не могут быть скопированы в другую файловую систему без этой системы метаданных, такой как ext4 , XFS или FAT32 . Также NTFS поддерживает такие альтернативные потоки .

Основные функции ReiserFS

ReiserFS предлагает преимущества перед другими файловыми системами, особенно когда речь идет об обработке большого количества небольших файлов , поскольку они могут храниться на узлах управления (как NTFS в MFT). Это означает, что файлы занимают меньше места в файловой системе, а пространство на жестком диске можно использовать более эффективно . Эти функции файловой системы можно указать с помощью параметров при монтировании . Наиболее известные параметры:

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

Существуют также программы, поставляемые разработчиками для управления и администрирования файловой системы, reiserfsprogs :

Для создания структур файловой системы используется команда mkreiserfs.

Содержание

Особенности

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

По сравнению с файловыми системами ext2 и ext3 в ядре Linux версии 2.4, при работе с файлами меньше 4 КБ и с включённой функцией «tail packing», ReiserFS может быть быстрее.

Недостатки

  • Reiser3 может быть повреждена в результате перестройки дерева во время проверки. Перестройка дерева нужна при условии, если метаданные очень сильно повреждены.
  • Версии ReiserFS, включённые в ядро Linux младше версии 2.4.10, признаны нестабильными компанией Namesys и не рекомендованы для промышленного использования, особенно в связке с NFS.
  • Неизвестен способ дефрагментации, помимо полного дампа ФС и последующего восстановления. Однако имеется переупаковщик для ReiserFS v4, который заботится о дефрагментации файлов. [4]

Примечания

Ссылки

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое "ReiserFS" в других словарях:

ReiserFS — Hersteller Namesys (Hans Reiser) Vollständige Bezeichnung Reiser File System Technische Umsetzung Verzeichnisse B⁺ Baum (ReiserFS 1 3) B* Baum (Reiser4) Dateien Bitm … Deutsch Wikipedia

Reiserfs — Hersteller Namesys (Hans Reiser) Vollständige Bezeichnung Reiser File System Technische Umsetzung Verzeichnisse B⁺ Baum (ReiserFS 1 3) B* Baum (Reiser4) Dateien Bitm … Deutsch Wikipedia

ReiserFS — Saltar a navegación, búsqueda ReiserFS Desarrollador Namesys Nombre completo ReiserFS Introducido 2001 (Linux 2.4.1) Identificador de la partición Apple UNIX SVR2 (Apple Partition Map) 0x83 (MBR) EBD0A0A … Wikipedia Español

Reiserfs — Diffuseur de logiciel Hans Reiser Nom anglais Reiser File System Introduction (GNU/Linux) Identificateur de partition … Wikipédia en Français

ReiserFS — Développeur Hans Reiser Nom anglais Reiser File System Limitations Taille maximale de fichier 8 Tio/ environ 8 To Taille maximale de volume 16 Tio/ environ 16 To Fonctionnalités … Wikipédia en Français

ReiserFS — I computerterminologi et filsystem, som hurtigt kan reparere sig selv efter for eksempel strømsvigt. Diske med ReiserFS må ikke være mere end 75% fyldte på grund af systemets design. Findes for eksempel hos styresystemet Linux … Danske encyklopædi

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