首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sunit=0和swidth=0对于XFS文件系统意味着什么?

sunit=0和swidth=0对于XFS文件系统意味着什么?
EN

Server Fault用户
提问于 2015-11-20 22:17:37
回答 3查看 4K关注 0票数 7

在创建系统时,我使用默认参数创建了一个XFS文件系统。现在看看xfs_info的输出,它显示sunitswidth的值为0。在这种情况下,我似乎找不到对0的解释。(我发现sunitswidth的讨论集中在为这些参数设置正确的值,而不是将它们设置为0。)

代码语言:javascript
运行
复制
# 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新手,但是0值对于sunitswidth意味着什么呢?如何才能找到XFS对这些参数值真正使用的内容,以及这些值与RAID数组中合适的值之间的关系?(这是一个位于LVM之上的硬件RAID上的XFS系统。)

EN

回答 3

Server Fault用户

回答已采纳

发布于 2022-06-18 21:18:39

这是一个老问题,但我认为一个更全面的答案是有用的。

简而言之:当使用软件RAID时,让XFS自动检测底层数组几何。如果在最近的内核上使用硬件RAID,XFS应该能够自动检测正确的参数;如果没有,则可以使用su/sw/sunit/swidth来指定它们。

了解底层的几何结构有助于XFS分配器在可能的情况下避免跨越两个磁盘,为其他工作保存IOPS (即:占用较少的数据磁盘)。

在上面的具体示例中,mkfs.xfs报告了sunit=0swidth=0,这意味着XFS没有检测到创建文件系统的块设备上的任何特定RAID几何。

长篇大论:让我们从susw开始。来自(有些过时的) XFS常见问题

代码语言:javascript
运行
复制
su = <RAID controllers stripe size in BYTES (or KiBytes when used with k)>
sw = <# of data disks (don't count parity disks)>

请注意,在这种情况下,“条带大小”指的是单个条带单元大小,也称为Linux中的块大小。同样来自于常见问题:

如果RAID条带大小为256 sw,且RAID-10超过16个磁盘,则应使用su =256 k sw=8 (RAID-10的16个磁盘中有8个数据磁盘)。

sunitswidth是另一种表示相同RAID几何形状的方法,这一次是在512 B扇区。来自mkfs.xfs手册页

sunit用于指定RAID设备或逻辑卷的条带单元。该值必须以512个字节块单元swidth指定,用于指定RAID设备或带条带的逻辑卷的条带宽度。该值必须以512字节块单元指定.

简言之:

代码语言:javascript
运行
复制
su * sw = entire data stripe size
swidth / sunit = number of data disk

如您所见,它们是两种不同的方法,用于通知XFS底层RAID几何学。然而,faq告诉我们mkfs.xfs如何报告sunitswidth的一个问题:

请注意,xfs_info和mkfs.xfs将sunit和swidth解释为在512 B扇区的单元中指定;不幸的是,这并不是它们所报告的单元。xfs_info和mkfs.xfs以基本块大小(bsize)的倍数报告它们,而不是在512 B扇区。例如: swidth 1024 (在mkfs.xfs命令行指定;so 1024在512 B扇区)和4096块大小(输出时由mkfs.xfs报告)。您应该看到sWidth128(由mkfs.xfs在输出处报告)。128 * 4096 == 1024 * 512

基本上,在创建文件系统时,您可以在512 B扇区中指定sunitswidth,而相同的mkfs.xfs报告它们的块大小为4K。这种差异是造成混淆的一个常见原因。

票数 1
EN

Server Fault用户

发布于 2015-11-21 13:05:52

如果不使用RAID,则sunitswidth选项已过时,用于RAID优化

有关sunitswidth的更多信息,请参阅XFS常见问题

票数 0
EN

Server Fault用户

发布于 2022-01-17 11:10:33

零意味着范围分配的零优化wrt底层RAID结构,这是正确的。

因此,如果您关注性能,并且只需重新创建FS,那么就可以在raid集/控制器中分析驱动器的#及其块大小,并在sunit中相应地设置mkfs.xfsswidth

如果(也只有当)您需要在RAID LUN上创建分区(S),请确保第一个分区开始于1 MByte边界(2048 s如果扇区= 512字节),因为这是大多数RAID块大小可以被除以的。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/737924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档