1.命令作用
构建一个XFS文件系统(construct an XFS filesystem)
2.命令语法
Usage: mkfs.xfs [OPTIONS] device
3.参数详解
OPTION:
- -b block_size_options,指定了文件系统的基本块大小;
- log=value 或 size=value,字节形式用( size=),二进制对数形式用 (log=);默认值为4096字节(4 KiB);最小值为512字节,最大值为65536字节(64 KiB)
- -m global_metadata_options,指定了元数据格式选项
- crc=0|1,禁用|启用元数据的CRC校验,默认启用(1);禁用可提升性能但降低数据可靠性
- finobt=0|1,控制是否预分配空闲inode B+树(默认1);禁用可减少元数据开销
- uuid=xxx,手动指定文件系统UUID(可使用uuidgen获取一个UUID)
- -d data_section_options,指定了文件系统数据部分的位置、大小以及其他参数
- agcount=value,指定分配组的数量;文件系统的数据部分被划分为多个分配组,以提高XFS性能;分配组数量越多,分配块和索引节点时的并行性就越高;最小分配组大小为 16MiB,最大大小略低于1 TiB
- agsize=value,该值表示分配组所需的大小(以字节为单位);必须是文件系统块大小的倍数,并且至少为16MiB,最多不超过1TiB,还可以自动调整以与条带化几何结构正确对齐;与agcount互斥
- name=value,指定包含文件系统的特殊文件的名称;日志部分必须指定为内部(需指定大小,详见-l参数),并且不能有实时部分
- file=0|1,指定suboption名称所标识的文件为常规文件,默认为1表示该文件为常规文件
- size=value,指定数据部分的大小,如使用了-d file=1则必须使用该参数
- sunit=value,指定RAID设备或逻辑卷的条带单元;该值必须以512字节的块单位进行指定。其子项su用于指定以字节为单位的条带单元大小
- su=value,指定RAID设备或条带化逻辑卷的条带单元
- swidth=value,指定RAID设备或条带化逻辑卷的条带宽度;该值必须以512字节的块单位进行指定;其子选项是 sw
- sw=value,指定RAID设备或条带化逻辑卷的条带宽度
- noalign,禁用自动几何形状检测功能,并且即便底层存储设备提供了相关信息,也会在创建文件系统时不进行条带几何形状的对齐操作
- -f,强制覆盖创建文件系统,默认情况下已经存在文件系统不会被修改,需要 -f 强制修改
- -i inode_options,指定文件系统inode大小及其他inode参数;XFS的inode包含固定大小和可变大小两部分,可变部分受此选项影响;可设置为:
- size=value | log=value,字节形式用( size=),二进制对数形式用 (log=);最小值为 256字节(默认值);最大值为2048(2千字节);注 inode的大小不能超过文件系统块大小的一半
- maxpct=value,文件系统存储inode空间的最大百分比;小于1TB默认为25%,小于 50TB默认为5%,超过50TB默认为1%
- align=0|1,指定inode分配是否进行对齐处理;默认值为1表示已对齐;对齐的inode访问通常比未对齐的访问效率更高
- attr=value,指定扩展属性内联分配策略的版本,默认值为2;它采用一种高效的算法来管理属性和数据块之间的可用内联inode空间
- projid32bit=0|1,启用32位配额项目标识符,若未指定,则默认启用(1)
- sparse[=value],启用稀疏inode段分配。此实验性选项在RHEL7中不可用
- -l log_sec‐tion_options,指定文件系统日志部分的位置、大小及其他参数
- internal=0|1,日志部分是否属于数据部分的一部分,默认为1代表属于
- logdev=device,指定日志部分独立于数据部分存储的设备
- size=value,指定日志段的大小
- version=value,指定日志的版本;默认为版本2,可支持更大的日志缓冲区大小,并且还支持条带对齐的日志写入;版本1只能用32k的日志缓冲区,且不支持条带对齐写入
- sunit=value,指定日志写入的对齐方式,必须以512字节的块为单位进行指定
- su=value,指定日志条带,必须以字节为单位进行指定
- lazy-count=0|1,1代表超级块不会因每次持久计数器的更改而进行修改或记录;0代表文件系统中的其他部分保存了足够的信息,能够无需将计数值保存在超级块中即可维持这些持久的计数值
- -n naming_options,指定文件系统命名(目录)区域的版本和大小参数
- size=value | log=value,字节形式用( size=),二进制对数形式用 (log=);不能小于文件系统的块大小
- version=value,命名(目录)版本值可以是 2(默认) 或者 ci
- ftype=0|1,文件类型信息是否存储在目录结构中,1代表存储(默认);CRC功能启用则该值为只能为1
- -p protofile,依照protofile文件内容的指示进行操作,比较复杂可使用man mkfs.xfs查看,里面会有文件的书写格式和解释
- -q,安静执行,静默输出,可用于脚本执行
- -r realtime_section_options,配置XFS文件系统的实时(real-time)存储区域、大小等参数
- rtdev=device,指定应包含文件系统实时部分的设备
- extsize=value,指定文件系统实时部分中数据块的大小(单位字节)
- size=value,指定实时文件段的大小(单位块)
- noalign,禁用条带大小检测功能
- -s sector_size,-s log=n|size=num,指定文件系统扇区大小;最小值512(默认值),最大值32768(32 千字节)
- -L label,设置文件系统标签
- -N,仅打印出文件系统的参数信息,并不真正创建文件系统
- -K,mkfs操作时,不要尝试删除数据块
4.常用用例
4.1.默认参数格式化(无参数)
[root@node4 ~]# mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=312447 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1249787, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@node4 ~]#
- meta-data=/dev/sdb2 isize=512 agcount=4, agsize=312447 blks
- = sectsz=512 attr=2, projid32bit=1
- = crc=1 finobt=0, sparse=0
- meta-data=/dev/sdb2,元数据区域
- isize=512,每个inode的大小为512字节,存储文件元数据
- agcount=4,分配组(Allocation Group)数量为4个,提升并发性能
- agsize=312447 blks,每个块组包含312447个块(bsize一般为4K,每个块组约1.2GB)
- sectsz=512,存储设备的扇区大小为512字节
- attr=2,支持扩展属性
- projid32bit=1,启用32位项目配额标识符
- crc=1,启用元数据CRC校验,增强数据一致性
- finobt=0,禁用空闲inode B+树(优化大规模inode场景)
- sparse=0,禁用稀疏inode分配(节省空间但可能降低性能)
- data = bsize=4096 blocks=1249787, imaxpct=25
- = sunit=0 swidth=0 blks
- data,数据区域
- bsize=4096,文件系统块大小为4096字节(4KB)
- blocks=1249787,总数据块数量为1249787个,等效分区容量=blocks*bsize(约4.8GB)
- imaxpct=25,inode最大占用空间比例为25%,控制文件和目录数量上限
- sunit=0 swidth=0 blks,条带单元(Stride)和条带宽度(Stripe width)均为 0,表示未显式配置RAID适配(单磁盘默认值)
- naming =version 2 bsize=4096 ascii-ci=0 ftype=1
- naming=version 2,命名规则,使用第二代目录结构,支持更大目录和文件
- bsize=4096,文件系统块大小为4KB,平衡存储效率与读写性能,适合大多数场景
- ascii-ci=0,禁用ASCII大小写不敏感匹配,文件名严格区分大小写
- ftype=1,启用文件类型记录,优化目录操作效率
- log =internal log bsize=4096 blocks=2560, version=2
- = sectsz=512 sunit=0 blks, lazy-count=1
- log=internal log,表示日志区域位于文件系统内部(而非外部独立设备)
- bsize=4096,日志区域的块大小为4KB,与文件系统主块大小一致
- blocks=2560,日志区总块数为2560(约10MB),记录写操作以确保一致性
- version=2,使用第二代日志格式,支持更高效的元数据记录
- sectsz=512,日志区域的扇区大小为512字节
- sunit=0 blks,未显式设置条带单元(适用于RAID配置)
- lazy-count=1,启用懒加载计数器,优化超级块更新性能
- realtime =none extsz=4096 blocks=0, rtextents=0
- realtime=none,未配置独立的实时设备分区,所有文件数据直接写入主数据区(data section)
- extsz=4096,定义实时设备的扩展块(extent)大小为4KB,是默认的最小值
- blocks=0, rtextents=0,实时设备未分配存储空间(块数和扩展块数均为0),与realtime=none一致
4.2.指定参数格式化
1.强制格式化创建文件系统,xfs默认情况下存在文件系统类型需要指定-f强制覆盖
mkfs.xfs -f /dev/sdb1
2.指定data和log的块大小(bsize)
mkfs.xfs -f -b size=2048 /dev/sdb1
3.crc启用元数据的CRC校验;finobt分配空闲inode B+树;手动指定UUID(uuidgen可生成一个uuid)
mkfs.xfs -f -m crc=1,finobt=1,uuid=dcf755ad-8aaf-4756-9465-6e9234576ee1 /dev/sdb1
4.指定分配组的数量
mkfs.xfs -f -d agcount=5 /dev/sdb1
5.指定inode大小及其他inode参数
包括inode大小、存储inode空间的最大百分比、inode分配进行对齐处理、扩展属性内联分配策略的版本、启用32位配额项目标识符
mkfs.xfs -f -i size=1024,maxpct=10,align=1,attr=2,projid32bit=1 /dev/sdb1
6.指定文件系统日志部分的位置、大小及其他参数
日志部分属于数据部分的一部分、日志版本
mkfs.xfs -f -l internal=1,version=2 /dev/sdb1
日志写入的对齐方式
mkfs.xfs -f -l sunit=0 /dev/sdb1
超级块不会因每次持久计数器的更改而进行修改或记录
mkfs.xfs -f -l lazy-count=1 /dev/sdb1
7.指定文件系统命名信息
版本信息、文件类型信息是否存储在目录结构中
mkfs.xfs -f -n version=2,ftype=1 /dev/sdb1
8.安静模式执行
mkfs.xfs -f -q /dev/sdb1
10.配置XFS文件系统的实时(real-time)存储区域、大小等参数
设备名称、数据块的大小、文件段的大小、禁用条带大小检测功能
mkfs.xfs -f -r rtdev=/dev/sdb2,extsize=4096,size=4096,noalign /dev/sdb1
11.设置文件系统的卷标(可使用lsblk -f查看卷标信息),可以用于通过卷标进行磁盘挂载
mkfs.xfs -f -L pgdata11 /dev/sdb1
12.模拟执行,并不实际格式化创建文件系统
mkfs.xfs -f -N /dev/sdb1
13.指定扇区大小
mkfs.xfs -f -s size=512 /dev/sdb1
1655

被折叠的 条评论
为什么被折叠?



