
字数 706,阅读大约需 4 分钟
使用命令mkfs.xfs /dev/sde直接格式化盘,该盘有20TB,特别慢,30分钟没有执行完。
但是,使用 mkfs.ext4 很快完事。
最后改为如下的命令后,3秒完事:
mkfs.xfs -f -K -l size=128m,lazy-count=1 /dev/sde或使用 mkfs.ext4 尝试。
可能原因 | 解决方案 |
|---|---|
mkfs.xfs 进行全盘扫描 | -l lazy-count=1 |
discard(TRIM)影响 SSD | -K 选项跳过 |
I/O 负载高 | iostat -xm 1 检查 |
XFS 版本老旧 | 更新 xfsprogs |
日志初始化慢 | -l size=128m |
文件系统特性影响 | -n ftype=0 |
如果 mkfs.ext4 很快,而 mkfs.xfs 特别慢,说明问题可能与 XFS 文件系统初始化方式 或 磁盘 I/O 特性 相关。可以从以下几个方面分析和优化:
mkfs.xfs 会执行以下操作,导致格式化比 mkfs.ext4 慢:
discard(TRIM)操作(如果是 SSD)尝试使用 -f -l lazy-count=1 加快格式化:
mkfs.xfs -f -l lazy-count=1 /dev/sde-f:强制格式化,避免因已有分区导致的提示。-l lazy-count=1:优化 XFS 的日志计数方式,加快格式化。如果 mkfs.xfs 在 SSD 上特别慢,可能是 TRIM 操作导致:
mkfs.xfs -f -K /dev/sde-K 选项会跳过 discard,提高格式化速度(适用于 SSD)。可以手动检查 SSD 是否支持 discard:
lsblk -D如果 DISC-GRAN(discard granularity)值很大,说明 mkfs.xfs 可能因 discard 耗时过长。
虽然 mkfs.ext4 运行快,但 mkfs.xfs 可能触发了不同的 I/O 负载,可以用 iostat 或 iotop 观察:
iostat -xm 1
iotop -o如果磁盘 await 时间很高,可能是 I/O 繁忙导致。
旧版本 xfsprogs 可能存在性能问题,建议更新:
yum update xfsprogs # RHEL/CentOS
apt update && apt install xfsprogs # Debian/Ubuntu检查当前 XFS 版本:
mkfs.xfs -V如果 mkfs.xfs 明显比 mkfs.ext4 慢,可能是磁盘错误或驱动问题:
dmesg | tail -50如果发现 I/O errors、buffer I/O error,可能是磁盘有问题,可以跑 badblocks 检测:
badblocks -sv /dev/sdeXFS 需要初始化日志区域,默认情况下可能会导致格式化较慢。可以尝试手动调整:
mkfs.xfs -f -l size=128m,lazy-count=1 /dev/sde-l size=128m:减少日志空间大小,加快格式化。lazy-count=1:避免频繁更新 superblock,提高效率。某些系统默认 mkfs.xfs 会使用 -n ftype=1,可能导致格式化慢。可以尝试手动关闭:
mkfs.xfs -f -n ftype=0 /dev/sde本文“解释” 部分来自于AI生成!