【问题标题】:How to remove multple ceph nodes slowly如何缓慢移除多个ceph节点
【发布时间】:2020-05-27 02:05:27
【问题描述】:

在每个节点有 10 个 OSD 的 20 节点集群中,您将如何删除节点 1-5。 如果我重新加权 node1 上的 OSD,那么数据将移动到 node2-node20。 然后对 node2 到 node5 执行相同的操作。

有没有办法将 node2-node5 中的 OSD 置于只读状态,这样数据就不必移动两次?

【问题讨论】:

  • 当您将 OSD 重新加权为较低权重时,数据始终会移动到 所有 个其他 OSD。

标签: ceph


【解决方案1】:

因此,您希望将节点 1 到 5 中的所有数据逐出。如果剩余节点可以容纳所有数据并保留所有副本以实现冗余,则这是可能的。

如果是这种情况,您可以同时将节点 1 到 5 上的所有 OSD 重新加权为零权重。每次给定重权重时,ceph 都会重新计算所需的运动。这样,整个数据移动一步完成。然后就坐等重新平衡完成。

重新平衡的速度与只重新平衡一个节点的速度相同,因为在重新平衡操作中,无论更改多少个重新权重参数,对象都会以相同的批次大小重新加权。每次更改都会产生新的美眉图。集群将向这个新的粉碎地图收敛。有ceph setting来控制并行移动多少数据。

或者there is also a script 会以更慢的速度耗尽 OSD。

重新平衡后,您必须从被驱逐的节点中移除 OSD 和任何剩余的 ceph 服务。然后您可以停用旧节点。完成。

作为一个侧节点:您写道,通过重新加权节点 1 上的所有 OSD,数据将被移动到节点 2。这并不完全正确。正确的是:数据将移动到所有剩余的节点。

【讨论】:

  • 我知道同时重新加权所有 5 个节点会卸载它们。我不想一次用所有 5 个来淹没系统。我想一次删除 1 个节点。
  • 没关系。因为即使你重新加权所有节点,移动的过程也是 PG per PG 完成的。并行移动多少 PG 由设置控制。我的集群总是同时最多移动 2 个 PG。因此,当重新加权一个或多个节点时,系统上的压力是相同的。当然,您可以一次删除 1 个节点。将节点的 OSD 重新加权为零。对系统的应变将是相同的。只有它会更快地完成,需要移动的数据更少。但请理解:重新加权多少节点并不重要。使用的带宽/cpu 将相同。
  • GitHub 上有一个脚本,它会以更慢的速度耗尽您的 OSD。我还没有测试过,但 GitHub 上的项目似乎正在积极开发中。请参阅我对链接的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 2021-05-03
  • 2011-09-18
  • 1970-01-01
  • 2018-04-24
相关资源
最近更新 更多