JFS (файловая система) - JFS (file system) - Wikipedia

JFS
Разработчики)IBM и другие.
Полное имяЖурналируемая файловая система IBM
Введено1990 и 1999 с JFS1 в AIX 3.1 и JFS в OS / 2 4.5
Идентификатор раздела0x35 (MBR )
Структуры
Содержание каталогаB + дерево
Размещение файловБитовая карта/экстенты
Пределы
Максимум. размер тома32 PB  (32 × 10245 байты)
Максимум. размер файла4 ПБ (4 × 10245 байты)
Максимум. количество файловЛимит не определен
Максимум. длина имени файла255 байт
Допустимые символы в именах файловЛюбой Unicode Кроме NUL
Функции
Даты записаныМодификация (mtime), модификация атрибута (ctime), доступ (atime)
Разрешение даты1 нс
Вилкида
Разрешения файловой системыPOSIX, ACL
Прозрачное сжатиеТолько в JFS1 на AIX
Прозрачное шифрованиеНет (предоставляется на уровне блочного устройства)
Дедупликация данныхНет
Другой
Поддерживается операционные системыAIX, OS / 2, Linux, eComStation, ArcaOS

Журналируемая файловая система (JFS) это 64-битный файловая система журналирования сделано IBM. Есть версии для AIX, OS / 2, eComStation, ArcaOS и Linux операционные системы. Последнее доступно как бесплатное программное обеспечение в соответствии с условиями Стандартная общественная лицензия GNU (GPL). HP-UX имеет другую, другую файловую систему с именем JFS, которая на самом деле является OEM-версией Программное обеспечение Veritas с VxFS.

В операционной системе AIX существует два поколения файловой системы JFS, которые называются JFS (JFS1) и JFS2 соответственно.[1][2] В других операционных системах, таких как OS / 2 и Linux, существует только второе поколение и называется просто JFS.[3] Это не следует путать с JFS в AIX что на самом деле относится к JFS1.

История

IBM представила JFS в первом выпуске AIX версии 3.1 в феврале 1990 года. Эта файловая система, теперь называемая JFS1 в AIX, была основной файловой системой для AIX в течение следующего десятилетия и была установлена ​​в тысячах или миллионах клиентских систем AIX. Исторически файловая система JFS1 очень тесно связана с менеджером памяти AIX,[1] что является типичным дизайном файловой системы, поддерживающей только одну операционную систему. JFS была одной из первых файловых систем, поддерживающих Ведение журнала

В 1995 году началась работа по усовершенствованию файловой системы, чтобы она была более масштабируемой и поддерживала машины с более чем одним процессором. Другой целью было создание более переносимой файловой системы, способной работать в нескольких операционных системах. После нескольких лет проектирования, кодирования и тестирования новая JFS была сначала поставлена ​​в OS / 2 Warp Server для электронного бизнеса в апреле 1999 года, а затем в OS / 2 Warp Client в октябре 2000 года. В декабре 1999 года был сделан снимок оригинала. Исходный код OS / 2 JFS был предоставлен Открытый исходный код сообщества и началась работа по переносу JFS на Linux. Первый стабильный выпуск JFS для Linux появился в июне 2001 г.[3] В JFS для Linux проект поддерживается небольшой группой участников, известной как Основная команда JFS.[4] Этот выпуск исходных кодов также послужил основой для повторного переноса JFS с открытым исходным кодом на OS / 2.

Параллельно с этим некоторые из команды разработчиков JFS вернулись в группу разработки операционных систем AIX в 1997 году и начали перенос этой новой исходной базы JFS в операционную систему AIX. В мае 2001 г. появилась вторая файловая система с журналированием, Расширенная журналируемая файловая система (JFS2), был доступен для AIX 5L.[1][3]

В начале 2008 года возникло предположение, что IBM больше не заинтересована в поддержке JFS и, следовательно, не должна использоваться в производственных средах.[5] Однако Дэйв Клейкамп, член Центр технологий IBM Linux и основная команда JFS,[4] объяснил, что они все еще следят за изменениями в Ядро Linux и попытаться исправить потенциал программные ошибки. Далее он добавил, что некоторые дистрибутивы ожидают от них большего объема ресурсов и предпочитают не поддерживать файловую систему.[6]

В 2012, ПОДРЕЗАТЬ командная поддержка для твердотельные накопители был добавлен в JFS.[7]

Функции

JFS поддерживает следующие функции.[8][9]

Журнал

JFS - это файловая система журналирования. Вместо того, чтобы добавлять ведение журнала в качестве дополнительной функции, как в ext3 файловая система, она была реализована с самого начала. Журнал может быть до 128 МБ. JFS регистрирует только метаданные, что означает, что метаданные останутся согласованными, но пользовательские файлы могут быть повреждены после сбоя или отключения питания. Журнал JFS похож на XFS в том, что он записывает только часть индекс.[10]

