EXT4 ATTRS - lazy_itable_init分析(mke2fs 和mount)

EXT4文件系统在启用lazy_init特性后,其创建速度显著提升,延迟了inode表的初始化工作,这一过程在首次挂载时后台进行。若配合uninit_bg特性,mke2fs格式化速度进一步加快,但需要内核在挂载时完成剩余初始化。ext4lazyinit内核线程负责后台初始化工作,防止中断可能导致的inode表损坏问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在创建Ext4文件系统时,必须清理inode表的现有区域(用null覆盖,或“0”)。这真的需要时间。但是,启用“lazyinit”特性后,ext4文件系统的创建将显著加快,因为它不会立即初始化所有inode表,而是在后台的初始挂载过程中逐步初始化它们(内核版本2.6.37)

此外,如果启用了uninit_bg特性,那么mke2fs不会完全初始化inode表。这显著加快了文件系统的初始化速度,但是它要求内核在第一次挂载文件系统时在后台完成文件系统的初始化。如果省略该选项值,则默认值为1,以启用惰性inode table 清零。

“ext4lazyinit”内核进程以高达16000 kb /s的速度写入设备,从而使用了大量硬盘带宽。

(一)为了阻止lazy initialization, 可以在格式化时添加option

mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/mapper/fc-root
Block group flags. Any of:
0x1 inode table and bitmap are not initialized (EXT4_BG_INODE_UNINIT).
0x2 block bitmap is not initialized (EXT4_BG_BLOCK_UNINIT).
0x4

inode table is zeroed (EXT4_BG_INODE_ZEROED).

 

mke2fs.c文件里的PRS 函数定义了lazy_itable_init 的初始值

(1)PRS:

     1. 通过-E lazy_itable_init=1 将扩展options 传给mkfs函数,不过对于2.6.27以后的kernel默认都是1

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值