微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从删除的 RBD 卷中恢复数据?

如何解决从删除的 RBD 卷中恢复数据?

有没有办法从 Ceph 中删除的 RBD 卷中恢复数据?谢谢

$ ceph osd map pool-name csi-vol-65c11863-32e1-11eb-a202-cab20b4e04f6
osdmap e2248 pool 'pool-name' (8) object 'csi-vol-65c11863-32e1-11eb-a202-cab20b4e04f6' -> pg 8.e5d09b91 (8.11) -> up ([5,4],p5) acting ([5,p5)

解决方法

AFAIK,答案是否定的。但是,我引用了 source 中可能对您有帮助的以下解释:

考虑 Ceph 存储数据的方式……每个 RBD 被分割成块 (默认 4MB 大小的 RADOS 对象);块是分布式的 在具有配置重复次数的 OSD 中(可能是两个 您的情况,因为您使用 2 个 OSD 主机)。 RBD 使用精简配置,因此 在第一次写访问时分配块。 如果一个 RBD 被删除,它的所有块都会在相应的 OSD。如果要恢复已删除的 RBD,则需要恢复所有 个别块。这是否可能取决于您的文件系统 以及前一个块的空间是否已经分配给其他 RADOS 对象。 RADOS 对象名称由 RBD 名称和 块的偏移位置,因此如果存在取消删除机制 OSD 的文件系统,你必须能够通过它们来恢复文件 文件名,否则你最终可能会混合各种不同的内容 删除的 RBD。由于精简配置,可能会有一些块 丢失(例如之前从未分配过)。

不过,还是有希望的。名为 Mastering Ceph 的 Ceph 一书提供了一些hints来恢复数据,如下所示:

有一些工具可以搜索 OSD 数据结构,找到与 RBD 相关的对象文件,然后将这些对象组装回磁盘映像,类似于原始 RBD 映像。

您可能需要在 Ceph 源代码中找到合适的工具。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。