B + дерево

JFS использует B + дерево для ускорения поиска в каталогах. JFS может хранить 8 записей каталога в каталоге каталога. индекс перед перемещением записей в дерево B +. JFS также индексирует экстенты в дереве B +.

Динамическое размещение inode

JFS динамически выделяет место для диска inodes как нужно. Каждый индексный дескриптор имеет размер 512 байт. 32 inode размещаются на экстенте размером 16 КБ.

Экстенты

JFS выделяет файлы как степень. Экстент - это последовательность агрегированных блоков переменной длины. Экстент может располагаться в нескольких группы размещения. Чтобы решить эту проблему, экстенты индексируются в дереве B + для повышения производительности при поиске местоположений экстентов.

Сжатие

Сжатие поддерживается только в JFS1 в AIX и использует вариант LZ алгоритм. Из-за высокого использование процессора и увеличенное свободное пространство фрагментация, сжатие не рекомендуется использовать, кроме как для одного пользователя рабочая станция или офлайн резервный области.[2][11]

Параллельный ввод / вывод (CIO)

JFS обычно применяет к файлам блокировку с общим доступом для чтения и исключительной записи, что позволяет избежать несогласованности данных, но налагает сериализацию записи на уровне файла. Параметр CIO отключает эту блокировку. Такие приложения, как реляционные базы данных, которые сами поддерживают согласованность данных, могут использовать эту опцию, чтобы в значительной степени устранить накладные расходы файловой системы.[12]

Группы размещения

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

Суперблоки

В суперблок содержит информацию обо всей файловой системе и включает следующие поля:

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

В Linux

В операционной системе Linux JFS поддерживается ядро модуль (начиная с версии ядра 2.4.18pre9-ac4) и дополнительные пространство пользователя утилиты, упакованные под названием JFSutils. Наиболее Дистрибутивы Linux поддерживать JFS, если он специально не удален из-за ограничений по объему, например живые компакт-диски.[нужна цитата ]

Согласно тестам доступных файловых систем для Linux, JFS является быстрой и надежной, с неизменно хорошей производительностью при различных видах нагрузки.[13]

Фактическое использование JFS в Linux встречается редко, так как ext4 обычно предлагает лучшую производительность[нужна цитата ]. JFS действительно играет свою нишевую роль в Linux: он предлагает вариант монтирования без учета регистра, в отличие от большинства других файловых систем Linux.[14]

Есть также потенциальные проблемы с JFS, такие как реализация записи журнала. Их можно отложить до тех пор, пока не появится другой триггер - потенциально на неопределенный срок, что может вызвать потерю данных в течение теоретически бесконечного периода времени.[15]

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

Рекомендации

  1. ^ а б c "Мини-FAQ по JFS". Проект JFS для Linux.
  2. ^ а б «Сравнение JFS1 и JFS2 в AIX». IBM.
  3. ^ а б c «Интервью с людьми, стоящими за JFS, ReiserFS и XFS».
  4. ^ а б «JFS для Linux». JFS.SourceForge.net. Получено 26 августа, 2020.
  5. ^ "Re: что использовать: ext3, JFS, XFS, ReiserFS?". Архивировано из оригинал 3 марта 2016 г.. Получено 31 марта, 2008.
  6. ^ SourceForge.net: jfs-обсуждение
  7. ^ «Поддержка TRIM для файловой системы JFS».
  8. ^ «Обзор JFS». Стив Бест, IBM. Архивировано из оригинал 29 января 2008 г.. Получено 9 января, 2008.
  9. ^ «Макет JFS» (PDF). Стив Бест, IBM. Получено 1 мая, 2008.
  10. ^ Дэвид Клейкамп. "Журнал JFS". OSDIR. Архивировано из оригинал 3 марта 2016 г.. Получено 7 июля, 2008.
  11. ^ «AIX Wiki: JFS». IBM. Архивировано из оригинал 28 мая 2006 г.
  12. ^ «Повышение производительности базы данных с помощью AIX Concurrent I / O - White Paper» (PDF). IBM.com. IBM.
  13. ^ «9-стороннее сравнение файловой системы с SSD на ядре Linux 3.17». Phoronix.com. Получено 7 июля, 2020.
  14. ^ "jfs_mkfs: создать раздел в формате JFS - Linux Man Pages (8)". SysTutorials.com. Получено 7 июля, 2020.
  15. ^ Анализ и эволюция журнальных файловых систем - В. Прабхакаран и другие 2013-06

внешняя ссылка