0% found this document useful (0 votes)
11 views5 pages

JFS (File System)

Journaled File System (JFS) is a 64-bit journaling file system developed by IBM, available for multiple operating systems including AIX, OS/2, eComStation, ArcaOS, and Linux. JFS features include dynamic inode allocation, B+ tree directory indexing, and support for large volumes and files, with JFS1 and JFS2 versions catering to 32-bit and 64-bit systems respectively. Although JFS is recognized for its performance and reliability, its usage in Linux is uncommon, and there are concerns regarding its maintenance and potential data loss issues.

Uploaded by

matjok
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views5 pages

JFS (File System)

Journaled File System (JFS) is a 64-bit journaling file system developed by IBM, available for multiple operating systems including AIX, OS/2, eComStation, ArcaOS, and Linux. JFS features include dynamic inode allocation, B+ tree directory indexing, and support for large volumes and files, with JFS1 and JFS2 versions catering to 32-bit and 64-bit systems respectively. Although JFS is recognized for its performance and reliability, its usage in Linux is uncommon, and there are concerns regarding its maintenance and potential data loss issues.

Uploaded by

matjok
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

JFS (file system)

Journaled File System (JFS) is a 64-bit journaling


ddhs
file system created by IBM. There are versions for
AIX, OS/2, eComStation, ArcaOS and Linux operating Developer(s) IBM et al.
systems. The latter is available as free software under Full name IBM Journaled File
the terms of the GNU General Public License (GPL). System
HP-UX has another, different filesystem named JFS
Introduced 1990 and 1999 with
that is actually an OEM version of Veritas Software's
JFS1 in AIX 3.1 and JFS
VxFS.
in OS/2 4.5

In the AIX operating system, two generations of JFS Partition IDs 0x35 (MBR)
exist, which are called JFS (JFS1) and JFS2 Structures
respectively.[1] Directory contents B+ tree

IBM's JFS was originally designed for 32-bit systems. File allocation Bitmap/extents
JFS2 was designed for 64-bit systems.[2] Limits
Max volume size 32 × 250 bytes (32 PiB)
In other operating systems, such as OS/2 and Linux,
only the second generation exists and is called simply Max file size 4 × 250 bytes (4 PiB)

JFS.[3] This should not be confused with JFS in AIX Max no. of files No limit defined
that actually refers to JFS1. Max filename length 255 bytes
Allowed filename Any Unicode except
characters NUL
History Features

IBM introduced JFS with the initial release of AIX Dates recorded Modification (mtime),
version 3.1 in February 1990. This file system, now attribute modification
called JFS1 on AIX, was the premier file system for (ctime), access (atime)
AIX over the following decade and was installed in Date resolution 1 ns
thousands or millions of customers' AIX systems. Forks Yes
Historically, the JFS1 file system is very closely tied to
File system Unix permissions, ACLs
the memory manager of AIX,[1] which is a typical
permissions
design for a file system supporting only one operating
system. JFS was one of the first file systems to support Transparent Only in JFS1 on AIX
Journaling. compression
Transparent No (provided at the
In 1995, work began to enhance the file system to be encryption block device level)
more scalable and to support machines that had more
Data deduplication No
than one processor. Another goal was to have a more
Other
portable file system, capable of running on multiple
operating systems. After several years of designing, Supported AIX, OS/2, Linux,
coding, and testing, the new JFS was first shipped in operating systems eComStation, ArcaOS
OS/2 Warp Server for eBusiness in April 1999, and
then in OS/2 Warp Client in October 2000. In December 1999, a snapshot of the original OS/2 JFS source
was granted to the open source community and work was begun to port JFS to Linux. The first stable
release of JFS for Linux appeared in June 2001.[3] The JFS for Linux project is maintained by a small
group of contributors known as the JFS Core Team.[4] This release of sources also worked to form the
basis of a re-port back to OS/2 of the open-source JFS.

In parallel with this effort, some of the JFS development team returned to the AIX Operating System
Development Group in 1997 and started to move this new JFS source base to the AIX operating system.
In May 2001, a second journaled file system, Enhanced Journaled File System (JFS2), was made
available for AIX 5L.[1][3]

Early in 2008 there was speculation that IBM is no longer interested in maintaining JFS and thus it should
not be used in production environments.[5] However, Dave Kleikamp, a member of the IBM Linux
Technology Center and JFS Core Team,[4] explained that they still follow changes in the Linux kernel and
try to fix potential software bugs. He went on to add that certain distributions expect a larger resource
commitment from them and opt not to support the filesystem.[6]

In 2012, TRIM command support for solid-state drives was added to JFS.[7]

Features
JFS supports the following features.[8][9]

Journal
JFS is a journaling file system. Rather than adding journaling as an add-on feature like in the ext3 file
system, it was implemented from the start. The journal can be up to 128 MB. JFS journals metadata only,
which means that metadata will remain consistent but user files may be corrupted after a crash or power
loss. JFS's journaling is similar to XFS in that it only journals parts of the inode.[10]

B+ tree
JFS uses a B+ tree to accelerate lookups in directories. JFS can store 8 entries of a directory in the
directory's inode before moving the entries to a B+ tree. JFS also indexes extents in a B+ tree.

