- JFS (file system)
infobox filesystem
name = JFS
full_name = IBM Journaled File System
developer =IBM et al.
introduction_os = JFS1 in AIX 3.1 and JFS in OS/2 4.5
introduction_date = 1990 and 1999
partition_id = 0x35 (MBR)
file_struct = Bitmap/extents
bad_blocks_struct =
max_filename_size = 255 bytes
max_files_no = No limit defined
max_volume_size = 32 PiB
max_file_size = 4 PiB
filename_character_set = AnyUnicode except NUL
dates_recorded = Modification (mtime), Attribute modification (ctime), Access (atime)
date_range =
date_resolution = 1ns
forks_streams = Yes
attributes = Yes
file_system_permissions =POSIX , ACLs
compression = Only in JFS1 on AIX
directory_struct = B+ trees
encryption = No (provided at the block device level)
single_instance_storage = No
OS = AIX, OS/2, LinuxJournaled File System or JFS is a 64-bit
journaling filesystem created by IBM. It is available under the GNU GPL. There are versions for AIX,eComStation ,OS/2 ,Linux operating system s andHP-UX . JFS is based uponVeritas Software 'sVxFS .In AIX operating system, there exist two generations of JFS filesystem that are called "JFS" ("JFS1") and "JFS2" respectively.cite web |title=A mini-FAQ for JFS |publisher=JFS for Linux project |url=http://jfs.sourceforge.net/project/pub/faq.txt] cite web| title=Comparison of JFS1 and JFS2 on AIX |publisher=IBM |url=http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.baseadmn/doc/baseadmndita/fs_jfs_jfs2.htm] In the other operating systems, such as OS/2 and Linux, only the second generation exists and is called simply "JFS".cite web |title= Interview With the People Behind JFS, ReiserFS & XFS |url=http://www.osnews.com/story.php/69/Interview-With-the-People-Behind-JFS-ReiserFS-and-XFS] This should not be confused with JFS in AIX that actually refers to JFS1.
History
IBM introduced JFS with the initial release of AIX version 3.1 in February,
1990 . This file system, now called "JFS1 on AIX", had been the premier file system for AIX over the following decade and had been installed in thousands or millions of customers' AIX systems. Historically, the JFS1 file system is very closely tied to the memory manager of AIX. This design is typical for aclosed source operating system, or a file system supporting only one operating system.In
1995 , work began to enhance the file system to be more scalable and to support machines that had more than one processor. Another goal was to have a more portable file system, capable of running on multiple operating systems. After several years of designing, coding, and testing, the new JFS was first shipped inOS/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 theopen source community and work was begun to port JFS toLinux operating system . The first stable release of "JFS for Linux" appeared in June,2001 .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.Around the summer of 2007 there was speculation that IBM is no longer interested in maintaining JFS and thus it shouldn't be used in production environments. [ [http://linux.derkeiler.com/Mailing-Lists/Debian/2008-01/msg01808.html Re: which to use: ext3, JFS, XFS, ReiserFS? ] ] However early in 2008, a member of the
IBM Linux Technology Center explained that they still follow changes in theLinux kernel and try to fix potentialsoftware bugs . He went on to add that certain distributions expect a larger resource commitment from them and opt not to support the filesystem. [ [http://sourceforge.net/mailarchive/forum.php?thread_name=fpps5p%24g2t%242%40saturn.local.net&forum_name=jfs-discussion SourceForge.net: jfs-discussion ] ]Features
JFS supports the following features. [cite web|title=JFS overview|publisher=Steve Best, IBM|url=http://www-128.ibm.com/developerworks/library/l-jfs.html|accessdate=2008-01-09] [cite web|title=JFS Layout|publisher=Steve Best, IBM|url=http://jfs.sourceforge.net/project/pub/jfslayout.pdf|accessdate=2008-05-01]
Journal
JFS is a Journaling Filesystem. Rather than adding Journaling as an add-on like ext3, Journaling was baked in from the start. The journal is fixed at 32MB. JFS journals metadata only which means metadata will remain consistent but user file might not be after a crash or powerloss. JFSs Journaling is similar to XFS where it only journal parts of the Inode. [cite web|title=JFS journal|publisher=OSDIR |author=David Kleikamp|url=http://osdir.com/ml/file-systems.jfs.general/2004-12/msg00025.html]
B+ Tree
A B+ tree is used to accelerate lookups in larger directories. The B+ tree is also used for the addressing structure with extent descriptors.
Dynamic Inode Allocation
JFS dynamically allocates space for disk
inode s as necessary. Each inode is 512 Bytes. 32 Inodes are allocated on a 16KB 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 Group 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 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. [cite web |title=AIX Wiki: JFS |publisher=IBM |url=http://www-941.ibm.com/collaboration/wiki/display/WikiPtype/JFS]
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. [ [http://www.ibm.com/servers/aix/whitepapers/db_perf_aix.pdf Improving Database Performance With AIX Concurrent I/O - White Paper ] ] .
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 disc inodes for the files to be in the same AG. The second policy is to distribute unrelated data into the same AG.
JFS 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 sizeJFS in 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" (the latest version 1.1.13 released in July,2008 ). MostLinux distributions provide support for JFS, unless it is specifically removed due to space restrictions or other concerns.According to reviews and benchmarks of the available filesystems for Linux, JFS is fast and reliable, with consistently good performance under different kinds of load, contrary to other filesystems that seem to perform better under particular usage patterns, for instance with small or large files. Another characteristic often mentioned, is that it's light and efficient with available system resources and even heavy disk activity is realized with low CPU usage. [ [http://www.debian-administration.org/articles/388 Filesystems (ext3, reiser, xfs, jfs) comparison on Debian Etch ] ] [http://fsbench.netnation.com/]
See also
*
List of file systems
*Comparison of file systems
*fsck File System Check utilityReferences
External links
* [http://jfs.sourceforge.net/ JFS for Linux project website]
* [http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.genprogc/doc/genprogc/fsyslayout.htm JFS1 File System Layout] , IBM.
* [http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.genprogc/doc/genprogc/fsyslayout2.htm JFS2 File System Layout] , IBM.
Wikimedia Foundation. 2010.