第 14 章 文件系统和存储

以下章节包含对 RHEL 8 和 RHEL 9 之间文件系统和存储的最显著的更改。

14.1. 文件系统

XFS 文件系统现在支持 bigtimeinobtcount 功能

XFS 文件系统现在支持两个新的 on-disk 功能,它们各自在 RHEL 9 的 mkfs.xfs 中被默认启用。这两个新功能包括:

  • 超过 2038 年的时间戳支持(bigtime)。
  • 索引节点 btree 计数器(inobtcount),以减少大型文件系统的挂载时间。

在这个版本中,使用默认 mkfs.xfs 参数创建的文件系统无法在 RHEL 8 系统中挂载。

要创建一个与 RHEL 8 内核兼容的新文件系统,请通过在 mkfs.xfs 命令行中添加 -m bigtime=0,inobtcount=0 来禁用这些新功能。以这种方式创建的文件系统将不支持超过 2038 年的时间戳。

在 RHEL 8 中创建并不支持这些功能的文件系统,可以使用包含文件系统的卸载块设备中的 xfs_admin 实用程序升级。建议在此操作前检查文件系统一致性。该命令还会在更改后在设备上运行 xfs_repair

启用 bigtime 支持。

  • xfs_admin -O bigtime=1 /dev/device

启用内节点 btree 计数器:

  • xfs_admin -O inobtcount=1 /dev/device

同时启用这两者:

  • xfs_admin -O bigtime=1,inobtcount=1 /dev/device

详情请查看 xfs_admin(8) 手册页。

RHEL 9 现在支持 exFAT 文件系统

RHEL 9 现在支持 exFAT 文件系统。这是设计用于外部 USB 存储和与其他操作系统间的互操作性和数据交换的文件系统。文件系统并不能是通用的、性能或可扩展的 Linux 文件系统。可通过安装 exfatprogs 软件包并使用 mkfs.exfat 创建 ex FAT 文件系统。

详情请查看 mkfs.exfat(8) man page。

ext4 文件系统现在支持年超过 2038 的时间戳

ext4 文件系统现在支持超过 2038 年的时间戳。这个功能是完全自动的,不需要任何用户操作就能使用它。唯一的要求是内节点要大于 128 字节,这是默认值。

新的 nfsv4-client-utils 软件包

添加了新软件包 nfsv4-client-utils,其中包含只支持 NFSv4 的 demons 和工具集合。这是标准的 nfs-utils 软件包的替代。

现在,使用版本 1802 创建 GFS2 文件系统

RHEL 9 中的 GFS2 文件系统采用格式版本 1802 创建。这可启用以下功能:

  • trusted 命名空间的扩展属性 ("trusted.* xattrs") 可被 gfs2gfs2-utils 识别。
  • rgrplvb 选项默认为活动状态。这允许 allowgfs2 将更新的资源组数据附加到 DLM 锁定请求,因此获取锁定的节点不需要从磁盘更新资源组信息。这在某些情况下提高了性能。

使用新格式版本创建的文件系统将无法被挂载到以前的 RHEL 版本以及 fsck.gfs2 工具的旧版本下,将无法对其进行检查。

用户可以运行带有 -o format=1801 选项的 mkfs.gfs2 命令,创建采用较旧版本的文件系统。

用户可以在卸载的文件系统中通过运行 tunegfs2 -r 1802 device 来升级旧文件系统的格式版本。不支持降级格式版本。

Samba 工具中的选项已被重命名和删除,以获得一致的用户体验

Samba 工具已被改进,来提供一致的命令行界面。这些改进包括重命名和删除的选项。因此,为了避免更新后出现问题,请查看使用 Samba 工具的脚本,并在需要时更新它们。

Samba 4.15 在 Samba 工具中引进了以下更改:

  • 在以前的版本中,Samba 命令行工具会悄悄忽略未知选项。为防止意外行为,工具现在一致拒绝未知选项。
  • 现在,几个命令行选项有一个对应的 smb.conf 变量来控制它们的默认值。请参阅工具的手册页来识别命令行选项是否有 smb.conf 变量名。
  • 默认情况下,Samba 工具现在记录到标准错误(stderr)。使用 --debug-stdout 选项更改此行为。
  • --client-protection=off|sign|encrypt 选项已添加到通用解析程序中。
  • 在所有工具中已重命名了以下选项:

    • --Kerberos 变为 --use-kerberos=required|desired|off
    • --krb5-ccache 变为 --use-krb5-ccache=CCACHE
    • --scope 变为 --netbios-scope=SCOPE
    • --use-ccache 变为 --use-winbind-ccache
  • 以下选项已从所有工具中删除:

    • -e--encrypt
    • --use-winbind-ccache 中删除了 -c
    • --netbios-scope 中删除了 -i
    • -S--signing
  • 要避免重复选项,某些选项已从以下工具中删除或重命名了:

    • ndrdump:-l 对于 --load-dso 不再可用
    • net:-l 对于 --long 不再可用
    • sharesec:-V 对于 --viewsddl 不再可用
    • smbcquotas:--user 已重命名为 --quota-user
    • nmbd:--log-stdout 已重命名为 --debug-stdout
    • smbd:--log-stdout 已重命名为 --debug-stdout
    • winbindd:--log-stdout 已重命名为 --debug-stdout

cramfs 模块已被删除

由于缺少用户,已删除了 cramfs 内核模块。建议使用 squashfs 作为替代解决方案。

RHEL 9 中删除了强制文件锁定支持

RHEL 9 及更新的版本不再支持强制文件锁定。该内核会忽略 mand 挂载选项,其使用会在系统日志中生成警告。

NFSv2 不再被支持

RHEL 9 NFS 客户端和服务器不再支持 NFSv2。

Stratis 存储管理器现在可用

Stratis 是一个本地存储管理器。它在存储池的上面为用户提供额外的功能:

  • 管理快照和精简配置
  • 根据需要自动增大文件系统大小
  • 维护文件系统
  • 池级加密
  • TMP2 和 NBDE 支持

要管理 Stratis 存储,使用 stratis 工具来与 stratisd 后台服务进行通信。

如需更多信息,请参阅 Stratis 文档:设置 Stratis 文件系统

DAX 挂载选项和 reflink 现在兼容

重新链接的文件现在通常与 DAX 模式兼容。文件系统 DAX 挂载选项 -o dax=always 与启用了重新链接的文件系统兼容。已重新链接的文件可以使用 inode 标记设置为 DAX 模式。详情请查看 xfs (5) 手册页。