Dynamic inode allocation


JFS dynamically allocates space for disk inodes as necessary. Each inode is 512 bytes. 32 inodes are
allocated on a 16 kB Extent.

Extents
JFS allocates files as an extent. An extent is a variable-length sequence of Aggregate blocks. An extent
may be located in several allocation groups. To solve this the extents are indexed in a B+ tree for better
performance when locating the extent locations.
Compression
Compression is supported only in JFS1 on AIX and uses a variation of the LZ algorithm. Because of high
CPU usage and increased free space fragmentation, compression is not recommended for use other than
on a single user workstation or off-line backup areas.

Concurrent input / output (CIO)


JFS normally applies read-shared, write-exclusive locking to files, which avoids data inconsistencies but
imposes write serialization at the file level. The CIO option disables this locking. Applications such as
relational databases which maintain data consistency themselves can use this option to largely eliminate
filesystem overheads.[11]

Allocation groups
JFS uses allocation groups. Allocation groups divide the aggregate space into chunks. This allows JFS to
use resource allocation policies to achieve great I/O performance. The first policy is to try to cluster disk
blocks and disk inodes for related data in the same AG in order to achieve good locality for the disk. The
second policy is to distribute unrelated data throughout the file system in an attempt to minimize free-
space fragmentation. When there is an open file JFS will lock the AG the file resides in and only allow
the open file to grow. This reduces fragmentation as only the open file can write to the AG.

Superblocks
The superblock maintains information about the entire file system and includes the following fields:

Size of the file system


Number of data blocks in the file system
A flag indicating the state of the file system
Allocation group sizes
File system block size

On Linux
In the Linux operating system, JFS is supported with the kernel module (since the kernel version
2.4.18pre9-ac4) and the complementary userspace utilities packaged under the name JFSutils. Most
Linux distributions support JFS unless it is specifically removed due to space restrictions, such as on live
CDs.

According to benchmarks of the available filesystems for Linux, JFS is fast and reliable, with consistently
good performance under different kinds of load.[12]

Actual usage of JFS in Linux is uncommon, however, JFS does have a niche role in Linux: it offers a
case-insensitive mount option, unlike most other Linux file systems.[13]

There are also potential problems with JFS, such as its implementation of journal writes. They can be
postponed until there is another trigger—potentially indefinitely, which can cause data loss over a
theoretically infinite timeframe.[14]
See also
Free and open-
source software
portal

Journaling file system


List of file systems
Comparison of file systems
fsck – File System Check utility

References
1. "A Mini-FAQ for JFS" ([Link] JFS for Linux project.
2. "IBM JFS and JFS2" ([Link]
m-jfs). IBM.
3. "Interview with the People Behind JFS, ReiserFS & XFS" ([Link]
69/Interview-With-the-People-Behind-JFS-ReiserFS-and-XFS).
4. "JFS for Linux" ([Link] [Link]. Retrieved August 26,
2020.
5. "Re: which to use: ext3, JFS, XFS, ReiserFS?" ([Link]
17/[Link] Archived from
the original ([Link] on
March 3, 2016. Retrieved March 31, 2008.
6. [Link]: jfs-discussion ([Link]
e=fpps5p%24g2t%242%[Link]&forum_name=jfs-discussion)
7. "TRIM support for JFS Filesystem" ([Link]
8. "JFS overview" ([Link]
eloperworks/library/[Link]). Steve Best, IBM. Archived from the original ([Link]
[Link]/developerworks/library/[Link]) on January 29, 2008. Retrieved January 9, 2008.
9. "JFS Layout" ([Link] (PDF). Steve Best, IBM.
Retrieved May 1, 2008.
10. David Kleikamp. "JFS journal" ([Link]
m/ml/[Link]/2004-12/[Link]). OSDIR. Archived from the original (h
ttp://[Link]/ml/[Link]/2004-12/[Link]) on March 3, 2016.
Retrieved July 7, 2008.
11. "Improving Database Performance With AIX Concurrent I/O - White Paper" ([Link]
com/servers/aix/whitepapers/db_perf_aix.pdf) (PDF). [Link]. IBM.
12. "9-Way File-System Comparison With A SSD On The Linux 3.17 Kernel" ([Link]
[Link]/[Link]?page=article&item=9way_linux317_fs&num=1). [Link]. Retrieved
July 7, 2020.
13. "jfs_mkfs: create a JFS formatted partition - Linux Man Pages (8)" ([Link]
om/docs/linux/man/8-jfs_mkfs/). [Link]. Retrieved July 7, 2020.
14. Analysis and Evolution of Journaling File Systems - V. Prabhakaran and others ([Link]
[Link]/events/usenix05/tech/general/full_papers/prabhakaran/[Link]) 2013-06
External links
JFS for Linux project website ([Link]
JFS1 File System Layout ([Link]
[Link]/doc/genprogc/[Link]), IBM
JFS2 File System Layout ([Link]
[Link]/doc/genprogc/[Link]), IBM
JFSRec ([Link] a console program that performs a read only
extraction of files and directories from a damaged JFS filesystem

Retrieved from "[Link]

You might also like