xref: /linux/Documentation/filesystems/ext4/overview.rst (revision da1d9caf95def6f0320819cf941c9fd1069ba9e1)
1.. SPDX-License-Identifier: GPL-2.0
2
3High Level Design
4=================
5
6An ext4 file system is split into a series of block groups. To reduce
7performance difficulties due to fragmentation, the block allocator tries
8very hard to keep each file's blocks within the same group, thereby
9reducing seek times. The size of a block group is specified in
10``sb.s_blocks_per_group`` blocks, though it can also calculated as 8 \*
11``block_size_in_bytes``. With the default block size of 4KiB, each group
12will contain 32,768 blocks, for a length of 128MiB. The number of block
13groups is the size of the device divided by the size of a block group.
14
15All fields in ext4 are written to disk in little-endian order. HOWEVER,
16all fields in jbd2 (the journal) are written to disk in big-endian
17order.
18
19.. include:: blocks.rst
20.. include:: blockgroup.rst
21.. include:: special_inodes.rst
22.. include:: allocators.rst
23.. include:: checksums.rst
24.. include:: bigalloc.rst
25.. include:: inlinedata.rst
26.. include:: eainode.rst
27.. include:: verity.rst
28