ph34r.gif Виртуальная энциклопедия "Linux по-русски": 30 дней с JFS

Цитата | Quote
JFS (Journaled File System) - малоизвестная файловая система, исходный код которой открыт IBM в 1999 и включен в исходный код ядра Linux начиная с 2002 года. JFS родилась внутри IBM как стандартная файловая система для линейки AIX Unix-серверов. Позже была портирована на OS/2. Несмотря на хорошую родословную, JFS не приобрела повсеместной популярности, в отличие от ext2/3 и ReiserFS. Чтобы узнать больше о JFS, я установил ее в качестве корневой файловой системы. Обнаружилось, что JFS - достойная альтернатива более известным файловым системам.

Чтобы попробовать JFS, я установил Slackware 12 на мой ноутбук и выбрал JFS в качестве основной файловой системы. Я не выполнял каких-либо особых разбиений, а просто создал один большой раздел для всего. При установке не произошло ничего достойного внимания, и система нормально загрузилась посредством GRUB. Не все дистрибутивы предлагают JFS в качестве файловой системы, и некоторые не имеют поддержки JFS в предлагаемых скомпилированных ядрах. Пользователи Fedora Core и SUSE имеют возможность использовать JFS, но по умолчанию ставится ext3. На дистрибутивах Slackware, Debian, Ubuntu и их производных также можно попробовать JFS.

Первое, что бросилось в глаза - отсутствие каталога lost+found - пережитка других файловых систем.

JFS - полностью 64-битная файловая система. При обычном блоке размером 4 Кб возможно создание файловой системы до 4 Петабайт (размер будет меньше, если выбрать меньшие размеры блоков). Наименьшая поддерживаемая система - 16 Мб. Журнал транзакций JFS по умолчанию имеет размер в 0.4% от общего размера, округленный до мегабайт. Максимальный размер журнала - 32 Мб. Интересная особенность разметки диска - выделенное рабочее место для fsck, небольшая область расположенная внутри файловой системы, предназначенная для учета распределения блоков при загрузке (если для учета большой файловой системы на этом этапе недостаточно памяти).

JFS динамически выделяет место для дисковых inode, освобождая место, когда оно больше не требуется. Это устраняет возможность нехватки inode из-за большого числа мелких файлов. На данный момент JFS - единственная файловая система в ядре, которая поддерживает эту функцию. Из соображений производительности и эффективности содержимое мелких каталогов хранится в inode самого каталога. Внутри inode может храниться до 8 записей, включая записи для текущего (.) и родительского (..) каталогов. Большие каталоги для быстрого чтения используют B+-деревья с ключом по имени. JFS использует экстенты для выделения блоков файлам, что благоприятно сказывается на использовании места на диске при увеличении размеров файлов. Эта функция также доступна в XFS, и является нововведением в ext4.

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

В дополнение к стандартным правам, JFS поддерживает немного более расширенные атрибуты, такие как "неизменный" (i, immutable) и "лишь для присоединения" (append-only, a). Эти атрибуты просматриваются и устанавливаются с помощью программ lsattr и chattr. Мне не удалось найти полноценной информации по поддержке JFS списков прав доступа (Access Control List, ACL).

Дочитать_http://rus-linux.net/...-days-jfs.html