第 5 章 GFS2 文件系统修复

当挂载文件系统的节点失败时,文件系统日志允许快速恢复。但是,如果存储设备断电或者断开物理连接,则会发生文件系统崩溃。(无法使用日志进行存储子系统失败修复。) 当这种崩溃发生时,您可以使用 fsck.gfs2 命令恢复 GFS2 文件系统。

重要

只能在从所有节点中卸载的文件系统上运行 fsck.gfs2 命令。当文件系统作为 Pacemaker 集群资源进行管理时,您可以禁用文件系统资源,这会卸载文件系统。运行 fsck.gfs2 命令后,您可以重新启用该文件系统资源。使用 pcs resource disable--wait 选项指定的 timeout 值是一个以秒为单位的值。

pcs resource disable --wait=timeoutvalue resource_id
[fsck.gfs2]
pcs resource enable resource_id

请注意,即使文件系统是资源组的一部分,如在加密文件系统部署中那样,您只需要禁用文件系统资源才能在文件系统上运行 fsck 命令。您不能禁用整个资源组。

为确保启动时 fsck.gfs2 命令不会在 GFS2 文件系统上运行,您可以在在集群中创建 GFS2 文件系统资源时设置 options 参数的 run_fsck 参数。指定 "run_fsck=no" 代表您不应运行 fsck 命令。

5.1. 确定运行 fsck.gfs2 所需的内存

运行 fsck.gfs2 命令可能需要系统内存高于操作系统和内核所使用的内存。较大的文件系统可能需要额外内存才能运行这个命令。

下表显示了在 GFS2 文件系统中运行 fsck.gfs2 文件系统所需内存的近似值,它们大小为 1TB、10TB 和 100TB,块大小为 4K。

GFS2 文件系统大小运行 fsck.gfs2 所需的大约内存

1 TB

0.16 GB

10 TB

1.6 GB

100 TB

16 GB

请注意,如果文件系统的块大小较小,则需要更大的内存。例如:块大小为 1K 的 GFS2 文件系统需要这个表所示的内存量的四倍。