内容大纲
内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
1. ext4文件系统概述
ext4是Linux系统中最常用的文件系统之一,它是ext3文件系统的升级版,提供了更好的性能、可靠性和功能。
学习交流加群风哥QQ113257174
ext4文件系统的主要特点包括:
- 支持更大的文件和分区
- 更快的文件系统检查
- 延迟分配机制,提高写入性能
- 日志功能,提高文件系统可靠性
- 支持扩展属性和访问控制列表
2. mkfs.ext4命令基本用法
mkfs.ext4命令用于在分区上创建ext4文件系统。
# mkfs.ext4 [选项] 设备
# 简单格式化
# mkfs.ext4 /dev/vdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 13107200 4k blocks and 3276800 inodes
Filesystem UUID: 12345678-90ab-cdef-1234-567890abcdef
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Allocating group tables:
# 完成
Writing inode tables:
# 完成
Creating journal (65536 blocks):
# 完成
Writing superblocks and filesystem accounting information:
# 完成
# 查看文件系统信息
# dumpe2fs -h /dev/vdb1
Filesystem volume name:
Last mounted on:
Filesystem UUID: 12345678-90ab-cdef-1234-567890abcdef
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 3276800
Block count: 13107200
Reserved block count: 655360
Free blocks: 13041664
Free inodes: 3276799
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu Mar 31 10:00:00 2026
Last mount time: n/a
Last write time: Thu Mar 31 10:00:00 2026
Mount count: 0
Maximum mount count: -1
Last checked: Thu Mar 31 10:00:00 2026
Check interval: 0 (
Lifetime writes: 1392 kB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Journal inode: 8
First orphan inode: 0
Default directory hash: half_md4
Directory Hash Seed: 12345678-90ab-cdef-1234-567890abcdef
Journal backup: inode blocks
Journal features: journal_incompat_revoke journal_64bit journal_checksum_v3
Journal size: 32M
Journal length: 8192
Journal sequence: 0x00000001
Journal start: 0
3. 常用选项详解
mkfs.ext4命令支持多种选项,用于定制文件系统的创建过程。
# -b:指定块大小(1024、2048或4096字节)
# mkfs.ext4 -b 4096 /dev/vdb1
# -L:指定卷标
# mkfs.ext4 -L data1 /dev/vdb1
# -m:指定保留块百分比(默认5%)
# mkfs.ext4 -m 2 /dev/vdb1
# -j:创建日志(默认启用)
# mkfs.ext4 -j /dev/vdb1
# -i:指定每多少字节一个inode
# mkfs.ext4 -i 8192 /dev/vdb1
# -N:指定inode数量
# mkfs.ext4 -N 1000000 /dev/vdb1
# -O:启用或禁用特定功能
# mkfs.ext4 -O ^has_journal /dev/vdb1 # 禁用日志
# 查看所有可用选项
# mkfs.ext4 –help
4. 高级配置选项
对于特殊场景,m
风哥提示:
kfs.ext4命令提供了更多高级配置选项。
# 创建带有大文件支持的文件系统
# mkfs.ext4 -T largefile /dev/vdb1
# 创建带有超大文件支持的文件系统
# mkfs.ext4 -T largefile4 /dev/vdb1
# 调整日志大小
# mkfs.ext4 -J size=64 /dev/vdb1 # 64MB日志
# 启用元数据校验和
# mkfs.ext4 -O metadata_csum /dev/vdb1
# 启用目录索引
# mkfs.ext4 -O dir_index /dev/vdb1
# 启用extents
# mkfs.ext4 -O extents /dev/vdb1
5. 实战案例
下面通过一个完整的实战案例来演示mkfs.ext4命令的使用。
# 1. 查看分区
# lsblk /dev/vdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 252:16 0 100G 0 disk
├─vdb1 252:17 0 50G 0 part
└─vdb2 252:18 0 50G 0 part
# 2. 为vdb1创建ext4文件系统(优化为大文件存储)
# mkfs.ext4 -L data -m 1 -T largefile /dev/vdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 13107200 4k blocks and 3276800 inodes
Filesystem UUID: 12345678-90ab-cdef-1234-567890abcdef
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Allocating group tables:
# 完成
Writing inode tables:
# 完成
Creating journal (65536 blocks):
# 完成
Writing superblocks and filesystem accounting information:
# 完成
# 3. 为vdb2创建ext4文件系统(优化为小文件存储)
# mkfs.ext4 -L small_data -m 1 -i 4096 /dev/vdb2
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 13107200 4k blocks and 13107200 inodes
Filesystem UUID: 87654321-0987-fedc-ba98-76543210fedc
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Allocating group tables:
# 完成
Writing inode tables:
# 完成
Creating journal (65536 blocks):
# 完成
Writing superblocks and filesystem accounting information:
# 完成
# 4. 挂载文件系统
# mkdir -p /data /small_data
# mount /dev/vdb1 /data
# mount /dev/vdb2 /small_data
# 5. 配置永久挂载
# echo ‘/dev/vdb1 /data ext4 defaults 0 0’ >> /etc/fstab
# echo ‘/dev/vdb2 /small_data ext4 defaults 0 0’ >> /etc/fstab
# 6. 验证挂载
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.0M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 45G 3.5G 42G 8% /
/dev/vda1 1014M 194M 821M 20% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/vdb1 50G 33M 50G 1% /data
/dev/vdb2 50G 33M 50G 1% /small_data
# 7. 查看文件系统详细信息
# tune2fs -l /dev/vdb1
Filesystem volume name: data
Last mounted on: /data
Filesystem UUID: 12345678-90ab-cdef-1234-567890abcdef
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 3276800
Block count: 13107200
Reserved block count: 131072
Free blocks: 13041664
Free inodes: 3276799
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu Mar 31 10:00:00 2026
Last mount time: Thu Mar 31 10:00:00 2026
Last write time: Thu Mar 31 10:00:00 2026
Mount count: 1
Maximum mount count: -1
Last checked: Thu Mar 31 10:00:00 2026
Check interval: 0 (
Lifetime writes: 1392 kB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Journal inode: 8
First orphan inode: 0
Default directory hash: half_md4
Directory Hash Seed: 12345678-90ab-cdef-1234-567890abcdef
Journal backup: inode blocks
Journal features: journal_incompat_revoke journal_64bit journal_checksum_v3
Journal size: 32M
Journal length: 8192
Journal sequence: 0x00000001
Journal start: 0
风哥经验总结
1. 在格式化分区前,确保该分区没有重要数据,因为格式化会清除所有数据。
学习交流加群风哥微信: itpux-com
2. 对于不同的使用场景,选择合适的块大小和inode密度:
- 大文件存储:使用较大的块大小(4096字节)和较少的inode
- 小文件存储:使用较小的块大小和较多的inode
>
3. 合理设置保留块百分比,对于数据分区,可以将保留块设置为1-2%,以充分利用磁盘
更多学习教程公众号风哥教程itpux_com
空间。
4. 启用日志功能可以提高文件系统的可靠性,但会 slightly 影响性能。
5. 对于大型文件系统,建议使用-T选项指定预定义的配置文件,以获得更好的性能。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
