当前位置: 首页 > 科技观察

通过案例学习xfs文件系统相关命令

时间:2023-03-19 16:11:31 科技观察

在我们的另一篇文章中,我会带大家了解什么是xfs,xfs的相关特性等等。在本文中,我们将了解一些常用的xfs管理命令。我们将通过几个例子来说明如何创建xfs文件系统,如何扩展xfs文件系统,以及如何检测和修复xfs文件系统。创建XFS文件系统mkfs.xfs命令用于创建xfs文件系统。不加任何特殊参数,输出如下:root@kerneltalks#mkfs.xfs/dev/xvdfmeta-data=/dev/xvdfisize=512agcount=4,agsize=1310720blks=sectsz=512attr=2,projid32bit=1=crc=1finobt=0,sparse=0data=bsize=4096blocks=5242880,imaxpct=25=sunit=0width=0blksnaming=version2bsize=4096ascii-ci=0ftype=1log=internallogbsize=4096blocks=2560,version=2=sectsz=512sunit=0blks,lazy-count=1realtime=noneextsz=4096blocks=0,rtextents=0注意:XFS文件系统一旦创建,不能再缩减,但可以只能缩小扩大。调整XFS文件系统容量XFS只能扩容不能缩容。我们使用xfs_growfs进行缩放。您需要使用-D参数指定挂载点的新大小。-D采用数字参数指定文件系统块的数量。如果不提供-D参数,xfs_growfs会将文件系统扩展为***。root@kerneltalks#xfs_growfs/dev/xvdf-D256meta-data=/dev/xvdfisize=512agcount=4,agsize=720896blks=sectsz=512attr=2,projid32bit=1=crc=1finobt=0spinodes=0data=bsize=4096blocks=2883584,imaxpct=25=sunit=0width=0blksnaming=version2bsize=4096ascii-ci=0ftype=1log=internalbsize=4096blocks=2560,version=2=sectsz=512sunit=0blks,lazy-count=1realtime=noneextsz=4096blocks=0,rtextents=0datasize256toosmall,oldsizeis2883584观察上面输出的最后一行。因为我分配的容量小于当前容量。它告诉您XFS文件系统无法收缩。您只能扩展它。root@kerneltalks#xfs_growfs/dev/xvdf-D2883840meta-data=/dev/xvdfisize=512agcount=4,agsize=720896blks=sectsz=512attr=2,projid32bit=1=crc=1finobt=0spinodes=0data=bsize=4096blocks=2883584,imaxpct=25=sunit=0width=0blksnaming=version2bsize=4096ascii-ci=0ftype=1log=internalbsize=4096blocks=2560,version=2=sectsz=512sunit=0blks,lazy-count=1realtime=noneextsz=4096blocks=0,rtextents=0datablocks从2883584变成2883840现在我多分配了1GB的空间,成功扩容了。1GBblock的计算方法:当前文件系统bsize为4096,即blocksize为4MB。我们需要1GB,即256个块。因此,将256添加到当前块号2883584,得到2883840。所以我为-D传递参数2883840。修复XFS文件系统可以使用xfs_repair命令进行文件系统一致性检查和修复。使用-n参数不会对文件系统进行任何实质性更改。它只是搜索并报告要进行的更改。如果没有-n参数,将修改文件系统以保持文件系统清洁。请注意,您需要在检查之前卸载XFS文件系统。否则会报错。root@kerneltalks#xfs_repair-n/dev/xvdfxfs_repair:/dev/xvdfcontainsamountedfilesystemxfs_repair:/dev/xvdfcontainsamountedandwritablefilesystemfatalerror--卸载后无法初始化XFS库运行检查命令。root@kerneltalks#xfs_repair-n/dev/xvdfPhase1-查找并验证超级块...阶段2-使用内部日志-零日志...-扫描文件系统空闲空间和inode映射...-找到根inodechunkPhase3-对于每个AG...-扫描(但不清除)agi未链接列表...-处理已知inode并执行inode发现...-agno=0-agno=1-agno=2-agno=3-agno=4-处理新发现的inode...阶段4-检查重复块...-设置重复范围列表...-检查inode声明重复块...-agno=0-agno=1-agno=2-agno=3-agno=4未设置修改标志,跳过阶段5阶段6-检查inode连接性...-遍历文件系统...-遍历完成...-将断开连接的inode移动到丢失+找到...阶段7-验证链接计数...未设置修改标志,跳过文件系统刷新并退出。如您所见,该命令在每个阶段都显示了为使文件系统健康而可能进行的修改。如果您希望命令在扫描时实际应用这些修改,请在不带任何参数的情况下运行它。root@kerneltalks#xfs_repair/dev/xvdfPhase1-查找并验证超级块。..Phase2——使用内部lo??g-zero日志。..-扫描文件系统可用空间和inode映射。..-为每个AG找到根inodechunkPhase3。..-扫描并清除agi未链接列表。..-处理已知inode并执行inode发现。..-agno=0-agno=1-agno=2-agno=3-agno=4-处理新发现的inode。..阶段4-检查重复块。..-设置重复范围列表。..-检查声明重复块的索引节点。..-agno=0-agno=1-agno=2-agno=3-agno=4阶段5-重建AG标头和树。..-重置超级块。..阶段6-检查inode连接。..-重置实时位图和摘要inode的内容-遍历文件系统。..-遍历完成。..-将断开连接的inode移动到lost+found。..第7阶段-验证并更正链接计数。..done你会发现xfs_repair命令对文件系统进行了修改,使其健康查看XFS版本及其详细信息查看xfs文件系统版本很简单。使用-V参数运行xfs_info并添加挂载点。root@kerneltalks#xfs_info-V/shrikantxfs_infoversion4.5.0如果想查看XFS文件系统的详细信息,比如扩展XFS文件系统时计算增加多少块,需要知道块大小,块的数量和其他信息,然后运行??xfs_info没有选项加上挂载点。root@kerneltalks#xfs_info/shrikantmeta-data=/dev/xvdfisize=512agcount=5,agsize=720896blks=sectsz=512attr=2,projid32bit=1=crc=1finobt=0spinodes=0data=bsize=4096blocks=2883840,imaxpct=25=sunit=0width=0blksnaming=version2bsize=4096ascii-ci=0ftype=1log=internalbsize=4096blocks=2560,version=2=sectsz=512sunit=0blks,lazy-count=1realtime=noneextsz=4096blocks=0,rtextents=0会显示XFS文件系统的所有详细信息,就像创建XFS文件系统时显示的信息一样。此外,还有一些XFS文件系统管理命令可以修改和管理XFS元数据。我们将在另一篇文章中解释。