我在创建系统时使用默认参数创建了 XFS 文件系统。现在查看 的输出xfs_info
,它显示 0 和 的sunit
值swidth
。我似乎无法找到 0 在这种情况下意味着什么的解释。(我发现sunit
的讨论集中在为这些参数设置正确的值,而不是将它们设置为 0。)swidth
# xfs_info .
meta-data=/dev/mapper/centos-root isize=256 agcount=8, agsize=268435455 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=1927677952, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=521728, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
这一定是一个无知的问题,对此我深表歉意,因为我是 XFS 新手,但是sunit
and的 0 值是什么意思swidth
?如何找出 XFS 真正用于这些参数值的内容,以及这些值与适合我的 RAID 阵列的值之间的关系?(这是硬件 RAID 之上 LVM 之上的 XFS 系统。)
这是一个老问题,但我认为更全面的答案会很有用。
简而言之:当使用软件 RAID 时,让 XFS 自动检测底层阵列几何结构。如果在最近的内核上使用硬件 RAID,XFS应该能够自动检测正确的参数;如果没有,您可以使用
su/sw/sunit/swidth
来指定它们。了解底层几何有助于 XFS 分配器尽可能避免跨越两个磁盘,从而为其他工作节省 IOPS(即:占用的数据磁盘较少)。
在上面的特定示例中,同时
mkfs.xfs
报告sunit=0
和swidth=0
,这意味着 XFS 没有在创建文件系统的块设备上检测到任何特定的 RAID 几何结构。长答案:让我们从
su
和开始sw
。来自(有些过时的)XFS 常见问题解答:请注意,在此上下文中,“条带大小”是指单个条带单元大小,Linux MD RAID 也称为块大小。再次来自常见问题解答:
sunit
并且swidth
是表示相同 RAID 几何结构的另一种方法,这次是在 512B 扇区中。从mkfs.xfs 手册页:简而言之:
如您所见,它们是通知 XFS 底层 RAID 几何结构的两种不同方法。但是,常见问题解答告诉我们如何
mkfs.xfs
报告sunit
和swidth
:基本上,在创建文件系统时,您指定512B 扇区,
sunit
而swidth
同样mkfs.xfs
以 4K 块大小报告它们。这种差异是一个常见的混淆来源。如果您不使用 RAID,
sunit
并且swidth
选项已过时,则用于 RAID 优化有关
sunit
并swidth
参考XFS 常见问题的更多信息零意味着对底层 RAID 结构的扩展区分配进行零优化,这是正确的。
因此,如果您关心性能并且您可以简单地重新创建 FS,在您的 RAID 集/控制器中分析驱动器的数量及其块大小,
sunit
并swidth
相应地在mkfs.xfs
.如果(且仅当)您需要在 RAID LUN 上创建分区,请确保第一个分区从 1 MB 边界开始(如果扇区 = 512 字节,则为 2048 秒),因为这是大多数 RAID 块大小可被除以.