mhu*_*cka 6 linux raid xfs filesystems performance-tuning
我在创建系统时使用默认参数创建了一个 XFS 文件系统。现在在看的输出xfs_info,它显示为0的值sunit和swidth。在这种情况下,我似乎无法解释 0 的含义。(的讨论sunit和swidth我都发现都集中在这些参数设置正确的值,而不是将它们设置为0)
# 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
Run Code Online (Sandbox Code Playgroud)
这必须是一个无知的问题,为此,我很抱歉,因为我是一个新手,XFS,但什么是0值的含义sunit和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 常见问题解答:
su = <RAID controllers stripe size in BYTES (or KiBytes when used with k)>
sw = <# of data disks (don't count parity disks)>
Run Code Online (Sandbox Code Playgroud)
请注意,在本文中,“条带大小”是指单个条带单元大小,Linux MD RAID也称为块大小。再次来自常见问题解答:
应使用 256KB 的 RAID 条带大小以及超过 16 个磁盘的 RAID-10
su = 256k sw = 8(16盘的RAID-10有8个数据盘)
sunit和swidth是表示相同 RAID 几何结构的另一种方法,这次是在 512B 扇区中。来自mkfs.xfs 手册页:
sunit它用于指定 RAID 设备或逻辑卷的条带单元。该值必须以512 字节块为单位指定
swidth这用于指定 RAID 设备或条带逻辑卷的条带宽度。该值必须以 512 字节块为单位指定。
简而言之:
su * sw = entire data stripe size
swidth / sunit = number of data disk
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它们是向 XFS 通知底层 RAID 几何结构的两种不同方法。然而,常见问题解答告诉我们如何mkfs.xfs报告sunit和swidth:
请注意,xfs_info 和 mkfs.xfs 将 sunit 和 swidth 解释为以 512B 扇区为单位指定;然而不幸的是,这并不是他们报告的单位。xfs_info 和 mkfs.xfs 以基本块大小 (bsize) 的倍数而不是 512B 扇区来报告它们。
例如,假设:swidth 1024(在 mkfs.xfs 命令行中指定;因此 512B 扇区中的 1024 个)和块大小为 4096(bsize 由 mkfs.xfs 在输出中报告)。您应该看到 swidth 128(由 mkfs.xfs 在输出中报告)。128 * 4096 == 1024 * 512。
基本上,在创建文件系统时,您指定sunit512Bswidth扇区,而同样mkfs.xfs以 4K 块大小报告它们。这种差异是造成混淆的常见原因。
| 归档时间: |
|
| 查看次数: |
2798 次 |
| 最近记录: |