Home  >  Article  >  System Tutorial  >  In-depth understanding of Linux's standard file system (Ext2/Ext3/Ext4)

In-depth understanding of Linux's standard file system (Ext2/Ext3/Ext4)

WBOY
WBOYforward
2023-12-31 22:18:29825browse

Ext

The full name is Linux extended file system, extfs, which is the Linux extended file system. Ext2 represents the second generation file extension system, Ext3/Ext4 and so on. They are all upgraded versions of Ext2, but with the addition of log function, and They are backward compatible with each other, so Ext2 is called an indexed file system, and Ext3/Ext4 is called a journaled file system.

Note: Linux supports many file systems, including Network File System (NFS) and Windows’ Fat file system.

Check the file systems supported by Linux: ls -l /lib/modules/$(uname -r)/kernel/fs

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

View the file systems supported by Linux (loaded into memory): cat /proc/filesystems

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

Core Design

Data area

These elements are relatively stable and will be fixed after the disk is formatted.

1, inode (index node)
Record the permissions, attributes of the file and the number of the block where the data is located. Each file has one and only one inode. Each inode has its own number. The inode can be simply understood as a document index.

2. block(data block)
The stored file content is also called a data block. Each block has its own number. The unit block capacity supported by Ext2 is only 1k, 2k, and 4k.

Note: In order to facilitate inode recording, the block size has been fixed after the disk is formatted. Each block can only store the data of one file. If the file is too large, it will occupy multiple blocks; if the file is too small, the remaining space of the block cannot be used, which will cause a waste of disk space. Therefore, after the disk is partitioned, the file Before formatting your system, think carefully about the expected usage of the file system.

Metadata

These elements are designed to maintain the file system status. They mainly represent the dynamic configuration information of the file system and are descriptive information.

1. superblock(superblock)

Record the overall information of the file system (filesystem), including the total amount, usage, remaining amount, size of inode/block, as well as the format and related information of the file system.

Note: All basic information of the entire file system is recorded in the superblock. Its size is generally 1024Bytes. If it dies, it will take a lot of time to remedy it! ! !

2. block group

Just imagine, if our disk capacity reaches hundreds of G, when we format it, the inode and block will be very large. In order to facilitate management, the Ext file system introduces block groups when formatting. The concept is that each block group maintains an independent inode/block/superblock and has a fixed number of blocks, which is divided into a group of basic sub-file systems.

Note: superblock is too important for the file system, but there is only one superblock in the file system, so in addition to the first block group containing the superblock, subsequent block groups may contain backup superblocks. The purpose is to avoid the single superblock. Point cannot be rescued.

3. block bitmap (block comparison table)

A block can only be used by one file. When we add a new file, we must use a new block to record the file data. So how to quickly know which blocks are new? Which blocks are already used? The block bitmap is designed in this way to record all used and unused block numbers. Similarly, when we delete a file, we first find the corresponding block number from the block bitmap, then update the flag to unused, and finally release the block.

inode bitmap(inode comparison table)

The same design concept as block bitmap, except that it records used and unused inode numbers, which will not be described here.

group descriptor

Describe the block numbers at the beginning and end of each section (block group), and explain which block numbers each section (inodemap, blockmap, inode table) is between.

List all formatted devices in the current system: blkid

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

Select a formatted device and view the detailed information of the file system: dumpe2fs /dev/vda1

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

Note: The above Magic signature is 0xEF53, indicating that our disk partition is an ext2 and ext3 file system. Similar to the Magic at the beginning of the file, you can determine the file type.

Summarize

The Ext family is the most widely supported and complete file system in Linux. After we format the disk, all inode/block/metadate and other data have been planned for us, so that the system can be used directly without any Dynamic configuration is also its best feature, but this is also its most significant shortcoming. The larger the disk capacity, the slower the formatting. Centos7.x has chosen xfs as the default file system.

The above is the detailed content of In-depth understanding of Linux's standard file system (Ext2/Ext3/Ext4). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:jb51.net. If there is any infringement, please contact admin@php.cn delete