注意
本文档适用于 Ceph 开发版本。
灾难恢复
元数据损坏和修复
如果文件系统具有不一致或缺失的元数据,则被视为损坏. 你可能通过健康消息发现损坏,或在某些不幸的情况下通过正在运行的 MDS 守护进程中的断言发现。
元数据损坏可能由底层 RADOS 层的数据丢失引起(例如,多个磁盘故障导致 PG 的所有副本丢失),也可能由软件错误引起。
CephFS 包含一些可能能够恢复损坏的文件系统的工具,但要安全使用它们需要深入理解 CephFS 内部机制。这些潜在危险操作的文档在单独的一页上:高级:元数据修复工具.
数据池损坏(受丢失数据 PG 影响的文件)
如果一个 PG 在数据池中丢失,那么文件系统将继续正常工作,但某些文件的部分将简单地缺失(读取将返回零)。
丢失一个数据 PG 可能会影响许多文件。文件被分成许多对象,因此识别哪些文件受特定 PG 丢失的影响需要对文件可能存在的所有对象 ID 进行全面扫描。
Danger
此命令不会修复任何元数据,因此在这种情况下恢复文件时,你必须删除损坏的文件,并用新的 inode 替换它。不要就地覆盖损坏的文件。
如果你知道对象已从 PG 中丢失,使用pg_files
子命令扫描可能因此受损的文件:
cephfs-data-scan pg_files <path> <pg id> [<pg id>...]
例如,如果你从 PG 1.4 和 4.5 丢失了数据,并且你想知道 /home/bob 下哪些文件可能受损:
cephfs-data-scan pg_files /home/bob 1.4 4.5
输出将是一个潜在受损文件的路径列表,每行一个。
注意,此命令作为正常的 CephFS 客户端来查找文件系统中的所有文件并读取它们的布局,因此 MDS 必须处于运行状态。
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.