Menu Close

7.3. GFS2 文件系统挂起,需要重启所有节点

如果您的 GFS2 文件系统挂起且不会返回针对它运行的命令,并需要您重启集群中的所有节点才可以使用它,检查以下问题。

  • 您可能有一个失败的隔离(fence)。GFS2 文件系统将停滞,以保证在出现隔离失败时的数据完整性。检查信息日志,查看在挂起时是否有失败的隔离。确定正确配置了隔离。
  • GFS2 文件系统可能已经撤回。检查信息日志中的 withdraw ,检查所有来自 GFS2 的信息并调用显示已经撤回的文件系统的信息。撤回通常代表文件系统崩溃、存储失败或存在程序漏洞。根据具体情况,尽早进行以下操作来卸载文件系统:

    1. 重启发生撤回的节点。

      # /sbin/reboot
    2. 停止该文件系统资源在所有节点中卸载 GFS2 文件系统。

      # pcs resource disable --wait=100 mydata_fs
    3. 捕获元数据 gfs2_edit savemeta…​ 命令所需的文件。您应该确定有足够的空间来容纳该文件,在某些情况下,所需空间可能比较大。在本例中,元数据被保存到 /root 目录中的一个文件中。

      # gfs2_edit savemeta /dev/vg_mydata/mydata /root/gfs2metadata.gz
    4. 更新 gfs2-utils 软件包。

      # sudo dnf update gfs2-utils
    5. 在一个节点上,在文件系统中运行 fsck.gfs2 命令以确保文件系统的完整性并修复任何损坏。

      # fsck.gfs2 -y /dev/vg_mydata/mydata > /tmp/fsck.out
    6. fsck.gfs2 命令完成后,重新启用该文件系统资源使其返回服务:

      # pcs resource enable --wait=100 mydata_fs
    7. 创建一个红帽支持问题单。告知您遇到 GFS2 撤回问题,并提供 sosreportsgfs2_edit savemeta 命令生成的日志和调试信息。

      在 GFS2 撤回的某些情况下,试图访问文件系统或其块设备的命令可能会挂起。在这些情况下,需要一个“硬”重启来重启集群。

      有关 GFS2 撤回功能的详情,请参考 GFS2 文件系统在节点中不可用(GFS2 撤回功能)

  • 这个出错信息表示可能有锁定问题或者程序漏洞。在出现这个问题时收集 GFS2 数据并创建一个红帽支持问题单,如收集 GFS2 数据进行故障排除所述。