cache_check
是一个用于验证设备或文件上缓存元数据的工具。它检查由 device-mapper
缓存目标创建的缓存元数据,确保其完整性和一致性。该工具不能用于正在使用的元数据。
基本语法
cache_check [options] {device|file}
{device|file}
:指定包含缓存元数据的设备或文件(如/dev/vg/metadata
)。
常用选项
选项 | 描述 |
---|---|
-h , --help | 显示帮助信息并退出。 |
-V , --version | 显示版本信息并退出。 |
-q , --quiet | 静默模式,仅返回退出代码,不输出任何信息。 |
--super-block-only | 仅检查超级块。 |
--skip-hints | 跳过策略提示值(policy hint values)的检查。 |
--skip-discards | 跳过元数据中丢弃位(discard bits)的检查。 |
--clear-needs-check-flag | 清除超级块中的 needs_check 标志。 |
功能描述
-
超级块检查:
超级块是缓存元数据的核心部分,cache_check
会验证其完整性和一致性。 -
策略提示值检查:
策略提示值用于优化缓存行为,--skip-hints
选项可以跳过这部分检查。 -
丢弃位检查:
丢弃位用于标记不再使用的数据块,--skip-discards
选项可以跳过这部分检查。 -
needs_check
标志:
如果内核设置了needs_check
标志,表示需要在下一次激活缓存池之前进行检查。使用--clear-needs-check-flag
选项可以在检查成功后清除该标志。如果检查失败,则需要运行cache_repair
修复问题。
示例
-
检查设备
/dev/vg/metadata
上的缓存元数据:$ cache_check /dev/vg/metadata
该命令会检查
/dev/vg/metadata
设备上的缓存元数据,并输出检查结果。 -
静默模式检查:
$ cache_check -q /dev/vg/metadata
该命令会以静默模式运行,仅返回退出代码。
-
仅检查超级块:
$ cache_check --super-block-only /dev/vg/metadata
该命令仅检查超级块,忽略其他元数据。
-
清除
needs_check
标志:$ cache_check --clear-needs-check-flag /dev/vg/metadata
该命令会在检查成功后清除超级块中的
needs_check
标志。
注意事项
cache_check
不能用于正在使用的元数据。在运行该工具之前,请确保设备或文件未被device-mapper
缓存目标使用。- 如果检查失败,建议运行
cache_repair
修复元数据问题。 - 清除
needs_check
标志前,请确保检查成功,否则可能导致缓存池无法正常激活。