【问题标题】:Understanding snapshots in Ceph了解 Ceph 中的快照
【发布时间】:2022-01-11 10:26:02
【问题描述】:

我们的团队目前正在决定是否对 cephfs 目录实施快照,从而试图了解快照对集群造成的影响和性能问题。

我们主要关心的是“当数据写入快照下的文件时,集群会受到怎样的影响?”。我们能够发现 Ceph 使用 Copy-on-write 机制来克隆快照,所以我的问题是,例如,如果我在快照下有一个 1GB 的文件,并且我将另外 10MB 的数据附加到文件中,那么新写入会复制多少数据?

我的理解是,由于 Ceph 将文件条带化为多个对象,因此只有包含最后一个 stripe_unit 的对象(假设它没有完全填充)将被复制并将新数据添加到其中,然后 Ceph 以某种方式设法包含当我请求当前版本文件时新对象,当我从快照中请求文件时将包含旧对象。复制的数据 = O(10MB),我的意思是按照数据写入的顺序,以及一些元数据更改。

或者由于 Ceph 现在使用 Bluestore 作为存储层,它是否有更好的优化(与上述情况相比),比如在编辑与最后一个 stripe_unit 对应的对象时,ceph 只会将新数据写入磁盘和编辑对象的元数据以包含新数据的位置,并维护基于快照的元数据版本,以便为我们提供以前时间点的文件内容。复制/写入的数据 = 10MB 和更多元数据更改(与上述情况相比)。

或者是 Ceph 将复制整个文件并编辑文件的新副本的情况,即复制的数据为 1GB + 10MB。我假设情况并非如此,因为它显然不是大文件的最佳选择。

PS:非常感谢任何有关测量快照对集群的影响的资源以及任何解释 Ceph 快照内部结构的资源。我在互联网上进行了广泛的搜索,但找不到任何相关数据。尝试阅读代码,但你们可能会猜到它是怎么回事。

【问题讨论】:

    标签: snapshot ceph cephfs cephadm librbd


    【解决方案1】:

    了解 Ceph 快照基础知识的一些资源如下:

    此外,如果您想获取 Bluestore 快照的特定信息,您可能需要阅读以下两个资源,因为它们明确解释了基于 Bluestore 的快照:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      相关资源
      最近更新 更多