第 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 文件系统需要这个表所示的内存量的四倍。