4.11. 修复文件系统


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

重要

fsck.gfs2 命令必须只能在从所有节点中卸载的文件系统中运行。

重要

不应在引导时使用 fsck.gfs2 命令检查 GFS2。fsck.gfs2 命令不能在引导时确定是否在集群的另一个节点中挂载该文件系统。应只在系统引导后手动运行 fsck.gfs2 命令。
To ensure that the fsck.gfs2 command does not run on a GFS2 file system at boot time, modify the /etc/fstab file so that the final two columns for a GFS2 file system mount point show "0 0" rather than "1 1" (or any other numbers), as in the following example:
/dev/VG12/lv_svr_home   /svr_home       gfs2     defaults,noatime,nodiratime,noquota     0 0

注意

如果您以前有在 GFS 文件系统中使用 gfs_fsck 命令的经验,请注意 fsck.gfs2 命令在以下方面和之前发布的 gfs_fsck 有所不同:
  • 在运行 fsck.gfs2 时按 Ctrl+C 会中断进程并显示提示信息,询问您是否要取消该命令,跳过剩余操作或者继续该进程。
  • 您可以使用 -v 标签提高详细等级。添加第二个 -v 标签会再次提高等级。
  • 您可以使用 -q 标签降低详细等级。添加第二个 -q 标签会再次降低等级。
  • -n 会以只读方式打开某个文件系统并自动对所有查询回答 no。该选项提供了在不允许 fsck.gfs2 命令生效的前提下使用命令找出错误的方法。
有关其他命令选项详情请参考 fsck.gf2 man page。
运行 fsck.gfs2 命令要求系统内存高于操作系统使用的内存而低于内核使用的内存。GFS2 文件系统中的每块内存本身需要大约 5 比特额外内存,或者 5/8 字节。因此要估算在您的文件系统中运行 fsck.gfs2 命令所需内存字节数,您可以确定包含的文件系统块的数量,然后乘以 5/8。
例如:要确定在大小为 16TB,块大小为 4K 的 GFS2 文件系统中运行 fsck.gfs2 命令大约需要多少内存,首先要确定该文件系统中包含多少内存块,可使用 16TB 除以 4K:
 17592186044416 / 4096 = 4294967296
这个文件系统中包含 4294967296 个块,再乘以 5/8 就可确定需要多少内存:
4294967296 * 5/8 = 2684354560
该文件系统大约需要 2.6GB 可用内存方可运行 fsck.gfs2 命令。请注意:如果块大小为 1K,那么运行 fsck.gfs2 命令将需要四倍于以上值的内存,即大约 11GB。

用法

fsck.gfs2 -y BlockDevice
-y
-y 标签可使对所有问题的回答都为 yes。如果指定 -y 标签,fsck.gfs2 命令则不会在进行修改前提示您回答问题。
BlockDevice
指定 GFS2 文件系统所在的块设备。

示例

在这个示例中,修复了位于块设备 /dev/testvol/testlv 中的 GFS2 文件系统。所有关于修复查询的回答都自动为 yes
[root@dash-01 ~]# fsck.gfs2 -y /dev/testvg/testlv
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Clearing journals (this may take a while)...
Journals cleared.
Starting pass1
Pass1 complete
Starting pass1b
Pass1b complete
Starting pass1c
Pass1c complete
Starting pass2
Pass2 complete
Starting pass3
Pass3 complete
Starting pass4
Pass4 complete
Starting pass5
Pass5 complete
Writing changes to disk
fsck.gfs2 complete
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.