Journaled File System
JFS | |
---|---|
Manufacturer | IBM |
Full name | Journaled File System |
Initial release | 1990 ( AIX ) |
Technical implementation | |
Directories | JFS: Linear, JFS2: B + tree |
Files | JFS: Bitmap (2 tile sizes on fragments), JFS2: B⁺ tree from extents (address, length) |
Maximum values | |
Size of a file | 1 PiB |
Number of all files | 2 63 |
Length of the file name | 255 bytes |
File system size | 4 PiB |
Allowed characters in the file name | All Unicode characters except NULL |
properties | |
Dates of a file | changed (modification, mtime) metadata changed (ctime) last access (atime) |
Forks | Yes |
File attributes | noatime |
File rights management | Unix file rights , ACLs and JFS security labels |
Transparent compression | JFS only |
Transparent encryption | No |
Supporting operating systems | AIX, OS / 2 , Linux |
The Journaled File System ( JFS ) was published by IBM in 1990 for their own AIX operating system . The background was an extensive virtualization of the hardware layer in this version 3 of AIX, which was newly introduced at the time: A Logical Volume Manager (LVM), which was also newly introduced , replaced the rigid access schemes on data carriers, and a new storage manager brought about the virtualization of the storage space, i.e. the outsourcing of main memory a (virtual) hard disk, and the PowerPC CPU family, which is still the heart of the pSeries , among others , was introduced. JFS for AIX should not be confused with the Veritas File System , also referred to as JFS on HP-UX .
The primary design goal of JFS was the constant consistency of the file system: changes to the file system are written transaction-oriented and logged in a journal . In the event of a crash - based on a consistency point of the transactions - a consistent status of the file system can be established very efficiently via the journal. Full access to the file system is therefore achieved again very quickly. The focus is on the availability of the file system resource , not the performance or the integrity of the file content (journaling only relates to changes in the file system, e.g. file entries in directories, and not to the actual file content).
The LVM is useful for the scalability of the file system: during operation and under load, hard disks can simply be added to the configuration and added to the volume group in order to expand the file system.
A new generation of JFS was developed for the OS / 2 operating system, also published by IBM, and presented in 2000. This JFS represents a new implementation of the JFS, as the "historical" JFS code is strongly based on the pSeries architecture (OS / 2 runs on x86 computers). This new JFS code was imported into AIX 5.1 as JFS2 and released by IBM in 2002 under the GNU General Public License .
The main differences in size:
feature | JFS2 | JFS |
---|---|---|
Maximum file system size | 4 pebibytes (recommended 32 tebibytes ) | 1 tebibyte |
Maximum file size | 1 pebibyte (recommended 16 tebibyte) | 64 GiB |
Number of i-nodes | Dynamic, limited by disk space | Static, set when the file system was created |
Directory organization | B + tree | Linear |
In addition, optimizations for current server hardware were made; so the performance of JFS2 is slightly better than that of JFS.
Linux is supported, but defragmentation has not yet been ported to Linux. This can lead to the creation and deletion of many small files (a few KiB ) in the file system fragmenting and, above all, write access slowing down a bit and generating a higher CPU load. Due to the extent, consisting of an address-length pair) -based allocation of file blocks and an intelligent allocation strategy, i. H. Adjacent extents of the same file are merged as files are changed (this becomes more likely as the file system becomes more fragmented), but the degree of fragmentation remains below a certain ratio. Many other file and database systems use a similar extent-based file block allocation.