JFS

Перейти к навигацииПерейти к поиску
JFS
РазработчикIBM и др.
Файловая система IBM Journaled File System
Дата представления1990 и 1999 (JFS1 в AIX 3.1 и JFS с OS/2 4.5)
Метка тома 0x35 (MBR)
Структура
Содержимое папокB+ дерево
Размещение файловБитовая карта/экстенты
Ограничения
Максимальный размер файла 4 ПБ (4 × 10245 байт)
Максимум файлов No limit defined
Максимальная длина имени файла 255 байт
Максимальный размер тома 32 ПБ (32 × 10245 байт)
Допустимые символы в названиях Any Unicode except NULL
Возможности
Свойства Modification (mtime), Attribute modification (ctime), Access (atime)
Точность хранения даты 1ns
Потоки метаданных Да
Атрибуты Да
Права доступаPOSIX, ACL
Фоновая компрессия Только в JFS1 на AIX
Фоновое шифрование Нет (обеспечивается на уровне блочного устройства)
Поддерживается ОС AIX, OS/2, Linux

Journaled File System или JFSжурналируемая файловая система с открытым исходным кодом, созданная IBM для использования на серверах и доступная под лицензией GNU GPL[1].

Enhanced Journaled File System или JFS2 — второе поколение JFS, оно отличается внедрением B-дерева каталогов (в JFS была использована линейная организация дерева каталогов) и увеличенными максимальными размерами тома и хранимых файлов[2]. В отличие от JFS, JFS2 спроектирована для работы на 64-битных ядрах Linux[3].

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

Существует ещё одна файловая система с названием JFS — когда корпорация HP внедряла файловую систему VxFS компании Veritas Software в свою ОС HP-UX, она присвоила название «JFS» своему варианту VxFS, тем самым внеся путаницу (вероятно, это было сделано сотрудниками HP сознательно, как и в случае с HFS)[4].

История

JFS была разработана корпорацией IBM для операционной системы AIX[3].

JFS второго поколения была разработана IBM для ОС Warp Server for e-Business.[] Позже она была перенесена IBM в AIX и Linux. Целью разработчиков было обеспечить высокую производительность, надёжность и масштабируемость для многопроцессорных компьютеров.[]

JFS2 стала использоваться по умолчанию в AIX, начиная с версии 6.1[2].

Возможности

Особенности JFS[2]:

  • максимальный размер файловой системы — от 128 Гб при размере блока 512 байт до 1 Тб при размере блока 4 Кбайта;
  • максимальный размер файла — приблизительно 63,876 Гб;
  • количество i-node (записей о размещении файлов) задаётся при создании файловой системы (форматировании тома);
  • линейная организация дерева каталогов;
  • встроенное сжатие файлов;
  • дисковые квоты;
  • протоколирование ошибок.

Особенности JFS2[2]:

  • максимальный размер файловой системы — от 4 Тб при размере блока 512 байт до 4 Пб при размере блока 4 Кбайта;
  • минимальный размер файловой системы — 16 Мб;
  • максимальный размер файла — 4 Пб;
  • динамическое размещение записей о размещении файлов (i-node), ограниченное свободным местом в файловой системе;
  • организация дерева каталогов в виде двоичного дерева;
  • дисковые квоты;
  • протоколирование ошибок.

Журналирование

И JFS, и JFS2 — журналируемые файловые системы, в которых используется технология ведения базы данных журнала для поддержания согласованности структуры (консистентности) файловой системы, что позволяет избежать фатального повреждения файловой системы при аварийном завершении работы операционной системы[5].

В отличие от ext3, в которую поддержка журналирования была добавлена, JFS изначально была журналируемой. JFS ведёт журнал только метаданных, поддерживая структуру файловой системы целостной, но не обязательно сохраняет данные. Отключение питания или крах системы может привести к сохранению устаревших копий файлов, однако сами файлы останутся пригодными к использованию. Журналирование JFS похоже на журналирование XFS, которая журналирует только части inode.[]

B+ деревья

B+ деревья используются для ускорения поиска в больших каталогах.[]

JFS в Linux

Исходный код JFS был открыт IBM в 1999 году[].

Исходный код JFS включен в код ядра Linux, начиная с версии 2.4.18-pre9-ac4[1][6]. Большинство дистрибутивов Linux обеспечивает поддержку JFS, если только она не была специально удалена из-за ограничений на объём дистрибутива или иных проблем.[]

Для управления разделами диска в формате JFS был выпущен набор утилит под названием JFSutils.[]

См. также

Примечания

  1. 1 2 JFS for Linux (англ.). Дата обращения: 16 мая 2010. Архивировано 27 сентября 2019 года.
  2. 1 2 3 4 AIX7.2, 2022.
  3. 1 2 3 AIX7.3, 2023.
  4. Nemeth, 2010, p. 162, 256.
  5. File system types. — In: AIX 7.3 : [англ.] // IBM Documentation. — 2023. — 24 March.
  6. Cox, A. Alan Cox: Linux 2.4.18pre9-ac4 : [англ.] : [арх. 20 июля 2011] // Linux Today. — internet.com, 2002. — 14 February.

Литература

Ссылки

  • JFS for Linux project. — Sourceforge.
  • JRescuer, утилита восстановления файлов для JFS
  • JFSRec, a console program that performs a read only extraction of files and directories from a damaged JFS filesystem