阅读更多
1 Core Concepts
Inode
: Data structures that store metadata about files, such as file size, ownership, permissions, and timestamps, but not the file name or dataSuperblock
: A metadata structure that contains information about the filesystem as a whole, including its size, the size of the blocks, the number of inodes, and pointers to other metadata structuresMounting
: The process of attaching a filesystem to the directory tree at a specified mount point, allowing access to the files and directories in that filesystemPermissions and Ownership
: Each file and directory has associated permissions (read
,write
,execute
) and ownership (user
,group
,others
), controlling access and modificationsFile Types
: Regular files, directories, symbolic links, special files (character and block devices), sockets, and named pipes (FIFOs)Hard Links
: Multiple directory entries that reference the same inodeSymbolic Links (Symlinks)
: Special files that reference another file or directory by pathFilesystem Types
: Various types of filesystems supported by Linux, such as ext4, XFS, Btrfs, and others, each with its own features and use casesVirtual File System (VFS)
: An abstraction layer that provides a common interface for different filesystem types, allowing uniform access to different storage devices and filesystemsBlock Devices and Block Size
: Storage devices (like hard drives and SSDs) managed in blocks, which are the smallest unit of data transferJournal
:A feature in journaling filesystems (e.g.,ext3
,ext4
)Filesystem Checks and Repair
: Utilities likefsck
to check and repair filesystem integrity
1.1 Ext Filesystem
Superblock
:- Stores critical data structures of the file system, including its size, block size, number of free blocks, and inodes
- Read into memory when the file system is mounted
Block Group
:- The file system is divided into several block groups, each containing a fixed number of blocks
- Each block group includes data blocks, an inode table, a block bitmap, and an inode bitmap
Data Block
:- Blocks used to store the actual file data
- Block sizes are typically
1KB
,2KB
,4KB
, or8KB
Inode (Index Node)
:- Stores metadata about files and directories, including file type, permissions, owner, size, timestamps, and pointers to data blocks
- Each file and directory has a unique inode
Block Bitmap
:- Records which data blocks in a block group are used and which are free
Inode Bitmap
:- Records which inodes in a block group are used and which are free
Inode Table
:- An array containing all the inodes in the file system, with each inode representing a file or directory’s metadata
Directory Entry
:- Links file names in a directory to their corresponding inode numbers
Journal
:- Available in
Ext3
andExt4
, it logs metadata operations to enhance file system reliability and recovery
- Available in
Extended Attributes
:- Allow users and applications to add extra metadata to files
Disk Quotas
:- Control the amount of disk space and number of inodes that users and groups can use in the file system
Reserved Blocks
:- Typically reserve some blocks for the system administrator to prevent the file system from being completely filled by regular users, which could affect system operations
2 Trouble-shooting
2.1 inode
Observations:
- The more the number of
inodes
, the lower the reading performance will be, and read performance can be significantly affected when number ofinode
reaches million level
Tools:
df -ih
ls -i
2.2 superblock
Tools:
sudo dumpe2fs /dev/sda | grep -i superblock