Linux(Centos 7.6)命令详解:mkfs.xfs

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆是浪个

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值