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

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

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

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

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

История править

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

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

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.[источник не указан 15 дней]

B+ деревья править

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

JFS в Linux править

Исходный код JFS был открыт IBM в 1999 году[источник не указан 15 дней].

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

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

См. также править

Примечания править

  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