对 lvm 卷运行文件系统检查的最佳实践?

对 lvm 卷运行文件系统检查的最佳实践?

许多系统的 ext4 直接位于块设备上,而其他系统则位于 lvm 上。我通常会直接在块设备上使用 ext4 创建新系统,并使用une2fs 进行自动文件系统检查。在旧版本的 CentOS(例如 4,5 或 6)中,我可以对 LVM 上的 ext 文件系统执行相同的操作,但不能对新版本执行相同的操作。确保驻留在 LVM 上的文件系统得到检查的最佳实践命令集是什么?

确保 lvm 卷不损坏的最佳方法是什么?如何针对 LVM 文件系统运行 fsck? lvm中有内置的东西可以自动检查fs吗?如果是这样,哪个日志文件条目实际上证明已完成检查?

  1. 启动到单用户模式,停止磁盘映射服务并运行mount以确保所有 lvm 卷都不是安装。 fsck /dev/mapper/vg0用什么参数?
  2. /或者从不会自动挂载 LVM 的LiveCD 启动 并从那里运行 fsck?

有没有办法在 LVM 上对 ext 文件系统使用une2fs?我运行文件系统检查的最常见方法是让操作系统在启动时通过tune2fs定期自动执行这些检查: tunefs -c 5 -i 7days /dev/sda1 但这不适用于lvm。

如果 fsck 是一种方法,那么将什么开关传递给它?如果没有lvm,我fsck -c -c -D -C0 /dev/sda1可以消除坏块并优化文件夹结构。在运行 fsck 之前应运行哪些 lvm 命令?

我过去引用的大部分文档都不可用。

答案1

如何针对 LVM 文件系统运行 fsck?

最好先对驱动器进行快照或备份。
1. 和 2. 取决于要修复的驱动器。
通过添加systemd.unit=emergency.target到 grub 行来启动到紧急模式是一个好的开始。/仍然安装。

如果 fsck 是一种方法,那么将什么开关传递给它?

您可以通过试运行 ( fsck -N) 检查根分区以查看是否存在错误。您需要从外部设备启动才能真正修复此问题。 (fsck -y如果有很多需要修复的地方,这很有用,可以跳过针对每个发现的错误的烦人的“修复(y)?”问题。)

lvm中有内置的东西可以自动检查fs吗?
(确保文件系统驻留在 LVM 上时进行检查的最佳实践命令集是什么?)

不,据我所知/etc/fstab- 第 6 个字段正在设置这个。 (参见 man fstab)

第六个字段 (fs_passno) 由 fsck(8) 程序用来确定重新引导时执行文件系统检查的顺序。根文件系统的 fs_passno 应该指定为 1,其他文件系统的 fs_passno 应该为 2。驱动器内的文件系统将按顺序检查,但不同驱动器上的文件系统将同时检查,以利用硬件中可用的并行性。如果第六个字段不存在或为零,则返回零值,并且 fsck 将假定不需要检查文件系统。

如果是这样,哪个日志文件条目实际上证明已完成检查?

这被存储到文件系统中。对于 ext2/ext3/ext4,它可能看起来像这样(13 中的 fsck,安装计数将设置为 0。tune2fs -C <n>手动设置安装计数)

sudo tune2fs -l /dev/mapper/vg0-lv0 | grep -i "mount count" 

Mount count:              17
Maximum mount count:      30

(其他文件系统,例如 XFS、btrfs 的工作方式有所不同,但您明白了)

在运行 fsck 之前应运行哪些 lvm 命令?

没有任何

答案2

fsck是一个文件系统检查器。 LVM 是一个存储卷管理器,而不是一个文件系统。您可以fsck在具有文件系统的 LVM 逻辑卷上使用它,就像在具有文件系统的磁盘分区上运行它一样。

LVM 元数据可能会损坏,但一般来说,LVM 可以很好地从存储在多个位置的备份中自动修复自身,并且在发生重大灾难时也可以使用 ‍‍ 中的副本/etc/lvm/backup/(您在外部备份)。

相关内容