3.10。从EXT4迁移到XFS
从Red Hat Enterprise Linux 7.0开始,XFS是默认的文件系统,而不是ext4。本节重点介绍使用或管理XFS文件系统时的区别。
在Red Hat Enterprise Linux 7中仍完全支持ext4文件系统,并且可以在安装时选择。虽然可以从ext4迁移到XFS,但这不是必需的。
3.10.1。Ext3 / 4和XFS之间的区别
文件系统维修
Ext3 / 4 e2fsck在引导时在用户空间中运行,以根据需要恢复日志。相比之下,XFS在安装时在内核空间中执行日志恢复。提供了一个fsck.xfsshell脚本,但是它不执行任何有用的操作,因为它仅在其中满足初始化脚本要求。
当请求XFS文件系统修复或检查时,请使用xfs_repair命令。使用该-n选项进行只读检查。
该xfs_repair命令在带有脏日志的文件系统上不起作用。要修复此类文件系统mount,unmount必须首先执行以重播日志。如果日志已损坏并且无法重播,则-L可以使用该选项将日志中的内容清零。
有关XFS文件系统的文件系统修复的更多信息,请参见第12.2.2节“ XFS”
元数据错误行为
遇到元数据错误时,ext3 / 4文件系统具有可配置的行为,默认情况下只是继续。当XFS遇到无法恢复的元数据错误时,它将关闭文件系统并返回EFSCORRUPTED错误。系统日志将包含遇到的错误的详细信息,并xfs_repair在必要时建议运行。
配额
XFS配额不是可重新安装的选项。-o quota必须在初始安装中指定该选项,配额才能生效。
配额软件包中的标准工具可以执行基本的配额管理任务(诸如setquota和repquota之类的工具),而xfs_quota工具可以用于特定于XFS的功能,例如Project Quota管理。
该quotacheck命令对XFS文件系统无效。首次启用配额核算时,XFS在quotacheck内部自动执行。由于XFS配额元数据是一流的日记式元数据对象,因此配额系统将始终保持一致,直到手动关闭配额为止。
调整文件系统大小
XFS文件系统没有实用程序来缩小文件系统。XFS文件系统可以通过xfs_growfs命令在线增长。
索引节点编号
对于具有256字节索引节点的大于1 TB的文件系统,或具有512字节索引节点的大于2 TB的文件系统,XFS索引节点号可能会超过2 ^ 32。如此大的索引节点数会导致32位stat调用失败,并返回EOVERFLOW返回值。当使用默认的Red Hat Enterprise Linux 7配置时,可能会发生所描述的问题:非带四个分配组的条带化。定制配置(例如文件系统扩展名或更改XFS文件系统参数)可能会导致不同的行为。
应用程序通常可以正确处理此类较大的inode编号。如果需要,请使用-o inode32参数挂载XFS文件系统,以将inode号强制设置为2 ^ 32以下。请注意,使用inode32不会影响已经分配了64位数字的inode。
重要
千万不能使用inode32,除非它是由一个特定的环境所需的选项。该inode32选项更改分配行为。因此,如果没有空间可用于在较低磁盘块中分配索引节点,则可能会发生ENOSPC错误。
投机预分配
在写入文件时, XFS使用推测性预分配来分配EOF之后的块。这样可以避免由于NFS服务器上的并发流写入工作负载而导致的文件碎片。默认情况下,此预分配随着文件的大小而增加,并且在“ du”输出中显而易见。如果具有推测性预分配的文件在五分钟内没有被污染,则该预分配将被丢弃。如果在该时间之前将索引节点从缓存中循环出,那么当回收索引节点时,预分配将被丢弃。
如果由于推测性预分配而导致ENOSPC过早出现问题,则可以使用mount选项指定固定的预分配量。 -o allocsize=amount
碎片相关工具
由于启发式和行为(例如延迟分配和推测性预分配),碎片很少是XFS文件系统上的重要问题。但是,存在用于测量文件系统碎片以及对文件系统进行碎片整理的工具。不鼓励使用它们。
该xfs_db frag命令尝试将所有文件系统分配提取为单个碎片数,以百分比表示。命令的输出需要大量的专业知识才能理解其含义。例如,碎片系数为75%意味着每个文件平均只有4个扩展数据块。因此,xfs_db的frag的输出不被认为是有用的,因此建议对任何碎片问题进行更仔细的分析。
警告
该xfs_fsr命令可用于对单个文件或文件系统上的所有文件进行碎片整理。尤其不建议使用后者,因为它可能会破坏文件的局部性并可能碎片化可用空间。
与XFS相比,与ext3和ext4一起使用的命令
下表将与ext3和ext4一起使用的常见命令与特定于XFS的命令进行了比较。
表3.1。与XFS相比ext3和ext4的通用命令
任务 |
EXT3 / 4 |
XFS |
创建一个文件系统 |
mkfs.ext4 要么 mkfs.ext3 |
mkfs.xfs |
文件系统检查 |
e2fsck |
xfs_repair |
调整文件系统大小 |
resize2fs |
xfs_growfs |
保存文件系统的映像 |
e2image |
xfs_metadump 和 xfs_mdrestore |
标记或调整文件系统 |
tune2fs |
xfs_admin |
备份文件系统 |
dump 和 restore |
xfsdump 和 xfsrestore |
下表列出了也可以在XFS文件系统上运行的通用工具,但是XFS版本具有更特定的功能,因此建议使用。
表3.2。ext4和XFS的通用工具
任务 |
EXT4 |
XFS |
配额 |
quota |
xfs_quota |
文件映射 |
filefrag |
xfs_bmap |
有关许多列出的XFS命令的更多信息,请参见第3章XFS文件系统。您也可以查阅列出的XFS管理工具的手册页以获取更多信息。