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 2 JFS for Linux (англ.). Дата обращения: 16 мая 2010. Архивировано 27 сентября 2019 года.
- ↑ 1 2 3 4 AIX7.2, 2022.
- ↑ 1 2 3 AIX7.3, 2023.
- ↑ Nemeth, 2010, p. 162, 256.
- ↑ File system types. — In: AIX 7.3 : [англ.] // IBM Documentation. — 2023. — 24 March.
- ↑ Cox, A. Alan Cox: Linux 2.4.18pre9-ac4 : [англ.] : [арх. 20 июля 2011] // Linux Today. — internet.com, 2002. — 14 February.
Литература
- JFS and JFS2 functions : [арх. 13 марта 2022]. — In: AIX : [англ.] // IBM Documentation. — 2022. — 7 April.
- JFS and JFS2. — In: AIX 7.3 : [англ.] // IBM Documentation. — 2023. — 3 November.
- Уинстон, К. 30 дней с JFS : [арх. 11 апреля 2009] = 30 days with JFS / Пер. с [англ.]: Александр Тарасов aka oioki // LinuxShare. — 2007. — 1 октября.
- Winston, K. 30 days with JFS : [англ.] : [арх. 17 сентября 2007] // Linux.com. — 2007. — 14 September.
- Nemeth, E. Ch. 6. The Filesystem; Ch. 8. Storage // Unix and Linux System Administration Handbook : [англ.] / E. Nemeth, G. Snyder, T. R. Hein … [et al.]. — 4th ed. — 2010. — P. 162–163,255–257. — 1344 p. — ISBN 978-0-13-211736-4.
Ссылки
- 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